The Human Interface Guidelines (HIG) define Apple's design philosophy and provide concrete guidance for creating intuitive, accessible, platform-appropriate experiences across all Apple devices.
Works with
AI-first code editor with Composer
Before installing skills in Cursor, ensure your development environment meets these requirements:
node --versionaxiom-hig-refExecute the skills CLI command in your project's root directory to begin installation:
Fetches axiom-hig-ref from charleswiltgen/axiom and configures it for Cursor.
The CLI shows a list of agents. Use arrow keys and space to select Cursor:
Confirm successful installation by checking the skill directory location:
Restart Cursor to activate axiom-hig-ref. Access via /axiom-hig-ref in your agent's command palette.
We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.
Skills execute code in your environment. Always review source, verify the publisher, and test in isolation before production.
Submit your Claude Code skill and start earning
Create detailed user stories, acceptance criteria, and feature specs
Example
Generate user stories for 'password reset feature' with acceptance criteria, edge cases, and test scenarios
Reduce spec writing time by 50%, ensure comprehensive coverage
Research competitors, compare features, identify gaps
Example
Analyze 5 competitor products, create feature comparison matrix, suggest differentiation opportunities
Complete competitive research in 2 hours instead of 2 days
Evaluate features using frameworks (RICE, ICE, Kano) and create prioritized backlogs
Example
Score 20 feature ideas using RICE framework, generate prioritized roadmap with rationale
0
total installs
0
this week
767
GitHub stars
0
upvotes
Run in your terminal
0
installs
0
this week
767
stars
The Human Interface Guidelines (HIG) define Apple's design philosophy and provide concrete guidance for creating intuitive, accessible, platform-appropriate experiences across all Apple devices.
Every design decision should support these principles:
1. Clarity Content is paramount. Interface elements should defer to content, not compete with it. Every element has a purpose, unnecessary complexity is eliminated, and users should immediately know what they can do without extensive instructions.
2. Consistency Apps use standard UI elements and familiar patterns. Navigation follows platform conventions, gestures work as expected, and components appear in expected locations. This familiarity reduces cognitive load.
3. Deference The UI should not distract from essential content. Use subtle backgrounds, receding navigation when not needed, restrained branding, and let content be the hero.
From Apple HIG: "Deference makes an app beautiful by ensuring the content stands out while the surrounding visual elements do not compete with it."
From WWDC25: "A systematic approach means designing with intention at every level, ensuring that all elements, from the tiniest control to the largest surface, are considered in relation to the whole."
axiom-hig for quick decisions and checklistsaxiom-liquid-glass for iOS 26 material implementationaxiom-liquid-glass-ref for iOS 26 app-wide adoptionaxiom-accessibility-diag for accessibility troubleshootingInstead of hardcoded color values, use semantic colors that describe the purpose of a color rather than its appearance. Semantic colors automatically adapt to light/dark mode and accessibility settings.
Key insight from WWDC19: "Think of Dark Mode as having the lights dimmed rather than everything being flipped inside out." Colors are NOT simply inverted—table row backgrounds are lighter in both modes.
Four semantic label levels for text and symbols, each progressively less prominent:
| Style | Semantic Color | Usage |
|---|---|---|
.primary |
label |
Titles, most prominent text |
.secondary |
secondaryLabel |
Subtitles, less prominent |
.tertiary |
tertiaryLabel |
Placeholder text |
.quaternary |
quaternaryLabel |
Disabled text |
Text("Title").foregroundStyle(.primary) // Black in Light, white in Dark
Text("Subtitle").foregroundStyle(.secondary)
Background colors come in two sets — ungrouped (standard lists) and grouped (iOS Settings style):
| Level | Ungrouped | Grouped |
|---|---|---|
| Primary | .systemBackground |
.systemGroupedBackground |
| Secondary | .secondarySystemBackground |
.secondarySystemGroupedBackground |
| Tertiary | .tertiarySystemBackground |
.tertiarySystemGroupedBackground |
Ungrouped: pure white/black in Light/Dark. Grouped: light gray/dark in Light/Dark.
// Standard list → ungrouped backgrounds
List { Text("Item") }
.background(Color(.systemBackground))
// Settings-style list → grouped backgrounds
List { Section("Section") { Text("Item") } }
.listStyle(.grouped)
There are actually two sets of background colors for layering interfaces:
Why this matters:
In Light Mode, simple drop shadows create visual separation. In Dark Mode, drop shadows are less effective, so the system uses lighter colors for elevated content.
Example: iPad multitasking:
Critical: Some darker colors may not contrast well when elevated. Always test designs in elevated state. Semi-opaque fill and separator colors adapt gracefully.
Tint colors are dynamic - they have variants for Light and Dark modes:
// Tint color automatically adapts
Button("Primary Action") {
// action
}
.tint(.blue)
// Gets lighter in Dark Mode, darker in Light Mode
Custom tint colors: When creating custom tint colors, select colors that work well in both modes. Use a contrast calculator to aim for 4.5:1 or higher contrast ratio. Colors that work in Light Mode may have insufficient contrast in Dark Mode.
Fill colors are semi-transparent to contrast well against variable backgrounds:
// System fill colors
Color(.systemFill)
Color(.secondarySystemFill)
Color(.tertiarySystemFill)
Color(.quaternarySystemFill)
When to use: Controls, buttons, and interactive elements that need to appear above dynamic backgrounds.
// Standard separator (semi-transparent)
Color(.separator)
// Opaque separator
Color(.opaqueSeparator)
Opaque separators are used when transparency would create undesirable results (e.g., intersecting grid lines where overlapping semi-transparent colors create optical illusions).
Apple's explicit guidance:
"In rare cases, consider using only a dark appearance in the interface. For example, it can make sense for an app that enables immersive media viewing to use a permanently dark appearance that lets the UI recede and helps people focus on the media."
Examples from Apple's apps:
| App | Background | Rationale |
|---|---|---|
| Music | Dark | Album art should be visual focus |
| Photos | Dark | Images are hero content |
| Clock | Dark | Nighttime use, instrument feel |
| Stocks | Dark | Data visualization, charts |
| Camera | Dark | Reduces distraction during capture |
For all other apps: Support both Light and Dark modes via system backgrounds.
When you need custom colors:
// Use custom color from asset catalog
Color("BrandAccent")
// Automatically uses correct variant
San Francisco (SF): The system sans-serif font family.
New York (NY): System serif font family for editorial content.
Both available as variable fonts with seamless weight transitions.
From Apple HIG: "Avoid light font weights. Prefer Regular, Medium, Semibold, or Bold weights instead of Ultralight, Thin, or Light."
Why: Light weights have legibility issues, especially at small sizes, in bright lighting, or for users with visual impairments.
Hierarchy:
// Headers - Bold weight for prominence
Text("Header")
.font(.title.weight(.bold))
// Subheaders - Semibold
Text("Subheader")
.font(.title2.weight(.semibold))
// Body - Regular or Medium
Text("Body text")
.font(.body)
// Captions - Regular (never Light)
Text("Caption")
.font(.caption)
Use built-in text styles for automatic hierarchy and Dynamic Type support:
.font(.largeTitle) .font(.title) .font(.title2)
.font(.title3) .font(.headline) .font(.body)
.font(.callout) .font(.subheadline) .font(.footnote)
.font(.caption) .font(.caption2)
All text styles scale automatically with Dynamic Type.
Requirement: Apps must support text scaling of at least 200% (iOS, iPadOS) or 140% (watchOS).
Implementation:
// ✅ CORRECT - Scales automatically
Text("Hello")
.font(.body)
// ❌ WRONG - Fixed size, doesn't scale
Text("Hello")
.font(.system(size: 17))
Layout considerations:
Not all content scales equally: Prioritize what users actually care about. Secondary elements like tab titles shouldn't grow as much as primary content.
When using custom fonts:
If your custom font is thin: Increase size by ~2 points when pairing with uppercase Latin text.
Loose leading: Wide columns (easier to track to next line) Tight leading: Constrained height (avoid for 3+ lines)
// Adjust leading for specific layouts
Text("Long content...")
.lineSpacing(8) // Add space between lines
From WWDC25: "There's a quiet geometry to how our shapes fit together, driven by concentricity. By aligning radii and margins around a shared center, shapes can comfortably nest within each other."
Constant corner radiu
Make data-driven prioritization decisions faster
Draft PRDs, status updates, and stakeholder presentations
Example
Create executive summary of Q3 roadmap, monthly progress report, feature launch announcement
Save 3-5 hours/week on communication overhead
Prerequisites
Time Estimate
30-60 minutes to see productivity improvements
Steps
Common Pitfalls
✓ Do
✗ Don't
💡 Pro Tips
✓ Use when
Use for user story writing, competitive research, roadmap prioritization, stakeholder communication, and PRD drafting. Best for reducing repetitive documentation and research work.
✗ Avoid when
Avoid for strategic product vision (requires deep customer empathy), pricing decisions (needs market and financial expertise), or when face-to-face customer discovery is more valuable than speed.
mattpocock/skills
parcadei/continuous-claude-v3
cursor/plugins
ailabs-393/ai-labs-claude-skills
pproenca/dot-skills
mattpocock/skills
Registry listing for axiom-hig-ref matched our evaluation — installs cleanly and behaves as described in the markdown.
axiom-hig-ref is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
axiom-hig-ref fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
Useful defaults in axiom-hig-ref — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
axiom-hig-ref has been reliable in day-to-day use. Documentation quality is above average for community skills.
Useful defaults in axiom-hig-ref — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
I recommend axiom-hig-ref for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
I recommend axiom-hig-ref for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
Solid pick for teams standardizing on skills: axiom-hig-ref is focused, and the summary matches what you get after install.
Keeps context tight: axiom-hig-ref is the kind of skill you can hand to a new teammate without a long onboarding doc.
showing 1-10 of 58