Individual skill
expo-ios-hig
Expo / React Native iOS interface conforming to Apple Human Interface Guidelines (iOS 26) — native navigation (Expo Router native stack and tabs), platform controls (Alert, ActionSheetIOS, SF Symbols via expo-symbols), safe areas, dark mode, Dynamic Type, haptics, Liquid Glass, accessibility, and 60fps motion. Covers architecture and styling decisions made in React Native/TypeScript; for the @expo/ui SwiftUI component API use the expo-ui skill, and for native Swift use ios-hig. Trigger when building, reviewing, or refactoring such an app — even when the user does not say "HIG" or "native feel" but is writing TSX screens, navigation, lists, forms, or styling for iOS in Expo.
skills/.experimental/expo-ios-hig/SKILL.md
Source commit cf93c57cac89d6fc3e4194686000411567f5caf3
What was checked
- Matches the observed repository HEAD
- Yes
- Scanner rules are current
- Yes
- Repository scan complete
- No
- Skill scan complete
- Yes
- Observed behavior
- Instructions only
- Last checked
- Nov 5, 2026
These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.
Install this skill
Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.
An install command is unavailable: current rules, complete repository and skill scans, an eligible behavior level and a permitted license are required.
Repository context
- Repository stars (not skill ratings)
- 222
- Repository last updated
- Aug 15, 2026
- License
- MIT
Observed agent integration: codex
- engineering Derived category
- design Derived category
- writing Derived category
- design-interface Derived category
- engineering-web Derived category
Files and excerpt
File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.
Browse files
AGENTS.mddoc · 11,942 bytesSKILL.mdcore · 10,141 bytesassets/templates/_template.mddoc · 2,307 bytesmetadata.jsonasset · 2,241 bytesreferences/_sections.mddoc · 3,984 bytesreferences/acc-dynamic-type.mddoc · 1,434 bytesreferences/acc-grouping-focus.mddoc · 1,778 bytesreferences/acc-reduce-motion.mddoc · 1,522 bytesreferences/acc-roles-labels.mddoc · 1,557 bytesreferences/acc-state-and-hint.mddoc · 1,722 bytesreferences/layout-content-inset-under-bars.mddoc · 1,557 bytesreferences/layout-dark-mode-semantic.mddoc · 1,777 bytesreferences/layout-edge-to-edge.mddoc · 1,459 bytesreferences/layout-keyboard-avoidance.mddoc · 1,640 bytesreferences/layout-readable-width-ipad.mddoc · 1,527 bytesreferences/layout-safe-area-insets.mddoc · 1,651 bytesreferences/motion-empty-states.mddoc · 1,638 bytesreferences/motion-loading-states.mddoc · 1,531 bytesreferences/motion-optimistic-updates.mddoc · 1,541 bytesreferences/motion-ui-thread-animation.mddoc · 1,944 bytesreferences/motion-virtualized-lists.mddoc · 1,497 bytesreferences/native-action-sheet.mddoc · 1,905 bytesreferences/native-avoid-material-ui.mddoc · 1,787 bytesreferences/native-datetime-picker.mddoc · 1,606 bytesreferences/native-sf-symbols.mddoc · 1,473 bytesreferences/native-switch-toggle.mddoc · 1,438 bytesreferences/native-system-alert.mddoc · 1,887 bytesreferences/nav-large-titles.mddoc · 2,153 bytesreferences/nav-native-stack.mddoc · 1,823 bytesreferences/nav-native-tabs.mddoc · 2,047 bytesreferences/nav-push-vs-present.mddoc · 1,447 bytesreferences/nav-search-in-header.mddoc · 1,776 bytesreferences/nav-sheet-detents.mddoc · 1,487 bytesreferences/nav-system-back.mddoc · 1,654 bytesreferences/system-app-icon-launch.mddoc · 1,587 bytesreferences/system-keyboard-type.mddoc · 1,483 bytesreferences/system-permissions-jit.mddoc · 1,594 bytesreferences/system-share-sheet.mddoc · 1,517 bytesreferences/system-status-bar.mddoc · 1,344 bytesreferences/touch-gesture-handler-thread.mddoc · 1,731 bytesreferences/touch-haptics-on-outcome.mddoc · 1,452 bytesreferences/touch-hit-target.mddoc · 1,458 bytesreferences/touch-pressable-feedback.mddoc · 1,458 bytesreferences/touch-pull-to-refresh.mddoc · 1,551 bytesreferences/touch-swipe-actions.mddoc · 1,726 bytesreferences/visual-liquid-glass-gated.mddoc · 1,894 bytesreferences/visual-semantic-colors.mddoc · 1,883 bytesreferences/visual-spacing-rhythm.mddoc · 1,454 bytesreferences/visual-system-font.mddoc · 1,586 bytesreferences/visual-tint-discipline.mddoc · 1,585 bytesreferences/visual-type-scale.mddoc · 1,573 bytes
Read excerpt
# Expo iOS HIG Best Practices
Design rules for building iOS 26 apps in **Expo (React Native)** that feel genuinely native under Apple's Human Interface Guidelines. Contains **46 rules across 8 categories**, prioritized by how much each decision affects native feel and HIG compliance. Every example is **TSX/Expo** — the decisions you make in React Native and TypeScript, not Swift.
The core idea: a React Native app feels native when it *reaches for the platform* — the system navigation controller, system controls, semantic colors, SF Symbols, real haptics, the system share sheet — instead of re-implementing iOS in JavaScript. These rules say which decision earns the native feel and which one quietly forfeits it.
## When to Apply
Reference these guidelines when:
- Building or reviewing iOS screens, navigation, lists, or forms in an Expo app
- Choosing navigation: Expo Router native stack vs JS stack, native tabs, sheets, modals, large titles
- Picking controls: when to use the native `Alert`, `ActionSheetIOS`, date picker, `Switch`, SF Symbols, or drop to `@expo/ui`
- Styling for the platform: safe areas, dark mode, semantic colors, the iOS type scale, spacing, Liquid Glass
- Making interaction feel native: touch targets, press feedback, swipe actions, pull-to-refresh, gestures, haptics