Skip to content

Honor styles in local text typefaces - #284

Open
Happypig375 wants to merge 2 commits into
masterfrom
feat/issue-142-styled-local-typefaces
Open

Honor styles in local text typefaces#284
Happypig375 wants to merge 2 commits into
masterfrom
feat/issue-142-styled-local-typefaces

Conversation

@Happypig375

@Happypig375 Happypig375 commented Aug 30, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Select matching regular, bold, italic, or bold-italic local typefaces for ordinary styled text before Unicode math remapping.
  • Keep collection-backed typefaces live between renders while materializing one-shot enumerables once, using one coherent style/fallback snapshot per render.
  • Preserve decorative styles, default math behavior, and deterministic glyph fallback.

Validation

  • Independent code review: approved with no findings.
  • Focused styled-local-typeface tests: 6/6 passed.
  • Full rendering suite: 1232/1232 passed.
  • Full XAML suite, including live add/remove on Avalonia and MAUI: 18/18 passed.
  • Scoped formatter verification and git diff check: passed.
  • Release build: passed, including public API analyzers.

Cost and compatibility

Non-collection sources are materialized once. Mutable collections are captured once per render operation so sequential add/remove remains live; callers must not mutate them concurrently with rendering. No public API signatures change.

Fixes #142.

@Happypig375 Happypig375 added Type/Enhancement A concrete change to CSharpMath behavior or capability. Area/Rendering Typesetting, measurement, fonts, text layout, and drawing. labels Aug 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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.

Select bold and italic LocalTypefaces for text styles

1 participant