Agent Skills: Expo @expo/ui SwiftUI Best Practices

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.

UncategorizedID: pproenca/dot-skills/expo-ui

Install this agent skill to your local

pnpm dlx add-skill https://github.com/pproenca/dot-skills/tree/HEAD/skills/.curated/expo-ui

Skill Files

Browse the full folder contents for expo-ui.

Download Skill

Loading file tree…

skills/.curated/expo-ui/SKILL.md

Skill Metadata

Name
expo-ui
Description
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.

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
  • Writing controlled inputs (TextField, Toggle, Picker, Slider) with useNativeState and worklet writes

When NOT to Use This Skill

  • Android Jetpack Compose — this skill covers iOS SwiftUI only. The @expo/ui/jetpack-compose surface has its own conventions
  • Universal (cross-platform) components — @expo/ui exposes a small set; this skill scopes to the platform-specific iOS surface
  • Navigation routing — for stack/tab routing, use expo-router and expo-router/unstable-native-tabs; this skill covers UI composition only
  • Pre-iOS-17 fallbacks — most rules assume iOS 17 minimum; Liquid Glass rules require iOS 26

Rule Categories by Priority

| Priority | Category | Impact | Prefix | |----------|----------|--------|--------| | 1 | Setup & Host Boundaries | CRITICAL | host- | | 2 | iOS 26 HIG Composition Rules | CRITICAL | hig- | | 3 | Modifiers System | CRITICAL | mod- | | 4 | Layout Components | HIGH | layout- | | 5 | Input & Controls | HIGH | input- | | 6 | Navigation & Overlays | HIGH | nav- | | 7 | Display & Feedback | MEDIUM-HIGH | display- | | 8 | State & Cross-Cutting Patterns | MEDIUM | state- |

Quick Reference

1. Setup & Host Boundaries (CRITICAL)

2. iOS 26 HIG Composition Rules (CRITICAL)

3. Modifiers System (CRITICAL)

4. Layout Components (HIGH)

5. Input & Controls (HIGH)

6. Navigation & Overlays (HIGH)

7. Display & Feedback (MEDIUM-HIGH)

8. State & Cross-Cutting Patterns (MEDIUM)

How to Use

Read individual reference files for detailed explanations and code examples:

Each rule file contains:

  • Brief explanation of why it matters in the SwiftUI bridge
  • Incorrect code example anchored to a realistic domain
  • Correct code example with a minimal diff from the incorrect one
  • Where relevant: Alternative approach, When NOT to use, Warning callouts, authoritative reference URL

Gotchas

See gotchas.md — append entries as failure points surface during real use.

Related Skills

  • For Android Jetpack Compose components, the parallel skill would target @expo/ui/jetpack-compose
  • For navigation routing (stack, tabs), use expo-router directly
  • For form validation libraries, see the react-hook-form skill