Skip to content
Back to skills

Apple Design

ASecurity

Apple's design rules for iOS screens you can check in a static design file — translucent materials and depth, typography (text styles, weight, leading, Dynamic Type), accessibility variants (Reduce Transparency, Increase Contrast), and Apple's eight design principles with their tactical rules (feedback, wayfinding, grouping, labels). Use when designing or reviewing an iOS screen in a design tool such as pen.dev or Figma, or when asked whether a screen "feels like iOS". For motion and gestures...

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 21, 2026
ai-agentsgoswiftspringawsgit

Security analysis

A100/100

Scanned October 21, 2026

npx -y skills add orrrrli/clawd-harness --skill apple-design --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Apple Design?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Apple Design
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/orrrrli-apple-design/badge)](https://www.skillsdirectory.com/skills/orrrrli-apple-design)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: apple-design
stacks: [ios]
description: Apple's design rules for iOS screens you can check in a static design file — translucent materials and depth, typography (text styles, weight, leading, Dynamic Type), accessibility variants (Reduce Transparency, Increase Contrast), and Apple's eight design principles with their tactical rules (feedback, wayfinding, grouping, labels). Use when designing or reviewing an iOS screen in a design tool such as pen.dev or Figma, or when asked whether a screen "feels like iOS". For motion and gestures in code use swiftui-motion.
---

# Apple Design (static iOS screens)

Apple's rules for how an iOS screen should look, limited to what a static frame can show. Motion,
gestures and haptics are behavior, not pixels: they live in `swiftui-motion`.

Each rule below is a check. When reviewing a screen, report the rule it breaks, where, and the fix.
When building one, apply them before showing it.

## 1. Materials and depth: translucency shows hierarchy

Apple uses translucent materials as a floating layer that adds structure without stealing focus.

- **Bars, toolbars and sheets float over content.** Content scrolls underneath a translucent layer;
  it does not stop at an opaque strip. Name the material on the layer so the build matches it:
  `ultraThinMaterial`, `thinMaterial`, `regularMaterial`, `thickMaterial`, `ultraThickMaterial`.
- **Material weight encodes hierarchy.** Heavier materials separate structural regions. Lighter ones
  draw attention to interactive elements.
- **Never stack a light translucent surface on another.** Legibility collapses.
- **Bigger surfaces read as thicker:** a heavier material and a deeper shadow than a small chip.
- **Dim to focus, separate to keep flow.** A modal task gets a dimming scrim and pushes the background
  back. A parallel, non-blocking panel uses translucency and offset without a scrim. Stacked sheets
  dim each parent a step further.
- **Text over a material uses vibrant or semantic colors**, not a flat gray picked by eye. Put brand
  color on a solid layer, not on the translucent one.
- **Scroll edge effects, not hard dividers.** Where content meets floating chrome, fade it. Draw a
  1pt separator only where the system draws one (list rows, grouped sections).

## 2. Typography: text styles, not font sizes

- **Use the system text styles** and name them in the design, so the build maps 1:1 to
  `.font(.headline)` and Dynamic Type works. Default (Large) sizes, size/leading in pt:

  | Style | Size / leading | Weight |
  | --- | --- | --- |
  | Large Title | 34 / 41 | Regular |
  | Title 1 | 28 / 34 | Regular |
  | Title 2 | 22 / 28 | Regular |
  | Title 3 | 20 / 25 | Regular |
  | Headline | 17 / 22 | Semibold |
  | Body | 17 / 22 | Regular |
  | Callout | 16 / 21 | Regular |
  | Subheadline | 15 / 20 | Regular |
  | Footnote | 13 / 18 | Regular |
  | Caption 1 | 12 / 16 | Regular |
  | Caption 2 | 11 / 13 | Regular |

- **Build hierarchy from weight + size + leading as a set**, not size alone. Emphasize with weight:
  it adds presence without taking space. One hierarchy lever at a time.
- **Tracking changes with size; never one value for every size.** SF applies it per size on its own.
  In a design tool, use Apple's tracking table from the HIG Typography page; never invent a value or
  copy one size's tracking to another.
- **Leading tracks size inversely:** tight on large titles, looser on body.
- **Default to SF Pro.** It ships optical sizing, tracking tables and legibility tuning. A custom face
  needs a reason, and still has to scale with Dynamic Type.
- **Design for Dynamic Type.** Check every screen at the largest accessibility size: rows grow, text
  wraps instead of truncating, horizontal layouts stack vertically.

## 3. Accessibility variants you can draw

Three system settings change how a screen looks. Each one is a frame variant, not an afterthought.

- **Reduce Transparency:** translucent surfaces become solid. Draw the bars and sheets opaque and check
  the screen still reads.
- **Increase Contrast:** near-solid backgrounds and defined borders. Check that separators and secondary
  text still clear contrast.
- **Contrast floor:** 4.5:1 for body text, 3:1 for large text (18pt+, or 14pt+ bold) and for icons
  and control boundaries, in both light and dark.
- **Touch targets are at least 44x44pt**, even when the visible glyph is smaller.
- **Light and dark from semantic colors** (`label`, `secondaryLabel`, `systemBackground`,
  `secondarySystemBackground`, `separator`). A hardcoded hex breaks one of the two modes.
- Avoid large brightness jumps between adjacent screens.

## 4. The eight principles

From *Principles of Great Design* (WWDC 2026). Use them as the names you reason with.

1. **Purpose.** Decide what not to build. Every element spends the user's time and attention.
2. **Agency.** Keep people in control. Easy undo for slips; a confirmation only for destructive,
   irreversible actions. Overusing confirmations trains people to tap through them.
3. **Responsibility.** Act in the user's interest. Ask for permissions at the moment they're needed,
   only for what's needed, and say why.
4. **Familiarity.** Build on what people know. Stock components, standard placement, SF Symbols with
   their usual meaning. Things that look the same behave the same. Break a pattern only with proof.
5. **Flexibility.** Design for every context and ability: Dynamic Type, VoiceOver order, one-handed
   reach, long localized strings.
6. **Simplicity, not minimalism.** Strip the unnecessary so the core purpose is obvious. Show the
   common path first, advanced options one level deeper. Sometimes adding context simplifies.
7. **Craft.** Every spacing, alignment and color is a value you can defend. Misaligned icons and
   off-grid spacing read as carelessness.
8. **Delight.** The result of getting the other seven right, not confetti on top.

Tactical rules that serve them:

- **Feedback comes in four kinds:** status, completion, warning, error. Draw each one: the loading
  state, the success state, the inline validation error (inline, not on submit), the empty state.
- **Wayfinding.** Every screen answers: Where am I? Where can I go? How do I get out? A screen with no
  title, no back and no close traps the user.
- **Grouping and mapping.** Proximity implies relationship. Put a control next to what it changes. If
  a control needs a label to explain what it affects, the mapping is weak.
- **Specific labels beat generic ones.** Name tabs and buttons for what they hold or do ("Payments",
  "Confirm attendance"), not "Home" or "OK".

## Output

When reviewing, one line per finding: screen, rule (section number and name), what is wrong, the fix.
Order by impact on the user, not by section. End with what already holds up, in one line.

## Source

Adapted from [emilkowalski/skills `apple-design`](https://github.com/emilkowalski/skills/tree/main/skills/apple-design)
(MIT, commit `e8a175d`, read 2026-10-09). Kept: materials, typography, accessibility, the eight
principles. Changed: CSS (`backdrop-filter`, `rem`, `@media`) replaced with iOS materials, text styles
and system settings; the text style table added. Moved out: sections 1-11 and 13 (response, gestures,
springs, momentum, rubber-banding, haptics) live in `swiftui-motion`, because a static frame can't
show them.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.