#423 by GitHub stars
dickwu/apple-design-skill
Cross-platform UI/UX design reviewer grounded in Apple's Human Interface Guidelines (123 pages pulled from developer.apple.com, including 57 component pages) plus a design-craft lens for distinctive, non-templated work. Use it to audit, review, critique, or improve any mobile app (iOS, Flutter, Reac
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
SKILL.md
Week of Nov 2, 2026 · +26 / −3 lines
Before Network or broad shell → After Network or broad shell
914b6a377c22 → ff4ebddf0488
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 914b6a377c22
No earlier version was observed for comparison.
Verified commit ff4ebddf0488598723a82bfdce1afb04de0b1c44
git clone --filter=blob:none --no-checkout https://github.com/dickwu/apple-design-skill.git .hotskills/dickwu-apple-design-skill && git -C .hotskills/dickwu-apple-design-skill checkout --detach ff4ebddf0488598723a82bfdce1afb04de0b1c44
# Copy each selected skill directory from .hotskills/dickwu-apple-design-skill into .agents/skills/<skill-name>/git clone --filter=blob:none --no-checkout https://github.com/dickwu/apple-design-skill.git .hotskills/dickwu-apple-design-skill && git -C .hotskills/dickwu-apple-design-skill checkout --detach ff4ebddf0488598723a82bfdce1afb04de0b1c44
# Copy each selected skill directory from .hotskills/dickwu-apple-design-skill into .cursor/skills/<skill-name>/git clone --filter=blob:none --no-checkout https://github.com/dickwu/apple-design-skill.git .hotskills/dickwu-apple-design-skill && git -C .hotskills/dickwu-apple-design-skill checkout --detach ff4ebddf0488598723a82bfdce1afb04de0b1c44
# Copy each selected skill directory from .hotskills/dickwu-apple-design-skill into .gemini/skills/<skill-name>/Heat
8.3- Star growth, last 7 daysAhead of 99% of tracked repositories
- Star growth, last 24 hoursAhead of 99% of tracked repositories
- Rank movement, last 7 daysAhead of 97% of tracked repositories
- Commits, last 30 daysAhead of 77% of tracked repositories
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekAhead of 0% of tracked repositories
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
Individual skills in this repository
How it works
apple-design
When your agent uses it
Cross-platform UI/UX design reviewer grounded in Apple's Human Interface Guidelines (123 pages pulled from developer.apple.com, including 57 component pages) plus a design-craft lens for distinctive, non-templated work. Use it to audit, review, critique, or improve any mobile app (iOS, Flutter, React Native) or desktop app (macOS, Tauri, Electron) design: design review, UI audit, HIG compliance, accessibility audit, dark mode, Liquid Glass or glassmorphism, navigation structure, iPhone Duo or foldable layouts, Apple Pay buttons and marks, widgets and Live Activities, onboarding, forms, app icons, generative AI UX, App Review rejections over design or branding, or requests like "make this look less generic". Also use whenever the user shares screenshots, mockups, wireframes, Figma exports, or UI code and wants feedback, even if they only say "review my design" or "is this good UI", or asks to audit a codebase or pull request. Works for SwiftUI, UIKit, AppKit, Flutter, React Native, Tauri, and Electron.
What it loads into context
Frontmatter
258 tokensAlways available to the agent
SKILL.md
6,796 tokensWhen the skill is activated
Reference documents
251,592 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- The references
- Apple's design principles
- Review process
- Specialized review modes
- Design improvement mode
- Working rules
Scripts executed separately
scripts/pull-hig.mjs
Files
.cursorrulesasset1,925 bytes.github/FUNDING.ymlasset15 bytes.gitignoreasset39 bytesAGENTS.mddoc6,662 bytesGEMINI.mddoc1,925 bytesREADME.mddoc10,413 bytesSKILL.mdcore28,333 bytesSKILL.mdcore28,333 bytesSKILL.mdcore28,333 bytesreferences/code-audit.mddoc12,339 bytesreferences/cross-platform.mddoc3,079 bytesreferences/hig-lookup.mddoc30,559 bytesreferences/hig/accessibility.mddoc17,044 bytesreferences/hig/action-sheets.mddoc3,496 bytesreferences/hig/activity-views.mddoc6,596 bytesreferences/hig/airplay.mddoc7,052 bytesreferences/hig/alerts.mddoc9,693 bytesreferences/hig/app-clips.mddoc30,749 bytesreferences/hig/app-icons.mddoc13,519 bytesreferences/hig/app-shortcuts.mddoc9,012 bytesreferences/hig/apple-in-app-purchase.mddoc19,494 bytesreferences/hig/apple-pay.mddoc31,633 bytesreferences/hig/apple-pencil-and-scribble.mddoc13,856 bytesreferences/hig/augmented-reality.mddoc22,653 bytesreferences/hig/boxes.mddoc1,812 bytesreferences/hig/branding.mddoc4,499 bytesreferences/hig/buttons.mddoc13,196 bytesreferences/hig/charting-data.mddoc7,208 bytesreferences/hig/charts.mddoc19,534 bytesreferences/hig/collaboration-and-sharing.mddoc6,279 bytesreferences/hig/collections.mddoc2,186 bytesreferences/hig/color-wells.mddoc1,425 bytesreferences/hig/color.mddoc27,304 bytesreferences/hig/column-views.mddoc2,077 bytesreferences/hig/combo-boxes.mddoc1,524 bytesreferences/hig/context-menus.mddoc7,802 bytesreferences/hig/controls.mddoc6,861 bytesreferences/hig/dark-mode.mddoc7,891 bytesreferences/hig/design-principles.mddoc9,420 bytesreferences/hig/designing-for-games.mddoc12,529 bytesreferences/hig/designing-for-ios.mddoc3,320 bytesreferences/hig/designing-for-ipados.mddoc2,924 bytesreferences/hig/designing-for-iphone-duo.mddoc17,834 bytesreferences/hig/designing-for-macos.mddoc2,989 bytesreferences/hig/disclosure-controls.mddoc3,308 bytesreferences/hig/dock-menus.mddoc1,871 bytesreferences/hig/drag-and-drop.mddoc13,998 bytesreferences/hig/edit-menus.mddoc6,115 bytesreferences/hig/entering-data.mddoc4,698 bytesreferences/hig/feedback.mddoc3,600 bytesreferences/hig/file-management.mddoc11,340 bytesreferences/hig/focus-and-selection.mddoc8,303 bytesreferences/hig/game-controls.mddoc11,249 bytesreferences/hig/gauges.mddoc3,821 bytesreferences/hig/generative-ai.mddoc17,391 bytesreferences/hig/gestures.mddoc7,760 bytesreferences/hig/going-full-screen.mddoc6,735 bytesreferences/hig/gyro-and-accelerometer.mddoc1,690 bytesreferences/hig/home-screen-quick-actions.mddoc3,281 bytesreferences/hig/icloud.mddoc4,822 bytesreferences/hig/icons.mddoc14,685 bytesreferences/hig/image-views.mddoc2,887 bytesreferences/hig/image-wells.mddoc1,084 bytesreferences/hig/images.mddoc3,829 bytesreferences/hig/inclusion.mddoc15,133 bytesreferences/hig/keyboards.mddoc16,989 bytesreferences/hig/labels.mddoc4,088 bytesreferences/hig/launching.mddoc4,141 bytesreferences/hig/layout.mddoc13,510 bytesreferences/hig/liquid-glass.mddoc14,283 bytesreferences/hig/lists-and-tables.mddoc6,911 bytesreferences/hig/live-activities.mddoc27,010 bytesreferences/hig/live-viewing-apps.mddoc6,614 bytesreferences/hig/loading.mddoc3,514 bytesreferences/hig/machine-learning.mddoc38,242 bytesreferences/hig/managing-accounts.mddoc7,350 bytesreferences/hig/managing-notifications.mddoc6,853 bytesreferences/hig/maps.mddoc15,729 bytesreferences/hig/materials.mddoc10,288 bytesreferences/hig/menus.mddoc13,174 bytesreferences/hig/modality.mddoc5,613 bytesreferences/hig/motion.mddoc4,652 bytesreferences/hig/multitasking.mddoc5,963 bytesreferences/hig/nfc.mddoc2,984 bytesreferences/hig/notifications.mddoc10,470 bytesreferences/hig/offering-help.mddoc6,941 bytesreferences/hig/onboarding.mddoc5,225 bytesreferences/hig/outline-views.mddoc4,362 bytesreferences/hig/page-controls.mddoc6,627 bytesreferences/hig/panels.mddoc5,692 bytesreferences/hig/path-controls.mddoc1,737 bytesreferences/hig/pickers.mddoc4,878 bytesreferences/hig/playing-audio.mddoc8,962 bytesreferences/hig/playing-haptics.mddoc8,892 bytesreferences/hig/playing-video.mddoc9,802 bytesreferences/hig/pointing-devices.mddoc20,651 bytesreferences/hig/pop-up-buttons.mddoc2,771 bytesreferences/hig/popovers.mddoc4,579 bytesreferences/hig/printing.mddoc3,389 bytesreferences/hig/privacy.mddoc15,302 bytesreferences/hig/progress-indicators.mddoc6,677 bytesreferences/hig/pull-down-buttons.mddoc4,284 bytesreferences/hig/rating-indicators.mddoc1,239 bytesreferences/hig/ratings-and-reviews.mddoc3,451 bytesreferences/hig/right-to-left.mddoc9,856 bytesreferences/hig/scroll-views.mddoc7,426 bytesreferences/hig/search-fields.mddoc11,576 bytesreferences/hig/searching.mddoc5,050 bytesreferences/hig/segmented-controls.mddoc5,437 bytesreferences/hig/settings.mddoc6,808 bytesreferences/hig/sf-symbols.mddoc20,736 bytesreferences/hig/sheets.mddoc9,046 bytesreferences/hig/sidebars.mddoc7,220 bytesreferences/hig/sign-in-with-apple.mddoc18,361 bytesreferences/hig/siri.mddoc13,708 bytesreferences/hig/sliders.mddoc4,953 bytesreferences/hig/snippets.mddoc4,161 bytesreferences/hig/split-views.mddoc5,175 bytesreferences/hig/status-bars.mddoc1,936 bytesreferences/hig/steppers.mddoc1,604 bytesreferences/hig/tab-bars.mddoc7,172 bytesreferences/hig/tab-views.mddoc3,153 bytesreferences/hig/text-fields.mddoc5,280 bytesreferences/hig/text-views.mddoc2,471 bytesreferences/hig/the-menu-bar.mddoc27,291 bytesreferences/hig/toggles.mddoc8,629 bytesreferences/hig/token-fields.mddoc2,230 bytesreferences/hig/toolbars.mddoc12,411 bytesreferences/hig/typography.mddoc30,481 bytesreferences/hig/undo-and-redo.mddoc4,072 bytesreferences/hig/virtual-keyboards.mddoc8,571 bytesreferences/hig/voiceover.mddoc5,745 bytesreferences/hig/web-views.mddoc1,171 bytesreferences/hig/widgets.mddoc31,701 bytesreferences/hig/windows.mddoc9,098 bytesreferences/hig/writing.mddoc9,907 bytesscripts/pull-hig.mjsruns34,149 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubSkills included
- apple-design
Repository facts
- License
- No license detected
- Created
- Feb 27, 2026
- Last pushed
- Oct 28, 2026
- Forks
- 225
- Open issues
- 0
- Project activity
- Active
Rank over the last 12 weeks
Now #423 · best #423 · up 295 in 30 days
- #446 on Nov 1
- #440 on Nov 2
- #436 on Nov 3
- #432 on Nov 4
- #428 on Nov 5
- #423 since Nov 6
84 earlier periods
- #875 on Aug 2
- #870 on Aug 7
- #881 on Aug 9
- #911 on Aug 10
- #915 on Aug 11
- #914 on Aug 12
- #919 on Aug 13
- #898 on Aug 14
- #865 on Aug 15
- #888 on Aug 16
- #895 on Aug 17
- #912 on Aug 18
- #908 on Aug 19
- #892 on Aug 20
- #902 on Aug 21
- #848 on Aug 22
- #903 on Aug 23
- #911 on Aug 24
- #921 on Aug 25
- #902 on Aug 26
- #909 on Aug 27
- #946 on Aug 28
- #862 on Aug 29
- #866 on Aug 30
- #912 on Aug 31
- #947 on Sep 1
- #914 on Sep 2
- #918 on Sep 3
- #880 on Sep 4
- #854 on Sep 5
- #892 on Sep 6
- #916 on Sep 7
- #932 on Sep 8
- #916 on Sep 9
- #901 on Sep 10
- #864 on Sep 11
- #858 on Sep 12
- #856 on Sep 13
- #883 on Sep 14
- #868 on Sep 15
- #873 on Sep 16
- #852 on Sep 17
- #829 on Sep 18
- #787 on Sep 19
- #789 on Sep 20
- #796 on Sep 21
- #805 on Sep 22
- #780 on Sep 23
- #744 on Sep 24
- #715 on Sep 25
- #709 on Sep 26
- #734 on Sep 27
- #742 on Sep 28
- #758 on Sep 29
- #727 on Sep 30
- #683 on Oct 1
- #689 on Oct 2
- #664 on Oct 3
- #696 on Oct 4
- #690 on Oct 5
- #691 on Oct 6
- #695 on Oct 7
- #718 on Oct 8
- #674 on Oct 9
- #650 on Oct 10
- #624 on Oct 11
- #620 on Oct 12
- #600 on Oct 13
- #584 on Oct 14
- #569 on Oct 15
- #560 on Oct 16
- #543 on Oct 17
- #533 on Oct 18
- #543 on Oct 19
- #534 on Oct 20
- #530 on Oct 21
- #511 on Oct 22
- #496 on Oct 23
- #475 on Oct 24
- #517 on Oct 25
- #484 on Oct 28
- #477 on Oct 29
- #462 on Oct 30
- #457 on Oct 31
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 4, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 2 notes
SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- No dangerous shell commands
- 710 network referencesin 128 files: references/hig/color.md:3 references/hig-lookup.md:207 references/hig/pointing-devices.md:3 and 125 more
- 1 obfuscation signalin 1 file: references/hig/icons.md:87
- No instruction overrides
- 1 executable scriptin 1 file: scripts/pull-hig.mjs:1
- 5 references to secretsin 3 files: references/hig/privacy.md:102 references/hig/entering-data.md:25 references/hig/managing-accounts.md:19
- No requests to vote in Hot
Show all 717 signals by file
README.md
- Network accessline 18
This works for Claude Code, Codex, Cursor, Antigravity, OpenCode, Windsurf, and every other agent the [skills CLI](https://skills.sh) supports. Useful variations: - Network accessline 19
[skills CLI](https://skills.sh) supports. Useful variations: - Network accessline 33
git clone https://github.com/dickwu/apple-design-skill.git ~/.claude/skills/apple-design - Network accessline 50
git submodule add https://github.com/dickwu/apple-design-skill.git .design-rules - Network accessline 66
git clone https://github.com/dickwu/apple-design-skill.git .agents/skills/apple-design - Network accessline 188
If this skill saves you review time, you can support its upkeep through [GitHub Sponsors](https://github.com/sponsors/dickwu). One-time and monthly tiers are available, - Network accessline 189
[GitHub Sponsors](https://github.com/sponsors/dickwu). One-time and monthly tiers are available, - Network accessline 194
The guideline text belongs to Apple Inc. and is reproduced from the public [Human Interface Guidelines](https://developer.apple.com/design/human-interface-guidelines/) - Network accessline 195
[Human Interface Guidelines](https://developer.apple.com/design/human-interface-guidelines/)
references/code-audit.md
- Network accessline 48
| SwiftUI | `PayWithApplePayButton` | Set the label and style through its initializer and `payWithApplePayButtonStyle` | | UIKit, AppKit | `PKPaymentButton(paymentButtonType:paymentButtonStyle:)` | Only `cornerRadius` and size are yours to - Network accessline 49
| UIKit, AppKit | `PKPaymentButton(paymentButtonType:paymentButtonStyle:)` | Only `cornerRadius` and size are yours to change | | Web | `<apple-pay-button>` from Apple's `https://applepay.cdn-apple.com/jsapi/1.latest/apple-pay-sdk.js`, or ` - Network accessline 50
| Web | `<apple-pay-button>` from Apple's `https://applepay.cdn-apple.com/jsapi/1.latest/apple-pay-sdk.js`, or `-webkit-appearance: -apple-pay-button` with `-apple-pay-button-type` and `-apple-pay-button-style` | Size the element only throu
references/hig-lookup.md
- Network accessline 207
| Page | Why it is left out | | --- | --- | | [Designing for tvOS](https://developer.apple.com/design/human-interface-guidelines/designing-for-tvos) | tvOS only | - Network accessline 208
| --- | --- | | [Designing for tvOS](https://developer.apple.com/design/human-interface-guidelines/designing-for-tvos) | tvOS only | | [Designing for visionOS](https://developer.apple.com/design/human-interface-guidelines/designing-for-visi - Network accessline 209
| [Designing for tvOS](https://developer.apple.com/design/human-interface-guidelines/designing-for-tvos) | tvOS only | - Network accessline 210
| [Designing for visionOS](https://developer.apple.com/design/human-interface-guidelines/designing-for-visionos) | visionOS only | - Network accessline 211
| [Designing for watchOS](https://developer.apple.com/design/human-interface-guidelines/designing-for-watchos) | watchOS only | - Network accessline 212
| [Immersive experiences](https://developer.apple.com/design/human-interface-guidelines/immersive-experiences) | Only applies to visionOS | - Network accessline 213
| [Spatial layout](https://developer.apple.com/design/human-interface-guidelines/spatial-layout) | Only applies to visionOS | - Network accessline 214
| [Workouts](https://developer.apple.com/design/human-interface-guidelines/workouts) | Apple Watch fitness pattern | - Network accessline 215
| [Lockups](https://developer.apple.com/design/human-interface-guidelines/lockups) | Only applies to tvOS | - Network accessline 216
| [Ornaments](https://developer.apple.com/design/human-interface-guidelines/ornaments) | Only applies to visionOS | - Network accessline 217
| [Digit entry views](https://developer.apple.com/design/human-interface-guidelines/digit-entry-views) | Only applies to tvOS | - Network accessline 218
| [Activity rings](https://developer.apple.com/design/human-interface-guidelines/activity-rings) | Apple Fitness feature | - Network accessline 219
| [Complications](https://developer.apple.com/design/human-interface-guidelines/complications) | Only applies to watchOS | - Network accessline 220
| [Top Shelf](https://developer.apple.com/design/human-interface-guidelines/top-shelf) | Only applies to tvOS | - Network accessline 221
| [Watch faces](https://developer.apple.com/design/human-interface-guidelines/watch-faces) | Only applies to watchOS | - Network accessline 222
| [Action button](https://developer.apple.com/design/human-interface-guidelines/action-button) | Hardware button specific to iPhone and Apple Watch | - Network accessline 223
| [Camera Control](https://developer.apple.com/design/human-interface-guidelines/camera-control) | Hardware control specific to iPhone | - Network accessline 224
| [Digital Crown](https://developer.apple.com/design/human-interface-guidelines/digital-crown) | Only applies to visionOS, watchOS | - Network accessline 225
| [Eyes](https://developer.apple.com/design/human-interface-guidelines/eyes) | Only applies to visionOS | - Network accessline 226
| [Nearby interactions](https://developer.apple.com/design/human-interface-guidelines/nearby-interactions) | Ultra Wideband hardware feature | - Network accessline 227
| [Remotes](https://developer.apple.com/design/human-interface-guidelines/remotes) | Only applies to tvOS | - Network accessline 228
| [Always On](https://developer.apple.com/design/human-interface-guidelines/always-on) | Apple Watch display mode | - Network accessline 229
| [CareKit](https://developer.apple.com/design/human-interface-guidelines/carekit) | Apple health framework | - Network accessline 230
| [CarPlay](https://developer.apple.com/design/human-interface-guidelines/carplay) | Apple car platform | - Network accessline 231
| [Game Center](https://developer.apple.com/design/human-interface-guidelines/game-center) | Apple gaming service | - Network accessline 232
| [HealthKit](https://developer.apple.com/design/human-interface-guidelines/healthkit) | Apple health framework | - Network accessline 233
| [HomeKit](https://developer.apple.com/design/human-interface-guidelines/homekit) | Apple home-automation framework | - Network accessline 234
| [ID Verifier](https://developer.apple.com/design/human-interface-guidelines/id-verifier) | Apple identity service | - Network accessline 235
| [iMessage apps and stickers](https://developer.apple.com/design/human-interface-guidelines/imessage-apps-and-stickers) | iMessage extension format | - Network accessline 236
| [Live Photos](https://developer.apple.com/design/human-interface-guidelines/live-photos) | Apple photo format | - Network accessline 237
| [Mac Catalyst](https://developer.apple.com/design/human-interface-guidelines/mac-catalyst) | Apple porting technology | - Network accessline 238
| [Photo editing](https://developer.apple.com/design/human-interface-guidelines/photo-editing) | Apple Photos extension format | - Network accessline 239
| [ResearchKit](https://developer.apple.com/design/human-interface-guidelines/researchkit) | Apple research framework | - Network accessline 240
| [SharePlay](https://developer.apple.com/design/human-interface-guidelines/shareplay) | FaceTime feature | - Network accessline 241
| [ShazamKit](https://developer.apple.com/design/human-interface-guidelines/shazamkit) | Apple audio-recognition service | - Network accessline 242
| [Tap to Pay on iPhone](https://developer.apple.com/design/human-interface-guidelines/tap-to-pay-on-iphone) | iPhone-specific payment acceptance | - Network accessline 243
| [Wallet](https://developer.apple.com/design/human-interface-guidelines/wallet) | Apple Wallet passes |
references/hig/accessibility.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/accessibility> - Network accessline 18
As you design your app, audit the accessibility of your interface. Use [Accessibility Inspector](https://developer.apple.com/documentation/accessibility/accessibility-inspector) to highlight accessibility issues with your interface and to u - Network accessline 35
**Strive to meet color contrast minimum standards.** To ensure all information in your app is legible, it’s important that there’s enough contrast between foreground text and icons and background colors. Two popular standards of measure for - Network accessline 62
For developer guidance, see [Selecting subtitles and alternative audio tracks](https://developer.apple.com/documentation/avfoundation/selecting-subtitles-and-alternative-audio-tracks). - Network accessline 64
**Use haptics in addition to audio cues.** If your interface conveys information through audio cues — such as a success chime, error sound, or game feedback — consider pairing that sound with matching haptics for people who can’t perceive t - Network accessline 85
**Let people use Voice Control to give guidance and enter information verbally.** With Voice Control, people can interact with their devices entirely by speaking commands. They can perform gestures, interact with screen elements, dictate an - Network accessline 89
**Support mobility-related assistive technologies.** Features like [VoiceOver](voiceover.md), AssistiveTouch, Full Keyboard Access, Pointer Control, and [Switch Control](https://developer.apple.com/documentation/accessibility/switch-control - Network accessline 95
**Let people use the keyboard alone to navigate and interact with your app.** People can turn on Full Keyboard Access to navigate apps using their physical keyboard. The system also defines accessibility keyboard shortcuts and a wide range - Network accessline 97
**Support Switch Control.** Switch Control is an assistive technology that lets people control their devices through separate hardware, game controllers, or sounds such as a click or a pop. People can perform actions like selecting, tapping - Network accessline 109
**Let people control audio and video playback.** Avoid autoplaying audio and video content without also providing controls to start and stop it. Make sure these controls are discoverable and easy to act upon, and consider global settings th - Network accessline 111
**Allow people to opt out of flashing lights in video playback.** People might want to avoid bright, frequent flashes of light in the media they consume. A Dim Flashing Lights setting allows the system to calculate, mitigate, and inform peo - Network accessline 129
For developer guidance, see [Assistive Access](https://developer.apple.com/documentation/accessibility/assistive-access).
references/hig/action-sheets.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/action-sheets> - Network accessline 11
> **Developer note:** When you use SwiftUI, you can offer action sheet functionality in all platforms by specifying a [presentation modifier](https://developer.apple.com/documentation/swiftui/view-presentation) for a confirmation dialog. If - Network accessline 25
**Make destructive choices visually prominent.** Use the destructive style for buttons that perform destructive actions, and place these buttons at the top of the action sheet where they tend to be most noticeable. For developer guidance, s
references/hig/activity-views.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/activity-views>
references/hig/airplay.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/airplay> - Network accessline 14
**Prefer the system-provided media player.** The built-in media player offers a standard set of controls and supports features like chapter navigation, subtitles, closed captioning, and AirPlay streaming. It’s also easy to implement, provid - Network accessline 16
**Provide content in the highest possible resolution.** Your [HTTP Live Streaming](https://developer.apple.com/documentation/http-live-streaming) (HLS) playlist needs to include the full range of available resolutions so that people can exp - Network accessline 18
**Stream only the content people expect.** Avoid streaming content like background loops and short video experiences that make sense only within the context of the app itself. For developer guidance, see [usesExternalPlaybackWhileExternalSc - Network accessline 22
**Support remote control events.** When you do, people can choose actions like play, pause, and fast forward on the lock screen, and through interaction with Siri or HomePod. For developer guidance, see [Remote command center events](https: - Network accessline 26
**Don’t interrupt another app’s playback unless your app is starting to play immersive content.** For example, if your app plays a video when it launches or auto-plays inline videos, play this content on only the local device, while allowin - Network accessline 34
You can download AirPlay icons in [Resources](https://developer.apple.com/design/resources/). You have the following options for displaying the AirPlay icon in your app.
references/hig/alerts.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/alerts> - Network accessline 40
**Write a title that clearly and succinctly describes the situation.** You need to help people quickly understand the situation, so be complete and specific, without being verbose. As much as possible, describe what happened, the context in - Network accessline 50
**Create succinct, logical button titles.** Aim for a one- or two-word title that describes the result of selecting the button. Prefer verbs and verb phrases that relate directly to the alert text — for example, “View All,” “Reply,” or “Ign - Network accessline 80
- Configure repeating alerts to let people suppress subsequent occurrences of the same alert. - Append a custom view if it’s necessary to provide additional information (for developer guidance, see [accessoryView](https://developer.apple.co - Network accessline 81
- Append a custom view if it’s necessary to provide additional information (for developer guidance, see [accessoryView](https://developer.apple.com/documentation/appkit/nsalert/accessoryview)).
references/hig/app-clips.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/app-clips> - Network accessline 32
For developer guidance, see [App Clips](https://developer.apple.com/documentation/appclip). - Network accessline 62
The system imposes limits on App Clips to ensure people’s privacy. For example, App Clips can’t perform background operations. For developer guidance, see [Choosing the right functionality for your App Clip](https://developer.apple.com/docu - Network accessline 83
**Pick the right time to recommend your app.** When someone completes a task or reaches a natural pause, display an [SKOverlay](https://developer.apple.com/documentation/storekit/skoverlay) that allows people to initiate a download of your - Network accessline 87
For developer guidance, see [Recommending your app to App Clip users](https://developer.apple.com/documentation/appclip/recommending-your-app-to-app-clip-users). - Network accessline 99
For developer guidance, see [Enabling notifications in App Clips](https://developer.apple.com/documentation/appclip/enabling-notifications-in-app-clips). - Network accessline 103
If you’re a platform provider who services businesses, you may create several App Clip experiences in [App Store Connect](https://appstoreconnect.apple.com) and use a single App Clip to power them all. To people using the App Clip, it appea - Network accessline 109
For developer guidance, see [Configuring App Clip experiences](https://developer.apple.com/documentation/appclip/configuring-the-launch-experience-of-your-app-clip). - Network accessline 131
App Clip Codes always use the designs Apple provides and follow size, placement, and printing guidelines. Choose between the badge design that uses the App Clip logo ( App Clip) or, when space is at a premium, a design without it. Create A - Network accessline 203
**Adhere to [Guidelines for Using Apple Trademarks](https://www.apple.com/legal/intellectual-property/guidelinesfor3rdparties.html) when referring to your App Clip and App Clip Codes.** For example, Apple trademarks can’t appear in your app - Network accessline 207
Use [App Store Connect](https://appstoreconnect.apple.com) or the [App Clip Code Generator](https://developer.apple.com/app-clips/resources/) command-line tool to create App Clip Codes, and follow best practices to ensure a reliable scannin - Network accessline 211
**Choose colors with enough contrast that ensure accurate scanning.** Each App Clip Code uses three colors: a foreground color, a background color, and a third color that’s generated for you based on the foreground and background colors. Bo - Network accessline 215
App Clip Codes offer the best experience to launch App Clips. As a result, it’s important to manufacture and display App Clip Codes that offer a reliable scanning experience for a long time. You can print App Clip Codes yourself, or work wi - Network accessline 223
**Use correct color settings when you convert the generated SVG file to a CMYK image.** Both the [App Clip Code Generator](https://developer.apple.com/app-clips/resources/) command-line tool and [App Store Connect](https://appstoreconnect.a - Network accessline 231
If you create many App Clip Codes with the [App Clip Code Generator](https://developer.apple.com/app-clips/resources/) tool or [App Store Connect](https://appstoreconnect.apple.com), you’ll likely work with a professional printing service. - Network accessline 235
A reliable scanning experience depends on the quality of your printed App Clip Codes. To ensure printing App Clip Codes results in a reliable scanning experience and to avoid using a printer that can’t print high-quality App Clip Codes, App - Network accessline 259
For more information about using Apple trademarks, see [Guidelines for Using Apple Trademarks](https://www.apple.com/legal/intellectual-property/guidelinesfor3rdparties.html).
references/hig/app-icons.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/app-icons> - Network accessline 24
You use your favorite design tool to craft the individual foreground layers of your app icon. For iOS, iPadOS, macOS, and watchOS icons, you then import your icon layers into Icon Composer, a design tool included with Xcode and available fr - Network accessline 26
For tvOS and visionOS app icons, you add your icon layers directly to an image stack in Xcode to form your complete icon. You can download Parallax Previewer and Parallax Exporter plug-in from [Apple Design Resources](https://developer.appl - Network accessline 42
**Keep primary content centered to avoid truncation when the system adjusts corners or applies masking.** Pay particular attention to centering content in visionOS and watchOS icons. To help with icon placement, use the grids in the app ico - Network accessline 76
> **Note:** Alternate app icons in iOS and iPadOS require their own dark, clear, and tinted variants. As with your default app icon, all alternate and variant icons are subject to app review and must adhere to the [App Review Guidelines](ht
references/hig/app-shortcuts.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/app-shortcuts> - Network accessline 16
App Shortcuts use [App Intents](https://developer.apple.com/documentation/appintents) to define actions within your app to make available to the system. Each App Shortcut includes one or more actions that represent a set of steps people mig - Network accessline 18
For developer guidance, see [App Shortcuts](https://developer.apple.com/documentation/appintents/app-shortcuts). - Network accessline 20
> **Note:** When you use App Intents to make your app’s actions available to the system, in addition to the App Shortcuts that your app provides, people can also make their own custom shortcuts by combining actions in the Shortcuts app. Cus - Network accessline 24
**To surface common types of app functionality throughout the system, consider adopting app schemas instead.** Apps in common domain areas can adopt [app schemas](https://developer.apple.com/documentation/appintents/app-schema-domains) to m - Network accessline 30
**Add flexibility by letting people choose from a set of options.** An App Shortcut can include a single optional value, or parameter, if it makes sense. For example, a meditation app could offer an App Shortcut that lets someone begin a sp - Network accessline 36
**Make App Shortcuts discoverable in your app.** People are most likely to remember and use App Shortcuts for tasks they do often, once they know the shortcut is available. Consider showing occasional tips in your app when people perform co - Network accessline 42
- [Snippets](snippets.md) are great for custom views that display static information or dialog options, like showing the weather at a person’s location or confirming an order. For developer guidance, see [Displaying static and interactive s - Network accessline 43
- [Live Activities](live-activities.md) offer continuous access to information that’s likely to remain relevant and change over a period of time, and are great for timers and countdowns that appear until an event is complete. For developer - Network accessline 45
**Provide enough detail for interaction on audio-only devices.** People can receive responses on audio-only devices such as AirPods and HomePod too, and may not always be able to see content onscreen. Include all critical information in the - Network accessline 49
**Provide brief, memorable activation phrases and natural variants.** Because an App Shortcut phrase (or a variant you define) is what people say to run an App Shortcut with Siri, it’s important to keep it brief to make it easier to remembe
references/hig/apple-in-app-purchase.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/apple-in-app-purchase> - Network accessline 23
For marketing and business guidance, see [Apple In-App Purchase](https://developer.apple.com/in-app-purchase/) and [Auto-renewable subscriptions](https://developer.apple.com/app-store/subscriptions/). For information about what you can and - Network accessline 25
> **Note:** For apps with exceptionally large, frequently updated catalogs of one-time purchases or subscription content from multiple creators, or apps that provide subscriptions with optional add-on content as a single purchase within the - Network accessline 37
**Display your store only when people can make payments.** If someone canʼt make payments — for example, because of parental restrictions — consider hiding your store or displaying UI that explains why the store isnʼt available. For develop - Network accessline 47
**Help people understand the benefits of Family Sharing and how to participate.** When you turn on Family Sharing, people can receive notifications about the change, depending on their current settings. For example, an existing subscriber w - Network accessline 53
Sometimes, people need help with a purchase or want to request a refund. To help make this experience convenient, you can present custom UI within your app that provides assistance, offers alternative solutions, and helps people initiate th - Network accessline 65
**Avoid characterizing or providing guidance on Apple’s refund policies.** For example, don’t speculate about whether customers will receive the refund they request. To help people understand the refund-request process, you can provide a li - Network accessline 112
For developer guidance on implementing offer codes, see [Offer codes](https://developer.apple.com/app-store/subscriptions/#offer-codes) and [Set up offer codes](https://developer.apple.com/help/app-store-connect/manage-subscriptions/set-up- - Network accessline 120
**Consider supporting offer redemption within your app.** The system automatically provides screens that present the offer-redemption flow, whether people redeem the offer in your app or in the App Store. When you use StoreKit API to let pe - Network accessline 124
**Supply an engaging and informative promotional image.** Creating this optional image can help people understand the value of your content. If you don’t supply a promotional image, the code redemption screens use your app icon by default. - Network accessline 132
**Provide summaries of the customer’s subscriptions.** In particular, people appreciate viewing the upcoming renewal date without having to search for it. Consider displaying this information in a settings or account screen, near the subscr - Network accessline 134
**Consider using the system-provided subscription-management UI.** Using StoreKit APIs lets you present a consistent experience that helps people manage or cancel their subscriptions without leaving your app. For developer guidance, see [sh - Network accessline 136
**Encourage a subscriber to keep their subscription or resubscribe later.** When someone attempts to cancel, consider reminding them what they’d lose access to, suggesting a different plan, or offering a discount to encourage them to stay s
references/hig/apple-pay.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/apple-pay> - Network accessline 18
For developer guidance, see [Apple Pay](https://developer.apple.com/documentation/passkit/apple-pay) and [Apple Pay on the Web](https://developer.apple.com/documentation/applepayontheweb). For a hands-on demo of Apple Pay on the web, see [A - Network accessline 24
**Offer Apple Pay on all devices and browsers that support it.** If the device doesn’t support Apple Pay, don’t present Apple Pay as a payment option. For developer guidance, see [PKPaymentAuthorizationController](https://developer.apple.co - Network accessline 26
**Make Apple Pay the primary payment option when credentials are available.** If you use Apple Pay APIs to find out whether someone has an active card in Wallet, you must make Apple Pay the primary — but not necessarily sole — payment optio - Network accessline 38
> **Important:** All websites that offer Apple Pay must include a privacy statement and adhere to the [Acceptable use guidelines for Apple Pay on the web](https://developer.apple.com/apple-pay/acceptable-use-guidelines-for-websites/). - Network accessline 58
**For in-store pickup, help people choose a pickup location before displaying the payment sheet.** After someone chooses a pickup location, show the location’s address on the payment sheet. For developer guidance, see [Displaying a Read-Onl - Network accessline 74
**Let people choose the shipping method in the payment sheet.** To the extent space permits, show a clear description, a cost, and, optionally, an estimated delivery or pickup date — or range of dates — for each available option. Leverage t - Network accessline 78
**Use line items to explain additional charges, discounts, pending costs, add-on donations, recurring payments, and future payments.** A line item includes a label and cost; a line item for a recurring payment can also include a frequency. - Network accessline 116
For developer guidance, see [PKPaymentAuthorizationViewControllerDelegate](https://developer.apple.com/documentation/passkit/pkpaymentauthorizationviewcontrollerdelegate) (iOS, watchOS) and [Apple Pay on the Web](https://developer.apple.co - Network accessline 122
**Accurately report problems to the system.** When a problem occurs, provide a custom error message and the correct status code so the system can show the most relevant error on the payment sheet. For developer guidance, see [PKPaymentError - Network accessline 128
**Handle interruptions correctly.** An event like a cancellation or timeout might interrupt the payment flow, causing the payment sheet to dismiss. When such an event occurs, you must cancel any in-progress payment. After the payment sheet - Network accessline 152
[Approved nonprofits](https://developer.apple.com/support/apple-pay-nonprofits/) can use Apple Pay to accept donations. - Network accessline 168
**Always use the Apple-provided API to display Apple Pay buttons.** Unlike button graphics, API-generated buttons always have the correct appearance and are localized automatically. Don’t create custom Apple Pay button designs or try to rep - Network accessline 185
| *image: button continue with* | An app or website offering a shopping cart or purchase experience that includes other payment buttons that start with the text *Continue*. | | *image: button book with* | An app or website that helps people - Network accessline 186
| *image: button book with* | An app or website that helps people book flights, trips, or other experiences. | | *image: button donate with* | An app or website for an [approved nonprofit](https://developer.apple.com/support/apple-pay-nonpr - Network accessline 187
| *image: button donate with* | An app or website for an [approved nonprofit](https://developer.apple.com/support/apple-pay-nonprofits/) that lets people make donations. | - Network accessline 205
Use the *automatic* style to let the current system appearance determine the appearance of Apple Pay buttons. For developer guidance, see [PKPaymentButtonStyle.automatic](https://developer.apple.com/documentation/passkit/pkpaymentbuttonstyl - Network accessline 227
**Adjust the corner radius to match the appearance of other buttons.** By default, an Apple Pay button has rounded corners. You can change the corner radius to produce a button with square corners or a capsule-shape button. For developer gu - Network accessline 253
Download the Apple Pay mark graphic and full usage guidelines from the [Apple Pay Marketing Guidelines page](https://developer.apple.com/apple-pay/marketing/). - Network accessline 257
You can use plain text to promote Apple Pay and indicate that Apple Pay is a payment option. As with all Apple product names, use Apple Pay exactly as shown in [Apple Trademark List](https://www.apple.com/legal/intellectual-property/tradema - Network accessline 277
**When promoting Apple Pay in an app, follow App Store guidelines.** For specific guidance, see the [App Store marketing guidelines](https://developer.apple.com/app-store/marketing/guidelines/).
references/hig/apple-pencil-and-scribble.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/apple-pencil-and-scribble> - Network accessline 14
For details on Apple Pencil features and compatibility, see [Apple Pencil](https://www.apple.com/apple-pencil/). - Network accessline 40
**Prefer showing hover previews for Apple Pencil, not for a pointing device.** Although a pointing device can also respond to hover gestures, it might be confusing to provide the same visual feedback for both devices. If it makes sense in y - Network accessline 74
**Make Scribble available everywhere people might want to enter text.** Unlike using the keyboard, using Apple Pencil encourages people to treat the screen the way they treat a sheet of paper. Help strengthen this perception in your app by - Network accessline 82
**Give people enough space to write.** A small text field can feel uncomfortable to write in. When you know that Apple Pencil input is likely, improve the writing experience in your app by increasing the size of the text field before people - Network accessline 86
Using [PencilKit](https://developer.apple.com/documentation/pencilkit), you can let people take notes, annotate documents and images, and draw with the same low-latency experience that iOS provides. PencilKit also makes it easy to create a
references/hig/augmented-reality.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/augmented-reality> - Network accessline 11
Using the device’s camera to present the physical world onscreen live, your app can superimpose three-dimensional virtual objects, creating the illusion that these objects actually exist. Depending on the platform and the experiences your a - Network accessline 13
**Offer AR features only on capable devices.** If your app’s primary purpose is AR, make your app available only to devices that support ARKit. If your app includes features that require specific AR capabilities, or if AR features are optio - Network accessline 15
> **Note:** The following guidance applies to apps that run in iOS and iPadOS. To learn about using ARKit to create immersive augmented reality experiences in visionOS, see [ARKit](https://developer.apple.com/documentation/arkit). - Network accessline 43
Before people can enjoy an AR experience in your app, they need to move their device in ways that lets ARKit evaluate the surroundings and detect surfaces. Consider using the built-in coaching view to show people what to do and provide feed - Network accessline 53
**When people place an object, immediately integrate that object into the AR environment.** Although surface detection quickly and progressively refines accuracy, it’s best to avoid waiting for more accurate data before placing an object. U - Network accessline 83
When multiple people share your app’s AR experience, each participant maps the environment independently and ARKit automatically merges the maps. For developer guidance, see [isCollaborationEnabled](https://developer.apple.com/documentation - Network accessline 85
**Consider allowing people occlusion.** If your app supports placing virtual objects behind people who appear in the device’s camera feed, enhance the illusion of reality by letting the people occlude the objects. For developer guidance, se - Network accessline 87
**When possible, let new participants enter a multiuser AR experience.** Unless your app requires all participants to join before the experience begins, consider using implicit map merging to let new people quickly join an ongoing AR experi - Network accessline 91
You can enhance an AR experience by using known images and objects in the real-world environment to make virtual content appear. For example, an app that recognizes theater posters for a sci-fi film could cause virtual space ships to emerge - Network accessline 118
ARKit can’t track device position and orientation during an interruption, such as when people briefly switch to another app or accept a phone call. After an interruption ends, previously placed virtual objects are likely to appear in the wr - Network accessline 144
Apps can display an AR icon in controls that launch ARKit-based experiences. You can download this icon in [Resources](https://developer.apple.com/design/resources/#ios-apps). - Network accessline 152
**Use the AR badges as intended and don’t alter them.** You can download AR badges, available in collapsed and expanded form, in [Resources](https://developer.apple.com/design/resources/#ios-apps). Use these images exclusively to identify p
references/hig/boxes.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/boxes>
references/hig/branding.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/branding> - Network accessline 12
In addition to expressing your brand in your [app icon](app-icons.md) and throughout your experience, you have several opportunities to highlight it within the App Store. For guidance, see [App Store Marketing Guidelines](https://developer. - Network accessline 32
**Follow Apple’s trademark guidelines.** Apple trademarks must not appear in your app name or images. See [Apple Trademark List](https://www.apple.com/legal/intellectual-property/trademark/appletmlist.html) and [Guidelines for Using Apple T
references/hig/buttons.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/buttons> - Network accessline 46
**Consider using text when a short label communicates more clearly than an icon.** To use text, write a few words that succinctly describe what the button does. Using [title-style capitalization](https://help.apple.com/applestyleguide/#/aps - Network accessline 77
**Use a flexible-height push button only when you need to display tall or variable height content.** Flexible-height buttons support the same configurations as regular push buttons — and they use the same corner radius and content padding — - Network accessline 95
For developer guidance, see [NSButton.BezelStyle.smallSquare](https://developer.apple.com/documentation/appkit/nsbutton/bezelstyle-swift.enum/smallsquare). - Network accessline 127
**Include about 10 pixels of padding between the edges of the image and the button edges.** An image button’s edges define its clickable area even when they aren’t visible. Including padding ensures that a click registers correctly even if
references/hig/charting-data.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/charting-data>
references/hig/charts.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/charts> - Network accessline 17
To learn about designing charts to enhance your experience, see [Charting data](charting-data.md); for developer guidance, see [Creating a chart using Swift Charts](https://developer.apple.com/documentation/charts/creating-a-chart-using-swi - Network accessline 39
**Choose a mark type based on the information you want to communicate about the data.** Some of the most familiar mark types are bar, line, and point; for developer guidance on these and other mark types, see [Swift Charts](https://develope - Network accessline 73
**Make every chart in your app accessible.** Charts — like all infographics — need to be fully accessible to everyone, regardless of how they perceive content. For example, it’s essential to support VoiceOver, which describes onscreen conte - Network accessline 79
**Make an interactive chart easy to navigate when using keyboard commands (including full keyboard access) or Switch Control.** By default, these input types tend to visit individual onscreen elements in a linear sequence, such as the seque - Network accessline 81
**Help people notice important changes in a chart.** For example, if people don’t notice when marks or axes change, they can misread a chart. Animating such changes can help people notice them, but you need to highlight the changes in other - Network accessline 95
When you use Swift Charts to create a chart, you get a default implementation of [Audio graphs](https://developer.apple.com/documentation/accessibility/audio-graphs), in addition to a default accessibility element for each mark (or group of
references/hig/collaboration-and-sharing.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/collaboration-and-sharing> - Network accessline 16
You can take advantage of Messages integration and the system-provided sharing interfaces whether you implement collaboration and sharing through CloudKit, iCloud Drive, or a custom solution. To offer these features when you use a custom co - Network accessline 22
**Place the Share button in a convenient location, like a toolbar, to make it easy for people to start sharing or collaborating.** In iOS 16, the system-provided share sheet includes ways to choose a file-sharing method and set permissions - Network accessline 36
**Consider posting collaboration event notifications in Messages.** Choose the type of event that occurred — such as a change in the content or the collaboration membership, or the mention of a participant — and include a universal link peo
references/hig/collections.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/collections>
references/hig/color-wells.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/color-wells>
references/hig/color.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/color> - Network accessline 24
**Test your app on different devices.** For example, the True Tone display — available on certain iPhone, iPad, and Mac models — uses ambient light sensors to automatically adjust the white point of the display to adapt to the lighting cond - Network accessline 28
**If your app lets people choose colors, prefer system-provided color controls where available.** Using built-in color pickers provides a consistent user experience, in addition to letting people save a set of colors they can access from an - Network accessline 40
**Avoid hard-coding system color values in your app.** Documented color values are for your reference during the app design process. The actual color values may fluctuate from release to release, based on a variety of environmental variable - Network accessline 44
**Avoid redefining the semantic meanings of dynamic system colors.** To ensure a consistent experience and ensure your interface looks great when the appearance of the platform changes, use dynamic system colors as intended. For example, do - Network accessline 74
iOS defines two sets of dynamic background colors — *system* and *grouped* — each of which contains primary, secondary, and tertiary variants that help you convey a hierarchy of information. In general, use the grouped background colors ([s - Network accessline 84
| Color | Use for… | UIKit API | | --- | --- | --- | | Label | A text label that contains primary content. | [label](https://developer.apple.com/documentation/uikit/uicolor/label) | - Network accessline 85
| --- | --- | --- | | Label | A text label that contains primary content. | [label](https://developer.apple.com/documentation/uikit/uicolor/label) | | Secondary label | A text label that contains secondary content. | [secondaryLabel](https: - Network accessline 86
| Label | A text label that contains primary content. | [label](https://developer.apple.com/documentation/uikit/uicolor/label) | - Network accessline 87
| Secondary label | A text label that contains secondary content. | [secondaryLabel](https://developer.apple.com/documentation/uikit/uicolor/secondarylabel) | - Network accessline 88
| Tertiary label | A text label that contains tertiary content. | [tertiaryLabel](https://developer.apple.com/documentation/uikit/uicolor/tertiarylabel) | - Network accessline 89
| Quaternary label | A text label that contains quaternary content. | [quaternaryLabel](https://developer.apple.com/documentation/uikit/uicolor/quaternarylabel) | - Network accessline 90
| Placeholder text | Placeholder text in controls or text views. | [placeholderText](https://developer.apple.com/documentation/uikit/uicolor/placeholdertext) | - Network accessline 91
| Separator | A separator that allows some underlying content to be visible. | [separator](https://developer.apple.com/documentation/uikit/uicolor/separator) | - Network accessline 92
| Opaque separator | A separator that doesn’t allow any underlying content to be visible. | [opaqueSeparator](https://developer.apple.com/documentation/uikit/uicolor/opaqueseparator) | - Network accessline 93
| Link | Text that functions as a link. | [link](https://developer.apple.com/documentation/uikit/uicolor/link) | - Network accessline 99
| Color | Use for… | AppKit API | | --- | --- | --- | | Alternate selected control text color | The text on a selected surface in a list or table. | [alternateSelectedControlTextColor](https://developer.apple.com/documentation/appkit/nscolo - Network accessline 100
| --- | --- | --- | | Alternate selected control text color | The text on a selected surface in a list or table. | [alternateSelectedControlTextColor](https://developer.apple.com/documentation/appkit/nscolor/alternateselectedcontroltextcolo - Network accessline 101
| Alternate selected control text color | The text on a selected surface in a list or table. | [alternateSelectedControlTextColor](https://developer.apple.com/documentation/appkit/nscolor/alternateselectedcontroltextcolor) | - Network accessline 102
| Alternating content background colors | The backgrounds of alternating rows or columns in a list, table, or collection view. | [alternatingContentBackgroundColors](https://developer.apple.com/documentation/appkit/nscolor/alternatingconten - Network accessline 103
| Control accent | The accent color people select in System Settings. | [controlAccentColor](https://developer.apple.com/documentation/appkit/nscolor/controlaccentcolor) | - Network accessline 104
| Control background color | The background of a large interface element, such as a browser or table. | [controlBackgroundColor](https://developer.apple.com/documentation/appkit/nscolor/controlbackgroundcolor) | - Network accessline 105
| Control color | The surface of a control. | [controlColor](https://developer.apple.com/documentation/appkit/nscolor/controlcolor) | - Network accessline 106
| Control text color | The text of a control that is available. | [controlTextColor](https://developer.apple.com/documentation/appkit/nscolor/controltextcolor) | - Network accessline 107
| Current control tint | The system-defined control tint. | [currentControlTint](https://developer.apple.com/documentation/appkit/nscolor/currentcontroltint) | - Network accessline 108
| Unavailable control text color | The text of a control that’s unavailable. | [disabledControlTextColor](https://developer.apple.com/documentation/appkit/nscolor/disabledcontroltextcolor) | - Network accessline 109
| Find highlight color | The color of a find indicator. | [findHighlightColor](https://developer.apple.com/documentation/appkit/nscolor/findhighlightcolor) | - Network accessline 110
| Grid color | The gridlines of an interface element, such as a table. | [gridColor](https://developer.apple.com/documentation/appkit/nscolor/gridcolor) | - Network accessline 111
| Header text color | The text of a header cell in a table. | [headerTextColor](https://developer.apple.com/documentation/appkit/nscolor/headertextcolor) | - Network accessline 112
| Highlight color | The virtual light source onscreen. | [highlightColor](https://developer.apple.com/documentation/appkit/nscolor/highlightcolor) | - Network accessline 113
| Keyboard focus indicator color | The ring that appears around the currently focused control when using the keyboard for interface navigation. | [keyboardFocusIndicatorColor](https://developer.apple.com/documentation/appkit/nscolor/keyboar - Network accessline 114
| Label color | The text of a label containing primary content. | [labelColor](https://developer.apple.com/documentation/appkit/nscolor/labelcolor) | - Network accessline 115
| Link color | A link to other content. | [linkColor](https://developer.apple.com/documentation/appkit/nscolor/linkcolor) | - Network accessline 116
| Placeholder text color | A placeholder string in a control or text view. | [placeholderTextColor](https://developer.apple.com/documentation/appkit/nscolor/placeholdertextcolor) | - Network accessline 117
| Quaternary label color | The text of a label of lesser importance than a tertiary label, such as watermark text. | [quaternaryLabelColor](https://developer.apple.com/documentation/appkit/nscolor/quaternarylabelcolor) | - Network accessline 118
| Secondary label color | The text of a label of lesser importance than a primary label, such as a label used to represent a subheading or additional information. | [secondaryLabelColor](https://developer.apple.com/documentation/appkit/nsco - Network accessline 119
| Selected content background color | The background for selected content in a key window or view. | [selectedContentBackgroundColor](https://developer.apple.com/documentation/appkit/nscolor/selectedcontentbackgroundcolor) | - Network accessline 120
| Selected control color | The surface of a selected control. | [selectedControlColor](https://developer.apple.com/documentation/appkit/nscolor/selectedcontrolcolor) | - Network accessline 121
| Selected control text color | The text of a selected control. | [selectedControlTextColor](https://developer.apple.com/documentation/appkit/nscolor/selectedcontroltextcolor) | - Network accessline 122
| Selected menu item text color | The text of a selected menu. | [selectedMenuItemTextColor](https://developer.apple.com/documentation/appkit/nscolor/selectedmenuitemtextcolor) | - Network accessline 123
| Selected text background color | The background of selected text. | [selectedTextBackgroundColor](https://developer.apple.com/documentation/appkit/nscolor/selectedtextbackgroundcolor) | - Network accessline 124
| Selected text color | The color for selected text. | [selectedTextColor](https://developer.apple.com/documentation/appkit/nscolor/selectedtextcolor) | - Network accessline 125
| Separator color | A separator between different sections of content. | [separatorColor](https://developer.apple.com/documentation/appkit/nscolor/separatorcolor) | - Network accessline 126
| Shadow color | The virtual shadow cast by a raised object onscreen. | [shadowColor](https://developer.apple.com/documentation/appkit/nscolor/shadowcolor) | - Network accessline 127
| Tertiary label color | The text of a label of lesser importance than a secondary label. | [tertiaryLabelColor](https://developer.apple.com/documentation/appkit/nscolor/tertiarylabelcolor) | - Network accessline 128
| Text background color | The background color behind text. | [textBackgroundColor](https://developer.apple.com/documentation/appkit/nscolor/textbackgroundcolor) | - Network accessline 129
| Text color | The text in a document. | [textColor](https://developer.apple.com/documentation/appkit/nscolor/textcolor) | - Network accessline 130
| Under page background color | The background behind a document’s content. | [underPageBackgroundColor](https://developer.apple.com/documentation/appkit/nscolor/underpagebackgroundcolor) | - Network accessline 131
| Unemphasized selected content background color | The selected content in a non-key window or view. | [unemphasizedSelectedContentBackgroundColor](https://developer.apple.com/documentation/appkit/nscolor/unemphasizedselectedcontentbackgrou - Network accessline 132
| Unemphasized selected text background color | A background for selected text in a non-key window or view. | [unemphasizedSelectedTextBackgroundColor](https://developer.apple.com/documentation/appkit/nscolor/unemphasizedselectedtextbackgro - Network accessline 133
| Unemphasized selected text color | Selected text in a non-key window or view. | [unemphasizedSelectedTextColor](https://developer.apple.com/documentation/appkit/nscolor/unemphasizedselectedtextcolor) | - Network accessline 134
| Window background color | The background of a window. | [windowBackgroundColor](https://developer.apple.com/documentation/appkit/nscolor/windowbackgroundcolor) | - Network accessline 135
| Window frame text color | The text in the window’s title bar area. | [windowFrameTextColor](https://developer.apple.com/documentation/appkit/nscolor/windowframetextcolor) | - Network accessline 147
| Name | SwiftUI API | Default (light) | Default (dark) | Increased contrast (light) | Increased contrast (dark) | | --- | --- | --- | --- | --- | --- | | Red | [red](https://developer.apple.com/documentation/swiftui/color/red) | *image: co - Network accessline 148
| --- | --- | --- | --- | --- | --- | | Red | [red](https://developer.apple.com/documentation/swiftui/color/red) | *image: colors unified red light* | *image: colors unified red dark* | *image: colors unified accessible red light* | *image: - Network accessline 149
| Red | [red](https://developer.apple.com/documentation/swiftui/color/red) | *image: colors unified red light* | *image: colors unified red dark* | *image: colors unified accessible red light* | *image: colors unified accessible red dark* | - Network accessline 150
| Orange | [orange](https://developer.apple.com/documentation/swiftui/color/orange) | *image: colors unified orange light* | *image: colors unified orange dark* | *image: colors unified accessible orange light* | *image: colors unified acce - Network accessline 151
| Yellow | [yellow](https://developer.apple.com/documentation/swiftui/color/yellow) | *image: colors unified yellow light* | *image: colors unified yellow dark* | *image: colors unified accessible yellow light* | *image: colors unified acce - Network accessline 152
| Green | [green](https://developer.apple.com/documentation/swiftui/color/green) | *image: colors unified green light* | *image: colors unified green dark* | *image: colors unified accessible green light* | *image: colors unified accessible - Network accessline 153
| Mint | [mint](https://developer.apple.com/documentation/swiftui/color/mint) | *image: colors unified mint light* | *image: colors unified mint dark* | *image: colors unified accessible mint light* | *image: colors unified accessible mint - Network accessline 154
| Teal | [teal](https://developer.apple.com/documentation/swiftui/color/teal) | *image: colors unified teal light* | *image: colors unified teal dark* | *image: colors unified accessible teal light* | *image: colors unified accessible teal - Network accessline 155
| Cyan | [cyan](https://developer.apple.com/documentation/swiftui/color/cyan) | *image: colors unified cyan light* | *image: colors unified cyan dark* | *image: colors unified accessible cyan light* | *image: colors unified accessible cyan - Network accessline 156
| Blue | [blue](https://developer.apple.com/documentation/swiftui/color/blue) | *image: colors unified blue light* | *image: colors unified blue dark* | *image: colors unified accessible blue light* | *image: colors unified accessible blue - Network accessline 157
| Indigo | [indigo](https://developer.apple.com/documentation/swiftui/color/indigo) | *image: colors unified indigo light* | *image: colors unified indigo dark* | *image: colors unified accessible indigo light* | *image: colors unified acce - Network accessline 158
| Purple | [purple](https://developer.apple.com/documentation/swiftui/color/purple) | *image: colors unified purple light* | *image: colors unified purple dark* | *image: colors unified accessible purple light* | *image: colors unified acce - Network accessline 159
| Pink | [pink](https://developer.apple.com/documentation/swiftui/color/pink) | *image: colors unified pink light* | *image: colors unified pink dark* | *image: colors unified accessible pink light* | *image: colors unified accessible pink - Network accessline 160
| Brown | [brown](https://developer.apple.com/documentation/swiftui/color/brown) | *image: colors unified brown light* | *image: colors unified brown dark* | *image: colors unified accessible brown light* | *image: colors unified accessible - Network accessline 166
| Name | UIKit API | Default (light) | Default (dark) | Increased contrast (light) | Increased contrast (dark) | | --- | --- | --- | --- | --- | --- | | Gray | [systemGray](https://developer.apple.com/documentation/uikit/uicolor/systemgray) - Network accessline 167
| --- | --- | --- | --- | --- | --- | | Gray | [systemGray](https://developer.apple.com/documentation/uikit/uicolor/systemgray) | *image: ios default systemgray* | *image: ios default systemgraydark* | *image: ios accessible systemgray* | * - Network accessline 168
| Gray | [systemGray](https://developer.apple.com/documentation/uikit/uicolor/systemgray) | *image: ios default systemgray* | *image: ios default systemgraydark* | *image: ios accessible systemgray* | *image: ios accessible systemgraydark* - Network accessline 169
| Gray (2) | [systemGray2](https://developer.apple.com/documentation/uikit/uicolor/systemgray2) | *image: ios default systemgray2* | *image: ios default systemgray2dark* | *image: ios accessible systemgray2* | *image: ios accessible systemg - Network accessline 170
| Gray (3) | [systemGray3](https://developer.apple.com/documentation/uikit/uicolor/systemgray3) | *image: ios default systemgray3* | *image: ios default systemgray3dark* | *image: ios accessible systemgray3* | *image: ios accessible systemg - Network accessline 171
| Gray (4) | [systemGray4](https://developer.apple.com/documentation/uikit/uicolor/systemgray4) | *image: ios default systemgray4* | *image: ios default systemgray4dark* | *image: ios accessible systemgray4* | *image: ios accessible systemg - Network accessline 172
| Gray (5) | [systemGray5](https://developer.apple.com/documentation/uikit/uicolor/systemgray5) | *image: ios default systemgray5* | *image: ios default systemgray5dark* | *image: ios accessible systemgray5* | *image: ios accessible systemg - Network accessline 173
| Gray (6) | [systemGray6](https://developer.apple.com/documentation/uikit/uicolor/systemgray6) | *image: ios default systemgray6* | *image: ios default systemgray6dark* | *image: ios accessible systemgray6* | *image: ios accessible systemg - Network accessline 175
In SwiftUI, the equivalent of `systemGray` is [gray](https://developer.apple.com/documentation/swiftui/color/gray).
references/hig/column-views.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/column-views>
references/hig/combo-boxes.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/combo-boxes>
references/hig/context-menus.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/context-menus> - Network accessline 38
**In iOS, iPadOS, and visionOS, warn people about context menu items that can destroy data.** If you need to include potentially destructive items in your context menu — such as Delete or Remove — list them at the end of the menu and identi - Network accessline 60
**Ensure that your preview looks good as it animates.** As people reveal a context menu on an onscreen object, the system animates the preview image as it emerges from the content, dimming the screen behind the preview and the menu. It’s im
references/hig/controls.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/controls> - Network accessline 34
**Use symbol animations to highlight state changes.** For control toggles, animate the transition between both on and off states. For control buttons with actions that have a duration, animate indefinitely while the action performs and stop - Network accessline 38
**Help people provide additional information the system needs to perform an action.** A person may need to configure a control to perform a desired action — for example, select a specific light in a house to turn on and off. If a control re - Network accessline 40
**Provide hint text for the Action button.** When a person presses the Action button, the system displays hint text to help them understand what happens when they press and hold. When someone presses and holds the Action button, the system - Network accessline 46
**Require authentication for actions that affect security.** For example, require people to unlock their device to access controls to lock or unlock the door to their house or start their car. For developer guidance, see [IntentAuthenticati - Network accessline 50
If your app supports camera capture, starting with iOS 18 you can create a control that launches directly to your app’s camera experience while the device is locked. For any task beyond capture, a person must authenticate and unlock their d
references/hig/dark-mode.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/dark-mode> - Network accessline 28
**Embrace colors that adapt to the current appearance.** Semantic colors (like [labelColor](https://developer.apple.com/documentation/appkit/nscolor/labelcolor) and [controlColor](https://developer.apple.com/documentation/appkit/nscolor/con
references/hig/design-principles.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/design-principles>
references/hig/designing-for-games.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/designing-for-games> - Network accessline 12
As you create or adapt a game for Apple platforms, learn how to integrate the fundamental platform characteristics and patterns that help your game feel at home on all Apple devices. To learn what makes each platform unique, see [Designing - Network accessline 26
**Make sure text is always legible.** When game text is hard to read, people can struggle to follow the narrative, understand important instructions and information, and stay engaged in the experience. To keep text comfortably legible on e - Network accessline 42
**Integrate device features into your layout.** For example, a device may have rounded corners or a camera housing that can affect parts of your interface. To help your game look at home on each device, accommodate such features during lay - Network accessline 72
**Help players personalize their experience.** Players have a variety of preferences and abilities that influence their interactions with your game. Because there’s no universal configuration that suits everyone, give players the ability t - Network accessline 80
**Integrate Game Center to help players discover your game across their devices and connect with their friends.** [Game Center](https://developer.apple.com/game-center/) is Apple’s social gaming network, available on all platforms. Game Ce - Network accessline 82
**Let players pick up their game on any of their devices.** People often have a single iCloud account that they use across multiple Apple devices. When you support [GameSave](https://developer.apple.com/documentation/gamesave), you can hel - Network accessline 84
**Support haptics to help players feel the action.** When you adopt Core Haptics, you can compose and play custom haptic patterns, optionally combined with custom audio content. Core Haptics is available in iOS, iPadOS, tvOS, and visionOS, - Network accessline 86
**Use Spatial Audio to immerse players in your game’s soundscape.** Providing multichannel audio can help your game’s audio adapt automatically to the current device, enabling an immersive Spatial Audio experience where supported. For guid - Network accessline 88
**Take advantage of Apple technologies to enable unique gameplay mechanics.** For example, you can integrate technologies like augmented reality, machine learning, and [HealthKit](https://developer.apple.com/documentation/healthkit), and r
references/hig/designing-for-ios.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/designing-for-ios>
references/hig/designing-for-ipados.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/designing-for-ipados>
references/hig/designing-for-iphone-duo.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/designing-for-iphone-duo> - Network accessline 12
iPhone Duo has two displays, each with its own front-facing camera. A hinge in the center lets people open and close the device, and supports a variety of ways to hold and position it. This range of display sizes and poses makes an adaptabl - Network accessline 34
You can use [Device Hub](https://developer.apple.com/documentation/xcode/device-hub) in Xcode to preview your app on iPhone Duo and test how your app appears in its various poses. - Network accessline 54
For guidance, see [Layout](layout.md). For margins and safe areas, see [Apple Design Resources](https://developer.apple.com/design/resources/). For developer guidance, see [safeAreaInsets](https://developer.apple.com/documentation/swiftui/g - Network accessline 68
Many system components automatically adapt to reserved regions. Components like alerts, context menus, and sheets automatically move to account for the fold, while larger components like [split views](#split-views) adapt their columns’ widt - Network accessline 80
For general guidance, see [split views](split-views.md). For developer guidance, see [NavigationSplitView](https://developer.apple.com/documentation/swiftui/navigationsplitview) (SwiftUI) and [UISplitViewController](https://developer.apple. - Network accessline 95
For developer guidance, see [ArrangementView](https://developer.apple.com/documentation/swiftui/arrangementview) (SwiftUI) and [UIArrangementViewController](https://developer.apple.com/documentation/uikit/uiarrangementviewcontroller) (UIKit - Network accessline 97
**Consider an arrangement view when your layout already resembles one.** A layout that places two views side by side or one above the other, such as an [HStack](https://developer.apple.com/documentation/swiftui/hstack) or [VStack](https://d - Network accessline 117
**Prioritize frequently used toolbar items to keep them easily available.** Items overflow from bottom to top by default. Assign each item a visibility priority to change that order, starting with whole groups and then individual items with - Network accessline 125
**Group related toolbar items instead of spacing them manually.** Groups you create with [ToolbarItemGroup](https://developer.apple.com/documentation/swiftui/toolbaritemgroup) (SwiftUI) or [UIBarButtonItemGroup](https://developer.apple.com/ - Network accessline 129
**Provide both a title and a symbol for each toolbar item that isn’t text-only.** Giving both lets the system pick the right representation for the context. Include a title even when an item shows a symbol, because the system uses the title - Network accessline 135
In task-oriented experiences, minimize the tab bar to preserve the toolbar actions that are central to completing the task. This mirrors the minimized tab bar behavior present on other iPhone devices. For developer guidance, see [ToolbarVer - Network accessline 139
**Use the system overflow menu.** If your app has its own overflow menu, move those actions into the system menu so people find everything in one place. Reserve the ellipsis symbol for overflow, and give other menus a distinct symbol. For d
references/hig/designing-for-macos.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/designing-for-macos>
references/hig/disclosure-controls.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/disclosure-controls> - Network accessline 25
For developer guidance, see [NSButton.BezelStyle.disclosure](https://developer.apple.com/documentation/appkit/nsbutton/bezelstyle-swift.enum/disclosure). - Network accessline 39
For developer guidance, see [NSButton.BezelStyle.pushDisclosure](https://developer.apple.com/documentation/appkit/nsbutton/bezelstyle-swift.enum/pushdisclosure). - Network accessline 47
Disclosure controls are available in iOS, iPadOS, and visionOS with the SwiftUI [DisclosureGroup](https://developer.apple.com/documentation/swiftui/disclosuregroup) view.
references/hig/dock-menus.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/dock-menus>
references/hig/drag-and-drop.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/drag-and-drop> - Network accessline 27
**Offer alternative ways to accomplish drag-and-drop actions.** Sometimes, drag-and-drop operations are inconvenient or impossible for people to perform, so it’s important to provide other ways to do the same things. For example, you can in
references/hig/edit-menus.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/edit-menus> - Network accessline 25
**Prefer the system-provided edit menu.** People are familiar with the contents and behavior of the system-provided component, so creating a custom menu that presents the same commands is redundant and likely to be confusing. For a list of
references/hig/entering-data.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/entering-data> - Network accessline 23
**Use a secure text-entry field when appropriate.** If your app or game needs sensitive data, use a field that obscures people’s input as they enter it, typically by displaying a small filled circle symbol for each character. For developer - Access to secretsline 25
[Credential-related source omitted]
references/hig/feedback.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/feedback>
references/hig/file-management.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/file-management> - Network accessline 42
Starting in iOS 18 and iPadOS 18, document-based apps can use the system’s document launcher to give people a consistent, highly graphical way to browse, open, and create files. The document launcher presents a full-screen experience that h - Network accessline 62
If your app can share its files with other apps, you can create a file provider app extension that displays a custom interface for importing, exporting, opening, and moving your app’s documents. For developer guidance, see [File Provider](h - Network accessline 70
Your app can also let people browse and open files from other apps. For developer guidance, see [Adding a document browser to your app](https://developer.apple.com/documentation/uikit/adding-a-document-browser-to-your-app). - Network accessline 86
If your app syncs local and remote files, you can create a Finder Sync app extension to express file synchronization status and control within the Finder. For developer guidance, see [Finder Sync](https://developer.apple.com/documentation/f
references/hig/focus-and-selection.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/focus-and-selection> - Network accessline 26
**Indicate focus using visual appearances that are consistent with the platform.** For example, consider a window that contains a list of items. In iPadOS and macOS, the system draws focused list items using white text and a background high - Network accessline 47
**Customize the halo focus effect when necessary.** By default, the system uses an item’s shape to infer the shape of its halo. If the system-provided halo doesn’t give you the appearance you want, you can refine it to match contours like r - Network accessline 49
The *highlighted* appearance — in which the component’s text uses the app’s accent color — also indicates focus, but it’s not a focus effect. The highlight appearance occurs automatically when people select a collection view cell on which y - Network accessline 51
**Ensure that focus moves through your custom views in ways that make sense.** As people continue pressing the Tab key, focus moves through focus groups in reading order: leading to trailing, and top to bottom. Although focus moves through - Network accessline 53
**Adjust the priority of an item to reflect its importance within a focus group.** When a group receives focus, its *primary item* automatically receives focus too, making it easy for people to select the item they’re most likely to want. Y
references/hig/game-controls.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/game-controls> - Network accessline 21
For iOS and iPadOS games, supporting touch interaction means that you can provide virtual controls on top of game content while also letting players interact with game elements by touching them directly. You can use the [Touch Controller](h - Network accessline 43
**Support the platform’s default interaction method.** A game controller is an optional purchase, but every iPhone and iPad has a touchscreen, every Mac has a keyboard and a trackpad or mouse, every Apple TV has a remote, and every Apple Vi - Network accessline 45
**Tell people about game controller requirements.** In tvOS and visionOS, you can require the use of a physical game controller. The App Store displays a “Game Controller Required” badge to help people identify such apps. Remember that peop - Network accessline 47
**Automatically detect whether a controller is paired.** Instead of having players manually set up a physical game controller, you can automatically detect whether a controller is paired and get its profile. For developer documentation, see - Network accessline 49
**Customize onscreen content to match the connected game controller.** To simplify your game’s code, the Game Controller framework assigns standard names to controller elements based on their placement, but the colors and symbols on an actu
references/hig/gauges.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/gauges>
references/hig/generative-ai.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/generative-ai> - Network accessline 36
**Ask permission before using personal information and usage data.** Some interactions with an AI model may involve sensitive information, like personal details, messages, photos, and feature usage information. After obtaining permission, u - Network accessline 42
**Thoughtfully evaluate model capabilities.** There are different types of generative models, some of which possess general knowledge, while others are trained for specific tasks. It’s important to understand the capabilities of any model y - Network accessline 64
**Factor processing time into your design.** *Latency* is how much time it takes for a model to produce an output. Non-generative models, such as [body position tracking in ARKit](https://developer.apple.com/documentation/arkit/capturing-bo
references/hig/gestures.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/gestures> - Network accessline 64
The system provides APIs that support the familiar gestures people use with their devices, whether they use a touchscreen, an indirect gesture in visionOS, or an input device like a trackpad, mouse, remote, or game controller. For developer
references/hig/going-full-screen.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/going-full-screen> - Network accessline 22
**Except in games, let people reveal the Dock while your iPadOS or macOS app is in full-screen mode.** In iPadOS and macOS, it’s important to preserve access to the Dock so people can quickly open other apps and Dock items. To help prevent - Network accessline 36
**Consider deferring system gestures to prevent accidental exits in a full-screen app or game.** By default, the Home Screen indicator automatically hides shortly after someone switches to your app or game. It reappears when someone interac - Network accessline 40
**Use the system-provided full-screen experience.** Using the system’s full-screen support ensures that your full-screen window works well in all contexts. For example, some Mac models include a camera housing that occupies an area at the t - Network accessline 44
For additional developer guidance, see [Managing your game window for Metal in macOS](https://developer.apple.com/documentation/metal/managing-your-game-window-for-metal-in-macos).
references/hig/gyro-and-accelerometer.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/gyro-and-accelerometer> - Network accessline 11
You can use accelerometer and gyroscope data to provide experiences based on real-time, motion-based information in apps and games that run in iOS, iPadOS, and watchOS. tvOS apps can use gyroscope data from the Siri Remote. For developer gu
references/hig/home-screen-quick-actions.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/home-screen-quick-actions> - Network accessline 25
If you design your own interface icon, use the Quick Action Icon Template that’s included with [Apple Design Resources for iOS and iPadOS](https://developer.apple.com/design/resources/#ios-apps).
references/hig/icloud.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/icloud> - Network accessline 34
**For games, consider saving player progress in iCloud.** Although you can implement this functionality yourself, the GameSave framework offers an efficient solution. It synchronizes save data across devices and offers built-in alerts you c
references/hig/icons.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/icons> - Network accessline 40
**Avoid using replicas of Apple hardware products.** Hardware designs tend to change frequently and can make your interface icons and other content appear dated. If you must display Apple hardware, use only the images available in [Apple De - Possible obfuscationline 87
| <U+200B><U+200B>Align Left | *image: icons symbols meaning align left* | `text.alignleft` |
references/hig/image-views.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/image-views>
references/hig/image-wells.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/image-wells>
references/hig/images.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/images>
references/hig/inclusion.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/inclusion> - Network accessline 50
**Consider carefully before including humor.** Humor is highly subjective and — similar to colloquial expressions — difficult to translate from one culture to another. Including humor in your experience risks confusing people who donʼt unde - Network accessline 114
**Take a people-first approach when writing about people with disabilities.** For example, you could describe an individual’s accomplishments and goals before mentioning a disability they may have. If you’re writing about a specific person - Network accessline 122
People expect to customize their device by choosing a language for text and a region for formatting values like date, time, and money. To welcome a global audience, first prepare your software to handle languages and regions other than your
references/hig/keyboards.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/keyboards> - Network accessline 20
**Support Full Keyboard Access when possible.** Available in iOS, iPadOS, macOS, and visionOS, Full Keyboard Access lets people navigate and activate windows, menus, controls, and system features using only the keyboard. To test Full Keyboa - Network accessline 22
> **Important:** Although iPadOS supports keyboard navigation in text fields, text views, and sidebars, and provides APIs you can use to support it in collection views and other custom views, avoid supporting keyboard navigation for control
references/hig/labels.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/labels> - Network accessline 20
> **Developer note:** To display uneditable text, SwiftUI defines two components: [Label](https://developer.apple.com/documentation/swiftui/label) and [Text](https://developer.apple.com/documentation/swiftui/text). - Network accessline 32
| System color | Example usage | iOS, iPadOS, tvOS, visionOS | macOS | | --- | --- | --- | --- | | Label | Primary information | [label](https://developer.apple.com/documentation/uikit/uicolor/label) | [labelColor](https://developer.apple.c - Network accessline 33
| --- | --- | --- | --- | | Label | Primary information | [label](https://developer.apple.com/documentation/uikit/uicolor/label) | [labelColor](https://developer.apple.com/documentation/appkit/nscolor/labelcolor) | | Secondary label | A sub - Network accessline 34
| Label | Primary information | [label](https://developer.apple.com/documentation/uikit/uicolor/label) | [labelColor](https://developer.apple.com/documentation/appkit/nscolor/labelcolor) | - Network accessline 35
| Secondary label | A subheading or supplemental text | [secondaryLabel](https://developer.apple.com/documentation/uikit/uicolor/secondarylabel) | [secondaryLabelColor](https://developer.apple.com/documentation/appkit/nscolor/secondarylabel - Network accessline 36
| Tertiary label | Text that describes an unavailable item or behavior | [tertiaryLabel](https://developer.apple.com/documentation/uikit/uicolor/tertiarylabel) | [tertiaryLabelColor](https://developer.apple.com/documentation/appkit/nscolor/ - Network accessline 37
| Quaternary label | Watermark text | [quaternaryLabel](https://developer.apple.com/documentation/uikit/uicolor/quaternarylabel) | [quaternaryLabelColor](https://developer.apple.com/documentation/appkit/nscolor/quaternarylabelcolor) | - Network accessline 47
> **Developer note:** To display uneditable text in a label, use the [isEditable](https://developer.apple.com/documentation/appkit/nstextfield/iseditable) property of [NSTextField](https://developer.apple.com/documentation/appkit/nstextfiel
references/hig/launching.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/launching>
references/hig/layout.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/layout> - Network accessline 14
Apple provides templates and layout guides that can help you integrate Apple technologies and design your apps and games to run on all Apple platforms. See [Apple Design Resources](https://developer.apple.com/design/resources/). - Network accessline 28
If scaling a background image to the full window edge results in components like sidebars or inspectors covering important parts of the image, you can use a background extension effect to flip and blur the image, mirroring it beneath adjace - Network accessline 50
To support Dynamic Type in your Unity-based game, use Apple’s accessibility plug-in (for developer guidance, see [Apple – Accessibility](https://github.com/apple/unityplugins/blob/main/plug-ins/Apple.Accessibility/Apple.Accessibility_Unity/ - Network accessline 52
**Preview your app on multiple devices, using different size classes, localizations, and text sizes.** You can streamline the testing process by first testing versions of your experience that use the largest and the smallest layouts. You ca - Network accessline 64
For developer guidance, see [UITraitChangeObservable](https://developer.apple.com/documentation/uikit/uitraitchangeobservable-67e94) and [UserInterfaceSizeClass](https://developer.apple.com/documentation/swiftui/userinterfacesizeclass). - Network accessline 78
A *layout guide* defines a rectangular region that helps you position, align, and space your content on the screen. The system includes predefined layout guides that make it easy to apply standard margins around content and restrict the wid - Network accessline 80
A *safe area* defines the area within a window that isn’t covered on the edge by a hardware feature or another view within the window, like a toolbar, tab bar, or status bar. Respecting the safe area is essential to make sure system UI and - Network accessline 90
**Avoid displaying content behind the camera housing at the top edge of the window.** For developer guidance, see [NSPrefersDisplaySafeAreaCompatibilityMode](https://developer.apple.com/documentation/bundleresources/information-property-lis
references/hig/liquid-glass.md
- Network accessline 3
> Curated guide, maintained by hand. Distilled from Apple's [Materials](materials.md) page (Apple's last change 2025-09-09), the Liquid Glass section of [Color](color.md) (2025-12-16), the control-layer and brand-color guidance in [Layout]( - Network accessline 4
> Sources: <https://developer.apple.com/design/human-interface-guidelines/materials>, <https://developer.apple.com/design/human-interface-guidelines/color>, <https://developer.apple.com/design/human-interface-guidelines/layout>, and <https:
references/hig/lists-and-tables.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/lists-and-tables> - Network accessline 30
**Use descriptive column headings in a multicolumn table.** Use nouns or short noun phrases with [title-style capitalization](https://support.apple.com/guide/applestyleguide/c-apsgb744e4a3/web#apdca93e113f1d64), and don’t add ending punctua - Network accessline 34
**Choose a table or list style that coordinates with your data and platform.** Some styles use visual details to help communicate grouping and hierarchy or to provide specific experiences. In iOS and iPadOS, for example, the grouped style u - Network accessline 36
**Choose a row style that fits the information you need to display.** For example, you might need to display a small image in the leading end of a row, followed by a brief explanatory label. Some platforms provide built-in row styles you ca - Network accessline 42
**Use an info button only to reveal more information about a row’s content.** An info button — called a *detail disclosure button* when it appears in a list row — doesn’t support navigation through a hierarchical table or list. If you need
references/hig/live-activities.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/live-activities> - Network accessline 76
**Avoid displaying sensitive information.** Live Activities are prominently visible and could be viewed by casual observers; for example, on the Lock Screen or in the Always-On display. For content people might consider sensitive or private - Network accessline 92
**Support limited width presentations.** To avoid truncated text in contexts with limited width like the Dynamic Island on iPhone in landscape, adapt your compact and minimal presentations to fit inside a 28pt-diameter circle. Use a short a - Network accessline 94
**Use familiar layouts for custom views.** Templates with default system margins and recommended text sizes are available in [Apple Design Resources](https://developer.apple.com/design/resources/). Using them helps your Live Activity remain - Network accessline 96
**Use consistent margins and concentric placement.** Use even, matching margins between rounded shapes and the edges of the Live Activity to ensure a harmonious fit. This prevents elements from poking into the rounded shape of the Live Acti - Network accessline 112
**Tint your Live Activity’s key line color so that it matches your content.** When the background is dark — for example, in Dark Mode — a key line appears around the Dynamic Island to distinguish it from other content. Choose a key line col - Network accessline 124
For developer guidance, see [Animating data updates in widgets and Live Activities](https://developer.apple.com/documentation/widgetkit/animating-data-updates-in-widgets-and-live-activities). - Network accessline 128
**Make sure tapping the Live Activity opens your app at the right location.** Take people directly to related details and actions — don’t make them navigate to find relevant information. For developer guidance on SwiftUI views that support - Network accessline 146
**Always end a Live Activity immediately when the task or event ends, and consider setting a custom dismissal time.** When a Live Activity ends, the system immediately removes it from the Dynamic Island and in CarPlay. On the Lock Screen, i - Network accessline 180
**Make sure your design, assets, and colors look great and offer enough contrast in Dark Mode and on an Always-On display.** By default, a Live Activity on the Lock Screen uses a light background color in the light appearance and a dark bac - Network accessline 182
**Verify the generated color of the dismiss button.** The system automatically generates a matching dismiss button based on the background and foreground colors of your Live Activity. Verify that the generated color matches your design and - Network accessline 184
**Use standard margins to align your design with notifications.** The standard layout margin for Live Activities on the Lock Screen is 14 points. While tighter margins may be appropriate for elements like graphics or buttons, avoid crowding - Network accessline 188
**Update your layout for StandBy.** Make sure assets look great at the larger scale, and consider creating a custom layout that makes use of the extra space. For developer guidance, see [Creating custom views for Live Activities](https://de - Network accessline 200
Your Live Activity design applies to both CarPlay and Apple Watch, so design for both contexts. While Live Activities on Apple Watch can be interactive, the system deactivates interactive elements in CarPlay. For more information, refer to - Network accessline 202
**Consider creating a custom layout if your Live Activity would benefit from larger text or additional information.** Instead of using the default appearance in CarPlay, declare support for a [ActivityFamily.small](https://developer.apple.c
references/hig/live-viewing-apps.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/live-viewing-apps>
references/hig/loading.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/loading> - Network accessline 18
**Let people do other things in your app or game while they wait for content to load.** Loading content in the background helps give people access to other actions. For example, a game could load content in the background while players lear - Network accessline 22
**Improve installation and launch time by downloading large assets in the background.** Consider using the [Background Assets](https://developer.apple.com/documentation/backgroundassets) framework to schedule asset downloads — like game lev
references/hig/machine-learning.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/machine-learning> - Network accessline 18
Features powered by machine learning use *models* to perform tasks that make people’s experiences more unique, like curated feeds, customized trip itineraries, and personalized search suggestions. These features depend on well-designed mode
references/hig/managing-accounts.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/managing-accounts> - Network accessline 19
[Credential-related source omitted] - Access to secretsline 19
[Credential-related source omitted] - Network accessline 23
**Refer only to authentication methods that are available in the current context.** For example, don’t reference Face ID on a device that doesn’t offer it. Check the device’s capabilities and use the appropriate terminology. For developer g - Network accessline 37
> **Developer note:** If people used [Sign in with Apple](sign-in-with-apple.md) to create an account within your app, you revoke the associated tokens when they delete their account. See [Token revocation](https://developer.apple.com/docum
references/hig/managing-notifications.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/managing-notifications> - Network accessline 24
To support these behavior customizations, you first identify the types of notifications your app or game can send. If you support direct communications — like phone calls and messages — you use *communication* notifications; for all other t - Network accessline 50
**Use the Time Sensitive interruption level only for notifications that are relevant in the moment.** To help people understand the benefits of letting Time Sensitive notifications break through a Focus or scheduled delivery, make sure the
references/hig/maps.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/maps> - Network accessline 23
For developer guidance, see [MKStandardMapConfiguration.EmphasisStyle](https://developer.apple.com/documentation/mapkit/mkstandardmapconfiguration/emphasisstyle-swift.enum). - Network accessline 41
**Use annotations that match the visual style of your app.** Annotations identify custom points of interest on your map. The default annotation marker has a red tint and a white pin icon. You can change the tint to match the color scheme of - Network accessline 43
**If you want to display custom information that’s related to standard map features, consider making them independently selectable.** When you support selectable map features, the system treats Apple-provided features (including points of i - Network accessline 50
For developer guidance, see [Displaying overlays on a map](https://developer.apple.com/documentation/mapkit/displaying-overlays-on-a-map) and [MKOverlayLevel](https://developer.apple.com/documentation/mapkit/mkoverlaylevel). - Network accessline 60
You can present a place card that appears directly in your map anytime someone selects a place. This is a great way to provide place information in a map with multiple places that you specify, like a map of bookstores that an author plans t - Network accessline 62
You can also display place cards for other places on a map, such as points of interest, territories, and physical features, to provide valuable context to people about nearby places. For developer guidance, see [mapFeatureSelectionAccessory - Network accessline 64
> **Developer note:** In websites, you can embed a custom map that displays a place card by default for a single place that you specify. For developer guidance, see [Displaying place information using the Maps Embed API](https://developer.a - Network accessline 73
For developer guidance, see [MapItemDetailSelectionAccessoryStyle](https://developer.apple.com/documentation/mapkit/mapitemdetailselectionaccessorystyle), [MKSelectionAccessory.MapItemDetailPresentationStyle](https://developer.apple.com/doc - Network accessline 85
**Keep the location on your map visible when displaying a place card.** This helps people maintain a sense of where the location is on your map while getting detailed place information. You can set an offset distance for your place card and - Network accessline 89
You can also display place information outside of a map in your app or website. For example, you might want to display a list of places rather than a map, like in search results or a store locator, and present a place card when people selec - Network accessline 91
> **Important:** If you don’t display a place card directly within a map view, you must include a map in the place card. For developer guidance, see [mapItemDetailSheet(item:displaysMap:)](https://developer.apple.com/documentation/swiftui/v - Network accessline 113
**Design an indoor map that feels like a natural extension of your app.** Don’t try to replicate the appearance of Apple Maps. Instead, make sure area overlays, icons, and text match the visual style of your app. For guidance, see [Indoor M
references/hig/materials.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/materials> - Network accessline 22
**Use Liquid Glass effects sparingly.** Standard components from system frameworks pick up the appearance and behavior of this material automatically. If you apply Liquid Glass effects to a custom control, do so sparingly. Liquid Glass seek - Network accessline 24
**Only use clear Liquid Glass for components that appear over visually rich backgrounds.** Liquid Glass provides two variants — [regular](https://developer.apple.com/documentation/swiftui/glass/regular) and [clear](https://developer.apple.c - Network accessline 32
- If the underlying content is bright, consider adding a dark dimming layer of 35% opacity. For developer guidance, see [clear](https://developer.apple.com/documentation/swiftui/glass/clear). - Network accessline 39
Use standard materials and effects — such as [blur](https://developer.apple.com/documentation/uikit/uiblureffect), [vibrancy](https://developer.apple.com/documentation/uikit/uivibrancyeffect), and [blending modes](https://developer.apple.co - Network accessline 50
For developer guidance, see [Material](https://developer.apple.com/documentation/swiftui/material). - Network accessline 60
Except for quaternary, you can use the following vibrancy values for labels on any material. In general, avoid using quaternary on top of the [thin](https://developer.apple.com/documentation/swiftui/material/thin) and [ultraThin](https://de - Network accessline 62
- [UIVibrancyEffectStyle.label](https://developer.apple.com/documentation/uikit/uivibrancyeffectstyle/label) (default) - Network accessline 63
- [UIVibrancyEffectStyle.secondaryLabel](https://developer.apple.com/documentation/uikit/uivibrancyeffectstyle/secondarylabel) - Network accessline 64
- [UIVibrancyEffectStyle.tertiaryLabel](https://developer.apple.com/documentation/uikit/uivibrancyeffectstyle/tertiarylabel) - Network accessline 65
- [UIVibrancyEffectStyle.quaternaryLabel](https://developer.apple.com/documentation/uikit/uivibrancyeffectstyle/quaternarylabel) - Network accessline 69
- [UIVibrancyEffectStyle.fill](https://developer.apple.com/documentation/uikit/uivibrancyeffectstyle/fill) (default) - Network accessline 70
- [UIVibrancyEffectStyle.secondaryFill](https://developer.apple.com/documentation/uikit/uivibrancyeffectstyle/secondaryfill) - Network accessline 71
- [UIVibrancyEffectStyle.tertiaryFill](https://developer.apple.com/documentation/uikit/uivibrancyeffectstyle/tertiaryfill) - Network accessline 73
The system provides a single, default vibrancy value for a [separator](https://developer.apple.com/documentation/uikit/uivibrancyeffectstyle/separator), which works well on all materials. - Network accessline 77
macOS provides several standard materials with designated purposes, and vibrant versions of all [system colors](color.md#specifications). For developer guidance, see [NSVisualEffectView.Material](https://developer.apple.com/documentation/ap - Network accessline 81
**Choose a background blending mode that complements your interface design.** macOS defines two modes that blend background content: behind window and within window. For developer guidance, see [NSVisualEffectView.BlendingMode](https://deve
references/hig/menus.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/menus> - Network accessline 24
**To be consistent with platform experiences, use title-style capitalization.** Although a game might have a different writing style, generally prefer using title-style capitalization, which capitalizes every word except articles, coordinat - Network accessline 98
For developer guidance, see [preferredElementSize](https://developer.apple.com/documentation/uikit/uimenu/preferredelementsize).
references/hig/modality.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/modality>
references/hig/motion.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/motion>
references/hig/multitasking.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/multitasking> - Network accessline 53
To help your app respond correctly when people open it while windowed, make sure it adapts gracefully to different screen sizes. For guidance, see [Layout](layout.md) and [Windows](windows.md); for developer guidance, see [Multitasking on i
references/hig/nfc.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/nfc>
references/hig/notifications.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/notifications> - Network accessline 12
Before you can send any notifications to people, you have to get their consent (for developer guidance, see [Asking permission to use notifications](https://developer.apple.com/documentation/usernotifications/asking-permission-to-use-notifi - Network accessline 42
**Create a short title if it provides context for the notification content.** Prefer brief titles that people can read at a glance, especially on Apple Watch, where space is limited. When possible, take advantage of the prominent notificati - Network accessline 46
**Provide generically descriptive text to display when notification previews aren’t available.** In Settings, people can choose to hide notification previews for all apps. In this situation, the system shows only your app icon and the defau - Network accessline 50
**Consider providing a sound to supplement your notifications.** Sound can be a great way to distinguish your app’s notifications and get someone’s attention when they’re not looking at the device. You can create a custom sound that coordin - Network accessline 54
A notification can present a customizable detail view that contains up to four buttons people use to perform actions without opening your app. For example, a Calendar event notification provides a Snooze button that postpones the event’s al
references/hig/offering-help.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/offering-help> - Network accessline 24
A tip is a small, transient view that briefly describes how to use a feature in your app. Tips are a great way to teach people about new or less obvious features in your app, or help them discover faster ways to accomplish a task. For devel - Network accessline 46
A *tooltip* (called a *help tag* in user documentation) displays a small, transient view that briefly describes how to use a component in the interface. In apps that run on a Mac — including iPhone and iPad apps — tooltips can appear when a
references/hig/onboarding.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/onboarding> - Network accessline 18
**Consider providing a collection of context-specific tips instead of a single onboarding flow.** Integrating contextually relevant tips into your experience can help people learn about their current task while they make progress in your ap
references/hig/outline-views.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/outline-views> - Network accessline 23
**Use descriptive column headings to provide context.** Use nouns or short noun phrases with [title-style capitalization](https://help.apple.com/applestyleguide/#/apsgb744e4a3?sub=apdca93e113f1d64) and no punctuation; in particular, avoid a
references/hig/page-controls.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/page-controls> - Network accessline 28
If it enhances your app or game, you can provide a custom image to use as the default image for all indicators and you can also supply a different image for a specific page. For developer guidance, see [preferredIndicatorImage](https://deve - Network accessline 48
> **Developer note:** In the API, *tapping* is a *discrete interaction*, whereas *scrubbing* is a *continuous interaction*; for developer guidance, see [UIPageControl.InteractionState](https://developer.apple.com/documentation/uikit/uipagec - Network accessline 58
For developer guidance, see [backgroundStyle](https://developer.apple.com/documentation/uikit/uipagecontrol/backgroundstyle-swift.property).
references/hig/panels.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/panels> - Network accessline 23
**Write a brief title that describes the panel’s purpose.** Because a panel often floats above other open windows in your app, it needs a title bar so people can position it where they want. Create a short title using a noun — or a noun phr - Network accessline 49
For developer guidance, see [hudWindow](https://developer.apple.com/documentation/appkit/nswindow/stylemask-swift.struct/hudwindow).
references/hig/path-controls.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/path-controls>
references/hig/pickers.md
references/hig/playing-audio.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/playing-audio> - Network accessline 26
**Use the system-provided volume view to let people make audio adjustments.** The volume view includes a volume-level slider and a control for rerouting audio output. You can customize the appearance of the slider. For developer guidance, s - Network accessline 28
**Choose an audio category that fits the way your app or game uses sound.** Depending on the audio category you choose, your app’s sounds can mix with other audio, play while your app is in the background, or stop when people set the Ring/S - Network accessline 44
**Let other apps know when your app finishes playing temporary audio.** If your app can temporarily interrupt the audio of other apps, be sure to flag your audio session in a way that lets other apps know when they can resume. For developer - Network accessline 50
**Determine how to respond to audio-session interruptions.** For example, if your app supports recording or other audio-related tasks that people don’t want interrupted, you can tell the system to avoid interrupting the currently playing au - Network accessline 52
**When an interruption ends, determine whether to resume audio playback automatically.** Sometimes, audio from a different app can interrupt the audio your app is playing. An interruption can be *resumable*, like an incoming phone call, or - Network accessline 58
**Use the system’s sound services to play short sounds and vibrations.** For developer guidance, see [Audio Services](https://developer.apple.com/documentation/audiotoolbox/audio-services).
references/hig/playing-haptics.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/playing-haptics> - Network accessline 16
- In an iPadOS, macOS, tvOS, or visionOS app or game, [game controllers](game-controls.md) can provide haptic feedback (for developer guidance, see [Playing Haptics on Game Controllers](https://developer.apple.com/documentation/corehaptics/ - Network accessline 17
- [Apple Pencil Pro](apple-pencil-and-scribble.md) and some trackpads can provide haptic feedback when connected to certain iPad models. (For details on Apple Pencil features and compatibility, see [Apple Pencil](https://www.apple.com/apple - Network accessline 25
**Prefer using haptics to complement other feedback in your app or game.** When visual, auditory, and tactile feedback are in harmony — as they generally are in the physical world — the user experience is more coherent and can seem more nat - Network accessline 48
By combining transient and continuous events, varying sharpness and intensity, and including optional audio content, you can create a wide range of different haptic experiences. For developer guidance, see [Core Haptics](https://developer.a - Network accessline 56
- Use standard UI components — like [toggles](toggles.md), [sliders](sliders.md), and [pickers](pickers.md) — that play Apple-designed system haptics by default. - When it makes sense, use a feedback generator to play one of several predefi - Network accessline 57
- When it makes sense, use a feedback generator to play one of several predefined haptic patterns in the categories of [notification](#notification), [impact](#impact), and [selection](#selection) (for developer guidance, see [UIFeedbackGen - Network accessline 81
For developer guidance, see [NSHapticFeedbackPerformer](https://developer.apple.com/documentation/appkit/nshapticfeedbackperformer).
references/hig/playing-video.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/playing-video> - Network accessline 16
- In full-screen — or *aspect-fill* — mode, the video scales to fill the display, and some edge cropping may occur. This mode is the default for wide video (2:1 through 2.40:1). For developer guidance, see [resizeAspectFill](https://develop - Network accessline 17
- In fit-to-screen — or *aspect* — mode, the entire video is visible onscreen, and letterboxing or pillarboxing occurs as needed. This mode is the default for standard video (4:3, 16:9, and anything up to 2:1) and ultrawide video (anything - Network accessline 31
**Provide additional information when it adds value.** In iOS, iPadOS, tvOS, and visionOS, you can customize a video’s additional information by providing an image, title, description, and other useful information. In general, restrict this - Network accessline 37
**Avoid allowing audio from different sources to mix as viewers switch between modes.** Mixed audio is an unpleasant and frustrating user experience. In general, audio mixes when at least one of the audio sources fails to handle secondary a
references/hig/pointing-devices.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/pointing-devices> - Network accessline 34
**Allow multiple selection in custom views when necessary.** In iPadOS 15 and later, people can click and drag the pointer over multiple items to select them. As people use the pointer in this way, it expands into a visible rectangle that s - Network accessline 58
Unlike pointer shapes and content effects, accessories are secondary items that can combine with any pointer to communicate additional information. For developer guidance, see [UIPointerAccessory](https://developer.apple.com/documentation/u - Network accessline 90
**Specify the corner radius of a nonstandard element that receives the lift effect.** With the system-provided lift effect, the pointer transforms to match the element’s shape as it fades out. By default, the pointer uses the system-defined - Network accessline 135
| Pointer | Name | Meaning | AppKit API | | --- | --- | --- | --- | | *image: pointers arrow* | Arrow | Standard pointer for selecting and interacting with content and interface elements. | [arrow](https://developer.apple.com/documentation/ - Network accessline 136
| --- | --- | --- | --- | | *image: pointers arrow* | Arrow | Standard pointer for selecting and interacting with content and interface elements. | [arrow](https://developer.apple.com/documentation/appkit/nscursor/arrow) | | *image: pointer - Network accessline 137
| *image: pointers arrow* | Arrow | Standard pointer for selecting and interacting with content and interface elements. | [arrow](https://developer.apple.com/documentation/appkit/nscursor/arrow) | - Network accessline 138
| *image: pointers closed hand* | Closed hand | Dragging to reposition the display of content within a view—for example, dragging a map around in Maps. | [closedHand](https://developer.apple.com/documentation/appkit/nscursor/closedhand) | - Network accessline 139
| *image: pointers contextual menu* | Contextual menu | A contextual menu is available for the content below the pointer. This pointer is generally shown only when the Control key is pressed. | [contextualMenu](https://developer.apple.com/d - Network accessline 140
| *image: pointers crosshair* | Crosshair | Precise rectangular selection is possible, such as when viewing an image in Preview. | [crosshair](https://developer.apple.com/documentation/appkit/nscursor/crosshair) | - Network accessline 141
| *image: pointers disappearing item* | Disappearing item | A dragged item will disappear when dropped. If the item references an original item, the original is unaffected. For example, when dragging a mailbox out of the favorites bar in Ma - Network accessline 142
| *image: pointers drag copy* | Drag copy | Duplicates a dragged—not moved—item when dropped into the destination. Appears when pressing the Option key during a drag operation. | [dragCopy](https://developer.apple.com/documentation/appkit/n - Network accessline 143
| *image: pointers drag link* | Drag link | During a drag and drop operation, creates an alias of the selected file when dropped. The alias points to the original file, which remains unmoved. Appears when pressing the Option and Command key - Network accessline 144
| *image: pointers horizontal beam* | Horizontal I beam | Selection and insertion of text is possible in a horizontal layout, such as a TextEdit or Pages document. | [iBeam](https://developer.apple.com/documentation/appkit/nscursor/ibeam) | - Network accessline 145
| *image: pointers open hand* | Open hand | Dragging to reposition content within a view is possible. | [openHand](https://developer.apple.com/documentation/appkit/nscursor/openhand) | - Network accessline 146
| *image: pointers operation not allowed* | Operation not allowed | A dragged item can’t be dropped in the current location. | [operationNotAllowed](https://developer.apple.com/documentation/appkit/nscursor/operationnotallowed) | - Network accessline 147
| *image: pointers pointing hand* | Pointing hand | The content beneath the pointer is a URL link to a webpage, document, or other item. | [pointingHand](https://developer.apple.com/documentation/appkit/nscursor/pointinghand) | - Network accessline 148
| *image: pointers resize down* | Resize down | Resize or move a window, view, or element downward. | [resizeDown](https://developer.apple.com/documentation/appkit/nscursor/resizedown) | - Network accessline 149
| *image: pointers resize left* | Resize left | Resize or move a window, view, or element to the left. | [resizeLeft](https://developer.apple.com/documentation/appkit/nscursor/resizeleft) | - Network accessline 150
| *image: pointers resize left right* | Resize left/right | Resize or move a window, view, or element to the left or right. | [resizeLeftRight](https://developer.apple.com/documentation/appkit/nscursor/resizeleftright) | - Network accessline 151
| *image: pointers resize right* | Resize right | Resize or move a window, view, or element to the right. | [resizeRight](https://developer.apple.com/documentation/appkit/nscursor/resizeright) | - Network accessline 152
| *image: pointers resize up* | Resize up | Resize or move a window, view, or element upward. | [resizeUp](https://developer.apple.com/documentation/appkit/nscursor/resizeup) | - Network accessline 153
| *image: pointers resize up down* | Resize up/down | Resize or move a window, view, or element upward or downward. | [resizeUpDown](https://developer.apple.com/documentation/appkit/nscursor/resizeupdown) | - Network accessline 154
| *image: pointers vertical beam* | Vertical I beam | Selection and insertion of text is possible in a vertical layout. | [iBeamCursorForVerticalLayout](https://developer.apple.com/documentation/appkit/nscursor/ibeamcursorforverticallayout)
references/hig/pop-up-buttons.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/pop-up-buttons>
references/hig/popovers.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/popovers>
references/hig/printing.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/printing>
references/hig/privacy.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/privacy> - Network accessline 14
When you submit a new or updated app, you must provide details about your privacy practices and the privacy-relevant data you collect so the App Store can display the information on your product page. (You can manage this information at any - Network accessline 20
**Be transparent about how your app collects and uses people’s data.** People are less likely to be comfortable sharing data with your app if they don’t understand exactly how you plan to use it. Always respect people’s choices to use syste - Network accessline 43
**Write copy that clearly describes how your app uses the ability, data, or resource you’re requesting.** The standard alert displays your copy (called a *purpose string* or *usage description string*) after your app name and before the but - Network accessline 69
There are several prohibited custom-screen designs that will cause rejection. Some examples are offering incentives, displaying a screen or window that looks like a request, displaying an image of the alert, and annotating the screen behind - Network accessline 81
> **Note:** If your app has no authorization status, tapping the location button has the same effect as when a person chooses *Allow Once* in the standard alert. If people previously chose *While Using the App*, tapping the location button - Network accessline 102
[Credential-related source omitted] - Access to secretsline 102
[Credential-related source omitted] - Network accessline 104
[Credential-related source omitted] - Access to secretsline 104
[Credential-related source omitted] - Access to secretsline 106
[Credential-related source omitted] - Network accessline 108
**Avoid inventing custom authentication schemes.** If your app requires authentication, prefer system-provided features like [passkeys](https://developer.apple.com/documentation/authenticationservices/public-private_key_authentication/suppo - Network accessline 116
**Sign your app with a valid Developer ID.** If you choose to distribute your app outside the store, signing your app with Developer ID identifies you as an Apple developer and confirms that your app is safe to use. For developer guidance, - Network accessline 118
**Protect people’s data with app sandboxing.** Sandboxing provides your app with access to system resources and user data while protecting it from malware. All apps submitted to the Mac App Store require sandboxing. For developer guidance,
references/hig/progress-indicators.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/progress-indicators> - Network accessline 23
For developer guidance, see [ProgressView](https://developer.apple.com/documentation/swiftui/progressview). - Network accessline 57
For developer guidance, see [UIRefreshControl](https://developer.apple.com/documentation/uikit/uirefreshcontrol).
references/hig/pull-down-buttons.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/pull-down-buttons>
references/hig/rating-indicators.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/rating-indicators>
references/hig/ratings-and-reviews.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/ratings-and-reviews> - Network accessline 24
**Prefer the system-provided prompt.** iOS, iPadOS, and macOS offer a consistent, nonintrusive way for apps and games to request ratings and reviews. When you identify places in your experience where it makes sense to ask for feedback, the - Network accessline 26
**Weigh the benefits of resetting your summary rating against the potential disadvantage of showing fewer ratings.** When you release a new version of your app or game, you can reset the summary of individual ratings you received since the
references/hig/right-to-left.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/right-to-left> - Network accessline 11
When people choose a language for their device — or just your app or game — they expect the interface to adapt in various ways (to learn more, see [Localization](https://developer.apple.com/localization/)). - Network accessline 53
When you use [SF Symbols](sf-symbols.md) to supply interface icons for your app, you get variants for the RTL context and localized symbols for Arabic and Hebrew, among other languages. If you create custom symbols, you can specify their di
references/hig/scroll-views.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/scroll-views> - Network accessline 22
**Consider supporting page-by-page scrolling if it makes sense for your content.** In some situations, people appreciate scrolling by a fixed amount of content per interaction instead of scrolling continuously. On most platforms, you can de - Network accessline 39
**Prefer the automatic scroll edge effect style.** Where possible, use the default [automatic](https://developer.apple.com/documentation/swiftui/scrolledgeeffectstyle/automatic) style of the scroll edge effect. This style provides a more op - Network accessline 45
For developer guidance, see [ScrollEdgeEffectStyle](https://developer.apple.com/documentation/swiftui/scrolledgeeffectstyle), [UIScrollEdgeEffect.Style](https://developer.apple.com/documentation/uikit/uiscrolledgeeffect/style-swift.class),
references/hig/search-fields.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/search-fields> - Network accessline 14
For developer guidance, see [Adding a search interface to your app](https://developer.apple.com/documentation/swiftui/adding-a-search-interface-to-your-app); for guidance related to systemwide search, see [Searching](searching.md). - Network accessline 35
**Use a scope bar to filter among clearly defined search categories.** A scope bar can help someone move from a broader scope to a narrower one. For example, in Mail on iPhone, a scope bar helps people move from searching their entire mailb
references/hig/searching.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/searching> - Network accessline 26
**Provide suggestions to make searching easier.** When you display a personʼs recent searches before they start typing or offer predictive search suggestions while they’re typing, you can help people search faster and type less. For develop - Network accessline 34
**Define metadata for custom file types you handle.** Supply a Spotlight File Importer plug-in that describes the types of metadata your file format contains. For developer guidance, see [CSImportExtension](https://developer.apple.com/docum - Network accessline 40
**Implement a Quick Look generator if your app produces custom file types.** A Quick Look generator helps Spotlight and other apps show previews of your documents. For developer guidance, see [Quick Look](https://developer.apple.com/documen
references/hig/segmented-controls.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/segmented-controls> - Network accessline 16
In addition to representing the state of a single or multiple-choice selection, a segmented control can function as a set of buttons that perform actions without showing a selection state. For example, the Reply, Reply all, and Forward butt - Network accessline 36
**Use nouns or noun phrases for segment labels.** Write text that describes each segment and uses [title-style capitalization](https://support.apple.com/guide/applestyleguide/c-apsgb744e4a3/web#apdca93e113f1d64). A segmented control that di
references/hig/settings.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/settings> - Network accessline 18
**Aim to provide default settings that give the best experience to the largest number of people.** For example, you can automatically maximize performance for the device your game is running on instead of asking players to make this choice
references/hig/sf-symbols.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/sf-symbols> - Network accessline 16
Visit [SF Symbols](https://developer.apple.com/sf-symbols/) to download the app and browse the full set of symbols. Be sure to understand the terms and conditions for using SF Symbols, including the prohibition against using symbols — or im - Network accessline 38
Regardless of rendering mode, using system-provided colors ensures that symbols automatically adapt to accessibility accommodations and appearance modes like vibrancy and Dark Mode. For developer guidance, see [renderingMode(_:)](https://de - Network accessline 64
Specifying a scale lets you adjust a symbol’s emphasis compared to adjacent text, without disrupting the weight matching with text that uses the same point size. For developer guidance, see [imageScale(_:)](https://developer.apple.com/docum - Network accessline 88
Animations work on all SF Symbols in the library, in all rendering modes, weights, and scales, and on custom symbols. For considerations when animating custom symbols, see [Custom symbols](#custom-symbols). You can control the playback of a - Network accessline 130
If you need a symbol that SF Symbols doesn’t provide, you can create your own. To create a custom symbol, first export the template for a symbol that’s similar to the design you want, then use a vector-editing tool to modify it. For develop
references/hig/sheets.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/sheets> - Network accessline 30
**For complex or prolonged user flows, consider alternatives to sheets.** For example, iOS and iPadOS offer a full-screen style of modal view that can work well to display content like videos, photos, or camera views or to help people perfo - Network accessline 52
Sheets automatically support the large detent. Adding the medium detent allows the sheet to rest at both heights, whereas specifying only medium prevents the sheet from expanding to full height. For developer guidance, see [detents](https:/ - Network accessline 56
**Include a grabber in a resizable sheet.** A grabber shows people that they can drag the sheet to resize it; they can also tap it to cycle through the detents. In addition to providing a visual indicator of resizability, a grabber also wor - Network accessline 60
**Prefer using the page or form sheet presentation styles in an iPadOS app.** Each style uses a default size for the sheet, centering its content on top of a dimmed background view and providing a consistent experience. For developer guidan
references/hig/sidebars.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/sidebars> - Network accessline 16
**Extend visually rich content beneath the sidebar.** In iOS, iPadOS, and macOS, as with other controls such as toolbars and tab bars, sidebars can float above content in the [Liquid Glass](materials.md#liquid-glass) layer. To reinforce the - Network accessline 22
**Consider using familiar symbols to represent items in the sidebar.** [SF Symbols](sf-symbols.md) provides a wide range of customizable symbols you can use to represent items in your app. If you need to use a custom icon, consider creating - Network accessline 36
When you use the [sidebarAdaptable](https://developer.apple.com/documentation/swiftui/tabviewstyle/sidebaradaptable) style of tab view to present a sidebar, you choose whether to display a sidebar or a tab bar when your app opens. Both vari - Network accessline 38
> **Developer note:** To display a sidebar only, use [NavigationSplitView](https://developer.apple.com/documentation/swiftui/navigationsplitview) to present a sidebar in the primary pane of a split view, or use [UISplitViewController](https - Network accessline 42
**If necessary, apply the correct appearance to a sidebar.** If you’re not using SwiftUI to create a sidebar, you can use the [UICollectionLayoutListConfiguration.Appearance.sidebar](https://developer.apple.com/documentation/uikit/uicollect
references/hig/sign-in-with-apple.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/sign-in-with-apple> - Network accessline 11
Supporting Sign in with Apple lets people use the Apple Account they already have to sign in or sign up, and skip filling out forms, verifying email addresses, and choosing passwords. In cases where you choose to ask for a name and email ad - Network accessline 72
For developer guidance, see [ASAuthorizationAppleIDButton](https://developer.apple.com/documentation/authenticationservices/asauthorizationappleidbutton) (iOS, macOS, and tvOS), [WKInterfaceAuthorizationAppleIDButton](https://developer.appl - Network accessline 98
**Adjust the corner radius to match the appearance of other buttons in your app.** By default, the Sign in with Apple button has rounded corners. In iOS, macOS, and the web, you can change the corner radius to produce a button with square c - Network accessline 112
[Apple Design Resources](https://developer.apple.com/design/resources/) provides downloadable Apple logo artwork you can use to create custom Sign in with Apple buttons that display either a logo only or a logo and text. The logo files are - Network accessline 116
Use only the logo artwork downloaded from [Apple Design Resources](https://developer.apple.com/design/resources/); never create a custom Apple logo. As you create a custom Sign in with Apple button, follow these guidelines for using the dow
references/hig/siri.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/siri> - Network accessline 20
By default, the system doesn’t have specific awareness of what an app can do or the information it contains. In order for an app to work with Siri, the app has to make its features and content available to Apple Intelligence using the [App - Network accessline 22
When an app implements intents, the system can expose the things the app can do (the app’s actions, or *intents*) and its content (the app’s *entities*) in system experiences where it makes sense. This makes the app’s actions and content av - Network accessline 24
To get the most out of Siri, an app can additionally associate its features and content with app *[schemas](https://developer.apple.com/documentation/appintents/app-schema-domains)*: preset templates for functionality that the system alread - Network accessline 30
An app can tell the system what’s onscreen by annotating its views and other content with app entities. This gives the system information Siri needs to improve contextual interaction based on what someone is interacting with. For example, w - Network accessline 32
To provide content information to the system, an app can donate entities to the on-device Spotlight index, which makes the app’s information available to someone searching in Spotlight or with Siri. For developer guidance, see [Defining app - Network accessline 34
An app can also tell the system about actions a person takes while using it by donating the actions as intents. This helps Siri anticipate future actions a person might want to take, and surface them through various system experiences at ap - Network accessline 50
For apps with many common feature sets, existing [app schema domains](https://developer.apple.com/documentation/appintents/app-schema-domains) provide the built-in functionality that they need to expose their actions and content to Apple In - Network accessline 52
To customize the experience of an action or a piece of content associated with an existing schema, an app can define additional optional properties as part of an intent or entity that can contextually enhance the response that Siri provides - Network accessline 78
**Refer to Siri by name.** Don’t reference Siri using pronouns like *she*, *him*, or *her*. Ideally, just use the word *Siri*. For example, “After you add a shortcut to Siri, you can run the shortcut anytime by asking Siri.” For additional
references/hig/sliders.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/sliders> - Network accessline 42
**Consider using a label to introduce a slider.** Labels generally use [sentence-style capitalization](https://help.apple.com/applestyleguide/#/apsgb744e4a3?sub=apdca93e113f1d64) and end with a colon. For guidance, see [Labels](labels.md).
references/hig/snippets.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/snippets> - Network accessline 14
You can present a snippet related to one of your app’s actions by including it with an [app intent](https://developer.apple.com/documentation/appintents) that you design to meet the specific needs of a task. For example, you might design a - Network accessline 18
For developer guidance, see [Displaying static and interactive snippets](https://developer.apple.com/documentation/appintents/displaying-static-and-interactive-snippets). - Network accessline 34
**Choose a descriptive label for a confirmation snippet’s primary button.** You can choose an appropriate label from among those that the [system provides](https://developer.apple.com/documentation/appintents/confirmationactionname), or you
references/hig/split-views.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/split-views> - Network accessline 32
**Account for narrow, compact, and intermediate window widths.** Since iPad windows are fluidly resizable, it’s important to consider the design of a split view layout at multiple widths. In particular, ensure that it’s possible to navigate - Network accessline 36
In macOS, you can arrange the panes of a split view vertically, horizontally, or both. A split view includes dividers between panes that can support dragging to resize them. For developer guidance, see [VSplitView](https://developer.apple.c - Network accessline 46
**Prefer the thin divider style.** The thin divider measures one point in width, giving you maximum space for content while remaining easy for people to use. Avoid using thicker divider styles unless you have a specific need. For example, i
references/hig/status-bars.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/status-bars> - Network accessline 13
**Obscure content under the status bar.** By default, the background of the status bar is transparent, allowing content beneath to show through. This transparency can make it difficult to see information presented in the status bar. If cont
references/hig/steppers.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/steppers>
references/hig/tab-bars.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/tab-bars> - Network accessline 30
If you’re creating custom tab bar icons, see [Apple Design Resources](https://developer.apple.com/design/resources/) for tab bar icon dimensions. - Network accessline 44
For tab bars with an attached accessory, like the MiniPlayer in Music, you can choose to minimize the tab bar and move the accessory inline with it when a person scrolls down. A person can exit the minimized state by tapping a tab or scroll - Network accessline 50
The system displays a tab bar near the top of the screen. You can choose to have the tab bar appear as a fixed element, or with a button that converts it to a sidebar. For developer guidance, see [tabBarOnly](https://developer.apple.com/doc - Network accessline 54
> **Note:** To present a sidebar without the option to convert it to a tab bar, use a [navigation split view](https://developer.apple.com/documentation/swiftui/navigationsplitview) instead of a tab view. For guidance, see [Sidebars](sidebar - Network accessline 58
**Let people customize the tab bar.** In apps with a lot of sections that people might want to access, it can be useful to let people select items that they use frequently and add them to the tab bar, or remove items that they use less freq
references/hig/tab-views.md
references/hig/text-fields.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/text-fields> - Network accessline 18
**Use secure text fields to hide private data.** Always use a secure text field when your app asks for sensitive data, such as a password. For developer guidance, see [SecureField](https://developer.apple.com/documentation/swiftui/securefie
references/hig/text-views.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/text-views>
references/hig/the-menu-bar.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/the-menu-bar> - Network accessline 192
For guidance, see [Offering help](offering-help.md); for developer guidance, see [NSHelpManager](https://developer.apple.com/documentation/appkit/nshelpmanager). - Network accessline 202
**Require only a single modifier key to reveal a dynamic menu item.** It can be physically awkward to press more than one key while simultaneously opening a menu and choosing a menu item, in addition to reducing the discoverability of the d - Network accessline 243
A menu bar extra exposes app-specific functionality using an icon that appears in the menu bar when your app is running, even when it’s not the frontmost app. Menu bar extras are on the opposite side of the menu bar from your app’s menus. F
references/hig/toggles.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/toggles> - Network accessline 14
In addition to toggles, all platforms also support buttons that behave like toggles by using a different appearance for each state. For developer guidance, see [ToggleStyle](https://developer.apple.com/documentation/swiftui/togglestyle). - Network accessline 34
**Avoid supplying a label that explains the button’s purpose.** The interface icon you create — combined with the alternative background appearances you supply — help people understand what the button does. For developer guidance, see [chan - Network accessline 44
**Prefer a switch for settings that you want to emphasize.** A switch has more visual weight than a checkbox, so it looks better when it controls more functionality than a checkbox typically does. For example, you might use a switch to let - Network accessline 46
**Within a grouped form, consider using a mini switch to control the setting in a single row.** The height of a mini switch is similar to the height of buttons and other controls, resulting in rows that have a consistent height. If you need - Network accessline 60
**Accurately reflect a checkbox’s state in its appearance.** A checkbox’s state can be on, off, or mixed. If you use a checkbox to globally turn on and off multiple subordinate checkboxes, show a mixed state when the subordinate checkboxes
references/hig/token-fields.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/token-fields>
references/hig/toolbars.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/toolbars> - Network accessline 34
**Reduce the use of toolbar backgrounds and tinted controls.** Any custom backgrounds and appearances you use might overlay or interfere with background effects that the system provides. Instead, use the content layer to inform the color an - Network accessline 84
**Keep actions with text labels separate.** Placing an action with a text label next to an action with a symbol can create the illusion of a single action with a combined text and symbol, leading to confusion and misinterpretation. If your - Network accessline 92
**Use a large title to help people stay oriented as they navigate and scroll.** By default, a large title transitions to a standard title as people begin scrolling the content, and transitions back to large when people scroll to the top, re
references/hig/typography.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/typography> - Network accessline 43
You can download the San Francisco and New York fonts [here](https://developer.apple.com/fonts/). - Network accessline 57
**Modify the built-in text styles if necessary.** System APIs define font adjustments — called *symbolic traits* — that let you modify some aspects of a text style. For example, the bold trait adds weight to text, letting you create another - Network accessline 59
> **Developer note:** You can use the constants defined in [Font.Design](https://developer.apple.com/documentation/swiftui/font/design) to access all system fonts — don’t embed system fonts in your app or game. For example, use [Font.Design - Network accessline 67
**Implement accessibility features for custom fonts.** System fonts automatically support Dynamic Type (where available) and respond when people turn on accessibility features, such as Bold Text. If you use a custom font, make sure it imple - Network accessline 73
For a list of available Dynamic Type sizes, see [Specifications](#specifications). You can also download Dynamic Type size tables in the [Apple Design Resources](https://developer.apple.com/design/resources/) for each platform. - Network accessline 75
For developer guidance, see [Text input and output](https://developer.apple.com/documentation/swiftui/text-input-and-output). To support Dynamic Type in Unity-based games, use [Apple’s Unity plug-ins](https://github.com/apple/unityplugins). - Network accessline 81
**Keep text truncation to a minimum as font size increases.** In general, aim to display as much useful text at the largest accessibility font size as you do at the largest standard font size. Avoid truncating text in scrollable regions unl - Network accessline 83
**Consider adjusting your layout at large font sizes.** When font size increases in a horizontally constrained context, inline items (like glyphs and timestamps) and container boundaries can crowd text and cause truncation or overlapping. T - Network accessline 99
| Dynamic font variant | API | | --- | --- | | Control content | [controlContentFont(ofSize:)](https://developer.apple.com/documentation/appkit/nsfont/controlcontentfont(ofsize:)) | - Network accessline 100
| --- | --- | | Control content | [controlContentFont(ofSize:)](https://developer.apple.com/documentation/appkit/nsfont/controlcontentfont(ofsize:)) | | Label | [labelFont(ofSize:)](https://developer.apple.com/documentation/appkit/nsfont/la - Network accessline 101
| Control content | [controlContentFont(ofSize:)](https://developer.apple.com/documentation/appkit/nsfont/controlcontentfont(ofsize:)) | - Network accessline 102
| Label | [labelFont(ofSize:)](https://developer.apple.com/documentation/appkit/nsfont/labelfont(ofsize:)) | - Network accessline 103
| Menu | [menuFont(ofSize:)](https://developer.apple.com/documentation/appkit/nsfont/menufont(ofsize:)) | - Network accessline 104
| Menu bar | [menuBarFont(ofSize:)](https://developer.apple.com/documentation/appkit/nsfont/menubarfont(ofsize:)) | - Network accessline 105
| Message | [messageFont(ofSize:)](https://developer.apple.com/documentation/appkit/nsfont/messagefont(ofsize:)) | - Network accessline 106
| Palette | [paletteFont(ofSize:)](https://developer.apple.com/documentation/appkit/nsfont/palettefont(ofsize:)) | - Network accessline 107
| Title | [titleBarFont(ofSize:)](https://developer.apple.com/documentation/appkit/nsfont/titlebarfont(ofsize:)) | - Network accessline 108
| Tool tips | [toolTipsFont(ofSize:)](https://developer.apple.com/documentation/appkit/nsfont/tooltipsfont(ofsize:)) | - Network accessline 109
| Document text (user) | [userFont(ofSize:)](https://developer.apple.com/documentation/appkit/nsfont/userfont(ofsize:)) | - Network accessline 110
| Monospaced document text (user fixed pitch) | [userFixedPitchFont(ofSize:)](https://developer.apple.com/documentation/appkit/nsfont/userfixedpitchfont(ofsize:)) | - Network accessline 111
| Bold system font | [boldSystemFont(ofSize:)](https://developer.apple.com/documentation/appkit/nsfont/boldsystemfont(ofsize:)) | - Network accessline 112
| System font | [systemFont(ofSize:)](https://developer.apple.com/documentation/appkit/nsfont/systemfont(ofsize:)) | - Network accessline 116
You can display emphasized variants of system text styles using symbolic traits. In SwiftUI, use the [bold()](https://developer.apple.com/documentation/swiftui/text/bold()) modifier; in UIKit, use [traitBold](https://developer.apple.com/doc
references/hig/undo-and-redo.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/undo-and-redo>
references/hig/virtual-keyboards.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/virtual-keyboards> - Network accessline 18
**Choose a keyboard that matches the type of content people are editing.** For example, you can help people enter numeric data by providing the numbers and punctuation keyboard. When you specify a semantic meaning for a text input area, the - Network accessline 22
**Consider customizing the Return key type if it helps clarify the text-entry experience.** The Return key type is based on the keyboard type you choose, but you can change this if it makes sense in your app. For example, if your app initia - Network accessline 26
In some cases, you can create an *input view* if you want to provide custom functionality that enhances data-entry tasks in your app. For example, Numbers provides a custom input view for entering numeric values while editing a spreadsheet. - Network accessline 30
**Play the standard keyboard sound while people type.** The keyboard sound provides familiar feedback when people tap a key on the system keyboard, so they’re likely to expect the same sound when they tap keys in your custom input view. Peo - Network accessline 34
In iOS, iPadOS, and tvOS, you can provide a custom keyboard that replaces the system keyboard by creating an app extension. An *app extension* is code you provide that people can install and use to extend the functionality of a specific are - Network accessline 36
After people choose your custom keyboard in Settings, they can use it for text entry within any app, except when editing secure text fields and phone number fields. People can choose multiple custom keyboards and switch between them at any - Network accessline 52
**Use the keyboard layout guide to make the keyboard feel like an integrated part of your interface.** Using the layout guide also helps you keep important parts of your interface visible while the virtual keyboard is onscreen. For develope - Network accessline 54
**Place custom controls above the keyboard thoughtfully.** Some apps position an input accessory view containing custom controls above the keyboard to offer app-specific functionality related to the data people are working with. For example
references/hig/voiceover.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/voiceover> - Network accessline 14
VoiceOver is supported in apps and games built for Apple platforms. It’s also supported in apps and games developed in Unity using [Apple’s Unity plug-ins](https://github.com/apple/unityplugins). For related guidance, see [Accessibility](ac - Network accessline 20
**Provide alternative labels for all key interface elements.** VoiceOver uses alternative labels (which aren’t visible onscreen) to audibly describe your app’s interface. System-provided controls have generic labels by default, but you shou - Network accessline 26
**Exclude purely decorative images from VoiceOver.** It’s unnecessary to describe images that are decorative and don’t convey useful or actionable information. Excluding these images shows respect for people’s time and reduces cognitive loa - Network accessline 36
For developer guidance, see [shouldGroupAccessibilityChildren](https://developer.apple.com/documentation/objectivec/nsobject-swift.class/shouldgroupaccessibilitychildren). - Network accessline 38
**Inform VoiceOver when visible content or layout changes occur.** People may find an unexpected content or layout change confusing because it means their mental map of the content is no longer accurate. It’s crucial to report visible chang - Network accessline 40
**Support the VoiceOver rotor when possible.** People can use an interface element called the VoiceOver rotor to navigate a document or webpage by headings, links, and other content types. You can help people navigate content in your app by
references/hig/web-views.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/web-views>
references/hig/widgets.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/widgets> - Network accessline 84
- The system uses the [full color](https://developer.apple.com/documentation/widgetkit/widgetrenderingmode/fullcolor) rendering mode for system family widgets across all platforms to display your widget in full color. It doesn’t change the - Network accessline 85
- The system uses the [accented](https://developer.apple.com/documentation/widgetkit/widgetrenderingmode/accented) rendering mode for system family widgets across all platforms and for accessory widgets on Apple Watch. In the accented rende - Network accessline 86
- The system uses the [vibrant](https://developer.apple.com/documentation/widgetkit/widgetrenderingmode/vibrant) rendering mode for widgets on the Lock Screen of iPhone and iPad, and on iPhone in StandBy in low-light conditions. It desatura - Network accessline 99
For additional design guidance, see [Rendering modes](#rendering-modes). For developer guidance, see [Preparing widgets for additional platforms, contexts, and appearances](https://developer.apple.com/documentation/widgetkit/preparing-widge - Network accessline 119
**Choose between automatically displaying content and letting people customize displayed information.** In some cases, people need to configure a widget to ensure it displays the information that’s most useful for them. For example, the Sto - Network accessline 131
**Use system functionality to refresh dates and times in your widget.** Because widget update frequency is limited, let the system automatically refresh date and time information to preserve update opportunities. Determine the update freque - Network accessline 133
**Use animated transitions to bring attention to data updates.** By default, many SwiftUI views animate content updates. Additionally, use standard and custom animations with a duration of up to two seconds to let people know when new infor - Network accessline 149
As you design for various devices and scale factors, use the values listed in [Specifications](#specifications) and the [Apple Design Resources](https://developer.apple.com/design/resources/) for guidance; for your production widget, use [S - Network accessline 151
**In general, use standard margins to ensure legibility.** Use the standard margin width for widgets — 16 points for most widgets — to avoid crowding their edges and creating a cluttered appearance. If you need to use tighter margins — for - Network accessline 153
**Coordinate the corner radius of your content with the corner radius of the widget.** To ensure that your content looks good within a widget’s rounded corners, use a SwiftUI container to apply the correct corner radius. For developer guida - Network accessline 163
> **Note:** In iOS, iPadOS, and visionOS, widgets support Dynamic Type sizes from Large to AX5 when you use [Font](https://developer.apple.com/documentation/swiftui/font) to choose a system font or [custom(_:size:)](https://developer.apple. - Network accessline 177
**Support light and dark appearances.** Prefer light backgrounds for the light appearance and dark backgrounds for the dark appearance, and consider using the semantic system colors for text and backgrounds to let the colors dynamically ada - Network accessline 183
For developer guidance, see [widgetAccentable(_:)](https://developer.apple.com/documentation/swiftui/view/widgetaccentable(_:)) and [Optimizing your widget for accented rendering mode and Liquid Glass](https://developer.apple.com/documentat - Network accessline 197
**Write a succinct widget description.** The widget gallery displays descriptions that help people understand what each widget does. Begin a description with an action verb — for example, “See the current weather conditions and forecast for - Network accessline 215
For developer guidance, see [Creating accessory widgets and watch complications](https://developer.apple.com/documentation/widgetkit/creating-accessory-widgets-and-watch-complications). - Network accessline 217
**Offer Live Activities to show real-time updates.** Widgets don’t show real-time information. If your app allows people to track the progress of a task or event for a limited amount of time with frequent updates, consider offering Live Act - Network accessline 223
**Limit usage of rich images or color to convey meaning in StandBy.** Instead, make use of the additional space by scaling up and rearranging text so people can glance at the widget content from a greater distance. Mark your widget’s backgr
references/hig/windows.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/windows> - Network accessline 19
For guidance laying out content within a window on any platform, see [Layout](layout.md); for guidance laying out content in Apple Vision Pro space, see Spatial layout. For developer guidance, see [Windows](https://developer.apple.com/docum - Network accessline 27
**Consider providing the option to view content in a new window.** While it’s best to avoid opening new windows as default behavior unless it benefits your user experience, it’s also great to give people the flexibility of viewing content i - Network accessline 48
**Consider letting people use a gesture to open content in a new window.** For example, people can use the pinch gesture to expand a Notes item into a new window. For developer guidance, see [collectionView(_:sceneActivationConfigurationFor - Network accessline 50
> **Tip:** If you only need to let people view one file, you can present it without creating your own window, but you must support multiple windows in your app. For developer guidance, see [QLPreviewSceneActivationConfiguration](https://dev - Network accessline 56
To learn about setting up a window to display your game in macOS, see [Managing your game window for Metal in macOS](https://developer.apple.com/documentation/metal/managing-your-game-window-for-metal-in-macos).
references/hig/writing.md
- Network accessline 3
> Source: <https://developer.apple.com/design/human-interface-guidelines/writing> - Network accessline 24
**Write for everyone.** For your app to be useful for as many people as possible, it needs to speak to as many people as possible. Choose simple, plain language and write with accessibility and localization in mind, avoiding jargon and gend
scripts/pull-hig.mjs
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 8
* * Apple serves the render data behind every HIG page as JSON at * https://developer.apple.com/tutorials/data/design/human-interface-guidelines/<slug>.json - Network accessline 9
* Apple serves the render data behind every HIG page as JSON at * https://developer.apple.com/tutorials/data/design/human-interface-guidelines/<slug>.json * The script crawls the six top-level sections, keeps every page that applies to - Network accessline 10
* https://developer.apple.com/tutorials/data/design/human-interface-guidelines/<slug>.json - Network accessline 29
const DATA_BASE = 'https://developer.apple.com/tutorials/data/design/human-interface-guidelines'; - Network accessline 30
const WEB_BASE = 'https://developer.apple.com/design/human-interface-guidelines'; - Network accessline 31
const DEVELOPER_BASE = 'https://developer.apple.com'; - Network accessline 139
} const url = `${DATA_BASE}/${slug}.json`; const response = await fetch(url); - Network accessline 140
const url = `${DATA_BASE}/${slug}.json`; const response = await fetch(url); if (!response.ok) throw new Error(`HTTP ${response.status} for ${url}`); - Network accessline 141
const response = await fetch(url);
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Signal confidence: 500 facts
- Network access in prose of documentationREADME.md:18Low confidence
- Network access in prose of documentationREADME.md:19Low confidence
- Network access in code of documentationREADME.md:33Low confidence
- Network access in code of documentationREADME.md:50Low confidence
- Network access in code of documentationREADME.md:66Low confidence
- Network access in prose of documentationREADME.md:188Low confidence
- Network access in prose of documentationREADME.md:189Low confidence
- Network access in prose of documentationREADME.md:194Low confidence
- Network access in prose of documentationREADME.md:195Low confidence
- Network access in prose of documentationreferences/code-audit.md:48Low confidence
- Network access in prose of documentationreferences/code-audit.md:49Low confidence
- Network access in prose of documentationreferences/code-audit.md:50Low confidence
- Network access in prose of documentationreferences/hig-lookup.md:207Low confidence
- Network access in prose of documentationreferences/hig-lookup.md:208Low confidence
- Network access in prose of documentationreferences/hig-lookup.md:209Low confidence
- Network access in prose of documentationreferences/hig-lookup.md:210Low confidence
- Network access in prose of documentationreferences/hig-lookup.md:211Low confidence
- Network access in prose of documentationreferences/hig-lookup.md:212Low confidence
- Network access in prose of documentationreferences/hig-lookup.md:213Low confidence
- Network access in prose of documentationreferences/hig-lookup.md:214Low confidence
- Network access in prose of documentationreferences/hig-lookup.md:215Low confidence
- Network access in prose of documentationreferences/hig-lookup.md:216Low confidence
- Network access in prose of documentationreferences/hig-lookup.md:217Low confidence
- Network access in prose of documentationreferences/hig-lookup.md:218Low confidence
- Network access in prose of documentationreferences/hig-lookup.md:219Low confidence
- Network access in prose of documentationreferences/hig-lookup.md:220Low confidence
- Network access in prose of documentationreferences/hig-lookup.md:221Low confidence
- Network access in prose of documentationreferences/hig-lookup.md:222Low confidence
- Network access in prose of documentationreferences/hig-lookup.md:223Low confidence
- Network access in prose of documentationreferences/hig-lookup.md:224Low confidence
- Network access in prose of documentationreferences/hig-lookup.md:225Low confidence
- Network access in prose of documentationreferences/hig-lookup.md:226Low confidence
- Network access in prose of documentationreferences/hig-lookup.md:227Low confidence
- Network access in prose of documentationreferences/hig-lookup.md:228Low confidence
- Network access in prose of documentationreferences/hig-lookup.md:229Low confidence
- Network access in prose of documentationreferences/hig-lookup.md:230Low confidence
- Network access in prose of documentationreferences/hig-lookup.md:231Low confidence
- Network access in prose of documentationreferences/hig-lookup.md:232Low confidence
- Network access in prose of documentationreferences/hig-lookup.md:233Low confidence
- Network access in prose of documentationreferences/hig-lookup.md:234Low confidence
- Network access in prose of documentationreferences/hig-lookup.md:235Low confidence
- Network access in prose of documentationreferences/hig-lookup.md:236Low confidence
- Network access in prose of documentationreferences/hig-lookup.md:237Low confidence
- Network access in prose of documentationreferences/hig-lookup.md:238Low confidence
- Network access in prose of documentationreferences/hig-lookup.md:239Low confidence
- Network access in prose of documentationreferences/hig-lookup.md:240Low confidence
- Network access in prose of documentationreferences/hig-lookup.md:241Low confidence
- Network access in prose of documentationreferences/hig-lookup.md:242Low confidence
- Network access in prose of documentationreferences/hig-lookup.md:243Low confidence
- Network access in prose of documentationreferences/hig/accessibility.md:3Low confidence
and 450 more
Only the first 500 facts are listed.
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Compatible | Standard SKILL.md SKILL.md | .claude/skills/<skill-name>/ |
| Codex | Native | Manifest AGENTS.md | .agents/skills/<skill-name>/ |
| Cursor | Native | Path .cursorrules | .cursor/skills/<skill-name>/ |
| Gemini CLI | Native | Path GEMINI.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.
Add this badge to your README
It updates every night and links to this page.
[](https://hotskills.dev/skill/dickwu-apple-design-skill/)