fix: remove TextStyle.package to allow copyWith to change the font#1074
Open
adil192 wants to merge 3 commits intoubuntu:mainfrom
Open
fix: remove TextStyle.package to allow copyWith to change the font#1074adil192 wants to merge 3 commits intoubuntu:mainfrom
TextStyle.package to allow copyWith to change the font#1074adil192 wants to merge 3 commits intoubuntu:mainfrom
Conversation
c527be6 to
1b6ad5f
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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 package's use of
TextStyle.packagecauses problems when apps don't want to use the bundled Ubuntu font.Problem
The ideal approach to change the font would be something like
But the implementation of copyWith cannot remove textStyle.package, leading to the new fontFamily being
packages/yaru/MyNonYaruFont.Users of this package currently need to use workarounds like:
Make a function similar to
🔗
copyWiththat explicitly removes thepackagefield:But not only is this verbose, but it's likely to break in time as new fields are added to TextStyle.
Ditch Yaru's TextTheme completely, and use the default Flutter TextTheme:
🔗
But of course, we then lose Yaru's TextTheme :(.
Also see How to change font family and font weight #905.
Solution
This PR simply replaces
TextStyle(fontFamily: 'Ubuntu', package: 'yaru')withTextStyle(fontFamily: 'packages/yaru/Ubuntu')which is functionally identical except resolving the issue stated above.This lets apps choose their own fonts without messy boilerplate.
Unit tests have been added for this problem.