Skip to main content
Frontend Developmenthashgraph-online

apple-design

Use when the user asks for SwiftUI, UIKit, AppKit, iOS, iPadOS, macOS, watchOS, visionOS, Liquid Glass, HIG, SF Symbols, App Store deliverables, Apple settings/forms, branded Apple apps, React Native iOS, Flutter Cupertino, or Electron/Tauri macOS shells. Builds Apple-platform apps across system-like SwiftUI, branded SwiftUI, React Native, Flutter Cupertino, and desktop web shells while preserving UX decisions, native idiom, desktop archetype, originality seed, state coverage, Dynamic Type, accessibility, and HIG/Liquid Glass rules. ALWAYS ask which track first. SKIP when the target is only Android, Windows, or web-in-browser.

Stars
336
Source
hashgraph-online/awesome-codex-plugins
Updated
2026-05-27
Slug
hashgraph-online--awesome-codex-plugins--apple-design
View on GitHubRaw SKILL.md

// install — copy + paste into any project

mkdir -p .claude/skills && curl -fsSL https://raw.githubusercontent.com/hashgraph-online/awesome-codex-plugins/HEAD/plugins/f0d010c/stark/skills/apple-design/SKILL.md -o .claude/skills/apple-design.md

Drops the SKILL.md into .claude/skills/apple-design.md. Works with Claude Code, Cursor, and any agent that loads SKILL.md files from .claude/skills/.

apple-design — pick the track first

Apple platforms have multiple stacks with different visual ceilings and cost. Ask the user which one before any code.

What This Skill Can Do

  • Choose the right Apple track: strict SwiftUI, branded SwiftUI, React Native, Flutter Cupertino, or Electron/Tauri for macOS.
  • Design iPhone task flows, iPad/macOS productivity surfaces, menu-bar utilities, document apps, settings, inspectors, media apps, and desktop-class workbenches.
  • Preserve UX briefs, state coverage, action hierarchy, keyboard flow, Dynamic Type, focus, accessibility, and safe areas.
  • Apply HIG, Liquid Glass, SF Symbols, SF typography, NavigationSplitView, DocumentGroup, inspectors, sheets, toolbars, and platform-specific motion.
  • Add originality through composition, content, and state treatment without replacing native controls with web-style chrome.

Step 0 (MANDATORY) — Ask the user which track

Which track for this app?

1. System-like native (SwiftUI strict + Liquid Glass + HIG) — feels like Settings, Notes, Reminders, Mail. Best for: utilities, productivity. Visual ceiling: medium. Stays App Store-friendly. Examples: Things 3, NetNewsWire, Soulver.

2. Branded native (SwiftUI + HIG + custom identity) — native chrome (Liquid Glass, SF Symbols, Dynamic Type) but bespoke content surface (custom typography, hero atmospheres, magazine layouts). Best for: consumer/media/creative apps that want fit-in and identity. Visual ceiling: high. Examples: Ivory, Reeder, Mela, Craft, CARROT Weather.

3. React Native (New Architecture + Fabric + Hermes) — real UIKit views, decent native feel, JavaScript codebase, cross-platform with Android. Liquid Glass partial via expo-glass-effect. Best for: cross-platform apps with web-team velocity. Examples: Discord mobile, Coinbase, Microsoft Office mobile.

4. Flutter Cupertino — Skia-painted UIKit-look. Always one OS behind, no Liquid Glass. Cross-platform. Best for: utility apps where pixel control beats native feel. Visual ceiling: high if you bring your own design language; low if you try to mimic iOS.

5. Electron / Tauri 2 (macOS only — no iOS) — web stack desktop apps. Tauri 2 (~5MB, WKWebView) or Electron (~150MB, bundled Chromium). Same React/Tailwind/Motion code as web. Best for: cross-platform desktop with brand-first identity. Examples: Spotify, Discord, VSCode, Slack, Figma desktop, Linear.

Which? Or describe priorities (App Store, brand vs HIG fit, cross-platform reach) and I'll pick.

If brief gives a strong signal (e.g. "iOS App Store launch" → 1 or 2; "cross-platform with our existing React team" → 3 or 5; "web team building desktop-only" → 5), state your pick + reasoning in one sentence. If ambiguous, ask.

Step 0b — Once picked, route

