| name | ios-ui-ux-design |
| description | Design iOS app interfaces following Apple Human Interface Guidelines (HIG). Use when creating UI designs, defining design systems, planning user flows, selecting colors/typography, designing for accessibility, or ensuring iOS platform consistency. Fourth step in the idea-to-App-Store workflow. |
iOS UI/UX Design
Design beautiful, intuitive iOS apps following Apple's Human Interface Guidelines.
Design Principles
Apple's Core Principles
- Aesthetic Integrity - Appearance matches function
- Consistency - Familiar patterns and behaviors
- Direct Manipulation - Engage with content, not controls
- Feedback - Acknowledge every action
- Metaphors - Build on familiar experiences
- User Control - Users initiate and control actions
Design System
Color Palette
Color.primary
Color.secondary
Color.accentColor
Color(.systemBackground)
Color(.secondarySystemBackground)
Color(.tertiarySystemBackground)
Color.red
Color.green
Color.blue
Color.orange
Color.yellow
Typography Scale
| Style | Size | Weight | Use Case |
|---|
| Large Title | 34pt | Bold | Screen titles |
| Title 1 | 28pt | Bold | Section headers |
| Title 2 | 22pt | Bold | Subsections |
| Title 3 | 20pt | Semibold | Card titles |
| Headline | 17pt | Semibold | List headers |
| Body | 17pt | Regular | Main content |
| Callout | 16pt | Regular | Secondary content |
| Subheadline | 15pt | Regular | Supporting text |
| Footnote | 13pt | Regular | Captions |
| Caption 1 | 12pt | Regular | Labels |
| Caption 2 | 11pt | Regular | Timestamps |
Text("Title").font(.largeTitle)
Text("Body").font(.body)
Text("Caption").font(.caption)
Spacing System
4pt - Minimal spacing
8pt - Tight spacing (related elements)
12pt - Default compact
16pt - Standard spacing
20pt - Comfortable spacing
24pt - Section spacing
32pt - Large gaps
Corner Radius
| Element | Radius |
|---|
| Small buttons | 8pt |
| Cards | 12pt |
| Modals | 16pt |
| Large cards | 20pt |
| Continuous (iOS) | Use .continuous |
Screen Patterns
Navigation Patterns
Tab Bar (3-5 items)
├── Best for: Primary destinations
├── Always visible at bottom
└── Icons + Labels recommended
Navigation Stack
├── Best for: Hierarchical content
├── Back button auto-added
└── Large titles collapse on scroll
Sidebar (iPad)
├── Best for: Document apps
├── Collapsible on compact width
└── Primary/Detail split view
Common Screens
Onboarding
Page 1: Value proposition (benefit-focused)
Page 2: Key feature highlight
Page 3: Key feature highlight
Page 4: Permissions/Sign up CTA
Design Tips:
- 3-5 pages maximum
- Skip button visible
- Progress indicator
- Illustrations > screenshots
Lists
HStack {
Image(systemName: "icon")
.frame(width: 30)
VStack(alignment: .leading) {
Text("Title").font(.body)
Text("Subtitle").font(.caption).foregroundColor(.secondary)
}
Spacer()
Image(systemName: "chevron.right")
.foregroundColor(.secondary)
}
.padding(.vertical, 8)
Forms
- Group related fields
- Use Section headers
- Show validation inline
- Keyboard type per field
- Next/Done toolbar buttons
Empty States
Components:
- Illustration (SF Symbol or custom)
- Title (what's missing)
- Description (how to fix)
- Action button (primary CTA)
Tone: Helpful, not critical
iOS-Specific Patterns
Safe Areas
- Top (notch, Dynamic Island)
- Bottom (home indicator)
- Keyboard avoiding
- Full-screen images
- Tab bar backgrounds
- Navigation bar backgrounds
Touch Targets
Minimum: 44x44 points
Recommended: 48x48 points
Spacing between: 8pt minimum
Gestures
| Gesture | Common Use |
|---|
| Tap | Primary action |
| Long press | Context menu |
| Swipe | Delete, actions |
| Pull down | Refresh |
| Pinch | Zoom |
| Edge swipe | Back navigation |
Haptics
- Button taps
- Toggle changes
- Success/error feedback
- Picker selection
UIImpactFeedbackGenerator(.light)
UIImpactFeedbackGenerator(.medium)
UIImpactFeedbackGenerator(.heavy)
UINotificationFeedbackGenerator()
UISelectionFeedbackGenerator()
Accessibility
Requirements Checklist
Accessibility Implementation
Text("Send")
.accessibilityLabel("Send message")
.accessibilityHint("Double tap to send your message")
Text("Scales")
.font(.body)
Text("Fixed")
.dynamicTypeSize(.large)
Dark Mode
Design Considerations
Light Mode Dark Mode
----------- ----------
White bg → System black
Black text → White text
Gray 100 → Gray 900
Vibrant colors → Desaturated colors
Drop shadows → Inner shadows/borders
Testing Checklist
Design Handoff
Asset Export
| Asset Type | Formats | Sizes |
|---|
| App Icon | PNG | 1024x1024 (App Store) |
| SF Symbols | N/A | Use system |
| Custom Icons | PDF (vector) | @1x, @2x, @3x |
| Images | PNG/JPEG | @1x, @2x, @3x |
Figma/Sketch Handoff
Include:
- Component specifications
- Spacing annotations
- Color tokens
- Typography specs
- Interaction notes
- Asset exports
Design Review Checklist
Before Development
Platform Consistency
Resources
See references/hig-checklist.md for detailed HIG compliance checklist.