Skip to content

feat: add semantic text style axes - #331

Open
Happypig375 wants to merge 3 commits into
issue-311-relative-sizesfrom
issue-306-semantic-text-style
Open

feat: add semantic text style axes#331
Happypig375 wants to merge 3 commits into
issue-311-relative-sizesfrom
issue-306-semantic-text-style

Conversation

@Happypig375

Copy link
Copy Markdown
Collaborator

Summary

  • introduce immutable semantic text-style axes for family, weight, posture, and capitals
  • preserve legacy FontStyle compatibility while carrying multi-axis styles through parsing, cloning, equality, fusion, and typesetting
  • serialize supported combinations canonically and reject unsupported slanted/small-caps combinations explicitly
  • restore parser style scope on both successful and failed nested parses

Testing

  • TextStyleTests: 17 passed
  • LaTeXParserTest: 287 passed
  • TextLaTeXParserTests: 241 passed
  • Core and Rendering.Text builds passed
  • scoped formatting verification and git diff --check passed

Stack

This PR is based on issue-311-relative-sizes / #314 because semantic text-style state builds on the relative-size model introduced there.

Closes #306

@github-actions github-actions Bot added the Type/Enhancement A concrete change to CSharpMath behavior or capability. label Aug 31, 2026
@Happypig375 Happypig375 added Area/Parsing LaTeX tokenization, parsing, commands, and serialization. Area/Rendering Typesetting, measurement, fonts, text layout, and drawing. labels Aug 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area/Parsing LaTeX tokenization, parsing, commands, and serialization. Area/Rendering Typesetting, measurement, fonts, text layout, and drawing. Type/Enhancement A concrete change to CSharpMath behavior or capability.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant