Individual skill
expo-ui
Library reference for @expo/ui SwiftUI components on iOS — covers Host boundaries, modifier composition, iOS 26 Liquid Glass and Human Interface Guidelines composition rules, layout/input/navigation/display catalogues, and ObservableState patterns. Use this skill whenever writing or reviewing React Native code that imports from @expo/ui/swift-ui or @expo/ui/swift-ui/modifiers — including new Expo apps adopting native SwiftUI views, migrations from React Native primitives to expo-ui, and code targeting iOS 26 features (Liquid Glass, GlassEffectContainer, sheet detents). Trigger even if the user does not explicitly mention "expo-ui" but is writing iOS-targeted Expo UI code that should bridge to SwiftUI.
skills/.curated/expo-ui/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)
- 221
- Repository last updated
- Aug 15, 2026
- License
- MIT
Observed agent integration: codex
- design Derived category
- writing Derived category
- engineering 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 · 15,311 bytesREADME.mddoc · 4,399 bytesSKILL.mdcore · 10,796 bytesassets/templates/_template.mddoc · 1,227 bytesgotchas.mddoc · 285 bytesmetadata.jsonasset · 1,235 bytesreferences/_sections.mddoc · 2,467 bytesreferences/display-chart-data-points.mddoc · 1,598 bytesreferences/display-gauge-current-value-label.mddoc · 1,668 bytesreferences/display-image-system-name.mddoc · 1,505 bytesreferences/display-label-icon-vs-title.mddoc · 1,625 bytesreferences/display-progress-indeterminate.mddoc · 1,731 bytesreferences/display-text-markdown.mddoc · 1,680 bytesreferences/hig-confirmation-dialog-destructive.mddoc · 2,504 bytesreferences/hig-glass-effect-container.mddoc · 2,017 bytesreferences/hig-no-glass-on-glass.mddoc · 1,885 bytesreferences/hig-no-stacked-modals.mddoc · 2,011 bytesreferences/hig-popover-iphone-fallback.mddoc · 2,709 bytesreferences/hig-sheet-detents-partial.mddoc · 2,016 bytesreferences/hig-tint-only-for-brand.mddoc · 1,920 bytesreferences/host-color-scheme-explicit.mddoc · 1,683 bytesreferences/host-ignore-safe-area.mddoc · 1,684 bytesreferences/host-match-contents.mddoc · 1,562 bytesreferences/host-viewport-size-for-form.mddoc · 1,578 bytesreferences/host-wrap-all-swiftui-roots.mddoc · 1,614 bytesreferences/input-button-role-for-destructive.mddoc · 1,544 bytesreferences/input-button-systemimage.mddoc · 1,802 bytesreferences/input-date-picker-range.mddoc · 1,806 bytesreferences/input-picker-style-via-modifier.mddoc · 2,077 bytesreferences/input-securefield-for-passwords.mddoc · 1,533 bytesreferences/input-stepper-bounded.mddoc · 1,290 bytesreferences/input-textfield-observable-state.mddoc · 2,116 bytesreferences/input-toggle-on-async.mddoc · 1,989 bytesreferences/layout-form-for-settings.mddoc · 1,944 bytesreferences/layout-grid-vs-stack.mddoc · 1,780 bytesreferences/layout-hstack-vs-vstack.mddoc · 1,748 bytesreferences/layout-lazy-stack-for-long-lists.mddoc · 2,005 bytesreferences/layout-scrollview-axes.mddoc · 1,762 bytesreferences/layout-section-with-header-footer.mddoc · 2,219 bytesreferences/mod-animation-wraps-trigger.mddoc · 1,843 bytesreferences/mod-composition-order.mddoc · 1,790 bytesreferences/mod-disabled-prop.mddoc · 1,564 bytesreferences/mod-frame-vs-fixedsize.mddoc · 1,915 bytesreferences/mod-import-from-modifiers-subpath.mddoc · 1,597 bytesreferences/mod-padding-vs-frame.mddoc · 1,809 bytesreferences/mod-presentation-on-sheet-content.mddoc · 1,969 bytesreferences/mod-prop-not-style.mddoc · 1,801 bytesreferences/nav-alert-for-critical-only.mddoc · 2,174 bytesreferences/nav-bottom-sheet-via-group.mddoc · 1,924 bytesreferences/nav-context-menu-vs-swipe.mddoc · 2,088 bytesreferences/nav-disclosure-group-collapsible.mddoc · 1,797 bytesreferences/nav-link-not-button-for-urls.mddoc · 1,806 bytesreferences/nav-menu-primary-action.mddoc · 1,769 bytesreferences/nav-share-link-system.mddoc · 2,095 bytesreferences/nav-tabview-style-modifier.mddoc · 2,260 bytesreferences/state-controlled-via-selection-prop.mddoc · 2,058 bytesreferences/state-platform-check-pre-26.mddoc · 1,868 bytesreferences/state-textfield-ref-imperative.mddoc · 2,106 bytesreferences/state-use-native-state-for-fields.mddoc · 1,884 bytesreferences/state-worklet-writes.mddoc · 1,753 bytes
Read excerpt
# Expo @expo/ui SwiftUI Best Practices
Library reference for `@expo/ui/swift-ui` and `@expo/ui/swift-ui/modifiers` — the iOS surface of Expo's native UI bridge. Contains 53 rules across 8 categories, prioritised by cascade impact for agents building Expo apps that render to native SwiftUI views on iOS 26 and earlier.
## When to Apply
Reference these guidelines when:
- Building a new screen with `@expo/ui/swift-ui` — pick the right container (Form vs List vs ScrollView), wrap in Host correctly, apply modifiers
- Migrating from React Native primitives (View, Text, TouchableOpacity) to native SwiftUI components
- Targeting iOS 26 features — Liquid Glass material, GlassEffectContainer, new sheet detent behaviours
- Reviewing code that imports from `@expo/ui/swift-ui` or `@expo/ui/swift-ui/modifiers`
- Debugging "the SwiftUI view doesn't render / is the wrong size / ignores styles" — usually a Host or modifier issue
- Composing presentation surfaces — Alert, ConfirmationDialog, BottomSheet, Popover — under HIG modality guidance