ios-interaction-primitives-designlisted
Design and build best-in-class native iOS interaction surfaces — Home Screen widgets, Lock Screen widgets, StandBy widgets, Live Activities, Dynamic Island presentations, Control Center custom controls, Haptic Touch context menus, haptic feedback (UIFeedbackGenerator and CoreHaptics), Action Button, Camera Control button, App Intents, Symbol Effects, and Focus filters. Use this skill whenever the user is building or polishing any of these peripheral surfaces that surround a native iOS app, especially for apps targeting iOS 17, iOS 18, or iOS 26 (Liquid Glass). Triggers on: widget, WidgetKit, Lock Screen widget, StandBy widget, interactive widget, App Intent, ControlWidget, Control Center widget, Live Activity, ActivityKit, Dynamic Island, Haptic Touch, long press, context menu, haptic feedback, UIImpactFeedbackGenerator, CoreHaptics, CHHapticEngine, AHAP, Action Button, Camera Control, Symbol Effects, symbolEffect, Focus filters, FocusFilterIntent, iOS 26, Liquid Glass widget, glassEffect.
heyimjames/ios-design-skills · ★ 0 · Web & Frontend · score 75
Install: claude install-skill heyimjames/ios-design-skills
# iOS Interaction Primitives — Design Engineering Skill
A taste guide for the *peripheral* surfaces that surround a native iOS app — the Home Screen widget, the Dynamic Island, the haptic pulse on a button press. These are not afterthoughts. For many users, these surfaces are the *primary* product. Spotify's widget gets opened 50× more often than the app. Flighty's Dynamic Island is more memorable than Flighty's main screen.
## Output format — required
When this skill is invoked to review widget/Live-Activity/haptic code or recommend changes, **always output recommendations as a markdown table** with three columns:
| Before | After | What this changes |
| --- | --- | --- |
| The current code, value, or approach (quote the user's actual code when possible) | The recommended replacement — **specific**, with exact values | One sentence on what the user will *see, feel, or experience* differently |
Three rules:
1. **Before** quotes the user's actual code where possible.
2. **After** is specific. Exact API calls, exact `.sensoryFeedback` styles, exact widget container modifiers.
3. **What this changes** is *experiential or visual*, not abstract.
Output ONE table with multiple rows for multi-recommendation reviews — not one table per row. Use `—` for Before if the user hasn't implemented that thing yet.
**Examples drawn from this skill:**
| Before | After | What this changes |
| --- | --- | --- |
| Widget with `.background(Color.white)` | `.containerBackground(.fill.tertiar