#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.

Compare on GitHub

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.

Compare on GitHub

View on GitHubAdd to my skills

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>/
2.9kGitHub stars
372stars in 7 days
1skill in this repository
10commits in 30 days

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

Aug 2, 2026Nov 7, 20262,914

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 tokens

Always available to the agent

SKILL.md

6,796 tokens

When the skill is activated

Reference documents

251,592 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. The references
  2. Apple's design principles
  3. Review process
  4. Specialized review modes
  5. Design improvement mode
  6. Working rules

Scripts executed separately

  • scripts/pull-hig.mjs

Files

  • .cursorrulesasset1,925 bytes
  • .github/FUNDING.ymlasset15 bytes
  • .gitignoreasset39 bytes
  • AGENTS.mddoc6,662 bytes
  • GEMINI.mddoc1,925 bytes
  • README.mddoc10,413 bytes
  • SKILL.mdcore28,333 bytes
  • SKILL.mdcore28,333 bytes
  • SKILL.mdcore28,333 bytes
  • references/code-audit.mddoc12,339 bytes
  • references/cross-platform.mddoc3,079 bytes
  • references/hig-lookup.mddoc30,559 bytes
  • references/hig/accessibility.mddoc17,044 bytes
  • references/hig/action-sheets.mddoc3,496 bytes
  • references/hig/activity-views.mddoc6,596 bytes
  • references/hig/airplay.mddoc7,052 bytes
  • references/hig/alerts.mddoc9,693 bytes
  • references/hig/app-clips.mddoc30,749 bytes
  • references/hig/app-icons.mddoc13,519 bytes
  • references/hig/app-shortcuts.mddoc9,012 bytes
  • references/hig/apple-in-app-purchase.mddoc19,494 bytes
  • references/hig/apple-pay.mddoc31,633 bytes
  • references/hig/apple-pencil-and-scribble.mddoc13,856 bytes
  • references/hig/augmented-reality.mddoc22,653 bytes
  • references/hig/boxes.mddoc1,812 bytes
  • references/hig/branding.mddoc4,499 bytes
  • references/hig/buttons.mddoc13,196 bytes
  • references/hig/charting-data.mddoc7,208 bytes
  • references/hig/charts.mddoc19,534 bytes
  • references/hig/collaboration-and-sharing.mddoc6,279 bytes
  • references/hig/collections.mddoc2,186 bytes
  • references/hig/color-wells.mddoc1,425 bytes
  • references/hig/color.mddoc27,304 bytes
  • references/hig/column-views.mddoc2,077 bytes
  • references/hig/combo-boxes.mddoc1,524 bytes
  • references/hig/context-menus.mddoc7,802 bytes
  • references/hig/controls.mddoc6,861 bytes
  • references/hig/dark-mode.mddoc7,891 bytes
  • references/hig/design-principles.mddoc9,420 bytes
  • references/hig/designing-for-games.mddoc12,529 bytes
  • references/hig/designing-for-ios.mddoc3,320 bytes
  • references/hig/designing-for-ipados.mddoc2,924 bytes
  • references/hig/designing-for-iphone-duo.mddoc17,834 bytes
  • references/hig/designing-for-macos.mddoc2,989 bytes
  • references/hig/disclosure-controls.mddoc3,308 bytes
  • references/hig/dock-menus.mddoc1,871 bytes
  • references/hig/drag-and-drop.mddoc13,998 bytes
  • references/hig/edit-menus.mddoc6,115 bytes
  • references/hig/entering-data.mddoc4,698 bytes
  • references/hig/feedback.mddoc3,600 bytes
  • references/hig/file-management.mddoc11,340 bytes
  • references/hig/focus-and-selection.mddoc8,303 bytes
  • references/hig/game-controls.mddoc11,249 bytes
  • references/hig/gauges.mddoc3,821 bytes
  • references/hig/generative-ai.mddoc17,391 bytes
  • references/hig/gestures.mddoc7,760 bytes
  • references/hig/going-full-screen.mddoc6,735 bytes
  • references/hig/gyro-and-accelerometer.mddoc1,690 bytes
  • references/hig/home-screen-quick-actions.mddoc3,281 bytes
  • references/hig/icloud.mddoc4,822 bytes
  • references/hig/icons.mddoc14,685 bytes
  • references/hig/image-views.mddoc2,887 bytes
  • references/hig/image-wells.mddoc1,084 bytes
  • references/hig/images.mddoc3,829 bytes
  • references/hig/inclusion.mddoc15,133 bytes
  • references/hig/keyboards.mddoc16,989 bytes
  • references/hig/labels.mddoc4,088 bytes
  • references/hig/launching.mddoc4,141 bytes
  • references/hig/layout.mddoc13,510 bytes
  • references/hig/liquid-glass.mddoc14,283 bytes
  • references/hig/lists-and-tables.mddoc6,911 bytes
  • references/hig/live-activities.mddoc27,010 bytes
  • references/hig/live-viewing-apps.mddoc6,614 bytes
  • references/hig/loading.mddoc3,514 bytes
  • references/hig/machine-learning.mddoc38,242 bytes
  • references/hig/managing-accounts.mddoc7,350 bytes
  • references/hig/managing-notifications.mddoc6,853 bytes
  • references/hig/maps.mddoc15,729 bytes
  • references/hig/materials.mddoc10,288 bytes
  • references/hig/menus.mddoc13,174 bytes
  • references/hig/modality.mddoc5,613 bytes
  • references/hig/motion.mddoc4,652 bytes
  • references/hig/multitasking.mddoc5,963 bytes
  • references/hig/nfc.mddoc2,984 bytes
  • references/hig/notifications.mddoc10,470 bytes
  • references/hig/offering-help.mddoc6,941 bytes
  • references/hig/onboarding.mddoc5,225 bytes
  • references/hig/outline-views.mddoc4,362 bytes
  • references/hig/page-controls.mddoc6,627 bytes
  • references/hig/panels.mddoc5,692 bytes
  • references/hig/path-controls.mddoc1,737 bytes
  • references/hig/pickers.mddoc4,878 bytes
  • references/hig/playing-audio.mddoc8,962 bytes
  • references/hig/playing-haptics.mddoc8,892 bytes
  • references/hig/playing-video.mddoc9,802 bytes
  • references/hig/pointing-devices.mddoc20,651 bytes
  • references/hig/pop-up-buttons.mddoc2,771 bytes
  • references/hig/popovers.mddoc4,579 bytes
  • references/hig/printing.mddoc3,389 bytes
  • references/hig/privacy.mddoc15,302 bytes
  • references/hig/progress-indicators.mddoc6,677 bytes
  • references/hig/pull-down-buttons.mddoc4,284 bytes
  • references/hig/rating-indicators.mddoc1,239 bytes
  • references/hig/ratings-and-reviews.mddoc3,451 bytes
  • references/hig/right-to-left.mddoc9,856 bytes
  • references/hig/scroll-views.mddoc7,426 bytes
  • references/hig/search-fields.mddoc11,576 bytes
  • references/hig/searching.mddoc5,050 bytes
  • references/hig/segmented-controls.mddoc5,437 bytes
  • references/hig/settings.mddoc6,808 bytes
  • references/hig/sf-symbols.mddoc20,736 bytes
  • references/hig/sheets.mddoc9,046 bytes
  • references/hig/sidebars.mddoc7,220 bytes
  • references/hig/sign-in-with-apple.mddoc18,361 bytes
  • references/hig/siri.mddoc13,708 bytes
  • references/hig/sliders.mddoc4,953 bytes
  • references/hig/snippets.mddoc4,161 bytes
  • references/hig/split-views.mddoc5,175 bytes
  • references/hig/status-bars.mddoc1,936 bytes
  • references/hig/steppers.mddoc1,604 bytes
  • references/hig/tab-bars.mddoc7,172 bytes
  • references/hig/tab-views.mddoc3,153 bytes
  • references/hig/text-fields.mddoc5,280 bytes
  • references/hig/text-views.mddoc2,471 bytes
  • references/hig/the-menu-bar.mddoc27,291 bytes
  • references/hig/toggles.mddoc8,629 bytes
  • references/hig/token-fields.mddoc2,230 bytes
  • references/hig/toolbars.mddoc12,411 bytes
  • references/hig/typography.mddoc30,481 bytes
  • references/hig/undo-and-redo.mddoc4,072 bytes
  • references/hig/virtual-keyboards.mddoc8,571 bytes
  • references/hig/voiceover.mddoc5,745 bytes
  • references/hig/web-views.mddoc1,171 bytes
  • references/hig/widgets.mddoc31,701 bytes
  • references/hig/windows.mddoc9,098 bytes
  • references/hig/writing.mddoc9,907 bytes
  • scripts/pull-hig.mjsruns34,149 bytes

