Typography

Apple provides two type families you can use in your iOS apps.

San Francisco (SF). San Francisco is a sans serif type family that includes SF Pro, SF Pro Rounded, SF Mono, SF Compact, and SF Compact Rounded. SF Pro is the system font in iOS, macOS, and tvOS; SF Compact is the system font in watchOS. Designed to match the visual clarity of the platform UIs, the system fonts are legible and neutral.

The phrase 'The quick brown fox jumped over the lazy dog.' shown in San Francisco Pro.

New York (NY). New York is a serif typeface that provides a unique tone designed to complement the SF fonts. NY works as well in a graphic display context (at large sizes) as it does in a reading context (at text sizes).

The phrase 'The quick brown fox jumped over the lazy dog.' shown in New York.

You can download the San Francisco and New York fonts here.

Because SF Pro and NY are compatible, there are many ways you can incorporate typographic contrast and diversity into your iOS interfaces while maintaining a consistent look and feel. For example, using both typefaces can help you create stronger visual hierarchies or highlight semantic differences in content.

Apple-designed typefaces support an extensive range of weights, sizes, styles, and languages, so you can design comfortable and beautiful reading experiences throughout your app. When you use text styles with the system fonts, you also get support for Dynamic Type and the larger accessibility type sizes, which let people choose the text size that works for them. You can download the dynamic type size tables in the Sketch, Photoshop, and Adobe XD Apple Design Resources for iOS.

The system defines APIs that make it easy to use the SF and NY typefaces; for developer guidance, see the withDesign method and SystemDesign structure of UIFontDescriptor.

SF Pro and SF Compact

The flexibility of the system fonts helps you achieve optimal legibility at every point size and gives you the breadth and depth you need for precision typesetting throughout your app.

SF Pro and SF Compact support:

  • Over one hundred languages using Latin, Greek, and Cyrillic scripts
  • Nine weights — from Ultralight to Black — in both uprights and italics
  • Two optical sizes — Text and Display
  • Variable letter spacing that automatically adjusts based on the size of the text
  • Small capitals, fractions, and inferior and superior numerals

For developer guidance, see the default property of the SystemDesign structure.

SF Pro Rounded and SF Compact Rounded

The rounded variant of the system fonts can help you coordinate your text style with the appearance of soft or rounded UI elements, or to provide an alternative typographic voice.

SF Pro Rounded and SF Compact Rounded support:

  • Over one hundred languages using Latin, Greek, and Cyrillic scripts
  • Uprights in nine weights — from Ultralight to Black
  • Variable letter spacing that automatically adjusts based on the size of the text
  • Small capitals, fractions, and inferior and superior numerals

For developer guidance, see the rounded property of the SystemDesign structure.

SF Mono

SF Mono is a monospaced variant of San Francisco — that is, a typeface in which all characters are equal in width. You typically use a monospaced typeface when you want to align columns of text, such as in a coding environment. For example, Xcode and Swift Playgrounds use SF Mono by default.

NOTE SF Pro uses the OpenType tabular lining feature to support the display of monospaced numbers and currencies.

SF Mono supports:

  • Over one hundred languages using Latin, Greek, and Cyrillic scripts
  • Six weights — from Light to Heavy — in both uprights and italics
  • Monospacing across all weights (that is, changing the font weight doesn't cause the text to reflow)

For developer guidance, see the monospaced property of the SystemDesign structure.

New York

New York is a classical serif typeface you can use in the interface or to provide a traditional reading experience.

NY supports:

  • Over one hundred languages using Latin, Greek, and Cyrillic scripts
  • Six weights — from Regular to Black — in both uprights and italics
  • Four optical sizes — Small, Medium, Large, and Extra Large
  • Variable letter spacing that automatically adjusts based on the size of the text

For developer guidance, see the serif property of the SystemDesign structure.

Choosing Fonts to Enhance Your App

Use built-in text styles whenever possible. The built-in text styles let you express content in ways that are visually distinct, while retaining optimal legibility. These styles—including headline, body, callout, and several sizes of title—are based on the system fonts and let you take advantage of key typographic features, such as Dynamic Type, which automatically adjusts tracking and leading for every font size. For developer guidance, see UIFontTextStyle.

Emphasize important information. Use font weight, size, and color to highlight the most important information in your app.

Prioritize content when responding to text-size changes. Not all content is equally important. When someone chooses a larger size, they want to make the content they care about easier to read; they don’t always want every word on the screen to be larger.

Use the correct font variant in interface mockups. When you use San Francisco for text in standard controls like buttons and labels, iOS automatically applies the most appropriate variant based on the point size and the current accessibility settings. In interface mockups, use the following text sizes to choose the correct size and adjust the spacing between letters as needed.

  • For SF, use Text for text that's smaller than 20 points; use Display for text that's 20 points or larger.
  • For NY, use Small for text that's smaller than 20 points, Medium for text between 20 and 35 points, large for text between 36 and 53 points, and Extra Large for text that's 54 points or larger.

NOTE iOS uses San Francisco as the system font for Latin, Greek and Cyrillic alphabets, and a variety of other typefaces for other scripts.

Minimize the number of typefaces you use in your interface. Mixing too many different typefaces can make your app seem fragmented and sloppy.

Make sure custom fonts are legible. Custom typefaces are supported on iOS, but may be tough to read, especially if they have stylistic attributes that make letterforms hard to discern when displayed at small sizes. Unless your app has a compelling need for a custom font — such as for branding purposes or to create an immersive gaming experience — it’s usually best to stick with the system fonts. Consider using a custom font for display text only; if you do use it for reading or interface text, make sure it’s legible, even at small sizes.

Implement accessibility features for custom fonts. System fonts automatically react to accessibility features like bold text and larger type. Implement the same behavior in apps that use custom fonts by making sure accessibility features are enabled and registering for notifications when they change. See Text Size and Weight.