Usage guidelines
- For representing text as labels in UI controls such as buttons and menus
- When text is needed for any written content
- When spacing is lacking and an icon or other graphic can be a recognizable substitute for text
Best practices
Headings and titles
Use to help group text and items in a logical order.
Use to emphasize text that you want users to read. Instead, use bold body text or another UI element like a banner or popover.
Keep headings and titles short and glanceable.
Use overly long headings. If headings are dynamically generated (like a 3rd party app name), truncation will work after 2 lines, but be mindful of unintended changes in meaning.
Clearly describe the section a heading refers to.
Use vague language that doesn’t describe the section that a heading refers to.
Body and labels
Emphasize text inside of paragraphs by using a bold weight.
Emphasize text inside of paragraphs by underlining it; this can be confused with an interactive link or a button.
Use a minimal amount of sizes and styles to keep the UI clean and readable.
Mix styles and alignment, as this can be hard to read and follow.
Start-align paragraph text.
Center-align or end-align paragraph text. This is hard to read, especially for users with dyslexia.
Accessibility
Minimum text size
A minimum text size of 16pt is recommended for readability, especially for longer blocks of text. Some short text labels or secondary text can go lower than that, but smaller sizes should be kept to a minimum. Making text brief will also help with readability.
Dynamic Type sizes for accessibility
As users scale text with Accessibility settings, sizes should scale according to iOS defaults. Our text sizes when Accessibility settings are turned on are below.
Native features
People use Apple’s accessibility features, such as reduced transparency, VoiceOver, and increased text size, to personalize how they interact with their devices. Supporting these personalizations ensures that everyone has a great user experience. See Apple’s Human Interface Guidelines and documentation about accessibility for iOS:
Accessible design on iOS
Accessible development on iOS
Design tokens
Use these tokens for applying size, weight and color styles to Text.
Variants
Headings
Used for surface titles and section headings
Body
Used for text that is part of paragraphs or UI controls
Size
These font sizes follow those available through our Typography scale
Dynamic Type sizes
This is how text scales when people resize text. Our default text sizes correspond to iOS Large sizes. For more info, see iOS Dynamic Type sizes
Weight
For emphasizing text in body copy and in sizes below 16pt and below, use bold
. For titles and headings, use semibold
.
Alignment
Text can either be start, center or end aligned. Text can be forced to left or right align when aligning integers in tables.
Colors
You can specify which color you want for your text. Most colors automatically change between light and dark modes, but the light
and dark
properties are available when light or dark colors are specifically desired. An example is using the dark mode error color on a dark background in light mode.
Styles
Text can be italicized for emphasis, or underlined to denote a link.
Overflow and truncation
For general guidelines around text truncation, see Typography Best practices
Writing
- Keep text in UI short and clear
- Use Sentence case for all text that isn’t a brand name or proper noun
- Use long text labels that could end up truncating or causing space issues when translating to other languages
- Use Title Case or ALL CAPS in UI labels
- Use ALL CAPS for paragraph text unless referring to a product or other entity that uses that style
- Punctuate headings unless they are posing a question or making an exclamation
Localization
Keep text simple and short to avoid truncation or line-wrapping in UI controls like buttons when translating languages that require more characters. Avoid overriding our line-height settings, as this can result in text clipping for scripts, like Hindi, that have taller ascenders and descenders.
Right-to-left (RTL) alignment
When translated to languages that read from right to left, ensure that paragraph text is aligned based on language not on context. For example, if the UI is reversed for an RTL language like Arabic, but there is a block of text in an LTR language such as English, left-align the paragraph in English.
However, for lists or items in a menu, maintain the alignment of the UI.
Text-wrapping and hyphenation
Hyphenation on iOS is turned off by default to avoid incorrect word breaks when strings of text wrap to the next line. This is especially helpful for international languages where an incorrect word break can greatly change the meaning of a word or sentence.
Related
A run-down of our typographic foundations across platforms