* chore: upgrade maintenance scripts to robust PyYAML parsing - Replaces fragile regex frontmatter parsing with PyYAML/yaml library - Ensures multi-line descriptions and complex characters are handled safely - Normalizes quoting and field ordering across all maintenance scripts - Updates validator to strictly enforce description quality * fix: restore and refine truncated skill descriptions - Recovered 223+ truncated descriptions from git history (6.5.0 regression) - Refined long descriptions into concise, complete sentences (<200 chars) - Added missing descriptions for brainstorming and orchestration skills - Manually fixed imagen skill description - Resolved dangling links in competitor-alternatives skill * chore: sync generated registry files and document fixes - Regenerated skills index with normalized forward-slash paths - Updated README and CATALOG to reflect restored descriptions - Documented restoration and script improvements in CHANGELOG.md * fix: restore missing skill and align metadata for full 955 count - Renamed SKILL.MD to SKILL.md in andruia-skill-smith to ensure indexing - Fixed risk level and missing section in andruia-skill-smith - Synchronized all registry files for final 955 skill count * chore(scripts): add cross-platform runners and hermetic test orchestration * fix(scripts): harden utf-8 output and clone target writeability * fix(skills): add missing date metadata for strict validation * chore(index): sync generated metadata dates * fix(catalog): normalize skill paths to prevent CI drift * chore: sync generated registry files * fix: enforce LF line endings for generated registry files
100 lines
6.9 KiB
Markdown
100 lines
6.9 KiB
Markdown
---
|
|
name: hig-patterns
|
|
description: Apple Human Interface Guidelines interaction and UX patterns.
|
|
risk: unknown
|
|
source: community
|
|
date_added: '2026-02-27'
|
|
---
|
|
|
|
# Apple HIG: Interaction Patterns
|
|
|
|
Check for `.claude/apple-design-context.md` before asking questions. Use existing context and only ask for information not already covered.
|
|
|
|
## Key Principles
|
|
|
|
1. **Minimize modality.** Use modality only when it is critical to get attention, a task must be completed or abandoned, or saving changes is essential. Prefer non-modal alternatives.
|
|
|
|
2. **Provide clear feedback.** Every action should produce visible, audible, or haptic response. Activity indicators for indeterminate waits, progress bars for determinate, haptics for physical confirmation.
|
|
|
|
3. **Support undo over confirmation dialogs.** Destructive actions should be reversible when possible. Undo is almost always better than "Are you sure?"
|
|
|
|
4. **Launch quickly.** Display a launch screen that transitions seamlessly into the first screen. No splash screens with logos. Restore previous state.
|
|
|
|
5. **Defer sign-in.** Let users explore before requiring account creation. Support Sign in with Apple and passkeys.
|
|
|
|
6. **Keep onboarding brief.** Three screens max. Let users skip. Teach through progressive disclosure and contextual hints.
|
|
|
|
7. **Use progressive disclosure.** Show essentials first, let users drill into details. Don't overwhelm with every option on one screen.
|
|
|
|
8. **Respect user attention.** Consolidate notifications, minimize interruptions, give users control over alerts. Never use notifications for marketing.
|
|
|
|
## Reference Index
|
|
|
|
| Reference | Topic | Key content |
|
|
|---|---|---|
|
|
| [charting-data.md](references/charting-data.md) | Charting Data | Data visualization patterns, accessible charts, interactive elements |
|
|
| [collaboration-and-sharing.md](references/collaboration-and-sharing.md) | Collaboration & Sharing | Share sheets, activity views, collaborative editing, SharePlay |
|
|
| [drag-and-drop.md](references/drag-and-drop.md) | Drag and Drop | Drag sources, drop targets, spring loading, multi-item drag, visual feedback |
|
|
| [entering-data.md](references/entering-data.md) | Entering Data | Text fields, pickers, steppers, input validation, keyboard types, autofill |
|
|
| [feedback.md](references/feedback.md) | Feedback | Alerts, action sheets, haptic patterns, sound feedback, visual indicators |
|
|
| [file-management.md](references/file-management.md) | File Management | Document browser, file providers, iCloud integration, document lifecycle |
|
|
| [going-full-screen.md](references/going-full-screen.md) | Going Full Screen | Full-screen transitions, immersive content, exiting full screen |
|
|
| [launching.md](references/launching.md) | Launching | Launch screens, state restoration, cold vs warm launch |
|
|
| [live-viewing-apps.md](references/live-viewing-apps.md) | Live Viewing Apps | Live content display, real-time updates, Live Activities, Dynamic Island |
|
|
| [loading.md](references/loading.md) | Loading | Activity indicators, progress views, skeleton screens, lazy loading, placeholders |
|
|
| [managing-accounts.md](references/managing-accounts.md) | Managing Accounts | Sign in with Apple, passkeys, account creation, credential autofill, account deletion |
|
|
| [managing-notifications.md](references/managing-notifications.md) | Managing Notifications | Permission requests, grouping, actionable notifications, provisional delivery |
|
|
| [modality.md](references/modality.md) | Modality | Sheets, alerts, popovers, full-screen modals, when to use each |
|
|
| [multitasking.md](references/multitasking.md) | Multitasking | iPad Split View, Slide Over, Stage Manager, responsive layout, size class transitions |
|
|
| [offering-help.md](references/offering-help.md) | Offering Help | Contextual tips, onboarding hints, help menus, support links |
|
|
| [onboarding.md](references/onboarding.md) | Onboarding | Welcome screens, feature highlights, progressive onboarding, skip options |
|
|
| [playing-audio.md](references/playing-audio.md) | Playing Audio | Audio sessions, background audio, Now Playing, audio routing, interruptions |
|
|
| [playing-haptics.md](references/playing-haptics.md) | Playing Haptics | Core Haptics, UIFeedbackGenerator, haptic patterns, custom haptics |
|
|
| [playing-video.md](references/playing-video.md) | Playing Video | Video player controls, picture-in-picture, AirPlay, full-screen video |
|
|
| [printing.md](references/printing.md) | Printing | Print dialogs, page setup, AirPrint integration |
|
|
| [ratings-and-reviews.md](references/ratings-and-reviews.md) | Ratings & Reviews | SKStoreReviewController, timing, frequency limits, in-app feedback |
|
|
| [searching.md](references/searching.md) | Searching | Search bars, suggestions, scoped search, results display, recents |
|
|
| [settings.md](references/settings.md) | Settings | In-app vs Settings app, preference organization, toggles, defaults |
|
|
| [undo-and-redo.md](references/undo-and-redo.md) | Undo and Redo | Shake to undo, undo/redo stack, multi-level undo |
|
|
| [workouts.md](references/workouts.md) | Workouts | Workout sessions, live metrics, Always On display, summaries, HealthKit |
|
|
|
|
## Pattern Selection Guide
|
|
|
|
| User Goal | Recommended Pattern | Avoid |
|
|
|---|---|---|
|
|
| First app experience | Brief onboarding (max 3 screens) + progressive disclosure | Long tutorials, mandatory sign-up |
|
|
| Waiting for content | Skeleton screens or progress indicators | Blocking spinners with no context |
|
|
| Confirming destructive action | Undo support | Excessive "Are you sure?" dialogs |
|
|
| Collecting user input | Inline validation, smart defaults, autofill | Modal forms for simple inputs |
|
|
| Requesting permissions | Contextual, just-in-time with explanation | Requesting all permissions at launch |
|
|
| Providing feedback | Haptics + visual indicator | Silent actions with no confirmation |
|
|
| Organizing preferences | In-app settings for frequent items | Burying all settings in system Settings app |
|
|
|
|
## Output Format
|
|
|
|
1. **Recommended pattern with rationale**, citing the relevant reference file.
|
|
2. **Step-by-step implementation** covering each screen or state.
|
|
3. **Platform variations** for targeted platforms.
|
|
4. **Common pitfalls** that violate HIG for this pattern.
|
|
|
|
## Questions to Ask
|
|
|
|
1. Where in the app does this pattern appear? What comes before and after?
|
|
2. Which platforms?
|
|
3. Designing from scratch or improving an existing flow?
|
|
4. Does this involve sensitive actions? (Destructive operations, payments, permissions)
|
|
|
|
## Related Skills
|
|
|
|
- **hig-foundations** -- Accessibility, color, typography, and privacy principles underlying every pattern
|
|
- **hig-platforms** -- Platform-specific pattern implementations
|
|
- **hig-components-layout** -- Structural components (tab bars, sidebars, split views) for navigation patterns
|
|
- **hig-components-content** -- Content display within patterns (charts, collections, search results)
|
|
|
|
---
|
|
|
|
*Built by [Raintree Technology](https://raintree.technology) · [More developer tools](https://raintree.technology)*
|
|
|
|
## When to Use
|
|
This skill is applicable to execute the workflow or actions described in the overview.
|