Introduce dynamic text styles and various font modifiers #186
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR introduces dynamic text styles with a similar API to SwiftUI. It also expands the existing set of font-related view modifiers, and introduces a set of APIs for constructing new fonts from existing fonts.
The set of text styles supported by SwiftUI differs by platform. I've standardised SwiftCrossUI's text styles on the set of styles supported by SwiftUI on macOS. I've extrapolated values for any text styles that SwiftUI doesn't support on certain platforms.
I've based the font size and weight of each text style off Apple's typography guidelines. By default, the text styles are resolved by SwiftCrossUI and only depend on the backend's reported device class (e.g. desktop, tablet, etc). However, backends can override the text style resolution process if needed.
Example usage of new features