Skip to main content
These modifiers shape how text is drawn. font, fontWeight, and fontDesign choose the typeface, weight, and variant. bold, italic, monospaced, strikethrough, and underline are convenience toggles for common styles and decorations. tracking and lineSpacing adjust spacing between letters and lines. textCase transforms case at render time. lineLimit and multilineTextAlignment control how text wraps and aligns across multiple lines.

font

Sets the font for text content in a component.
TextStyle | number | CustomFont
The font to apply. Can be:
  • A semantic text style name (e.g., "title", "body", "caption") — see TextStyle
  • A number for a custom point size using the system font
  • A CustomFont for a custom font family with a specific size
Semantic text style
Custom point size
Custom font family
Combined with weight and design

fontWeight

Sets the font weight for text content.
FontWeight
required
The font weight to apply. See FontWeight for available values (e.g., "ultraLight", "thin", "light", "regular", "medium", "semibold", "bold", "heavy", "black").
Semibold text
Light text
Combined with font style

fontDesign

Sets the font design variant for text content.
FontDesign
required
The font design variant. See FontDesign for available values (e.g., "default", "rounded", "monospaced", "serif").
Rounded design
Monospaced design
Serif design

bold

Makes text bold.
boolean
default:"true"
Whether bold is applied. Pass false to explicitly disable bold. Defaults to true.
Make text bold
Conditionally bold
Combined with other text modifiers

italic

Makes text italic.
boolean
default:"true"
Whether italic is applied. Pass false to explicitly disable italic.
Basic italic text
Conditionally italic
Combined with other typography modifiers

strikethrough

Adds a strikethrough line to text.
boolean
default:"true"
Whether the strikethrough is visible. Defaults to true. Pass false to remove.
Basic strikethrough
Conditional strikethrough
Sale price display

underline

Adds an underline to text.
boolean
default:"true"
Whether the underline is visible. Defaults to true. Pass false to remove.
Basic underline
Conditional underline
Link-style text

monospaced

Uses a monospaced font variant for text.
boolean
default:"true"
Whether to use the monospaced variant. Pass false to explicitly disable.
Code-style text
Tabular numbers Useful for aligning numbers in columns, since each digit takes the same width.
Conditionally monospaced

tracking

Adjusts letter spacing in text.
MilliEm
required
The letter spacing to add between characters. MilliEm is an alias for number, and every renderer applies the value as a length: points on iOS, CSS pixels on web, and sp on Android. Use positive values to increase spacing or negative values to tighten.
tracking does not scale with the font size. For example, tracking(4) adds 4pt of spacing between each character on iOS, the same as CSS letter-spacing: 4px on web. Wide letter spacing
Tight letter spacing
Heading with tracking

lineSpacing

Adjusts spacing between lines of text.
number
required
The spacing between lines, in points. Higher values increase the gap between lines.
Increasing line spacing
Readability for long-form text

textCase

Transforms the text case of a component.
TextCase
required
The text transformation to apply: "uppercase" or "lowercase".
Uppercase
Lowercase
Section headers

lineLimit

Limits text to a maximum number of lines with truncation.
number
The maximum number of lines to display. Excess text is truncated with an ellipsis. Pass undefined or omit to remove any line limit.
When text exceeds the line limit, it is truncated with an ellipsis (...) at the end. Passing undefined or omitting the argument removes any previously set line limit, allowing unlimited lines. Single-line text
Two-line description
Combined with minimum scale factor Allow text to shrink before truncating.

multilineTextAlignment

Sets horizontal text alignment within the component’s frame.
TextAlignment
required
The horizontal alignment for multi-line text. One of "leading", "center", or "trailing".
This modifier only affects text that wraps to multiple lines. Single-line text alignment is controlled by the parent container’s alignment or the .frame() alignment. The default alignment is "leading". Center-aligned text
Trailing-aligned text
Combined with frame alignment

See also