iOS Hig Design Guide
davepoon/buildwithclaude
Build, update, and apply iOS design specifications using Apple Human Interface Guidelines (HIG) source data.
Design iOS apps following Apple's Human Interface Guidelines.
$ npx skills add jamesrochabrun/skills --skill apple-hig-designer -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jamesrochabrun/skills apple-hig-designer --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/jamesrochabrun/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/apple-hig-designer .claude/skills/apple-hig-designer && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "apple-hig-designer" agent skill from https://github.com/jamesrochabrun/skills/tree/main/skills/apple-hig-designer into .claude/skills/apple-hig-designer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "apple-hig-designer", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/jamesrochabrun/skills/tree/main/skills/apple-hig-designerType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add jamesrochabrun/skills --skill apple-hig-designer -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jamesrochabrun/skills apple-hig-designer --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jamesrochabrun/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/apple-hig-designer .agents/skills/apple-hig-designer && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "apple-hig-designer" agent skill from https://github.com/jamesrochabrun/skills/tree/main/skills/apple-hig-designer into .agents/skills/apple-hig-designer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "apple-hig-designer", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jamesrochabrun/skills --skill apple-hig-designer -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jamesrochabrun/skills apple-hig-designer --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jamesrochabrun/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/apple-hig-designer .cursor/skills/apple-hig-designer && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "apple-hig-designer" agent skill from https://github.com/jamesrochabrun/skills/tree/main/skills/apple-hig-designer into .cursor/skills/apple-hig-designer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "apple-hig-designer", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/jamesrochabrun/skills.git --path skills/apple-hig-designer--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add jamesrochabrun/skills --skill apple-hig-designer -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jamesrochabrun/skills apple-hig-designer --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jamesrochabrun/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/apple-hig-designer .gemini/skills/apple-hig-designer && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "apple-hig-designer" agent skill from https://github.com/jamesrochabrun/skills/tree/main/skills/apple-hig-designer into .gemini/skills/apple-hig-designer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "apple-hig-designer", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install jamesrochabrun/skills apple-hig-designerInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add jamesrochabrun/skills --skill apple-hig-designer -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/jamesrochabrun/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/apple-hig-designer .github/skills/apple-hig-designer && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "apple-hig-designer" agent skill from https://github.com/jamesrochabrun/skills/tree/main/skills/apple-hig-designer into .github/skills/apple-hig-designer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "apple-hig-designer", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jamesrochabrun/skills --skill apple-hig-designer -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install jamesrochabrun/skills apple-hig-designer --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jamesrochabrun/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/apple-hig-designer .opencode/skills/apple-hig-designer && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "apple-hig-designer" agent skill from https://github.com/jamesrochabrun/skills/tree/main/skills/apple-hig-designer into .opencode/skills/apple-hig-designer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "apple-hig-designer", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
apple-hig-designerDesign iOS apps following Apple's Human Interface Guidelines.
Apple Hig Designer is an agent skill from jamesrochabrun/skills. Design iOS apps following Apple's Human Interface Guidelines. Generate native components, validate designs, and ensure accessibility compliance for iPhone, iPad, and Apple Watch.
Its SKILL.md is about 5.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 10 other files, including scripts and reference files (for example `references/accessibility.md`, `references/colors.md` and `references/components.md`).
It sits in Frontend & Design, covering iOS development and Accessibility. It works with iOS. The licence is MIT.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 2482c17. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 3 files in scripts/ (Shell), which the agent can run.
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
developer.apple.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Apple Hig Designer loads about 5.1k tokens when it runs, and up to ~6.9k if it reads all its reference files. Until then it costs about 49 tokens; SKILL.md has 906 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from jamesrochabrun/skills at commit 2482c17, republished under its MIT licence (© jamesrochabrun). 906 words, ~5,056 tokens.
.claude/skills/apple-hig-designer/SKILL.md (or your agent's skills folder). This skill also uses 8 other files; get the full folder from GitHub.Design beautiful, native iOS apps following Apple's Human Interface Guidelines (HIG). Create accessible, intuitive interfaces with native components, proper typography, semantic colors, and Apple's design principles.
Helps you design and build iOS apps that feel native and follow Apple's guidelines:
Make content clear and focused.
Text is legible at every size, icons are precise and lucid, adornments are subtle and appropriate, and a focus on functionality drives the design.
// ✅ Clear, focused content
Text("Welcome back, Sarah")
.font(.title)
.foregroundColor(.primary)
// ❌ Unclear, cluttered
Text("Welcome back, Sarah!!!")
.font(.title)
.foregroundColor(.red)
.background(.yellow)
.overlay(Image(systemName: "star.fill"))UI helps people understand and interact with content, but never competes with it.
The interface defers to content, using a light visual treatment that keeps focus on the content and gives the content room to breathe.
// ✅ Content-focused
VStack(alignment: .leading, spacing: 8) {
Text("Article Title")
.font(.headline)
Text("Article content goes here...")
.font(.body)
.foregroundColor(.secondary)
}
.padding()
// ❌ Distracting UI
VStack(spacing: 8) {
Text("Article Title")
.font(.headline)
.foregroundColor(.white)
.background(.blue)
.border(.red, width: 3)
}Visual layers and realistic motion convey hierarchy and help people understand relationships.
Distinct visual layers and realistic motion impart vitality and facilitate understanding. Touch and discoverability heighten delight and enable access to functionality without losing context.
// ✅ Clear depth hierarchy
ZStack {
Color(.systemBackground)
VStack {
// Card with elevation
CardView()
.shadow(radius: 8)
}
}
// Using blur for depth
Text("Content")
.background(.ultraThinMaterial)Top bar for navigation and actions.
NavigationStack {
List {
Text("Item 1")
Text("Item 2")
}
.navigationTitle("Title")
.navigationBarTitleDisplayMode(.large)
.toolbar {
ToolbarItem(placement: .navigationBarTrailing) {
Button("Add") {
// Action
}
}
}
}Guidelines:
Bottom navigation for top-level destinations.
TabView {
HomeView()
.tabItem {
Label("Home", systemImage: "house")
}
SearchView()
.tabItem {
Label("Search", systemImage: "magnifyingglass")
}
ProfileView()
.tabItem {
Label("Profile", systemImage: "person")
}
}Guidelines:
Scrollable list of items.
List {
Section("Today") {
ForEach(items) { item in
NavigationLink {
DetailView(item: item)
} label: {
HStack {
Image(systemName: item.icon)
.foregroundColor(.accentColor)
Text(item.title)
}
}
}
}
}
.listStyle(.insetGrouped)List Styles:
.plain - Edge-to-edge rows.insetGrouped - Rounded, inset sections (iOS default).sidebar - For navigation sidebarsPresent content modally.
struct ContentView: View {
@State private var showSheet = false
var body: some View {
Button("Show Details") {
showSheet = true
}
.sheet(isPresented: $showSheet) {
DetailView()
.presentationDetents([.medium, .large])
}
}
}Sheet Detents:
.medium - Half screen.large - Full screenPrimary action control.
// Filled button (primary action)
Button("Continue") {
// Action
}
.buttonStyle(.borderedProminent)
// Bordered button (secondary action)
Button("Cancel") {
// Action
}
.buttonStyle(.bordered)
// Plain button (tertiary action)
Button("Learn More") {
// Action
}
.buttonStyle(.plain)Button Hierarchy:
Guidelines:
Text input control.
@State private var username = ""
@State private var password = ""
VStack(alignment: .leading, spacing: 16) {
// Standard text field
TextField("Username", text: $username)
.textFieldStyle(.roundedBorder)
.textContentType(.username)
.textInputAutocapitalization(.never)
.autocorrectionDisabled()
// Secure field
SecureField("Password", text: $password)
.textFieldStyle(.roundedBorder)
.textContentType(.password)
}Text Content Types:
.username - Username field.password - Password field.emailAddress - Email field.telephoneNumber - Phone number.creditCardNumber - Credit cardBoolean control (switch).
@State private var isEnabled = false
Toggle("Enable notifications", isOn: $isEnabled)
.toggleStyle(.switch)Guidelines:
Selection control.
@State private var selectedSize = "Medium"
let sizes = ["Small", "Medium", "Large"]
// Menu style
Picker("Size", selection: $selectedSize) {
ForEach(sizes, id: \.self) { size in
Text(size).tag(size)
}
}
.pickerStyle(.menu)
// Segmented style (for 2-5 options)
Picker("Size", selection: $selectedSize) {
ForEach(sizes, id: \.self) { size in
Text(size).tag(size)
}
}
.pickerStyle(.segmented)Picker Styles:
.menu - Dropdown menu (default).segmented - Segmented control (2-5 options).wheel - Scrollable wheel.inline - Inline list (in forms)struct CardView: View {
var body: some View {
VStack(alignment: .leading, spacing: 12) {
Text("Title")
.font(.headline)
Text("Description goes here with some details about the content.")
.font(.subheadline)
.foregroundColor(.secondary)
.lineLimit(2)
Spacer()
Button("Action") {
// Action
}
.buttonStyle(.borderedProminent)
}
.padding()
.frame(width: 300, height: 200)
.background(Color(.systemBackground))
.cornerRadius(12)
.shadow(color: .black.opacity(0.1), radius: 8, x: 0, y: 4)
}
}Apple's system font designed for optimal legibility.
// Dynamic Type text styles
Text("Large Title").font(.largeTitle) // 34pt
Text("Title").font(.title) // 28pt
Text("Title 2").font(.title2) // 22pt
Text("Title 3").font(.title3) // 20pt
Text("Headline").font(.headline) // 17pt semibold
Text("Body").font(.body) // 17pt regular
Text("Callout").font(.callout) // 16pt
Text("Subheadline").font(.subheadline) // 15pt
Text("Footnote").font(.footnote) // 13pt
Text("Caption").font(.caption) // 12pt
Text("Caption 2").font(.caption2) // 11pt// Custom font that scales with Dynamic Type
Text("Custom Text")
.font(.custom("YourFont-Regular", size: 17, relativeTo: .body))Text("Light").fontWeight(.light)
Text("Regular").fontWeight(.regular)
Text("Medium").fontWeight(.medium)
Text("Semibold").fontWeight(.semibold)
Text("Bold").fontWeight(.bold)
Text("Heavy").fontWeight(.heavy)Do:
Don't:
Colors that automatically adapt to light/dark mode.
// UI Element Colors
Color(.label) // Primary text
Color(.secondaryLabel) // Secondary text
Color(.tertiaryLabel) // Tertiary text
Color(.quaternaryLabel) // Watermark text
Color(.systemBackground) // Primary background
Color(.secondarySystemBackground) // Secondary background
Color(.tertiarySystemBackground) // Tertiary background
Color(.systemFill) // Fill colors
Color(.secondarySystemFill)
Color(.tertiarySystemFill)
Color(.quaternarySystemFill)
Color(.separator) // Separator lines
Color(.opaqueSeparator) // Non-transparent separator// Standard system colors (adapt to dark mode)
Color(.systemRed)
Color(.systemOrange)
Color(.systemYellow)
Color(.systemGreen)
Color(.systemMint)
Color(.systemTeal)
Color(.systemCyan)
Color(.systemBlue)
Color(.systemIndigo)
Color(.systemPurple)
Color(.systemPink)
Color(.systemBrown)
Color(.systemGray)// Define adaptive color
extension Color {
static let customBackground = Color("CustomBackground")
}
// In Assets.xcassets, create color set with:
// - Any Appearance: #FFFFFF
// - Dark Appearance: #000000WCAG AA Compliance:
Custom colors:
All spacing should be multiples of 8.
// Spacing values
.padding(8) // 8pt
.padding(16) // 16pt (standard)
.padding(24) // 24pt
.padding(32) // 32pt
.padding(40) // 40pt
.padding(48) // 48pt
// Edge-specific padding
.padding(.horizontal, 16)
.padding(.vertical, 24)
.padding(.top, 16)
.padding(.bottom, 16)Respect device safe areas.
// Content within safe area (default)
VStack {
Text("Content")
}
// Extend beyond safe area
VStack {
Color.blue
}
.ignoresSafeArea()
// Extend top only
VStack {
Color.blue
}
.ignoresSafeArea(edges: .top)Minimum interactive size: 44x44 points.
Button("Tap") {
// Action
}
.frame(minWidth: 44, minHeight: 44)// Component spacing
VStack(spacing: 8) { // Tight spacing
Text("Line 1")
Text("Line 2")
}
VStack(spacing: 16) { // Standard spacing
Text("Section 1")
Text("Section 2")
}
VStack(spacing: 24) { // Loose spacing
SectionView()
SectionView()
}Screen reader for blind and low-vision users.
// Accessible label
Image(systemName: "heart.fill")
.accessibilityLabel("Favorite")
// Accessible value
Slider(value: $volume)
.accessibilityLabel("Volume")
.accessibilityValue("\(Int(volume * 100))%")
// Accessible hint
Button("Share") {
share()
}
.accessibilityHint("Shares this item with others")
// Group elements
HStack {
Image(systemName: "person")
Text("John Doe")
}
.accessibilityElement(children: .combine)
// Hidden from VoiceOver
Image("decorative")
.accessibilityHidden(true)Support user's preferred text size.
// Automatically supported with system fonts
Text("This text scales")
.font(.body)
// Limit scaling (if necessary)
Text("This text has limits")
.font(.body)
.dynamicTypeSize(...DynamicTypeSize.xxxLarge)
// Custom font with Dynamic Type
Text("Custom font")
.font(.custom("YourFont", size: 17, relativeTo: .body))Design for color-blind users.
// Don't rely on color alone
HStack {
Image(systemName: "checkmark.circle.fill")
.foregroundColor(.green)
Text("Success")
}
// Not just color
Circle()
.fill(.green)
// ❌ Color only
// Better with shape/icon
HStack {
Image(systemName: "checkmark.circle.fill")
Circle().fill(.green)
}
// ✅ Color + shapeRespect user's motion preferences.
@Environment(\.accessibilityReduceMotion) var reduceMotion
var animation: Animation {
reduceMotion ? .none : .spring()
}
Button("Animate") {
withAnimation(animation) {
// Animate
}
}Support high contrast mode.
@Environment(\.colorSchemeContrast) var contrast
var textColor: Color {
contrast == .increased ? .primary : .secondary
}
Text("Content")
.foregroundColor(textColor)Support both light and dark appearances.
// Use semantic colors (automatic)
Color(.label) // Adapts automatically
Color(.systemBackground) // Adapts automatically// Preview both modes
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
.preferredColorScheme(.light)
ContentView()
.preferredColorScheme(.dark)
}
}Do:
Don't:
Apple's icon system (3000+ symbols).
// Basic symbol
Image(systemName: "heart")
// Colored symbol
Image(systemName: "heart.fill")
.foregroundColor(.red)
// Sized symbol
Image(systemName: "heart")
.imageScale(.large)
// Font-based sizing
Image(systemName: "heart")
.font(.title)
// Multicolor symbols
Image(systemName: "person.crop.circle.fill.badge.checkmark")
.symbolRenderingMode(.multicolor)
// Hierarchical rendering
Image(systemName: "heart.fill")
.symbolRenderingMode(.hierarchical)
.foregroundColor(.red)iOS:
- 1024x1024 (App Store)
- 180x180 (iPhone @3x)
- 120x120 (iPhone @2x)
- 167x167 (iPad Pro)
- 152x152 (iPad @2x)
watchOS:
- 1024x1024 (App Store)
- 196x196 (49mm)
- 216x216 (45mm)Do:
Don't:
// Spring animation (natural, bouncy)
withAnimation(.spring()) {
offset = 100
}
// Linear animation
withAnimation(.linear(duration: 0.3)) {
opacity = 0
}
// Ease in/out
withAnimation(.easeInOut(duration: 0.3)) {
scale = 1.2
}@State private var offset = CGSize.zero
var body: some View {
Circle()
.offset(offset)
.gesture(
DragGesture()
.onChanged { value in
offset = value.translation
}
.onEnded { _ in
withAnimation(.spring()) {
offset = .zero
}
}
)
}struct LoadingView: View {
var body: some View {
VStack {
ProgressView()
.scaleEffect(1.5)
Text("Loading...")
.font(.caption)
.foregroundColor(.secondary)
.padding(.top)
}
}
}struct ErrorView: View {
let message: String
let retry: () -> Void
var body: some View {
VStack(spacing: 16) {
Image(systemName: "exclamationmark.triangle")
.font(.system(size: 48))
.foregroundColor(.orange)
Text("Something went wrong")
.font(.headline)
Text(message)
.font(.subheadline)
.foregroundColor(.secondary)
.multilineTextAlignment(.center)
Button("Try Again") {
retry()
}
.buttonStyle(.borderedProminent)
}
.padding()
}
}struct EmptyStateView: View {
var body: some View {
VStack(spacing: 16) {
Image(systemName: "tray")
.font(.system(size: 64))
.foregroundColor(.secondary)
Text("No Items")
.font(.title2)
Text("Your items will appear here")
.font(.subheadline)
.foregroundColor(.secondary)
Button("Add Item") {
// Action
}
.buttonStyle(.borderedProminent)
}
}
}"Design is not just what it looks like and feels like. Design is how it works." - Steve Jobs
© jamesrochabrun, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 8 other files (scripts, references) in skills/apple-hig-designer of jamesrochabrun/skills.
Open the folder on GitHubat commit 2482c17
Apple Hig Designer next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Apple Hig Designer this skilljamesrochabrun/skills | 216 | — | ~5.1k | Automated safety check: Pass | MIT | |
| iOS Hig Design Guidedavepoon/buildwithclaude | 3.6k | — | ~735 | Automated safety check: Pass | MIT | |
| iOS Higjohnrogers/claude-swift-engineering | 231 | — | ~705 | Automated safety check: Pass | MIT | |
| Frontend DesignAnastasiyaW/codex-claude-code-config | 154 | — | ~1.1k | Automated safety check: Pass | MIT | |
| UI Reviewgustavscirulis/snapgrid | 116 | 1 repos | ~1.4k | Automated safety check: Pass | Custom licence | |
| Apple Hig Helpershepherdjerred/monorepo | 112 | — | ~4.6k | Automated safety check: Pass | GPL-3.0 |
davepoon/buildwithclaude
Build, update, and apply iOS design specifications using Apple Human Interface Guidelines (HIG) source data.
johnrogers/claude-swift-engineering
A skill your agent uses when designing iOS interfaces, implementing accessibility (VoiceOver, Dynamic Type), handling dark mode, ensuring adequate touch targets, providing animation/haptic feedback…
AnastasiyaW/codex-claude-code-config
Создание высококачественных, визуально выдающихся фронтенд-интерфейсов.
gustavscirulis/snapgrid
Review SwiftUI code for iOS/watchOS Human Interface Guidelines compliance, font usage, Dynamic Type support, and accessibility.
shepherdjerred/monorepo
Apple Human Interface Guidelines - comprehensive design guidance for iOS, macOS, visionOS, watchOS, tvOS, and Apple technologies with summaries of 174 topics.
raintree-technology/hig-doctor
Apple Human Interface Guidelines for content display components.
jamesrochabrun/skills
Generate comprehensive Product Requirements Documents (PRDs) for product managers.
jamesrochabrun/skills
Plan and execute technical product launches for developer tools, APIs, and technical products.
jamesrochabrun/skills
Generate comprehensive design briefs for design projects. An agent skill from jamesrochabrun/skills.
jamesrochabrun/skills
Manage Git worktrees for parallel Claude Code development. An agent skill from jamesrochabrun/skills.
jamesrochabrun/skills
Generate comprehensive content briefs for writers, ensuring clarity, alignment, and strategic content creation across all formats.
jamesrochabrun/skills
This skill should be used when users want to route LLM requests to different AI providers (OpenAI, Grok/xAI, Groq, DeepSeek, OpenRouter) using SwiftOpenAI-CLI.
Works with
Categories
Design iOS apps following Apple's Human Interface Guidelines. Apple Hig Designer is an agent skill from jamesrochabrun/skills. Design iOS apps following Apple's Human Interface Guidelines.
Apple Hig Designer fits situations like: tasks that involve iOS development; tasks that involve Accessibility.
Run `npx skills add jamesrochabrun/skills --skill apple-hig-designer -a claude-code`. Or copy the skill folder (skills/apple-hig-designer in jamesrochabrun/skills) into .claude/skills/apple-hig-designer in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jamesrochabrun/skills --skill apple-hig-designer -a codex`. Or copy the skill folder (skills/apple-hig-designer in jamesrochabrun/skills) into .agents/skills/apple-hig-designer in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jamesrochabrun/skills --skill apple-hig-designer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/apple-hig-designer, .gemini/skills/apple-hig-designer, .github/skills/apple-hig-designer and .opencode/skills/apple-hig-designer in your project.
Going by SKILL.md and its folder, Apple Hig Designer needs a shell for the scripts in its folder. Our summary lists: A Bash shell.
SKILL.md names 1 domain. As links in the text: developer.apple.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Apple Hig Designer is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.1k tokens (SKILL.md is roughly 20k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.8k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Apple Hig Designer: iOS Hig Design Guide (davepoon/buildwithclaude, 3.6k stars), iOS Hig (johnrogers/claude-swift-engineering, 231 stars), Frontend Design (AnastasiyaW/codex-claude-code-config, 154 stars) and UI Review (gustavscirulis/snapgrid, 116 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
jamesrochabrun (a GitHub user) maintains it in jamesrochabrun/skills, which has 216 GitHub stars. The repository holds 23 skills in this directory. The repository was last updated on January 14, 2026.
Source: jamesrochabrun/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.