Skip to content

Commit

Permalink
fix(ios) use condensed system font (#43188)
Browse files Browse the repository at this point in the history
Summary:
The current implementation does not support System font variants. Currently the isCondensed variable is always returning false. This pr adds an extra check to support the 'SystemCondensed' font variant on iOS.

## Changelog:

<!-- Help reviewers and the release process by writing your own changelog entry.

Pick one each for the category and type tags:

[ANDROID|GENERAL|IOS|INTERNAL] [BREAKING|ADDED|CHANGED|DEPRECATED|REMOVED|FIXED|SECURITY] - Message

For more details, see:
https://reactnative.dev/contributing/changelogs-in-pull-requests
-->

[IOS][ADDED] - Update font to handle system condensed variant

Pull Request resolved: #43188

Test Plan:
```
<Text style={{ fontSize: 28, fontFamily: 'System' }}>System</Text>
<Text style={{ fontSize: 28, fontFamily: 'SystemCondensed' }}>SystemCondensed</Text>
<Text style={{ fontSize: 28, fontFamily: 'AmericanTypewriter-Condensed' }}>AmericanTypewriter-Condensed</Text>
<Text style={{ fontSize: 28, fontFamily: 'HelveticaNeue' }}>HelveticaNeue</Text>
<Text style={{ fontSize: 28, fontFamily: 'HelveticaNeue-CondensedBold' }}>HelveticaNeue-CondensedBold</Text>
```
![Simulator Screenshot - iPhone 15 Pro - 2024-02-26 at 17 56 40](https://github.com/facebook/react-native/assets/63480001/36daea22-2e75-4526-8b2d-f0555fbf2441)

Reviewed By: fabriziocucci

Differential Revision: D57329036

Pulled By: javache

fbshipit-source-id: b0fffde1a568cb498f907e0a007df4da3e11d586
  • Loading branch information
shidoro authored and facebook-github-bot committed May 15, 2024
1 parent 524e3ee commit 86dffb3
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion packages/react-native/React/Views/RCTFont.mm
Original file line number Diff line number Diff line change
Expand Up @@ -418,12 +418,14 @@ + (UIFont *)updateFont:(UIFont *)font
familyName = [RCTConvert NSString:family] ?: familyName;
isItalic = style ? [RCTConvert RCTFontStyle:style] : isItalic;
fontWeight = weight ? [RCTConvert RCTFontWeight:weight] : fontWeight;
isCondensed = isCondensed || [familyName isEqualToString:@"SystemCondensed"];

BOOL didFindFont = NO;

// Handle system font as special case. This ensures that we preserve
// the specific metrics of the standard system font as closely as possible.
if ([familyName isEqual:defaultFontFamily] || [familyName isEqualToString:@"System"]) {
if ([familyName isEqual:defaultFontFamily] || [familyName isEqualToString:@"System"] ||
[familyName isEqualToString:@"SystemCondensed"]) {
font = cachedSystemFont(fontSize, fontWeight);
if (font) {
didFindFont = YES;
Expand Down

0 comments on commit 86dffb3

Please sign in to comment.