No excerpt is shown for this license. Read the source on GitHub.

View the complete source on GitHub

Skills 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

  1. #446 on Nov 1
  2. #440 on Nov 2
  3. #436 on Nov 3
  4. #432 on Nov 4
  5. #428 on Nov 5
  6. #423 since Nov 6
84 earlier periods
  1. #875 on Aug 2
  2. #870 on Aug 7
  3. #881 on Aug 9
  4. #911 on Aug 10
  5. #915 on Aug 11
  6. #914 on Aug 12
  7. #919 on Aug 13
  8. #898 on Aug 14
  9. #865 on Aug 15
  10. #888 on Aug 16
  11. #895 on Aug 17
  12. #912 on Aug 18
  13. #908 on Aug 19
  14. #892 on Aug 20
  15. #902 on Aug 21
  16. #848 on Aug 22
  17. #903 on Aug 23
  18. #911 on Aug 24
  19. #921 on Aug 25
  20. #902 on Aug 26
  21. #909 on Aug 27
  22. #946 on Aug 28
  23. #862 on Aug 29
  24. #866 on Aug 30
  25. #912 on Aug 31
  26. #947 on Sep 1
  27. #914 on Sep 2
  28. #918 on Sep 3
  29. #880 on Sep 4
  30. #854 on Sep 5
  31. #892 on Sep 6
  32. #916 on Sep 7
  33. #932 on Sep 8
  34. #916 on Sep 9
  35. #901 on Sep 10
  36. #864 on Sep 11
  37. #858 on Sep 12
  38. #856 on Sep 13
  39. #883 on Sep 14
  40. #868 on Sep 15
  41. #873 on Sep 16
  42. #852 on Sep 17
  43. #829 on Sep 18
  44. #787 on Sep 19
  45. #789 on Sep 20
  46. #796 on Sep 21
  47. #805 on Sep 22
  48. #780 on Sep 23
  49. #744 on Sep 24
  50. #715 on Sep 25
  51. #709 on Sep 26
  52. #734 on Sep 27
  53. #742 on Sep 28
  54. #758 on Sep 29
  55. #727 on Sep 30
  56. #683 on Oct 1
  57. #689 on Oct 2
  58. #664 on Oct 3
  59. #696 on Oct 4
  60. #690 on Oct 5
  61. #691 on Oct 6
  62. #695 on Oct 7
  63. #718 on Oct 8
  64. #674 on Oct 9
  65. #650 on Oct 10
  66. #624 on Oct 11
  67. #620 on Oct 12
  68. #600 on Oct 13
  69. #584 on Oct 14
  70. #569 on Oct 15
  71. #560 on Oct 16
  72. #543 on Oct 17
  73. #533 on Oct 18
  74. #543 on Oct 19
  75. #534 on Oct 20
  76. #530 on Oct 21
  77. #511 on Oct 22
  78. #496 on Oct 23
  79. #475 on Oct 24
  80. #517 on Oct 25
  81. #484 on Oct 28
  82. #477 on Oct 29
  83. #462 on Oct 30
  84. #457 on Oct 31

Before you install

Network or broad shell

Automated 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:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
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

  • Network accessline 3
    > Source: <https://developer.apple.com/design/human-interface-guidelines/pickers>
  • Network accessline 56
    For developer guidance, see [NSDatePicker](https://developer.apple.com/documentation/appkit/nsdatepicker).

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

  • Network accessline 3
    > Source: <https://developer.apple.com/design/human-interface-guidelines/tab-views>
  • Network accessline 24
    For developer guidance, see [NSTabView](https://developer.apple.com/documentation/appkit/nstabview).

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

and 450 more

Only the first 500 facts are listed.

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeCompatibleStandard SKILL.md SKILL.md.claude/skills/<skill-name>/
CodexNativeManifest AGENTS.md.agents/skills/<skill-name>/
CursorNativePath .cursorrules.cursor/skills/<skill-name>/
Gemini CLINativePath GEMINI.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard 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.

dickwu/apple-design-skill: #423 on hotskills, 2.9k stars

[![dickwu/apple-design-skill on hotskills](https://hotskills.dev/badge/dickwu-apple-design-skill.svg)](https://hotskills.dev/skill/dickwu-apple-design-skill/)