Skip to main content
type DynamicTypeSize =
  | "xSmall"
  | "small"
  | "medium"
  | "large"
  | "xLarge"
  | "xxLarge"
  | "xxxLarge"
  | "accessibility1"
  | "accessibility2"
  | "accessibility3"
  | "accessibility4"
  | "accessibility5";

Values

Standard Sizes

xSmall
string
Extra small text size. Smaller than the default.
small
string
Small text size. Smaller than the default but larger than xSmall.
medium
string
Medium text size. Slightly smaller than the default.
large
string
Large text size. This is the default size setting.
xLarge
string
Extra large text size. Larger than the default.
xxLarge
string
Double extra large text size. Significantly larger than the default.
xxxLarge
string
Triple extra large text size. The largest standard size.

Accessibility Sizes

accessibility1
string
First accessibility size. Larger than xxxLarge for enhanced readability.
accessibility2
string
Second accessibility size. Even larger for users with visual impairments.
accessibility3
string
Third accessibility size. Continues to increase for better accessibility.
accessibility4
string
Fourth accessibility size. Very large text for significant visual support.
accessibility5
string
Fifth accessibility size. The largest text size available for maximum accessibility.

Usage

// Set dynamic type size for a view hierarchy
VStack([
  Text("This text respects dynamic type settings")
])
.dynamicTypeSize("xLarge")

// Access the current dynamic type size
const [dynamicTypeSize] = useEnvironment().dynamicTypeSize;

Notes

  • The default dynamic type size is "large"
  • Dynamic Type automatically scales text when users change their system text size preferences
  • Accessibility sizes are designed for users who need significantly larger text
  • Components should be designed to accommodate the full range of dynamic type sizes
  • On iOS, users can change this setting in Settings > Accessibility > Display & Text Size > Larger Text