Track Reference docs Default stack
1. System-like SwiftUI ../../references/apple-hig.md + ../../references/liquid-glass.md SwiftUI 7 + Xcode 26 + iOS 26 SDK strict
2. Branded SwiftUI Same as 1 Same as 1 + custom display font + hero atmospheres + bespoke surfaces
3. React Native ../../references/web-fonts.md + cross-platform docs RN 0.78+ New Arch + Expo Router + react-native-screens
4. Flutter Cupertino None for native fidelity (will feel imported) Flutter 3+ stable
5. Tauri 2 / Electron (macOS) ../../references/web-fonts.md + ../../references/web-motion.md + ../../references/web-bans.md + ../../references/awwwards-ceiling.md React 19 + Tailwind v4 + Motion

For tracks 3, 4, 5: web/cross-platform anti-slop rules apply. Read the web design references.

State the chosen aesthetic direction and track in one sentence at top of response, then proceed.

Step 0c — UI decision brief

Before code, read:

  • ../../references/ui-patterns/surface-taxonomy.md
  • ../../references/ui-patterns/ui-decision-brief.md
  • ../../references/ui-patterns/desktop-app-archetypes.md
  • ../../references/ui-patterns/originality-engine.md
  • ../../references/ui-patterns/design-recipes.md
  • ../../references/ui-patterns/anti-default-contrasts.md
  • ../../references/ui-patterns/visual-hierarchy.md
  • ../../references/ui-patterns/motion-budget.md

Write the UI decision brief and, for macOS/iPad desktop-class work, the desktop archetype brief and compact layout sketch. For original/non-generic Apple work, also write the originality brief: subject, product world, main object, composition archetype, repeated motif, one weird move, and restraints. Pick the app shape before picking controls: command center, library/collection, workbench, monitoring cockpit, menu-bar utility, media/consumer, document/knowledge, or setup/preferences. If the sketch becomes generic sidebar + detail, use anti-default contrasts and rewrite it around the main object. iPhone task flows need thumb reach and progressive disclosure; iPad/Mac productivity surfaces need NavigationSplitView, inspector, keyboard flow, command surfaces, and stable density; media/consumer apps may use branded content surfaces while preserving HIG controls, SF typography, SF Symbols, Dynamic Type, and safe areas. Do not make every Mac app a generic sidebar plus detail view unless the archetype truly calls for it.

Step 1 — Liquid Glass first (only if track 1 or 2)

Apple's unified design language across iOS 26, iPadOS 26, macOS 26 Tahoe, watchOS 26, tvOS 26, visionOS 26. Treat as default.

Apply via:

  • .glassEffect() modifier on surfaces that should refract underlying content
  • GlassEffectContainer { ... } to coordinate multiple glass surfaces (avoids overlapping refraction artifacts)
  • .buttonStyle(.glass) for buttons that should adopt Liquid Glass
  • .toolbar { ... } automatically lifts to glass on iOS 26+
  • .scrollEdgeEffectStyle(.soft) — replaces hard chrome edges with material lensing

Lineage to remember: Aqua → iOS 7 blur → Dynamic Island → visionOS → Liquid Glass. The aesthetic is "digital meta-material" — light bends through it.

Read ../../references/liquid-glass.md for full Liquid Glass adoption checklist.

Step 2 — SwiftUI 7 modern APIs (Swift 6.2 / Xcode 26)

Always prefer:

  • @Observable macro on view models — never ObservableObject + @Published
  • @Entry for one-line EnvironmentValues / FocusedValues / Transaction keys
  • Group(subviews:) and ForEach(subviewsOf:) for custom containers
  • MeshGradient(width:height:points:colors:) for distinctive backgrounds — replaces flat gradients
  • NavigationSplitView with .inspector { ... } for iPad/Mac three-pane
  • TabView with sidebar-adaptable .role
  • .searchable (morphs into a glass pill on iOS 26)
  • .symbolEffect(.bounce) / .pulse / .variableColor / .replace.byLayer on SF Symbols
  • MotionScheme and spring physics — .spring(response:dampingFraction:), never linear/easeIn/easeOut on UI motion

