Files
swift-front/data/apple-hig-compact.json
T
Anthony Cardinale 34bd90e30d Initial release: swift-front skill with Apple HIG integration
Combines frontend-design aesthetics with swiftui-pro correctness,
grounded in Apple's Human Interface Guidelines (134 articles).

Includes curated HIG reference files for typography, color, layout,
materials, motion, icons, and components, plus full HIG JSON data
for deep lookups.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 07:52:07 -04:00

813 lines
39 KiB
JSON
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"metadata": {
"source": "Apple Human Interface Guidelines",
"source_url": "https://developer.apple.com/design/human-interface-guidelines/",
"generated_at": "2026-03-24T10:09:01.952605+00:00",
"article_count": 134,
"format_version": "1.0",
"purpose": "Agent-readable reference for designing Swift/SwiftUI applications following Apple HIG",
"format": "compact-guidelines-only"
},
"articles": [
{
"title": "App icons",
"category": "foundations",
"url": "https://developer.apple.com/design/human-interface-guidelines/app-icons",
"platforms": [],
"guidelines": [
{
"sentiment": "note",
"text": "NoteAlternate 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.",
"context": "Appearances"
}
]
},
{
"title": "Apple Pay",
"category": "technologies",
"url": "https://developer.apple.com/design/human-interface-guidelines/apple-pay",
"platforms": [],
"guidelines": [
{
"sentiment": "tip",
"text": "TipIts important to understand the difference between Apple Pay and In-app purchase. Use Apple Pay in your app to sell physical goods like groceries, clothing, and appliances; for services such as club memberships, hotel reservations, and tickets for events; and for donations. Use In-App Purchase in your app to sell virtual goods, such as premium content for your app, and subscriptions for digital content.",
"context": "Overview"
},
{
"sentiment": "note",
"text": "NoteFor privacy reasons, your app or website has limited access to data until people attempt to authorize a transaction. Prior to authorization, only the card type and a redacted shipping address are accessible. Its critical to display errors when authorization fails, but to the extent possible, you also need to attempt to validate available information and report problems before authorization.",
"context": "Data validation"
},
{
"sentiment": "note",
"text": "NoteIf the size you specify doesnt accommodate the translated title for the type of payment button youre using, the system automatically replaces it with the plain Apple Pay button shown below on the left. There is no automatic replacement for the Set up Apple Pay button.",
"context": "Button size and position"
}
]
},
{
"title": "Apple Pencil and Scribble",
"category": "inputs",
"url": "https://developer.apple.com/design/human-interface-guidelines/apple-pencil-and-scribble",
"platforms": [],
"guidelines": [
{
"sentiment": "note",
"text": "NoteThe squeeze gesture is available only when the paired iPad screen is on and while the Apple Pencil Pro is not directly contacting it. Because squeeze works when theres distance between Apple Pencil Pro and iPad, people might not always be visually aware of the gestures onscreen result.",
"context": "Squeeze"
}
]
},
{
"title": "Augmented reality",
"category": "technologies",
"url": "https://developer.apple.com/design/human-interface-guidelines/augmented-reality",
"platforms": [],
"guidelines": [
{
"sentiment": "note",
"text": "NoteThe 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.",
"context": "Overview"
},
{
"sentiment": "tip",
"text": "TipRegardless of the purpose of your app, dont use scaling as a way to adjust the distance of an object. If you enlarge a distant object in an effort to make it appear closer, the result is a larger object that still looks far away.",
"context": "Designing object interactions"
}
]
},
{
"title": "Buttons",
"category": "foundations",
"url": "https://developer.apple.com/design/human-interface-guidelines/buttons",
"platforms": [],
"guidelines": [
{
"sentiment": "note",
"text": "NoteIn macOS and visionOS, the system displays a tooltip after people hover over a button for a moment. A tooltip displays a brief phrase that explains what a button does; for guidance, see Offering help.",
"context": "Content"
},
{
"sentiment": "note",
"text": "NoteIn visionOS, buttons dont support custom hover effects.",
"context": "visionOS"
}
]
},
{
"title": "Complications",
"category": "foundations",
"url": "https://developer.apple.com/design/human-interface-guidelines/complications",
"platforms": [],
"guidelines": [
{
"sentiment": "note",
"text": "Developer notePrefer using WidgetKit to develop complications for watchOS 9 and later. For guidance, see Migrating ClockKit complications to WidgetKit. To support earlier versions of watchOS, continue to implement the ClockKit complication data source protocol (see CLKComplicationDataSource).",
"context": "Overview"
},
{
"sentiment": "note",
"text": "NoteThe system applies a circular mask to each image.",
"context": "Circular"
},
{
"sentiment": "note",
"text": "NoteThe system applies a circular mask to the circular, open-gauge, and closed-gauge images.",
"context": "Circular"
},
{
"sentiment": "note",
"text": "NoteThe system applies a circular mask to each image.",
"context": "Corner"
},
{
"sentiment": "note",
"text": "NoteBoth large-image layouts automatically include a four-point corner radius.",
"context": "Rectangular"
},
{
"sentiment": "note",
"text": "NoteIn each stack measurement, the width value represents the maximum size.",
"context": "Circular small"
},
{
"sentiment": "note",
"text": "NoteIn each stack measurement, the width value represents the maximum size.",
"context": "Modular small"
},
{
"sentiment": "note",
"text": "NoteIn each stack measurement, the width value represents the maximum size.",
"context": "Extra large"
}
]
},
{
"title": "Designing for visionOS",
"category": "getting-started",
"url": "https://developer.apple.com/design/human-interface-guidelines/designing-for-visionos",
"platforms": [],
"guidelines": [
{
"sentiment": "important",
"text": "ImportantWhen building your app for Apple Vision Pro, be sure to consider the unique characteristics of the device and its spatial computing environment, and pay special attention to your users safety; for more details about these characteristics, see Apple Vision Pro User Guide. For example, Apple Vision Pro should not be used while operating a vehicle or heavy machinery. The device is also not designed to be used while moving around unsafe environments such as near balconies, streets, stairs, or other potential hazards. Note that Apple Vision Pro is designed to be fit and used only by individuals 13 years of age or older.",
"context": "Overview"
}
]
},
{
"title": "Digital Crown",
"category": "inputs",
"url": "https://developer.apple.com/design/human-interface-guidelines/digital-crown",
"platforms": [],
"guidelines": [
{
"sentiment": "note",
"text": "NoteApps dont respond to presses on the Digital Crown because watchOS reserves these interactions for system-provided functionality like revealing the Home Screen.",
"context": "Apple Watch"
}
]
},
{
"title": "Dock menus",
"category": "general",
"url": "https://developer.apple.com/design/human-interface-guidelines/dock-menus",
"platforms": [],
"guidelines": [
{
"sentiment": "note",
"text": "NoteAlthough iOS and iPadOS dont support a Dock menu, people can reveal a similar menu of system-provided and custom items — called Home Screen quick actions — when they long press an app icon on the Home Screen or in the Dock. For guidance, see Home Screen quick actions.",
"context": "Overview"
}
]
},
{
"title": "Eyes",
"category": "inputs",
"url": "https://developer.apple.com/design/human-interface-guidelines/eyes",
"platforms": [],
"guidelines": [
{
"sentiment": "important",
"text": "ImportantTo help preserve peoples privacy, visionOS doesnt provide direct information about where people are looking before they tap. When you use system-provided components, visionOS automatically tells you when people tap the component. For developer guidance, see Adopting best practices for privacy and user preferences.",
"context": "Overview"
}
]
},
{
"title": "Focus and selection",
"category": "inputs",
"url": "https://developer.apple.com/design/human-interface-guidelines/focus-and-selection",
"platforms": [],
"guidelines": [
{
"sentiment": "note",
"text": "NoteWhen people look at a virtual object to identify it as the object they want to interact with, the system uses the hover effect, not a focus effect, to provide visual feedback (for guidance, see Eyes). The hover effect isnt related to the focus system.",
"context": "visionOS"
}
]
},
{
"title": "Game Center",
"category": "technologies",
"url": "https://developer.apple.com/design/human-interface-guidelines/game-center",
"platforms": [],
"guidelines": [
{
"sentiment": "note",
"text": "NoteIn visionOS, the locations of the access point vary based on game type, such as immersive or volume-based. For developer guidance, see Adding an access point to your game.",
"context": "Integrating the access point"
},
{
"sentiment": "note",
"text": "NoteBe mindful of how cropping might affect your leaderboard artwork. In iOS, iPadOS, and macOS, the system crops artwork for leaderboards that are part of a leaderboard set. In tvOS, the focus effect on leaderboard artwork may crop your images at the edges of some layers. Make sure your primary content stays comfortably visible in both these scenarios.",
"context": "Leaderboards"
}
]
},
{
"title": "Gestures",
"category": "inputs",
"url": "https://developer.apple.com/design/human-interface-guidelines/gestures",
"platforms": [],
"guidelines": [
{
"sentiment": "note",
"text": "NoteThe system overlay is the default method of accessing Control Center in visionOS 2 and later. The visionOS 1 behavior (looking upward) remains available as an accessibility setting.",
"context": "Working with system overlays in visionOS"
},
{
"sentiment": "note",
"text": "NoteApps and games that you built for visionOS 1 defer the system overlay behavior by default. When a person looks at their palm with your app running in a Full Space, the Home indicator wont appear unless they tap first.",
"context": "Working with system overlays in visionOS"
}
]
},
{
"title": "Gyroscope and accelerometer",
"category": "inputs",
"url": "https://developer.apple.com/design/human-interface-guidelines/gyro-and-accelerometer",
"platforms": [],
"guidelines": [
{
"sentiment": "important",
"text": "ImportantIf your experience needs to access motion data from a device, you must provide copy that explains why. The first time your app or game tries to access this type of data, the system includes your copy in a permission request, where people can grant or deny access.",
"context": "Best practices"
}
]
},
{
"title": "HealthKit",
"category": "technologies",
"url": "https://developer.apple.com/design/human-interface-guidelines/healthkit",
"platforms": [],
"guidelines": [
{
"sentiment": "important",
"text": "ImportantIf your app doesnt provide health and fitness functionality, dont request access to peoples private health data.",
"context": "Overview"
}
]
},
{
"title": "HomeKit",
"category": "technologies",
"url": "https://developer.apple.com/design/human-interface-guidelines/homekit",
"platforms": [],
"guidelines": [
{
"sentiment": "tip",
"text": "TipThe HomeKit API uses the term action set instead of scene. In your apps UI, always use the term scene.",
"context": "Actions and scenes"
}
]
},
{
"title": "Images",
"category": "foundations",
"url": "https://developer.apple.com/design/human-interface-guidelines/images",
"platforms": [],
"guidelines": [
{
"sentiment": "important",
"text": "ImportantYour tvOS app icon must use a layered image. For other focusable images in your app, including Top Shelf images, layered images are strongly encouraged, but optional.",
"context": "Layered images"
},
{
"sentiment": "note",
"text": "Developer noteIf your app retrieves layered images from a content server at runtime, you must provide runtime layered images (.lcr). You can generate them from LSR files or Photoshop files using the layerutil command-line tool that Xcode provides. Runtime layered images are intended to be downloaded — dont embed them in your app.",
"context": "Layered images"
}
]
},
{
"title": "In-app purchase",
"category": "technologies",
"url": "https://developer.apple.com/design/human-interface-guidelines/in-app-purchase",
"platforms": [],
"guidelines": [
{
"sentiment": "tip",
"text": "TipIn-app purchase and Apple Pay are different technologies that support different use cases. Use in-app purchase to sell virtual goods in your app, such as premium content for your app and subscriptions for digital content. Use Apple Pay in your app to sell physical goods like groceries, clothing, and appliances; for services such as club memberships, hotel reservations, and event tickets; and for donations.",
"context": "Overview"
},
{
"sentiment": "note",
"text": "NoteFor 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 app, the Advanced Commerce API allows you to manage your In-App Purchase catalog directly. See the Advanced Commerce API App Store support page for an overview, and see Advanced Commerce API for developer guidance.",
"context": "Overview"
}
]
},
{
"title": "Keyboards",
"category": "inputs",
"url": "https://developer.apple.com/design/human-interface-guidelines/keyboards",
"platforms": [],
"guidelines": [
{
"sentiment": "important",
"text": "ImportantAlthough 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 controls, such as buttons, segmented controls, and switches. Instead, let people use Full Keyboard Access to activate controls, navigate to all onscreen components, and perform gesture-based interactions like drag and drop. For guidance, see iPadOS; for developer guidance, see Focus-based navigation.",
"context": "Best practices"
},
{
"sentiment": "tip",
"text": "TipSome languages require modifier keys to generate certain characters. For example, on a French keyboard, Option-5 generates the “{“ character. Its usually safe to use the Command key as a modifier, but avoid using an additional modifier with characters that arent available on all keyboards. If you must use a modifier other than Command, prefer using it only with the alphabetic characters.",
"context": "Custom keyboard shortcuts"
}
]
},
{
"title": "Launching",
"category": "patterns",
"url": "https://developer.apple.com/design/human-interface-guidelines/launching",
"platforms": [],
"guidelines": [
{
"sentiment": "note",
"text": "NoteUnlike the layered images throughout much of a tvOS app, the launch screen is static.",
"context": "tvOS"
}
]
},
{
"title": "Layout",
"category": "foundations",
"url": "https://developer.apple.com/design/human-interface-guidelines/layout",
"platforms": [],
"guidelines": [
{
"sentiment": "note",
"text": "NoteWhen you add depth to content in a standard window, the content extends beyond the windows bounds along the z-axis. If content extends too far along the z-axis, the system clips it.",
"context": "visionOS"
},
{
"sentiment": "note",
"text": "NoteAll scale factors in the table above are UIKit scale factors, which may differ from native scale factors. For developer guidance, see scale and nativeScale.",
"context": "iOS, iPadOS device screen dimensions"
}
]
},
{
"title": "Mac Catalyst",
"category": "technologies",
"url": "https://developer.apple.com/design/human-interface-guidelines/mac-catalyst",
"platforms": [],
"guidelines": [
{
"sentiment": "note",
"text": "Developer noteTo discover how views and controls can change when you create a Mac app using Mac Catalyst, download UIKit Catalog: Creating and customizing views and controls and build the macOS target.",
"context": "Before you start"
},
{
"sentiment": "note",
"text": "Developer noteWhen you adopt the Mac idiom, the unscaled views and interface elements report different metrics, often resulting in a significant amount of additional work. To reduce the amount of work, avoid using fixed font, view, or layout sizes. For developer guidance, see Choosing a user interface idiom for your Mac app.",
"context": "Choose an idiom"
},
{
"sentiment": "note",
"text": "Developer noteThe system sends the two touches in the pinch and rotate gestures to the view under the pointer, not the view under each touch.",
"context": "Inputs"
},
{
"sentiment": "note",
"text": "Developer noteTo support keyboard shortcuts for menu commands, use UIKeyCommand. For developer guidance, see Adding menus and shortcuts to the menu bar and user interface.",
"context": "Menus"
},
{
"sentiment": "note",
"text": "Developer noteTo add and remove custom app menus, use UIMenuBuilder and add menu items that represent your iPad apps commands as menu items with UICommand.",
"context": "Menus"
}
]
},
{
"title": "Managing accounts",
"category": "patterns",
"url": "https://developer.apple.com/design/human-interface-guidelines/managing-accounts",
"platforms": [],
"guidelines": [
{
"sentiment": "important",
"text": "ImportantIf legal requirements compel your app to maintain accounts or information — such as digital health records — or to follow a specific account-deletion process, clearly describe the situation so people can understand the information or accounts you must maintain and the process you must follow.",
"context": "Deleting accounts"
},
{
"sentiment": "note",
"text": "Developer noteIf people used Sign in with Apple to create an account within your app, you revoke the associated tokens when they delete their account. See Token revocation.",
"context": "Deleting accounts"
},
{
"sentiment": "note",
"text": "NoteEven if people didnt use your app to purchase the subscription, you still need to support account deletion.",
"context": "Deleting accounts"
}
]
},
{
"title": "Managing notifications",
"category": "patterns",
"url": "https://developer.apple.com/design/human-interface-guidelines/managing-notifications",
"platforms": [],
"guidelines": [
{
"sentiment": "important",
"text": "ImportantEven though a Focus might delay the delivery of a notification alert, the notification itself is available as soon as it arrives.",
"context": "Integrating with Focus"
},
{
"sentiment": "note",
"text": "NoteBecause a Critical notification can override the Ring/Silent switch and break through scheduled delivery and Focus, you must get an entitlement to send one.",
"context": "Integrating with Focus"
}
]
},
{
"title": "Maps",
"category": "technologies",
"url": "https://developer.apple.com/design/human-interface-guidelines/maps",
"platforms": [],
"guidelines": [
{
"sentiment": "note",
"text": "NoteThe Apple logo and legal link arent shown on maps that are smaller than 200x100 pixels.",
"context": "Best practices"
},
{
"sentiment": "note",
"text": "Developer noteIn 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.",
"context": "Displaying place cards in a map"
},
{
"sentiment": "important",
"text": "ImportantIf you dont 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:) and init(mapItem:displaysMap:).",
"context": "Adding place cards outside of a map"
}
]
},
{
"title": "Materials",
"category": "foundations",
"url": "https://developer.apple.com/design/human-interface-guidelines/materials",
"platforms": [],
"guidelines": [
{
"sentiment": "note",
"text": "NotevisionOS doesnt have a distinct Dark Mode setting. Instead, glass automatically adapts to the luminance of the objects and colors behind it.",
"context": "visionOS"
}
]
},
{
"title": "Menus",
"category": "foundations",
"url": "https://developer.apple.com/design/human-interface-guidelines/menus",
"platforms": [],
"guidelines": [
{
"sentiment": "note",
"text": "NoteSeveral system-provided components also include menus that support specific use cases. For example, a pop-up button or pull-down button can reveal a menu of options directly related to its action; a context menu lets people access a small number of frequently used actions relevant to their current view or task; and in macOS and iPadOS, menu bar menus contain all the commands people can perform in the app or game.",
"context": "Overview"
},
{
"sentiment": "note",
"text": "NoteDepending on menu layout, an iOS, iPadOS, or visionOS app can display a few unlabeled menu items that use only symbols or icons to identify them. For guidance, see visionOS and iOS, iPadOS.",
"context": "Labels"
}
]
},
{
"title": "Motion",
"category": "foundations",
"url": "https://developer.apple.com/design/human-interface-guidelines/motion",
"platforms": [],
"guidelines": [
{
"sentiment": "note",
"text": "NotePeople can experience discomfort even when theyre the ones moving a large virtual object, such as a window. Although adjusting translucency and contrast can help in this scenario, consider also keeping a windows size fairly small.",
"context": "visionOS"
},
{
"sentiment": "note",
"text": "NoteAll layout- and appearance-based animations automatically include built-in easing that plays at the start and end of the animation. You cant turn off or customize easing.",
"context": "watchOS"
}
]
},
{
"title": "Multitasking",
"category": "patterns",
"url": "https://developer.apple.com/design/human-interface-guidelines/multitasking",
"platforms": [],
"guidelines": [
{
"sentiment": "note",
"text": "NoteApps dont control multitasking configurations or receive any indication of the ones that people choose.",
"context": "iPadOS"
},
{
"sentiment": "note",
"text": "NoteWhen an app is the Now Playing app, closing its window automatically pauses audio playback; if people want to resume playback, they can do so in Control Center without opening the window.",
"context": "visionOS"
}
]
},
{
"title": "Playing audio",
"category": "patterns",
"url": "https://developer.apple.com/design/human-interface-guidelines/playing-audio",
"platforms": [],
"guidelines": [
{
"sentiment": "important",
"text": "ImportantIn visionOS, as in every platform, avoid communicating important information using only sound. Always provide additional ways to help people understand your app. For guidance, see Accessibility.",
"context": "visionOS"
}
]
},
{
"title": "Privacy",
"category": "foundations",
"url": "https://developer.apple.com/design/human-interface-guidelines/privacy",
"platforms": [],
"guidelines": [
{
"sentiment": "note",
"text": "NoteIf 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 doesnt change your apps status. For developer guidance, see LocationButton (SwiftUI) and CLLocationButton (Swift).",
"context": "Location button"
},
{
"sentiment": "important",
"text": "ImportantIf the system identifies consistent problems with your customized location button, it wont give your app access to the device location when people tap it. Although such a button can perform other app-specific actions, people may lose trust in your app if your location button doesnt work as they expect.",
"context": "Location button"
}
]
},
{
"title": "Pull-down buttons",
"category": "general",
"url": "https://developer.apple.com/design/human-interface-guidelines/pull-down-buttons",
"platforms": [],
"guidelines": [
{
"sentiment": "note",
"text": "NoteYou can also let people reveal a pull-down menu by performing a specific gesture on a button. For example, in iOS 14 and later, Safari responds to a touch and hold gesture on the Tabs button by displaying a menu of tab-related actions, like New Tab and Close All Tabs.",
"context": "iOS, iPadOS"
}
]
},
{
"title": "Settings",
"category": "patterns",
"url": "https://developer.apple.com/design/human-interface-guidelines/settings",
"platforms": [],
"guidelines": [
{
"sentiment": "note",
"text": "NoteIn games, players tend to adjust their approach to a specific task as part of the gameplay, not as a settings option to change.",
"context": "Task-specific options"
}
]
},
{
"title": "SF Symbols",
"category": "foundations",
"url": "https://developer.apple.com/design/human-interface-guidelines/sf-symbols",
"platforms": [],
"guidelines": [
{
"sentiment": "important",
"text": "ImportantSF Symbols includes copyrighted symbols that depict Apple products and features. You can display these symbols in your app, but you cant customize them. To help you identify a noncustomizable symbol, the SF Symbols app badges it with an Info icon; to help you use the symbol correctly, the inspector pane describes its usage restrictions.",
"context": "Custom symbols"
}
]
},
{
"title": "SharePlay",
"category": "technologies",
"url": "https://developer.apple.com/design/human-interface-guidelines/shareplay",
"platforms": [],
"guidelines": [
{
"sentiment": "note",
"text": "NoteDuring a shared activity, the system helps preserve peoples privacy by obscuring some visual details about wearers. In addition, a person can adjust their spatial Persona if they want. Although the system can place spatial Personas shoulder to shoulder and it supports shared gestures like a handshake or “high five,” spatial Personas remain apart.",
"context": "visionOS"
}
]
},
{
"title": "Sidebars",
"category": "foundations",
"url": "https://developer.apple.com/design/human-interface-guidelines/sidebars",
"platforms": [],
"guidelines": [
{
"sentiment": "note",
"text": "Developer noteTo display a sidebar only, use NavigationSplitView to present a sidebar in the primary pane of a split view, or use UISplitViewController.",
"context": "iPadOS"
}
]
},
{
"title": "Siri",
"category": "technologies",
"url": "https://developer.apple.com/design/human-interface-guidelines/siri",
"platforms": [],
"guidelines": [
{
"sentiment": "tip",
"text": "TipIf your actions primary purpose is to retrieve information or show something to people — like displaying a sports score or the weather — use the information category. Using a different category requires people to make additional taps to get the information.",
"context": "Design a custom intent"
},
{
"sentiment": "note",
"text": "Developer noteThe Add to Siri method for adding shortcuts is no longer supported. See App Shortcuts for ways to integrate your app with Siri and the system.",
"context": "Shortcuts and suggestions"
},
{
"sentiment": "note",
"text": "NoteUse translations of your app name and the word Shortcuts — but not Siri — when referring to them in a localized context.",
"context": "Referring to Shortcuts"
}
]
},
{
"title": "Spatial layout",
"category": "foundations",
"url": "https://developer.apple.com/design/human-interface-guidelines/spatial-layout",
"platforms": [],
"guidelines": [
{
"sentiment": "important",
"text": "ImportantThe system doesnt provide information about a persons field of view.",
"context": "Field of view"
}
]
},
{
"title": "Tab bars",
"category": "foundations",
"url": "https://developer.apple.com/design/human-interface-guidelines/tab-bars",
"platforms": [],
"guidelines": [
{
"sentiment": "note",
"text": "NoteTo present a sidebar without the option to convert it to a tab bar, use a navigation split view instead of a tab view. For guidance, see Sidebars.",
"context": "iPadOS"
}
]
},
{
"title": "Tap to Pay on iPhone",
"category": "technologies",
"url": "https://developer.apple.com/design/human-interface-guidelines/tap-to-pay-on-iphone",
"platforms": [],
"guidelines": [
{
"sentiment": "note",
"text": "NoteTap to Pay on iPhone works alongside your existing payment-acceptance hardware and accessories.",
"context": "Overview"
},
{
"sentiment": "note",
"text": "NoteIf your PSP offers an SDK that supplies user interfaces for experiences like showing a tap result, see the documentation the PSP provides.",
"context": "Overview"
},
{
"sentiment": "important",
"text": "ImportantUse the “Tap to Pay on iPhone” label only for payment actions. For language you can use for nonpayment actions, see Additional interactions.",
"context": "Checking out"
}
]
},
{
"title": "The menu bar",
"category": "general",
"url": "https://developer.apple.com/design/human-interface-guidelines/the-menu-bar",
"platforms": [],
"guidelines": [
{
"sentiment": "important",
"text": "ImportantThe View menu doesnt include items for navigating between or managing specific windows; the Window menu provides these commands.",
"context": "View menu"
},
{
"sentiment": "important",
"text": "ImportantThe Window menu doesnt help people customize the appearance of windows or close them. To customize a window, people use commands in the View menu; to close a window, people choose Close in the File menu.",
"context": "Window menu"
},
{
"sentiment": "tip",
"text": "TipmacOS automatically sets the width of a menu to hold the widest item, including dynamic menu items.",
"context": "Dynamic menu items"
}
]
},
{
"title": "Toolbars",
"category": "general",
"url": "https://developer.apple.com/design/human-interface-guidelines/toolbars",
"platforms": [],
"guidelines": [
{
"sentiment": "note",
"text": "NoteThe system automatically adds an overflow menu in macOS or iPadOS when items no longer fit. Dont add an overflow menu manually, and avoid layouts that cause toolbar items to overflow by default.",
"context": "Best practices"
}
]
},
{
"title": "Typography",
"category": "foundations",
"url": "https://developer.apple.com/design/human-interface-guidelines/typography",
"platforms": [],
"guidelines": [
{
"sentiment": "note",
"text": "NoteVariable fonts support optical sizing, which refers to the adjustment of different typographic designs to fit different sizes. On all platforms, the system fonts support dynamic optical sizes, which merge discrete optical sizes (like Text and Display) and weights into a single, continuous design, letting the system interpolate each glyph or letterform to produce a structure thats precisely adapted to the point size. With dynamic optical sizes, you dont need to use discrete optical sizes unless youre working with a design tool that doesnt support all the features of the variable font format.",
"context": "Using system fonts"
},
{
"sentiment": "note",
"text": "NoteSF Symbols provides a comprehensive library of symbols that integrate seamlessly with the San Francisco system font, automatically aligning with text in all weights and sizes. Consider using symbols when you need to convey a concept or depict an object, especially within text.",
"context": "Using system fonts"
},
{
"sentiment": "note",
"text": "Developer noteYou can use the constants defined in Font.Design to access all system fonts — dont embed system fonts in your app or game. For example, use Font.Design.default to get the system font on all platforms; use Font.Design.serif to get the New York font.",
"context": "Using system fonts"
}
]
},
{
"title": "Wallet",
"category": "technologies",
"url": "https://developer.apple.com/design/human-interface-guidelines/wallet",
"platforms": [],
"guidelines": [
{
"sentiment": "important",
"text": "ImportantPoster event tickets arent compatible with tickets that require a QR code or barcode for entry.",
"context": "Event tickets"
},
{
"sentiment": "important",
"text": "ImportantIn every style, watchOS crops the strip image to fit the aspect ratio of the card interface and may crop white space from other images.",
"context": "Passes for Apple Watch"
},
{
"sentiment": "note",
"text": "Developer noteApple doesnt create or see the ID documents that people add to Wallet, and when people agree to share identifying information with your app, you receive only encrypted data that isnt readable on the device. For developer guidance, see Requesting identity data from a Wallet pass.",
"context": "Identity verification"
},
{
"sentiment": "note",
"text": "NoteDimensions for the logo, primary logo, and secondary logo images are the maximum — not the required — values. For example, if you create a primary logo image that measures 30x30 points, you dont need to add unnecessary padding so that it measures the maximum 126x30 points.",
"context": "Pass image dimensions"
}
]
},
{
"title": "Windows",
"category": "patterns",
"url": "https://developer.apple.com/design/human-interface-guidelines/windows",
"platforms": [],
"guidelines": [
{
"sentiment": "tip",
"text": "TipIf 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.",
"context": "iPadOS"
},
{
"sentiment": "note",
"text": "NoteSome windows — typically, panels like Colors or Fonts — become the key window only when people click the windows title bar or a component that requires keyboard input, such as a text field.",
"context": "macOS window states"
},
{
"sentiment": "note",
"text": "NotevisionOS also defines the plain window style, which is similar to the default style, except that the upright plane doesnt use the glass background. For developer guidance, see PlainWindowStyle.",
"context": "visionOS"
}
]
}
]
}