Install any skill in seconds. Free to start, no credit card required.
Get Started Free →jpoindexter/ios26-hig-patterns
iPhone-specific Apple Human Interface Guidelines for iOS 26 (Liquid Glass) — the floating tab bar and how content scrolls under it, navigation/sheets/presentation detents, SF Symbols + Dynamic Type + safe areas, control styles, 44pt touch targets, and the concrete SwiftUI modifiers that implement each.
Passed 21 of 23 test cases with the skill, and 17 of 23 without it.
and 2 more in the full report
4 fixed17 passed either way2 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 4 test cases the skill fixed. Same model, same prompt, with and without the skill.
I am designing a screen toolbar in SwiftUI with multiple actions (Cancel, Save, Filter). How should the primary save button be placed and styled in the top bar to follow iOS 26 conventions?
| Checked | Without skill | With skill |
|---|---|---|
| The primary action is placed in topBarTrailing placement. | Missed | Passed |
| The primary button uses the prominent button style. | Missed | Passed |
The instructions your model reads when the skill loads.
platform-conventions covers cross-platform norms and design-system-frameworks covers HIG's philosophy (deference, clarity, depth). This skill is the iPhone-on-iOS-26 field manual: the specific behaviors and SwiftUI modifiers that make a screen feel native instead of like a ported web app. iOS 26's design language is Liquid Glass — translucent, layered surfaces that refract the content behind them; the system chrome (tab bar, toolbars, sheets) floats over content rather than boxing it in.
The single most common iOS-26 mistake: forcing system chrome opaque to "match the brand." That fights the platform, breaks content-scrolls-under behavior, and reserves dead insets (the classic "white bar above the tab bar"). Default to letting the system render its chrome; theme only tint and your own surfaces.
This is the field-manual overview. For depth, use the specialized suite, each grounded in Apple HIG/WWDC25 sources:
ios-liquid-glass-swiftui(material + verified API table),ios-typography,ios-layout-and-grid,ios-color-and-materials,ios-sf-symbols-and-icons,ios-components,ios-flows-and-patterns.
On iOS 26 a TabView renders as a floating, translucent pill inset from the screen edges. Content is expected to scroll underneath it; the system adds a bottom content inset so the last item can clear the bar at rest.
ScrollView/List inside a tab automatically gets the correct bottom inset and content refracts through the glass as it scrolls.// ANTI-PATTERN — reserves a large opaque inset, content can't scroll under, dead "white bar".
UITabBar.appearance().standardAppearance = opaqueWhiteAppearance
.toolbarBackground(.visible, for: .tabBar)
Removing both restores native behavior. Only set an opaque background if a specific screen genuinely needs it, and then expect the inset..tint(brandColor) on the TabView, not by overriding the bar's material.Label(text, systemImage:). More than 5 collapses into "More" — avoid..tabBarMinimizeBehavior(.onScrollDown) (iOS 26) lets the bar shrink as the user scrolls a long page — use it on content-heavy tabs to reclaim space instead of fighting the inset.NavigationStack (not the deprecated NavigationView). Large title by default; it collapses to inline on scroll — this is good, keep it..navigationBarTitleDisplayMode(.inline)) on dense utility screens where a large title wastes the first 60pt..toolbar { ToolbarItem(placement: .topBarTrailing) { … } }. On iOS 26 toolbars are also Liquid Glass and float — don't background them opaque either. Standard items get corner radii concentric with the bar; use .prominent for the one primary action (trailing)..scrollEdgeEffectStyle(.hard, for: .top) on dense top bars; it's functional, not decorative, one per view. Don't replace it with a hard opaque bar background.Modeless, partial sheets are the iOS-native way to add detail without a full push.
.sheet(isPresented:) + .presentationDetents([.medium, .large]) — start at .medium for a quick action (log food, edit a value), let the user drag to .large..presentationDragIndicator(.visible) for discoverability..presentationBackgroundInteraction(.enabled(upThrough: .medium)) when the user should still see/scroll the screen behind.test cases passed, vs 17 / 23 without
Published skills whose descriptions closely match this one, with their headline benchmark lift.
More skills from the same source and nearby in the registry, with their headline benchmark lift.