Step 3 — HIG compliance

  • Layout grid: 8pt base, 4pt half-step. Never 10/15/20. Use .padding() defaults — they encode the system's grid.
  • Safe areas: every screen wraps in safe area handling. .safeAreaInset(edge:) for content bars.
  • Dynamic Type: support xSmall → AX5. Use Font.TextStyle (.largeTitle, .title, .headline, .body, .caption). Never hard-coded points.
  • SF Symbols 7 is the only icon system. ~6,900 glyphs, 9 weights × 3 scales. Use Image(systemName:).
  • Accessibility: .accessibilityLabel/Hint/Value, .accessibilityElement(children:.combine), traits like .isButton, .isHeader. Mandatory.

Read ../../references/apple-hig.md for HIG section deep-dive.

Step 4 — macOS specifics (macOS 26 Tahoe)

  • SwiftUI is now first-class for new Mac apps. Drop into AppKit only for: complex NSTextView + custom rich text, Quick Look extensions, custom NSToolbar items, NSOpenPanel extensions.
  • Catalyst is deprecated in spirit. Prefer SwiftUI multiplatform target.
  • Patterns:
    • NavigationSplitView { sidebar } content: { ... } detail: { ... }
    • .inspector { ... } for trailing pane (Craft, Notes pattern)
    • DocumentGroup for document-based apps where files are the main object
    • Table or OutlineGroup for dense libraries, files, logs, and knowledge trees
    • Window("Quick Capture", id: ...) for focused utility windows
    • MenuBarExtra("Name", systemImage: ...) { ... } for menu-bar apps
    • Settings { TabView { ... } } scene for prefs window
  • Vibrancy materials: .background(.regularMaterial), .ultraThin/Thin/Regular/Thick/UltraThick
  • For sidebar background: .background(NSVisualEffectView { $0.material = .sidebar }) via NSViewRepresentable if needed

Step 5 — Cross-platform fidelity warnings

State the tradeoff if the user asks for non-Swift on Apple:

Stack Liquid Glass adoption Verdict
SwiftUI / UIKit native Full automatic Use this
React Native (New Arch + Fabric + Hermes) Partial via expo-glass-effect / native modules Decent for utility apps, off in nav transitions/haptics
Flutter Cupertino Pixel-recreates iOS but always one OS behind, no Liquid Glass Will feel wrong on iOS 26+
.NET MAUI Looks like Android in costume Never use on Apple

If user insists on cross-platform, route to cross-platform-design and warn that any non-SwiftUI path will fail Liquid Glass adoption.

Step 6 — Anti-slop ban list (Apple-specific)

  • Inter / Roboto / SF Pro replaced by web fonts — only SF Pro / SF Pro Rounded / SF Mono / New York
  • Material Design elevation shadows — use materials (.regularMaterial) and Liquid Glass instead
  • Hamburger drawer navigation — use TabView (iOS), NavigationSplitView (iPad/Mac)
  • FontAwesome / Material Symbols / Lucide icons — only SF Symbols 7
  • Linear/easeIn/easeOut animation curves — only spring physics
  • .padding(20) magic numbers — use system spacing or 8/16/24 grid
  • Bottom sheets without .presentationDetents([.medium, .large])
  • Custom switch / checkbox UI replacing Toggle
  • Full-bleed content under nav without .scrollEdgeEffectStyle(.soft)
  • Ignoring .safeAreaInset — content collides with home indicator
  • Hard-coded points instead of Font.TextStyle (breaks Dynamic Type)
  • Custom scroll indicators — use ScrollIndicators(.hidden) only when justified
  • Web-style dashboards squeezed into iPhone screens
  • Decorative cards where grouped Form, List, inspector, or split view is the platform idiom
  • Generic macOS sidebar plus detail view for every app, regardless of the main object
  • Custom originality that replaces native controls instead of changing composition, content, and state treatment

Step 7 — Reference apps that nail HIG

  • Things 3 — typographic restraint, magic-plus, perfect Dynamic Type
  • Reeder Classic / Reeder 5NavigationSplitView exemplar on iPad/Mac
  • Ivory (Tapbots) — bespoke yet HIG-correct; haptic + .symbolEffect choreography
  • Mela — text-first, native share sheets, no chrome
  • Craft — multi-pane Mac, inspector pattern, vibrancy
  • NetNewsWire — open-source HIG textbook
  • Soulver 3 — Mac-native typography + sidebar
  • CARROT Weather — system materials + variable color symbols
  • Overcast — type hierarchy, Dynamic Type, accessibility
  • Fantastical — sidebar + inspector + menu-bar mode

Step 8 — Tokens & assets

Token JSON: see ../../assets/tokens/apple-system.json