# HIG Doctor > Apple Human Interface Guidelines as agent skills for AI coding agents. Snapshot from February 2025, structured for progressive disclosure. Raw markdown is available for every topic — append `.md` or use the `/raw/` endpoint. Source: https://developer.apple.com/design/human-interface-guidelines/ · License: Apple content is Apple IP, referenced here for AI agent guidance. ## MCP server - [HIG Doctor MCP server](https://apple.raintree.technology/mcp): stdio MCP server exposing skill discovery, search, lookup, project and file audits, and finding explanations. ## Audit tool - [HIG Doctor audit CLI](https://apple.raintree.technology): source auditor across 14 frameworks; Apple-platform checks cite the HIG directly, while other surfaces use aligned accessibility and interface-quality rules. ## Components - [Action button](https://apple.raintree.technology/raw/action-button): Support the Action button with a set of your app’s essential functions. - [Action sheets](https://apple.raintree.technology/raw/action-sheets): Use an action sheet — not an alert — to offer choices related to an intentional action. - [Activity rings](https://apple.raintree.technology/raw/activity-rings): Display Activity rings when they’re relevant to the purpose of your app. - [Activity views](https://apple.raintree.technology/raw/activity-views): Avoid creating duplicate versions of common actions that are already available in the activity view. - [Alerts](https://apple.raintree.technology/raw/alerts): Use alerts sparingly. - [App Clips](https://apple.raintree.technology/raw/app-clips): A rental bike could come with an App Clip Code that people tap or scan to launch an App Clip that lets them rent the bike. - [App Shortcuts](https://apple.raintree.technology/raw/app-shortcuts): Offer App Shortcuts for your app’s most common and important tasks. - [Boxes](https://apple.raintree.technology/raw/boxes): Prefer keeping a box relatively small in comparison with its containing view. - [Buttons](https://apple.raintree.technology/raw/buttons): Style. A visual style based on size, color, and shape. - [Charts](https://apple.raintree.technology/raw/charts): Learn how upcoming weather conditions might affect their plans. - [Collections](https://apple.raintree.technology/raw/collections): Use the standard row or grid layout whenever possible. - [Color wells](https://apple.raintree.technology/raw/color-wells): Consider the system-provided color picker for a familiar experience. - [Column views](https://apple.raintree.technology/raw/column-views): Show the root level of your data hierarchy in the first column. - [Combo boxes](https://apple.raintree.technology/raw/combo-boxes): Populate the field with a meaningful default value from the list. - [Complications](https://apple.raintree.technology/raw/complications): Identify essential, dynamic content that people want to view at a glance. - [Context menus](https://apple.raintree.technology/raw/context-menus): The system-defined touch or pinch and hold gesture in visionOS, iOS, and iPadOS - [Controls](https://apple.raintree.technology/raw/controls): In Control Center, a control displays its symbol and, at larger sizes, its title and value. - [Digit entry views](https://apple.raintree.technology/raw/digit-entry-views): Use secure digit fields. - [Disclosure controls](https://apple.raintree.technology/raw/disclosure-controls): Use a disclosure control to hide details until they’re relevant. - [Dock menus](https://apple.raintree.technology/raw/dock-menus): Make custom Dock menu items available in other places, too. - [Edit menus](https://apple.raintree.technology/raw/edit-menus): In iOS, the edit menu displays commands in a compact, horizontal list that appears when people touch and hold or double-tap to select content in a view.... - [Gauges](https://apple.raintree.technology/raw/gauges): Write succinct labels that describe the current value and both endpoints of the range. - [Home Screen quick actions](https://apple.raintree.technology/raw/home-screen-quick-actions): Create quick actions for compelling, high-value tasks. - [Image views](https://apple.raintree.technology/raw/image-views): Use an image view when the primary purpose of the view is simply to display an image. - [Image wells](https://apple.raintree.technology/raw/image-wells): Revert to a default image when necessary. - [Labels](https://apple.raintree.technology/raw/labels): Within a button, a label generally conveys what the button does, such as Edit, Cancel, or Send. - [Lists and tables](https://apple.raintree.technology/raw/lists-and-tables): Prefer displaying text in a list or table. - [Live Activities](https://apple.raintree.technology/raw/live-activities): Offer Live Activities for tasks and events that have a defined beginning and end. - [Lockups](https://apple.raintree.technology/raw/lockups): Allow adequate space between lockups. - [Menus](https://apple.raintree.technology/raw/menus): For each menu item, write a label that clearly and succinctly describes it. - [Notifications](https://apple.raintree.technology/raw/notifications): A banner or view on a Lock Screen, Home Screen, Home View, or desktop - [Ornaments](https://apple.raintree.technology/raw/ornaments): Consider using an ornament to present frequently needed controls or information in a consistent location that doesn’t clutter the window. - [Outline views](https://apple.raintree.technology/raw/outline-views): Use a table instead of an outline view to present data that’s not hierarchical. - [Page controls](https://apple.raintree.technology/raw/page-controls): Use page controls to represent movement between an ordered list of pages. - [Panels](https://apple.raintree.technology/raw/panels): Use a panel to give people quick access to important controls or information related to the content they’re working with. - [Path controls](https://apple.raintree.technology/raw/path-controls): Use a path control in the window body, not the window frame. - [Pickers](https://apple.raintree.technology/raw/pickers): Consider using a picker to offer medium-to-long lists of items. - [Pop-up buttons](https://apple.raintree.technology/raw/pop-up-buttons): Use a pop-up button to present a flat list of mutually exclusive options or states. - [Popovers](https://apple.raintree.technology/raw/popovers): Use a popover to expose a small amount of information or functionality. - [Progress indicators](https://apple.raintree.technology/raw/progress-indicators): _Determinate_ , for a task with a well-defined duration, such as a file conversion - [Pull-down buttons](https://apple.raintree.technology/raw/pull-down-buttons): Use a pull-down button to present commands or items that are directly related to the button’s action. - [Rating indicators](https://apple.raintree.technology/raw/rating-indicators): Make it easy to change rankings. - [Scroll views](https://apple.raintree.technology/raw/scroll-views): Support default scrolling gestures and keyboard shortcuts. - [Search fields](https://apple.raintree.technology/raw/search-fields): Display placeholder text that describes the type of information people can search for. - [Segmented controls](https://apple.raintree.technology/raw/segmented-controls): Use a segmented control to provide closely related choices that affect an object, state, or view. - [Sheets](https://apple.raintree.technology/raw/sheets): Use a sheet to present simple content or tasks. - [Sidebars](https://apple.raintree.technology/raw/sidebars): Extend content beneath the sidebar. - [Sliders](https://apple.raintree.technology/raw/sliders): Customize a slider’s appearance if it adds value. - [Split views](https://apple.raintree.technology/raw/split-views): To support navigation, persistently highlight the current selection in each pane that leads to the detail view. - [Status bars](https://apple.raintree.technology/raw/status-bars): Obscure content under the status bar. - [Steppers](https://apple.raintree.technology/raw/steppers): Make the value that a stepper affects obvious. - [Tab bars](https://apple.raintree.technology/raw/tab-bars): Use a tab bar to support navigation, not to provide actions. - [Tab views](https://apple.raintree.technology/raw/tab-views): Use a tab view to present closely related areas of content. - [Text fields](https://apple.raintree.technology/raw/text-fields): Use a text field to request a small amount of information, such as a name or an email address. - [Text views](https://apple.raintree.technology/raw/text-views): Use a text view when you need to display text that’s long, editable, or in a special format. - [The menu bar](https://apple.raintree.technology/raw/the-menu-bar): _YourAppName_ (you supply a short version of your app’s name for this menu’s title) - [Toggles](https://apple.raintree.technology/raw/toggles): Use a toggle to help people choose between two opposing values that affect the state of content or a view. - [Token fields](https://apple.raintree.technology/raw/token-fields): Add value with a context menu. - [Toolbars](https://apple.raintree.technology/raw/toolbars): The title of the current view - [Top Shelf](https://apple.raintree.technology/raw/top-shelf): Help people jump right into your content. - [Virtual keyboards](https://apple.raintree.technology/raw/virtual-keyboards): Choose a keyboard that matches the type of content people are editing. - [Watch faces](https://apple.raintree.technology/raw/watch-faces): Help people discover your app by sharing watch faces that feature your complications. - [Web views](https://apple.raintree.technology/raw/web-views): Support forward and back navigation when appropriate. - [Widgets](https://apple.raintree.technology/raw/widgets): On the Home Screen and Lock Screen of their iPhone and iPad - [Windows](https://apple.raintree.technology/raw/windows): A _primary_ window presents the main navigation and content of an app, and actions associated with them. ## Foundations - [Accessibility](https://apple.raintree.technology/raw/accessibility): Intuitive. Your interface uses familiar and consistent interactions that make tasks straightforward to perform. - [App icons](https://apple.raintree.technology/raw/app-icons): Prefer clearly defined edges in foreground layers. - [Branding](https://apple.raintree.technology/raw/branding): Use your brand’s unique voice and tone in all the written communication you display. - [Color](https://apple.raintree.technology/raw/color): Avoid using the same color to mean different things. - [Dark Mode](https://apple.raintree.technology/raw/dark-mode): Avoid offering an app-specific appearance setting. - [Icons](https://apple.raintree.technology/raw/icons): Create a recognizable, highly simplified design. - [Images](https://apple.raintree.technology/raw/images): Provide high-resolution assets for all bitmap images in your app, for every device you support. - [Immersive experiences](https://apple.raintree.technology/raw/immersive-experiences): Use dimmed passthrough to bring attention to your content. You can subtly dim or tint passthrough and other visible content to bring attention to your app... - [Inclusion](https://apple.raintree.technology/raw/inclusion): Gender and gender identity - [Layout](https://apple.raintree.technology/raw/layout): Group related items to help people find the information they want. - [Materials](https://apple.raintree.technology/raw/materials): Don’t use Liquid Glass in the content layer. - [Motion](https://apple.raintree.technology/raw/motion): Add motion purposefully, supporting the experience without overshadowing it. - [Privacy](https://apple.raintree.technology/raw/privacy): Request access only to data that you actually need. - [Right to left](https://apple.raintree.technology/raw/right-to-left): Adjust text alignment to match the interface direction, if the system doesn’t do so automatically. - [SF Symbols](https://apple.raintree.technology/raw/sf-symbols): Confirm that a symbol’s rendering mode works well in every context. - [Spatial layout](https://apple.raintree.technology/raw/spatial-layout): Center important content within the field of view. - [Typography](https://apple.raintree.technology/raw/typography): Use font sizes that most people can read easily. - [Writing](https://apple.raintree.technology/raw/writing): Determine your app’s voice. ## Inputs - [Apple Pencil and Scribble](https://apple.raintree.technology/raw/apple-pencil-and-scribble): Support behaviors people intuitively expect when using a marking instrument. - [Camera Control](https://apple.raintree.technology/raw/camera-control): A _slider_ provides a range of values to choose from, such as how much contrast to apply to the content. - [Digital Crown](https://apple.raintree.technology/raw/digital-crown): Adjust the amount of immersion in a portal, an Environment, or an app or game running in a Full Space (for guidance, see Immersive experiences) - [Eyes](https://apple.raintree.technology/raw/eyes): Always give people multiple ways to interact with your app. - [Focus and selection](https://apple.raintree.technology/raw/focus-and-selection): Rely on system-provided focus effects. - [Game controls](https://apple.raintree.technology/raw/game-controls): Even though all platforms except watchOS support physical game controllers, not every player might have access to one. - [Gestures](https://apple.raintree.technology/raw/gestures): Give people more than one way to interact with your app. - [Gyroscope and accelerometer](https://apple.raintree.technology/raw/gyro-and-accelerometer): Use motion data only to offer a tangible benefit to people. - [Keyboards](https://apple.raintree.technology/raw/keyboards): Support Full Keyboard Access when possible. - [Nearby interactions](https://apple.raintree.technology/raw/nearby-interactions): Consider a task from the perspective of the physical world to find inspiration for a nearby interaction. - [Nearby interactions](https://apple.raintree.technology/raw/spatial-interactions): Consider a task from the perspective of the physical world to find inspiration for a nearby interaction. - [Pointing devices](https://apple.raintree.technology/raw/pointing-devices): Be consistent when responding to mouse and trackpad gestures. - [Remotes](https://apple.raintree.technology/raw/remotes): Prefer using standard gestures to perform standard actions. ## Patterns - [Charting data](https://apple.raintree.technology/raw/charting-data): Analyzing trends based on historical or predicted values - [Collaboration and sharing](https://apple.raintree.technology/raw/collaboration-and-sharing): Place the Share button in a convenient location, like a toolbar, to make it easy for people to start sharing or collaborating. - [Drag and drop](https://apple.raintree.technology/raw/drag-and-drop): In visionOS, people pinch and hold a virtual object while dragging it to a new location in any direction, including along the z-axis. - [Entering data](https://apple.raintree.technology/raw/entering-data): Pre-gathering as much information as possible to minimize the amount of data that people need to supply - [Feedback](https://apple.raintree.technology/raw/feedback): The current status of something - [File management](https://apple.raintree.technology/raw/file-management): Use app menus and keyboard shortcuts to give people convenient ways to create and open documents. - [Going full screen](https://apple.raintree.technology/raw/going-full-screen): Support full-screen mode when it makes sense for your experience. - [Launching](https://apple.raintree.technology/raw/launching): If the platform requires it, provide a launch screen. - [Live-viewing apps](https://apple.raintree.technology/raw/live-viewing-apps): Feature live content prominently and make it easy to access. - [Loading](https://apple.raintree.technology/raw/loading): Show something as soon as possible. - [Managing accounts](https://apple.raintree.technology/raw/managing-accounts): Explain the benefits of creating an account and how to sign up. - [Managing notifications](https://apple.raintree.technology/raw/managing-notifications): A Focus helps people filter notifications during a time period they reserve for an activity like sleeping, working, reading, or driving. - [Modality](https://apple.raintree.technology/raw/modality): Ensure that people receive critical information and, if necessary, act on it - [Multitasking](https://apple.raintree.technology/raw/multitasking): Pause activities that require people’s attention or active participation when they switch away. - [Offering help](https://apple.raintree.technology/raw/offering-help): Let your app’s tasks inform the types of help people might need. - [Onboarding](https://apple.raintree.technology/raw/onboarding): Teach through interactivity. - [Playing audio](https://apple.raintree.technology/raw/playing-audio): Adjust levels automatically when necessary — don’t adjust the overall volume. - [Playing haptics](https://apple.raintree.technology/raw/playing-haptics): In an iPadOS, macOS, tvOS, or visionOS app or game, game controllers can provide haptic feedback (for developer guidance, see Playing Haptics on Game... - [Playing video](https://apple.raintree.technology/raw/playing-video): 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... - [Printing](https://apple.raintree.technology/raw/printing): Make printing discoverable. - [Ratings and reviews](https://apple.raintree.technology/raw/ratings-and-reviews): Ask for a rating only after people have demonstrated engagement with your app or game. - [Searching](https://apple.raintree.technology/raw/searching): If search is important, consider making it a primary action. - [Settings](https://apple.raintree.technology/raw/settings): Aim to provide default settings that give the best experience to the largest number of people. - [Undo and redo](https://apple.raintree.technology/raw/undo-and-redo): Help people predict the results of undo and redo as much as possible. - [Workouts](https://apple.raintree.technology/raw/workouts): In a watchOS fitness app, use workout sessions to provide useful data and relevant controls. ## Platforms - [Designing for games](https://apple.raintree.technology/raw/designing-for-games): Let people play as soon as installation completes. - [Designing for iOS](https://apple.raintree.technology/raw/designing-for-ios): Home Screen quick actions - [Designing for iPadOS](https://apple.raintree.technology/raw/designing-for-ipados): Take advantage of the large display to elevate the content people care about, minimizing modal interfaces and full-screen transitions, and positioning... - [Designing for macOS](https://apple.raintree.technology/raw/designing-for-macos): Leverage large displays to present more content in fewer nested levels and with less need for modality, while maintaining a comfortable information... - [Designing for tvOS](https://apple.raintree.technology/raw/designing-for-tvos): Integrating with the TV app - [Designing for visionOS](https://apple.raintree.technology/raw/designing-for-visionos): Embrace the unique features of Apple Vision Pro. - [Designing for watchOS](https://apple.raintree.technology/raw/designing-for-watchos): Support quick, glanceable, single-screen interactions that deliver critical information succinctly and help people perform targeted actions with a simple... ## Technologies - [AirPlay](https://apple.raintree.technology/raw/airplay): Prefer the system-provided media player. - [Always On](https://apple.raintree.technology/raw/always-on): On iPhone 14 Pro and iPhone 14 Pro Max, the system displays Lock Screen items like Widgets and Live Activities when people set aside their device face up... - [Apple Pay](https://apple.raintree.technology/raw/apple-pay): Offer Apple Pay on all devices and browsers that support it. - [Augmented reality](https://apple.raintree.technology/raw/augmented-reality): Offer AR features only on capable devices. - [CareKit](https://apple.raintree.technology/raw/carekit): Provide a coherent privacy policy. - [CarPlay](https://apple.raintree.technology/raw/carplay): Eliminate app interactions on iPhone when CarPlay is active. - [Game Center](https://apple.raintree.technology/raw/game-center): Discover new games their friends are playing. - [Generative AI](https://apple.raintree.technology/raw/generative-ai): Design your experience responsibly. - [HealthKit](https://apple.raintree.technology/raw/healthkit): Provide a coherent privacy policy. - [HomeKit](https://apple.raintree.technology/raw/homekit): Help people set up, name, and organize their accessories - [iCloud](https://apple.raintree.technology/raw/icloud): Make it easy to use your app with iCloud. - [ID Verifier](https://apple.raintree.technology/raw/id-verifier): Customers only present the minimum data needed to prove their age or identity, without handing over their ID card or showing their device. - [iMessage apps and stickers](https://apple.raintree.technology/raw/imessage-apps-and-stickers): Prefer providing one primary experience in your iMessage app. - [In-app purchase](https://apple.raintree.technology/raw/in-app-purchase): _Consumable_ content like lives or gems in a game. After purchase, consumable content depletes as people use it, and people can purchase it again. - [Live Photos](https://apple.raintree.technology/raw/live-photos): Apply adjustments to all frames. - [Mac Catalyst](https://apple.raintree.technology/raw/mac-catalyst): Keyboard navigation and shortcuts. - [Machine learning](https://apple.raintree.technology/raw/machine-learning): The keyboard uses machine learning to provide QuickType suggestions. Because the keyboard still works without these suggestions, machine learning plays a... - [Maps](https://apple.raintree.technology/raw/maps): In general, make your map interactive. - [NFC](https://apple.raintree.technology/raw/nfc): Don’t encourage people to make contact with physical objects. - [Photo editing](https://apple.raintree.technology/raw/photo-editing): Confirm cancellation of edits. - [ResearchKit](https://apple.raintree.technology/raw/researchkit): Always display the onboarding screens in the correct order. - [SharePlay](https://apple.raintree.technology/raw/shareplay): Let people know that you support SharePlay. - [ShazamKit](https://apple.raintree.technology/raw/shazamkit): Enhancing experiences with graphics that correspond with the genre of currently playing music - [Sign in with Apple](https://apple.raintree.technology/raw/sign-in-with-apple): Ask people to sign in only in exchange for value. - [Siri](https://apple.raintree.technology/raw/siri): Ask Siri to perform a system-defined task that your app supports, like send a message, play a song, or start a workout. - [Tap to Pay on iPhone](https://apple.raintree.technology/raw/tap-to-pay-on-iphone): Help merchants accept Tap to Pay on iPhone terms and conditions before they begin interacting with their customers. - [VoiceOver](https://apple.raintree.technology/raw/voiceover): Provide alternative labels for all key interface elements. - [Wallet](https://apple.raintree.technology/raw/wallet): Offer to add new passes to Wallet.