Build beautiful native iOS/Android apps with Expo Router. Covers route structure, native tabs, animations, blur effects, liquid glass, SF Symbols, and platform patterns.
数据来源:ClawHub。 在 ClawSkills 查看
选择你使用的 Agent
方法一:命令行安装(推荐)
推荐(无需提前安装 clawhub)
npx clawhub@latest --dir ~/.claude/skills install expo-native-ui或使用 clawhub CLI(需提前安装)
clawhub --dir ~/.claude/skills install expo-native-ui⚠️ 需要 Node.js 18+,没有 Node?请使用下方方法二直接下载 ZIP。 安装 Node.js →
方法二:手动下载安装(无需 Node)
下载 ZIP,解压后将文件夹放到以下路径,重启 Agent 即可:
安装路径
~/.claude/skills/expo-native-ui/💡解压后将文件夹放到上方路径,重启 Agent 即可生效
--- name: expo-native-ui model: standard version: 1.0.0 description: > Build beautiful native iOS/Android apps with Expo Router. Covers route structure, native tabs, animations, blur effects, liquid glass, SF Symbols, and platform patterns. tags: [expo, react-native, ios, android, mobile, navigation, animations] ---
Build production-quality native mobile apps with Expo Router following Apple Human Interface Guidelines and modern React Native patterns.
npx clawhub@latest install expo-native-ui
Guides implementation of native mobile apps using Expo Router with:
expo router, react native, native tabs, sf symbols, expo blur, liquid glass, reanimated, ios, android, mobile app, navigation stack, form sheet, modal, context menu, link preview
Consult these resources for detailed implementation:
| Reference | Purpose | |-----------|---------| | references/route-structure.md | Route conventions, dynamic routes, groups, query params | | references/tabs.md | NativeTabs, migration from JS tabs, iOS 26 features | | references/icons.md | SF Symbols with expo-symbols, animations, weights | | references/controls.md | Native iOS controls: Switch, Slider, DateTimePicker, Picker | | references/visual-effects.md | Blur effects and liquid glass | | references/animations.md | Reanimated: entering, exiting, layout, scroll-driven | | references/search.md | Search bar integration, useSearch hook, filtering | | references/gradients.md | CSS gradients via experimental_backgroundImage | | references/media.md | Camera, audio, video, file saving | | references/storage.md | SQLite, AsyncStorage, SecureStore | | references/webgpu-three.md | WebGPU, Three.js for 3D graphics | | references/toolbar-and-headers.md | Stack headers, toolbar customization (iOS) |
Try Expo Go first before creating custom builds:
npx expo start # Scan QR with Expo Go
Custom builds (npx expo run:ios) only needed for:
modules/)@bacons/apple-targets)comment-card.tsxapp/ directory| Use | Instead Of | |-----|------------| | expo-audio | expo-av | | expo-video | expo-av | | expo-symbols | @expo/vector-icons | | react-native-safe-area-context | RN SafeAreaView | | process.env.EXPO_OS | Platform.OS | | React.use | React.useContext | | expo-image | intrinsic img element | | expo-glass-effect | custom blur views |
// Always wrap root in ScrollView with automatic insets
<ScrollView contentInsetAdjustmentBehavior="automatic">
{children}
</ScrollView>
// Use useWindowDimensions, not Dimensions.get()
const { width, height } = useWindowDimensions();
// Flexbox over Dimensions API
<View style={{ flex: 1, flexDirection: 'row', gap: 16 }} />
import { Link } from 'expo-router';
<Link href="/settings">
<Link.Trigger>
<Pressable><Card /></Pressable>
</Link.Trigger>
<Link.Preview />
<Link.Menu>
<Link.MenuAction title="Share" icon="square.and.arrow.up" onPress={handleShare} />
<Link.MenuAction title="Delete" icon="trash" destructive onPress={handleDelete} />
</Link.Menu>
</Link>
// In _layout.tsx
<Stack.Screen
name="sheet"
options={{
presentation: "formSheet",
sheetGrabberVisible: true,
sheetAllowedDetents: [0.5, 1.0],
contentStyle: { backgroundColor: "transparent" }, // Liquid glass on iOS 26+
}}
/>
app/
_layout.tsx — <NativeTabs />
(index,search)/
_layout.tsx — <Stack />
index.tsx
search.tsx
// app/_layout.tsx
import { NativeTabs, Icon, Label } from "expo-router/unstable-native-tabs";
export default function Layout() {
return (
<NativeTabs>
<NativeTabs.Trigger name="(index)">
<Icon sf="list.dash" />
<Label>Items</Label>
</NativeTabs.Trigger>
<NativeTabs.Trigger name="(search)" role="search" />
</NativeTabs>
);
}
borderCurve: 'continuous' for rounded corners (not capsules)boxShadow style prop, never legacy RN shadow/elevationStyleSheet.create unless reusingfontVariant: 'tabular-nums' for numeric countersselectable prop on Text displaying copiable data// Shadow example
<View style={{ boxShadow: "0 1px 2px rgba(0, 0, 0, 0.05)" }} />
// Continuous border curve
<View style={{ borderRadius: 12, borderCurve: 'continuous' }} />
expo-haptics conditionally on iOSheaderSearchBarOptions in Stack.Screenselectable prop to important dataimg, div) outside DOM componentsDimensions.get() — always useWindowDimensionsapp/ directoryPlatform.OS — use process.env.EXPO_OSboxShadow@expo/vector-icons — use expo-symbols安装 Expor Native UI 后,可以对 AI 说这些话来触发它
Help me get started with Expor Native UI
Explains what Expor Native UI does, walks through the setup, and runs a quick demo based on your current project
Use Expor Native UI to build beautiful native iOS/Android apps with Expo Router
Invokes Expor Native UI with the right parameters and returns the result directly in the conversation
What can I do with Expor Native UI in my developer & devops workflow?
Lists the top use cases for Expor Native UI, with example commands for each scenario
将技能文件夹放到 ~/.claude/skills/expo-native-ui/ 目录(个人级,所有项目可用),或 .claude/skills/expo-native-ui/(项目级)。重启 AI 客户端后,用 /expo-native-ui 主动调用,或让 AI 根据上下文自动发现并使用。
Expor Native UI 支持 Claude、Cursor、OpenClaw,可与这些 AI 平台无缝集成,扩展其能力。
Expor Native UI 可免费安装使用。请查阅仓库了解许可证信息。
Build beautiful native iOS/Android apps with Expo Router. Covers route structure, native tabs, animations, blur effects, liquid glass, SF Symbols, and platform patterns.
Expor Native UI 属于「Developer & DevOps」分类,该分类的技能帮助 AI 智能体在此领域执行专业任务。
Automate my developer & devops tasks using Expor Native UI
Identifies repetitive steps in your workflow and sets up Expor Native UI to handle them automatically