Design & HIG
You MUST use this skill for ANY visual design, HIG compliance, Liquid Glass, SF Symbols, typography, or app composition work.
Not on Claude Code? Where this router says "Launch some-auditor agent", read that auditor's file in this suite and follow it inline — the same procedure, needing only file search and read.
Available here: skills/liquid-glass-auditor.md.
Agents that need Bash — builds, tests, simulators, crash symbolication — stay Claude Code-only; there is no inline equivalent for those.
Quick Reference
| Symptom / Task |
Reference |
| Design decisions, HIG compliance, colors, backgrounds |
See skills/hig.md |
| Spacing, padding, margins, insets — what value to use |
See skills/hig.md |
| Designing for iPhone Duo — poses, controls on the side, keeping UI out of the fold |
See axiom-swiftui (skills/iphone-duo.md) |
| Section index / A–Z index strip / alphabet scrubber — should this list have one |
See skills/hig.md |
| Semantic colors, custom color patterns, material styles |
See skills/hig-ref.md |
| Liquid Glass effects, adoption, migration from blur effects |
See skills/liquid-glass.md |
| App-wide Liquid Glass adoption, platform differences |
See skills/liquid-glass-ref.md |
Backward compatibility: the UIDesignRequiresCompatibility opt-out, and why the 27 SDK ignores it on OS 27 |
See skills/liquid-glass.md (Backward Compatibility) |
| SF Symbols rendering modes, effects, animations |
See skills/sf-symbols.md |
| SF Symbols API signatures, UIKit equivalents, availability |
See skills/sf-symbols-ref.md |
Verify a symbol name exists / check one symbol's availability or supported modes (sfsymbols CLI) |
See skills/sf-symbols-ref.md (Part 11) |
| San Francisco fonts, text styles, Dynamic Type, tracking |
See skills/typography-ref.md |
| App entry points, auth flows, root view switching, scene lifecycle, document-based apps |
See skills/app-composition.md |
| Apple Pay button / Wallet pass design / Tap to Pay button |
See axiom-payments suite, plus skills/hig.md for cross-cutting HIG context |
Decision Tree
digraph design {
start [label="Design task" shape=ellipse];
what [label="What do you need?" shape=diamond];
start -> what;
what -> "skills/hig.md" [label="design decision,\nHIG compliance,\ncolor/background choice"];
what -> "skills/hig.md" [label="spacing/padding/margin value"];
what -> "skills/hig-ref.md" [label="semantic color API,\ncustom color code,\nmaterial style details"];
what -> "skills/liquid-glass.md" [label="Liquid Glass effects,\nmigrate from blur,\nRegular vs Clear,\nopt-out key"];
what -> "skills/liquid-glass-ref.md" [label="app-wide Liquid Glass plan,\nplatform differences"];
what -> "skills/sf-symbols.md" [label="rendering mode choice,\nsymbol effects/animations,\ncustom symbols"];
what -> "skills/sf-symbols-ref.md" [label="SF Symbols API syntax,\nUIKit equivalents,\navailability matrix"];
what -> "skills/typography-ref.md" [label="font selection,\nDynamic Type,\ntext styles, tracking"];
what -> "skills/app-composition.md" [label="@main entry point,\nauth flow, root view,\nscene lifecycle"];
}
- Design decision / HIG compliance / choosing colors or backgrounds? →
skills/hig.md
1a. Need semantic color API, custom color code, or material style details? → skills/hig-ref.md
- Liquid Glass effects / migrating from blur / Regular vs Clear variant? →
skills/liquid-glass.md
2a. Planning app-wide Liquid Glass adoption / platform differences? → skills/liquid-glass-ref.md
2b. Opting out of Liquid Glass / UIDesignRequiresCompatibility / backward compatibility? → skills/liquid-glass.md (Backward Compatibility)
- SF Symbols rendering mode / symbol effects / custom symbols? →
skills/sf-symbols.md
3a. Need SF Symbols API syntax / UIKit equivalents / availability check? → skills/sf-symbols-ref.md
- Font selection / Dynamic Type / text styles / tracking / leading? →
skills/typography-ref.md
- App entry point / auth flow / root view switching / scene lifecycle? →
skills/app-composition.md
- SwiftUI view implementation? →
/skill axiom-swiftui
- TextKit / rich text editing / Writing Tools? →
/skill axiom-uikit
- Accessibility compliance (VoiceOver, contrast, touch targets)? →
/skill axiom-accessibility
- Audit UI for Liquid Glass adoption? → liquid-glass-auditor (Agent — surfaces migration opportunities AND adoption-completeness gaps: variant discipline, nesting hygiene, unstyled pre-26 fallbacks, semantic toolbar placement, the
UIDesignRequiresCompatibility opt-out, accessibility re-check; scores ADOPTED / PARTIAL / NOT ADOPTED)
- CarPlay app design, categories, driver-distraction rules? →
/skill axiom-media (carplay-hig.md)
Platform-specific HIG
- watchOS design (glanceable UI, watchOS 10 navigation) → See axiom-watchos (skills/design-for-watchos.md)
Conflict Resolution
design vs swiftui: When building UI:
- Use design FIRST — Decide what to build (colors, materials, typography, layout intent) before how to build it.
- Then use swiftui — Implement the design decision in SwiftUI code.
design vs accessibility: When choosing colors or typography:
- Color contrast or Dynamic Type compliance? → use accessibility
- Which semantic color or text style to pick? → use design
design (liquid-glass) vs swiftui: When implementing Liquid Glass:
- What Liquid Glass is, when to use Regular vs Clear, migration strategy → use design (
skills/liquid-glass.md)
- SwiftUI code for
.glassEffect() modifier → use design (skills/liquid-glass-ref.md), then swiftui for surrounding view code
design (app-composition) vs swiftui: When structuring app architecture:
- @main entry, auth state machine, root view switching, scene lifecycle → use design (
skills/app-composition.md)
- NavigationStack, NavigationSplitView, tab structure → use swiftui
design vs media (CarPlay): When designing for CarPlay:
- General iOS HIG principles (colors, typography, Liquid Glass) → use design
- CarPlay-specific rules (app categories, entitlement review, template-only UI, driver distraction, per-category design rules) → invoke axiom-media (
skills/carplay-hig.md)
- CarPlay rules are stricter than iOS HIG and enforced at entitlement review, not just App Store review.
Critical Patterns
HIG Quick Decisions (skills/hig.md):
- Background color decision tree (media-focused vs standard)
- Typography selection (headline vs body vs caption)
- Color usage guidelines and when to use semantic vs custom colors
- Design review checklist for HIG compliance
HIG Comprehensive Reference (skills/hig-ref.md):
- All semantic colors with platform availability
- Custom color patterns with dark mode support
- Background hierarchy and material styles
- Code examples for every color and background pattern
Liquid Glass (skills/liquid-glass.md):
- What Liquid Glass is and how it differs from blur effects
- Regular vs Clear variant selection
- Migration strategy from pre-iOS 26 materials
- Tinting, legibility, and adaptive behavior troubleshooting
- Expert review criteria for Liquid Glass implementations
- The
UIDesignRequiresCompatibility opt-out and its measured SDK × OS behavior
Liquid Glass Adoption (skills/liquid-glass-ref.md):
- App-wide adoption planning (icons, controls, navigation, menus)
- Platform-specific behavior (iOS, iPadOS, macOS, tvOS, watchOS)
- Accessibility compliance with Liquid Glass interfaces
SF Symbols (skills/sf-symbols.md):
- Rendering mode selection (Monochrome, Hierarchical, Palette, Multicolor)
- Symbol effect selection (Bounce, Pulse, Scale, Wiggle, Rotate, Breathe, Draw)
- Custom symbol creation workflow
- Troubleshooting effects not playing, weight mismatches
SF Symbols API (skills/sf-symbols-ref.md):
- Exact API signatures for rendering modes and effects
- UIKit/AppKit equivalents for every SwiftUI symbol API
- Platform availability matrix
- Configuration options (weight, scale, variable values)
Typography (skills/typography-ref.md):
- San Francisco font system (Pro, Compact, Mono, New York)
- Text styles with Dynamic Type scaling
- Tracking and leading values
- Internationalization considerations
App Composition (skills/app-composition.md):
- @main entry point and root view patterns
- Authentication state machine (login, onboarding, main)
- Flicker-free root view switching
- scenePhase lifecycle handling and state restoration
- Document-based apps: the
OS27 @Observable document model (ReadableDocument/WritableDocument) + DocumentGroup
Anti-Rationalization
| Thought |
Reality |
| "I'll just pick colors that look good" |
Semantic colors adapt to dark mode, accessibility settings, and platform automatically. Custom colors need all of that manually. skills/hig.md has the decision tree. |
| "Liquid Glass is just a blur effect" |
Liquid Glass is a distinct material system with lensing, tinting, and adaptive behavior. Using .blur() instead creates a visually wrong result. skills/liquid-glass.md explains the difference. |
| "I know which SF Symbol rendering mode to use" |
The right mode depends on context (monochrome for toolbars, hierarchical for depth, palette for brand colors). skills/sf-symbols.md has the decision tree. |
| "I'll hardcode font sizes" |
Hardcoded sizes break Dynamic Type, violate HIG, and fail accessibility review. skills/typography-ref.md shows the text style system. |
| "I'll handle auth state with a boolean" |
A boolean can't represent login, onboarding, and main states without race conditions. skills/app-composition.md has the state machine pattern. |
| "Liquid Glass adoption means rewriting my whole UI" |
Most standard SwiftUI/UIKit components adopt automatically. Start by building with latest Xcode, then review. skills/liquid-glass-ref.md has the incremental strategy. |
| "I'll add the SF Symbol animation later" |
Symbol effects are the primary way users perceive interactive feedback. Shipping without them feels broken. skills/sf-symbols.md covers selection. |
| "I'll skip the design review, the code works" |
HIG compliance affects App Store review. Reviewers reject apps that feel wrong even if they function correctly. skills/hig.md has the review checklist. |
Example Invocations
User: "Should I use a dark or light background?"
-> Read: skills/hig.md
User: "What semantic color should I use for secondary text?"
-> Read: skills/hig-ref.md
User: "How do I implement Liquid Glass in my app?"
-> Read: skills/liquid-glass.md
User: "I need to plan Liquid Glass adoption across my whole app"
-> Read: skills/liquid-glass-ref.md
User: "My SF Symbol is flat, I want it to have depth"
-> Read: skills/sf-symbols.md
User: "What's the SwiftUI API for symbol effects?"
-> Read: skills/sf-symbols-ref.md
User: "Which font should I use for body text?"
-> Read: skills/typography-ref.md
User: "How do I switch between login and main screens?"
-> Read: skills/app-composition.md
User: "Check my app's UI for HIG compliance"
-> Read: skills/hig.md, then /skill axiom-accessibility for contrast/Dynamic Type
User: "I want my download button icon to animate"
-> Read: skills/sf-symbols.md
1---2name: axiom-design-23description: Use when making visual or interaction design decisions for an Apple app — HIG patterns, Liquid Glass, SF Symbols, typography, app entry-point and auth-flow structure.4license: MIT5---67# Design & HIG89**You MUST use this skill for ANY visual design, HIG compliance, Liquid Glass, SF Symbols, typography, or app composition work.**1011<!-- AXIOM_AUDITOR_INLINE_BEGIN — auto-maintained by scripts/build-inlined-auditors.ts; do not hand-edit -->12> **Not on Claude Code?** Where this router says "Launch `some-auditor` agent", read that auditor's file in this suite and follow it inline — the same procedure, needing only file search and read.13>14> Available here: `skills/liquid-glass-auditor.md`.15>16> Agents that need Bash — builds, tests, simulators, crash symbolication — stay Claude Code-only; there is no inline equivalent for those.17<!-- AXIOM_AUDITOR_INLINE_END -->1819## Quick Reference2021| Symptom / Task | Reference |22|----------------|-----------|23| Design decisions, HIG compliance, colors, backgrounds | See `skills/hig.md` |24| Spacing, padding, margins, insets — what value to use | See `skills/hig.md` |25| Designing for iPhone Duo — poses, controls on the side, keeping UI out of the fold | See axiom-swiftui (skills/iphone-duo.md) |26| Section index / A–Z index strip / alphabet scrubber — should this list have one | See `skills/hig.md` |27| Semantic colors, custom color patterns, material styles | See `skills/hig-ref.md` |28| Liquid Glass effects, adoption, migration from blur effects | See `skills/liquid-glass.md` |29| App-wide Liquid Glass adoption, platform differences | See `skills/liquid-glass-ref.md` |30| Backward compatibility: the `UIDesignRequiresCompatibility` opt-out, and why the 27 SDK ignores it on OS 27 | See `skills/liquid-glass.md` (Backward Compatibility) |31| SF Symbols rendering modes, effects, animations | See `skills/sf-symbols.md` |32| SF Symbols API signatures, UIKit equivalents, availability | See `skills/sf-symbols-ref.md` |33| Verify a symbol name exists / check one symbol's availability or supported modes (`sfsymbols` CLI) | See `skills/sf-symbols-ref.md` (Part 11) |34| San Francisco fonts, text styles, Dynamic Type, tracking | See `skills/typography-ref.md` |35| App entry points, auth flows, root view switching, scene lifecycle, document-based apps | See `skills/app-composition.md` |36| Apple Pay button / Wallet pass design / Tap to Pay button | See `axiom-payments` suite, plus `skills/hig.md` for cross-cutting HIG context |3738## Decision Tree3940```dot41digraph design {42 start [label="Design task" shape=ellipse];43 what [label="What do you need?" shape=diamond];4445 start -> what;46 what -> "skills/hig.md" [label="design decision,\nHIG compliance,\ncolor/background choice"];47 what -> "skills/hig.md" [label="spacing/padding/margin value"];48 what -> "skills/hig-ref.md" [label="semantic color API,\ncustom color code,\nmaterial style details"];49 what -> "skills/liquid-glass.md" [label="Liquid Glass effects,\nmigrate from blur,\nRegular vs Clear,\nopt-out key"];50 what -> "skills/liquid-glass-ref.md" [label="app-wide Liquid Glass plan,\nplatform differences"];51 what -> "skills/sf-symbols.md" [label="rendering mode choice,\nsymbol effects/animations,\ncustom symbols"];52 what -> "skills/sf-symbols-ref.md" [label="SF Symbols API syntax,\nUIKit equivalents,\navailability matrix"];53 what -> "skills/typography-ref.md" [label="font selection,\nDynamic Type,\ntext styles, tracking"];54 what -> "skills/app-composition.md" [label="@main entry point,\nauth flow, root view,\nscene lifecycle"];55}56```57581. Design decision / HIG compliance / choosing colors or backgrounds? → `skills/hig.md`591a. Need semantic color API, custom color code, or material style details? → `skills/hig-ref.md`602. Liquid Glass effects / migrating from blur / Regular vs Clear variant? → `skills/liquid-glass.md`612a. Planning app-wide Liquid Glass adoption / platform differences? → `skills/liquid-glass-ref.md`622b. Opting out of Liquid Glass / `UIDesignRequiresCompatibility` / backward compatibility? → `skills/liquid-glass.md` (Backward Compatibility)633. SF Symbols rendering mode / symbol effects / custom symbols? → `skills/sf-symbols.md`643a. Need SF Symbols API syntax / UIKit equivalents / availability check? → `skills/sf-symbols-ref.md`654. Font selection / Dynamic Type / text styles / tracking / leading? → `skills/typography-ref.md`665. App entry point / auth flow / root view switching / scene lifecycle? → `skills/app-composition.md`676. SwiftUI view implementation? → `/skill axiom-swiftui`687. TextKit / rich text editing / Writing Tools? → `/skill axiom-uikit`698. Accessibility compliance (VoiceOver, contrast, touch targets)? → `/skill axiom-accessibility`709. Audit UI for Liquid Glass adoption? → liquid-glass-auditor (Agent — surfaces migration opportunities AND adoption-completeness gaps: variant discipline, nesting hygiene, unstyled pre-26 fallbacks, semantic toolbar placement, the `UIDesignRequiresCompatibility` opt-out, accessibility re-check; scores ADOPTED / PARTIAL / NOT ADOPTED)7110. CarPlay app design, categories, driver-distraction rules? → `/skill axiom-media` (carplay-hig.md)7273#### Platform-specific HIG74- watchOS design (glanceable UI, watchOS 10 navigation) → See axiom-watchos (skills/design-for-watchos.md)7576## Conflict Resolution7778**design vs swiftui**: When building UI:791. **Use design FIRST** — Decide what to build (colors, materials, typography, layout intent) before how to build it.802. **Then use swiftui** — Implement the design decision in SwiftUI code.8182**design vs accessibility**: When choosing colors or typography:83- Color contrast or Dynamic Type compliance? → **use accessibility**84- Which semantic color or text style to pick? → **use design**8586**design (liquid-glass) vs swiftui**: When implementing Liquid Glass:87- What Liquid Glass is, when to use Regular vs Clear, migration strategy → **use design** (`skills/liquid-glass.md`)88- SwiftUI code for `.glassEffect()` modifier → **use design** (`skills/liquid-glass-ref.md`), then swiftui for surrounding view code8990**design (app-composition) vs swiftui**: When structuring app architecture:91- @main entry, auth state machine, root view switching, scene lifecycle → **use design** (`skills/app-composition.md`)92- NavigationStack, NavigationSplitView, tab structure → **use swiftui**9394**design vs media (CarPlay)**: When designing for CarPlay:95- General iOS HIG principles (colors, typography, Liquid Glass) → **use design**96- CarPlay-specific rules (app categories, entitlement review, template-only UI, driver distraction, per-category design rules) → **invoke axiom-media** (`skills/carplay-hig.md`)97- CarPlay rules are stricter than iOS HIG and enforced at entitlement review, not just App Store review.9899## Critical Patterns100101**HIG Quick Decisions** (`skills/hig.md`):102- Background color decision tree (media-focused vs standard)103- Typography selection (headline vs body vs caption)104- Color usage guidelines and when to use semantic vs custom colors105- Design review checklist for HIG compliance106107**HIG Comprehensive Reference** (`skills/hig-ref.md`):108- All semantic colors with platform availability109- Custom color patterns with dark mode support110- Background hierarchy and material styles111- Code examples for every color and background pattern112113**Liquid Glass** (`skills/liquid-glass.md`):114- What Liquid Glass is and how it differs from blur effects115- Regular vs Clear variant selection116- Migration strategy from pre-iOS 26 materials117- Tinting, legibility, and adaptive behavior troubleshooting118- Expert review criteria for Liquid Glass implementations119- The `UIDesignRequiresCompatibility` opt-out and its measured SDK × OS behavior120121**Liquid Glass Adoption** (`skills/liquid-glass-ref.md`):122- App-wide adoption planning (icons, controls, navigation, menus)123- Platform-specific behavior (iOS, iPadOS, macOS, tvOS, watchOS)124- Accessibility compliance with Liquid Glass interfaces125126**SF Symbols** (`skills/sf-symbols.md`):127- Rendering mode selection (Monochrome, Hierarchical, Palette, Multicolor)128- Symbol effect selection (Bounce, Pulse, Scale, Wiggle, Rotate, Breathe, Draw)129- Custom symbol creation workflow130- Troubleshooting effects not playing, weight mismatches131132**SF Symbols API** (`skills/sf-symbols-ref.md`):133- Exact API signatures for rendering modes and effects134- UIKit/AppKit equivalents for every SwiftUI symbol API135- Platform availability matrix136- Configuration options (weight, scale, variable values)137138**Typography** (`skills/typography-ref.md`):139- San Francisco font system (Pro, Compact, Mono, New York)140- Text styles with Dynamic Type scaling141- Tracking and leading values142- Internationalization considerations143144**App Composition** (`skills/app-composition.md`):145- @main entry point and root view patterns146- Authentication state machine (login, onboarding, main)147- Flicker-free root view switching148- scenePhase lifecycle handling and state restoration149- Document-based apps: the `OS27` `@Observable` document model (`ReadableDocument`/`WritableDocument`) + `DocumentGroup`150151## Anti-Rationalization152153| Thought | Reality |154|---------|---------|155| "I'll just pick colors that look good" | Semantic colors adapt to dark mode, accessibility settings, and platform automatically. Custom colors need all of that manually. `skills/hig.md` has the decision tree. |156| "Liquid Glass is just a blur effect" | Liquid Glass is a distinct material system with lensing, tinting, and adaptive behavior. Using `.blur()` instead creates a visually wrong result. `skills/liquid-glass.md` explains the difference. |157| "I know which SF Symbol rendering mode to use" | The right mode depends on context (monochrome for toolbars, hierarchical for depth, palette for brand colors). `skills/sf-symbols.md` has the decision tree. |158| "I'll hardcode font sizes" | Hardcoded sizes break Dynamic Type, violate HIG, and fail accessibility review. `skills/typography-ref.md` shows the text style system. |159| "I'll handle auth state with a boolean" | A boolean can't represent login, onboarding, and main states without race conditions. `skills/app-composition.md` has the state machine pattern. |160| "Liquid Glass adoption means rewriting my whole UI" | Most standard SwiftUI/UIKit components adopt automatically. Start by building with latest Xcode, then review. `skills/liquid-glass-ref.md` has the incremental strategy. |161| "I'll add the SF Symbol animation later" | Symbol effects are the primary way users perceive interactive feedback. Shipping without them feels broken. `skills/sf-symbols.md` covers selection. |162| "I'll skip the design review, the code works" | HIG compliance affects App Store review. Reviewers reject apps that feel wrong even if they function correctly. `skills/hig.md` has the review checklist. |163164## Example Invocations165166User: "Should I use a dark or light background?"167-> Read: `skills/hig.md`168169User: "What semantic color should I use for secondary text?"170-> Read: `skills/hig-ref.md`171172User: "How do I implement Liquid Glass in my app?"173-> Read: `skills/liquid-glass.md`174175User: "I need to plan Liquid Glass adoption across my whole app"176-> Read: `skills/liquid-glass-ref.md`177178User: "My SF Symbol is flat, I want it to have depth"179-> Read: `skills/sf-symbols.md`180181User: "What's the SwiftUI API for symbol effects?"182-> Read: `skills/sf-symbols-ref.md`183184User: "Which font should I use for body text?"185-> Read: `skills/typography-ref.md`186187User: "How do I switch between login and main screens?"188-> Read: `skills/app-composition.md`189190User: "Check my app's UI for HIG compliance"191-> Read: `skills/hig.md`, then `/skill axiom-accessibility` for contrast/Dynamic Type192193User: "I want my download button icon to animate"194-> Read: `skills/sf-symbols.md`