iOS Design Tokens
Design tokens for iOS apps following Apple HIG. Use these with Pencil MCP's
set_variables tool to initialize a .pen file for iOS design.
Typography — SF Pro
SF Pro Text at 19pt and below. SF Pro Display at 20pt and above.
| Style |
Weight |
Size |
Leading |
SwiftUI |
| Large Title |
Regular |
34pt |
41pt |
.largeTitle |
| Title 1 |
Light |
28pt |
34pt |
.title |
| Title 2 |
Regular |
22pt |
28pt |
.title2 |
| Title 3 |
Regular |
20pt |
24pt |
.title3 |
| Headline |
Semi-Bold |
17pt |
22pt |
.headline |
| Body |
Regular |
17pt |
22pt |
.body |
| Callout |
Regular |
16pt |
21pt |
.callout |
| Subhead |
Regular |
15pt |
20pt |
.subheadline |
| Footnote |
Regular |
13pt |
18pt |
.footnote |
| Caption 1 |
Regular |
12pt |
16pt |
.caption |
| Caption 2 |
Regular |
11pt |
13pt |
.caption2 |
Colors — iOS Semantic (Light / Dark)
Labels
| Token |
Light |
Dark |
SwiftUI |
| label |
#000000 |
#FFFFFF |
Color(.label) |
| secondaryLabel |
#3C3C43/60% |
#EBEBF5/60% |
Color(.secondaryLabel) |
| tertiaryLabel |
#3C3C43/30% |
#EBEBF5/30% |
Color(.tertiaryLabel) |
| placeholderText |
#3C3C43/30% |
#EBEBF5/30% |
Color(.placeholderText) |
Backgrounds (Grouped — most common for iOS)
| Token |
Light |
Dark |
SwiftUI |
| groupedBackground |
#F2F2F7 |
#000000 |
Color(.systemGroupedBackground) |
| secondaryGroupedBg |
#FFFFFF |
#1C1C1E |
Color(.secondarySystemGroupedBackground) |
| tertiaryGroupedBg |
#F2F2F7 |
#2C2C2E |
Color(.tertiarySystemGroupedBackground) |
Backgrounds (Flat)
| Token |
Light |
Dark |
SwiftUI |
| systemBackground |
#FFFFFF |
#000000 |
Color(.systemBackground) |
| secondaryBg |
#F2F2F7 |
#1C1C1E |
Color(.secondarySystemBackground) |
System Tints
| Token |
Light |
Dark |
SwiftUI |
| blue |
#007AFF |
#0A84FF |
.blue |
| green |
#34C759 |
#30D158 |
.green |
| red |
#FF3B30 |
#FF453A |
.red |
| orange |
#FF9500 |
#FF9F0A |
.orange |
| yellow |
#FFCC00 |
#FFD60A |
.yellow |
| purple |
#AF52DE |
#BF5AF2 |
.purple |
| pink |
#FF2D55 |
#FF375F |
.pink |
| indigo |
#5856D6 |
#5E5CE6 |
.indigo |
| teal |
#5AC8FA |
#64D2FF |
.teal |
Fills and Separators
| Token |
Light |
Dark |
| systemFill |
#787880/20% |
#787880/36% |
| separator |
#3C3C43/29% |
#545458/60% |
| opaqueSeparator |
#C6C6C8 |
#38383A |
Grays
| Token |
Light |
Dark |
| systemGray |
#8E8E93 |
#8E8E93 |
| systemGray2 |
#AEAEB2 |
#636366 |
| systemGray3 |
#C7C7CC |
#48484A |
| systemGray4 |
#D1D1D6 |
#3A3A3C |
| systemGray5 |
#E5E5EA |
#2C2C2E |
| systemGray6 |
#F2F2F7 |
#1C1C1E |
Spacing — 8pt Grid
| Token |
Value |
Use |
spacing-2 |
2pt |
Hairline, icon internal |
spacing-4 |
4pt |
Micro, tight elements |
spacing-8 |
8pt |
Small, compact spacing |
spacing-12 |
12pt |
Between related items |
spacing-16 |
16pt |
Standard padding, compact margins |
spacing-20 |
20pt |
Default layout margins (iPhone) |
spacing-24 |
24pt |
Section internal padding |
spacing-32 |
32pt |
Section spacing |
spacing-48 |
48pt |
Major section breaks |
Touch Targets
- Minimum: 44 x 44pt (Apple HIG requirement — never smaller)
- Recommended: 48 x 48pt
- Tab bar icon touch area: 44pt minimum
Corner Radii
| Token |
Value |
Use |
radius-sm |
8pt |
Small cards, chips |
radius-md |
12pt |
Cards, input fields |
radius-lg |
16pt |
Large cards, modals |
radius-xl |
20pt |
Widgets, full-width cards |
Use .continuous |
— |
Always use continuous (squircle) corners, not circular |
Component Heights
| Component |
Height |
| Navigation Bar |
44pt (standard), 96pt (large title) |
| Tab Bar |
49pt |
| Search Bar |
36pt field |
| Primary Button |
50pt |
| Toolbar |
44pt |
| Status Bar |
54pt (Dynamic Island), 44pt (notch) |
Safe Areas
| Edge |
Value |
| Top |
59pt (Dynamic Island) / 44pt (notch) |
| Bottom |
34pt (home indicator) |
Pencil MCP: Initialize iOS Design File
When creating a new .pen file for iOS design, run set_variables with these tokens:
Font Family: SF Pro
Font sizes: 11, 12, 13, 15, 16, 17, 20, 22, 28, 34
Spacing: 4, 8, 12, 16, 20, 24, 32, 48
Primary: #007AFF (light) / #0A84FF (dark)
Background: #FFFFFF (light) / #000000 (dark)
Surface: #F2F2F7 (light) / #1C1C1E (dark)
Label: #000000 (light) / #FFFFFF (dark)
Secondary Label: #3C3C43/60% (light) / #EBEBF5/60% (dark)
1---2name: ios-design-tokens3description: iOS design system tokens for Pencil MCP: SF Pro typography scale, iOS semantic colors (light + dark mode hex values), spacing grid, touch targets, corner radii, and component heights. Use when initializing a .pen file for iOS design or setting up design variables.4---56# iOS Design Tokens78Design tokens for iOS apps following Apple HIG. Use these with Pencil MCP's9`set_variables` tool to initialize a .pen file for iOS design.1011## Typography — SF Pro1213SF Pro Text at 19pt and below. SF Pro Display at 20pt and above.1415| Style | Weight | Size | Leading | SwiftUI |16|-------|--------|------|---------|---------|17| Large Title | Regular | 34pt | 41pt | `.largeTitle` |18| Title 1 | Light | 28pt | 34pt | `.title` |19| Title 2 | Regular | 22pt | 28pt | `.title2` |20| Title 3 | Regular | 20pt | 24pt | `.title3` |21| Headline | Semi-Bold | 17pt | 22pt | `.headline` |22| Body | Regular | 17pt | 22pt | `.body` |23| Callout | Regular | 16pt | 21pt | `.callout` |24| Subhead | Regular | 15pt | 20pt | `.subheadline` |25| Footnote | Regular | 13pt | 18pt | `.footnote` |26| Caption 1 | Regular | 12pt | 16pt | `.caption` |27| Caption 2 | Regular | 11pt | 13pt | `.caption2` |2829## Colors — iOS Semantic (Light / Dark)3031### Labels32| Token | Light | Dark | SwiftUI |33|-------|-------|------|---------|34| label | #000000 | #FFFFFF | `Color(.label)` |35| secondaryLabel | #3C3C43/60% | #EBEBF5/60% | `Color(.secondaryLabel)` |36| tertiaryLabel | #3C3C43/30% | #EBEBF5/30% | `Color(.tertiaryLabel)` |37| placeholderText | #3C3C43/30% | #EBEBF5/30% | `Color(.placeholderText)` |3839### Backgrounds (Grouped — most common for iOS)40| Token | Light | Dark | SwiftUI |41|-------|-------|------|---------|42| groupedBackground | #F2F2F7 | #000000 | `Color(.systemGroupedBackground)` |43| secondaryGroupedBg | #FFFFFF | #1C1C1E | `Color(.secondarySystemGroupedBackground)` |44| tertiaryGroupedBg | #F2F2F7 | #2C2C2E | `Color(.tertiarySystemGroupedBackground)` |4546### Backgrounds (Flat)47| Token | Light | Dark | SwiftUI |48|-------|-------|------|---------|49| systemBackground | #FFFFFF | #000000 | `Color(.systemBackground)` |50| secondaryBg | #F2F2F7 | #1C1C1E | `Color(.secondarySystemBackground)` |5152### System Tints53| Token | Light | Dark | SwiftUI |54|-------|-------|------|---------|55| blue | #007AFF | #0A84FF | `.blue` |56| green | #34C759 | #30D158 | `.green` |57| red | #FF3B30 | #FF453A | `.red` |58| orange | #FF9500 | #FF9F0A | `.orange` |59| yellow | #FFCC00 | #FFD60A | `.yellow` |60| purple | #AF52DE | #BF5AF2 | `.purple` |61| pink | #FF2D55 | #FF375F | `.pink` |62| indigo | #5856D6 | #5E5CE6 | `.indigo` |63| teal | #5AC8FA | #64D2FF | `.teal` |6465### Fills and Separators66| Token | Light | Dark |67|-------|-------|------|68| systemFill | #787880/20% | #787880/36% |69| separator | #3C3C43/29% | #545458/60% |70| opaqueSeparator | #C6C6C8 | #38383A |7172### Grays73| Token | Light | Dark |74|-------|-------|------|75| systemGray | #8E8E93 | #8E8E93 |76| systemGray2 | #AEAEB2 | #636366 |77| systemGray3 | #C7C7CC | #48484A |78| systemGray4 | #D1D1D6 | #3A3A3C |79| systemGray5 | #E5E5EA | #2C2C2E |80| systemGray6 | #F2F2F7 | #1C1C1E |8182## Spacing — 8pt Grid8384| Token | Value | Use |85|-------|-------|-----|86| `spacing-2` | 2pt | Hairline, icon internal |87| `spacing-4` | 4pt | Micro, tight elements |88| `spacing-8` | 8pt | Small, compact spacing |89| `spacing-12` | 12pt | Between related items |90| `spacing-16` | 16pt | Standard padding, compact margins |91| `spacing-20` | 20pt | Default layout margins (iPhone) |92| `spacing-24` | 24pt | Section internal padding |93| `spacing-32` | 32pt | Section spacing |94| `spacing-48` | 48pt | Major section breaks |9596## Touch Targets9798- **Minimum**: 44 x 44pt (Apple HIG requirement — never smaller)99- **Recommended**: 48 x 48pt100- Tab bar icon touch area: 44pt minimum101102## Corner Radii103104| Token | Value | Use |105|-------|-------|-----|106| `radius-sm` | 8pt | Small cards, chips |107| `radius-md` | 12pt | Cards, input fields |108| `radius-lg` | 16pt | Large cards, modals |109| `radius-xl` | 20pt | Widgets, full-width cards |110| Use `.continuous` | — | Always use continuous (squircle) corners, not circular |111112## Component Heights113114| Component | Height |115|-----------|--------|116| Navigation Bar | 44pt (standard), 96pt (large title) |117| Tab Bar | 49pt |118| Search Bar | 36pt field |119| Primary Button | 50pt |120| Toolbar | 44pt |121| Status Bar | 54pt (Dynamic Island), 44pt (notch) |122123## Safe Areas124125| Edge | Value |126|------|-------|127| Top | 59pt (Dynamic Island) / 44pt (notch) |128| Bottom | 34pt (home indicator) |129130## Pencil MCP: Initialize iOS Design File131132When creating a new .pen file for iOS design, run `set_variables` with these tokens:133```134Font Family: SF Pro135Font sizes: 11, 12, 13, 15, 16, 17, 20, 22, 28, 34136Spacing: 4, 8, 12, 16, 20, 24, 32, 48137Primary: #007AFF (light) / #0A84FF (dark)138Background: #FFFFFF (light) / #000000 (dark)139Surface: #F2F2F7 (light) / #1C1C1E (dark)140Label: #000000 (light) / #FFFFFF (dark)141Secondary Label: #3C3C43/60% (light) / #EBEBF5/60% (dark)142```