Guides building iOS apps in Expo/React Native that conform to Apple Human Interface Guidelines, covering navigation, controls, styling, and interactions for native feel.
How this skill is triggered — by the user, by Claude, or both
Slash command
/pproenca-dot-skills-1:expo-ios-higThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
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.
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.
Reference these guidelines when:
Alert, ActionSheetIOS, date picker, Switch, SF Symbols, or drop to @expo/ui@expo/ui component API — for how to use @expo/ui/swift-ui components, Host boundaries, and modifiers, use the expo-ui skill. This skill says which decisions make an app native and points to @expo/ui when dropping to SwiftUI is the right call; it does not re-document that API.expo-design-system skill. This skill governs iOS native feel; that one governs the token and component architecture that the two frontends share.ios-hig or ios-design. This skill's examples are all React Native/TSX.| Priority | Category | Impact | Prefix |
|---|---|---|---|
| 1 | Native Navigation Architecture | CRITICAL | nav- |
| 2 | Native Component Fidelity | CRITICAL | native- |
| 3 | Layout & Adaptivity | HIGH | layout- |
| 4 | Touch, Gestures & Haptics | HIGH | touch- |
| 5 | Visual System & Liquid Glass | HIGH | visual- |
| 6 | Motion & Feedback | MEDIUM-HIGH | motion- |
| 7 | Accessibility | MEDIUM-HIGH | acc- |
| 8 | System Integration & Polish | MEDIUM | system- |
nav-native-stack — Use Expo Router's native Stack for screen hierarchynav-native-tabs — Adopt native tabs for top-level sectionsnav-large-titles — Enable large titles on top-level screensnav-sheet-detents — Present secondary tasks as sheets with detentsnav-push-vs-present — Push for hierarchy and present for self-contained tasksnav-search-in-header — Place search in the navigation barnav-system-back — Keep the system back button and swipe-back gesturenative-avoid-material-ui — Avoid Material Design component kits on iOSnative-sf-symbols — Use SF Symbols for iconographynative-system-alert — Use the native alert for confirmationsnative-action-sheet — Use an action sheet to choose among actionsnative-datetime-picker — Use the native date and time pickernative-switch-toggle — Use the platform Switch for boolean settingslayout-safe-area-insets — Respect safe-area insets with the safe-area contextlayout-edge-to-edge — Extend scrollable content under translucent barslayout-keyboard-avoidance — Keep inputs visible above the keyboardlayout-dark-mode-semantic — Drive colors from the active color schemelayout-content-inset-under-bars — Inset list content past the tab bar and home indicatorlayout-readable-width-ipad — Constrain reading width on iPad and large screenstouch-hit-target — Size touch targets to at least 44pttouch-pressable-feedback — Give every control immediate press feedbacktouch-swipe-actions — Offer swipe actions on list rowstouch-pull-to-refresh — Use RefreshControl for pull-to-refreshtouch-gesture-handler-thread — Drive interactive gestures with Gesture Handlertouch-haptics-on-outcome — Pair haptics with meaningful outcomesvisual-semantic-colors — Use semantic system colors instead of hardcoded hexvisual-system-font — Use the system font for interface textvisual-type-scale — Map text styles to the iOS type scalevisual-spacing-rhythm — Derive spacing from a single base unitvisual-liquid-glass-gated — Apply Liquid Glass through a version-gated native viewvisual-tint-discipline — Reserve the accent tint for interactive elementsmotion-ui-thread-animation — Run animations on the UI threadmotion-virtualized-lists — Render long lists with a virtualized listmotion-loading-states — Show content-shaped placeholders while loadingmotion-empty-states — Design empty states that guide the next actionmotion-optimistic-updates — Apply optimistic updates for user actionsacc-roles-labels — Label interactive and icon-only controls for VoiceOveracc-dynamic-type — Let text scale with Dynamic Typeacc-reduce-motion — Honor the Reduce Motion settingacc-state-and-hint — Expose control state to assistive technologyacc-grouping-focus — Group related elements for a logical focus ordersystem-permissions-jit — Request permissions just in time with a rationalesystem-status-bar — Match the status bar style to the content behind itsystem-keyboard-type — Configure each text field for its contentsystem-share-sheet — Share through the system share sheetsystem-app-icon-launch — Configure a real app icon and launch screenRead individual reference files for detailed explanations and code examples:
references/{prefix}-{slug}.mdEach rule file contains a short explanation of why it matters for native feel, an Incorrect (non-native) TSX example, a Correct (native) example that is a minimal diff from it, and an authoritative reference URL. Where relevant, rules add a "When NOT to use this pattern" or "Alternative" section.
expo-ui — @expo/ui/swift-ui component API reference. Use it when the rules here point you to native SwiftUI components.ios-hig / ios-design — HIG and Apple design principles for native Swift/SwiftUI codebases.expo — Expo React Native performance optimization, complementary to the motion/list rules here.npx claudepluginhub pproenca/dot-skillsReference for @expo/ui SwiftUI components on iOS covering Host boundaries, modifiers, iOS 26 Liquid Glass, HIG rules, and ObservableState patterns. Use when building iOS-targeted Expo UI code that bridges to SwiftUI.
Build native-feeling Expo screens with Apple HIG styling, semantic colors, native controls, SF Symbols, animations, visual effects, gradients, storage, and responsive layout. For routing, use expo-router.
Guides building beautiful native apps with Expo Router, covering styling, navigation, animations, and platform-native components.