Apple uses size classes in a view’s trait environment to adapt layouts across varying widths and heights, including rotation and multitasking.
iPhone
iPad
Mac
Apple uses size classes in a trait environment to create adaptive layouts. Size classes describe the horizontal (width) and vertical (height) characteristics of a view.
Key Principle: Size classes are independent of specific device sizes. Design for trait combinations and be ready for traits to change with rotation and multitasking.
Use width and height traits to adapt layouts without relying on fixed device breakpoints.
iPhone portrait iPad Slide Over iPad 1/3 Split View Small Mac windows
Use single-column layouts, tab bars for navigation, and full-width content. Avoid sidebars and multi-pane layouts.
iPad full screen iPad 2/3 or 1/2 Split View iPhone Plus/Max landscape Mac windows
Enable sidebars, split views, and multi-column layouts. Use NavigationSplitView for master-detail patterns.
iPhone landscape Short Mac windows
Minimize toolbars and navigation bars. Consider hiding non-essential UI. Prioritize content over chrome.
iPhone portrait iPad any orientation Most Mac windows
Use full navigation bars, standard spacing, and don't compress vertical content.
Compact × Regular
iPhone portrait (most common) iPad Slide Over iPad 1/3 Split View
This is the classic mobile layout. Use tab bars, stacked navigation, and scrolling lists. NavigationStack is ideal here.
Regular × Regular
iPad full screen (any orientation) iPad 2/3 Split View Large Mac windows
The most spacious layout. Use NavigationSplitView with 2-3 columns, show toolbars, enable keyboard shortcuts.
Compact × Compact
iPhone landscape (non-Plus/Max models)
Space is very limited. Hide navigation bars when scrolling, use compact controls, consider landscape-specific layouts.
Regular × Compact
iPhone Plus/Max landscape Wide but short Mac windows
Wide but vertically constrained. Keep sidebars but minimize vertical UI. Good for media playback controls.
iPhone SE (3rd gen)
4.7" display, smallest current iPhone
Portrait
Landscape
iPhone 15 / 15 Pro
6.1" display, standard size class behavior
Portrait
Landscape
iPhone 15 Plus / 15 Pro Max
6.7" display, landscape gets Regular width—unique among iPhones
Portrait
Landscape
iPhone 16 / 16 Pro
6.1"-6.3" display, standard size class behavior
Portrait
Landscape
iPhone 16 Plus / 16 Pro Max
6.7"-6.9" display, landscape gets Regular width
Portrait
Landscape
iPad mini (6th gen)
8.3" display, Regular in all orientations
Portrait
Landscape
iPad (10th gen)
10.9" display, base iPad model
Portrait
Landscape
iPad Air (M2)
10.9" or 13" display, both sizes Regular×Regular
Portrait
Landscape
iPad Pro 11"
11" Liquid Retina display, M4 chip
Portrait
Landscape
iPad Pro 13"
13" Ultra Retina XDR display, largest iPad
Portrait
Landscape
Size classes depend on window size. Apps can be resized to any combination.
Mac windows can be resized freely, so apps may experience any size class combination. Design for all four combinations.
App occupies entire screen
Available on: iPad, Mac
Floating narrow window over another app
Available on: iPad
Two apps share screen equally
Available on: iPad (landscape), Mac
Primary app takes 2/3 of screen
Available on: iPad (landscape)
Primary app takes 1/3 of screen
Available on: iPad (landscape)
Resizable overlapping windows
Available on: iPad Pro, iPad Air (M1+)
horizontalSizeClass == .regularstruct AdaptiveNavigation: View {
@Environment(\.horizontalSizeClass) var hSizeClass
var body: some View {
if hSizeClass == .regular {
NavigationSplitView {
SidebarContent()
} detail: {
DetailContent()
}
} else {
TabView {
// Tab items...
}
}
}
}