← 返回 Skills 市场
wpank

Expor Native UI

作者 wpank · GitHub ↗ · v1.0.0
cross-platform ⚠ suspicious
1470
总下载
0
收藏
7
当前安装
1
版本数
在 OpenClaw 中安装
/install expo-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.
使用说明 (SKILL.md)

Expo Native UI

Build production-quality native mobile apps with Expo Router following Apple Human Interface Guidelines and modern React Native patterns.

Installation

OpenClaw / Moltbot / Clawbot

npx clawhub@latest install expo-native-ui

WHAT This Skill Does

Guides implementation of native mobile apps using Expo Router with:

  • File-based routing with native navigation stacks
  • Native tab bars (NativeTabs) and iOS 26 features
  • SF Symbols integration via expo-symbols
  • Blur effects (expo-blur) and liquid glass (expo-glass-effect)
  • Reanimated animations and gesture handling
  • Native controls: Switch, Slider, SegmentedControl, DateTimePicker

WHEN To Use

  • Building a new Expo Router app
  • Adding native tab navigation
  • Implementing iOS-style blur or liquid glass effects
  • Creating smooth animations with entering/exiting transitions
  • Integrating SF Symbols for icons
  • Setting up route structure with groups and dynamic routes

KEYWORDS

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

References

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)

Core Principles

Running the App

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:

  • Local Expo modules (custom native code in modules/)
  • Apple targets (widgets, app clips via @bacons/apple-targets)
  • Third-party native modules not in Expo Go

Code Style

  • Kebab-case file names: comment-card.tsx
  • Path aliases in tsconfig over relative imports
  • Never co-locate components/utilities in app/ directory
  • Always ensure a route matches "/" (may be in a group)
  • Escape nested backticks carefully in strings

Library Preferences

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

Responsiveness

// Always wrap root in ScrollView with automatic insets
\x3CScrollView contentInsetAdjustmentBehavior="automatic">
  {children}
\x3C/ScrollView>

// Use useWindowDimensions, not Dimensions.get()
const { width, height } = useWindowDimensions();

// Flexbox over Dimensions API
\x3CView style={{ flex: 1, flexDirection: 'row', gap: 16 }} />

Navigation Patterns

Link with Preview and Context Menu

import { Link } from 'expo-router';

\x3CLink href="/settings">
  \x3CLink.Trigger>
    \x3CPressable>\x3CCard />\x3C/Pressable>
  \x3C/Link.Trigger>
  \x3CLink.Preview />
  \x3CLink.Menu>
    \x3CLink.MenuAction title="Share" icon="square.and.arrow.up" onPress={handleShare} />
    \x3CLink.MenuAction title="Delete" icon="trash" destructive onPress={handleDelete} />
  \x3C/Link.Menu>
\x3C/Link>

Form Sheet Modal

// In _layout.tsx
\x3CStack.Screen
  name="sheet"
  options={{
    presentation: "formSheet",
    sheetGrabberVisible: true,
    sheetAllowedDetents: [0.5, 1.0],
    contentStyle: { backgroundColor: "transparent" }, // Liquid glass on iOS 26+
  }}
/>

Native Tabs Structure

app/
  _layout.tsx — \x3CNativeTabs />
  (index,search)/
    _layout.tsx — \x3CStack />
    index.tsx
    search.tsx
// app/_layout.tsx
import { NativeTabs, Icon, Label } from "expo-router/unstable-native-tabs";

export default function Layout() {
  return (
    \x3CNativeTabs>
      \x3CNativeTabs.Trigger name="(index)">
        \x3CIcon sf="list.dash" />
        \x3CLabel>Items\x3C/Label>
      \x3C/NativeTabs.Trigger>
      \x3CNativeTabs.Trigger name="(search)" role="search" />
    \x3C/NativeTabs>
  );
}

Styling Guidelines

  • Flex gap over margin/padding where possible
  • borderCurve: 'continuous' for rounded corners (not capsules)
  • boxShadow style prop, never legacy RN shadow/elevation
  • Stack title instead of custom text elements for page headers
  • Inline styles, not StyleSheet.create unless reusing
  • fontVariant: 'tabular-nums' for numeric counters
  • selectable prop on Text displaying copiable data
// Shadow example
\x3CView style={{ boxShadow: "0 1px 2px rgba(0, 0, 0, 0.05)" }} />

// Continuous border curve
\x3CView style={{ borderRadius: 12, borderCurve: 'continuous' }} />

Behavior Patterns

  • Haptics: Use expo-haptics conditionally on iOS
  • Search bar: Prefer headerSearchBarOptions in Stack.Screen
  • Selectable text: Add selectable prop to important data
  • Format large numbers: 1.4M, 38k instead of 1,400,000
  • Never use intrinsic elements (img, div) outside DOM components

NEVER Do

  1. NEVER use legacy modules: Picker, WebView, SafeAreaView from react-native, AsyncStorage (old), expo-permissions
  2. NEVER use Dimensions.get() — always useWindowDimensions
  3. NEVER co-locate components in the app/ directory
  4. NEVER use Platform.OS — use process.env.EXPO_OS
  5. NEVER use legacy shadow styles — use CSS boxShadow
  6. NEVER start with custom builds — try Expo Go first
  7. NEVER use StyleSheet.create for one-time styles
  8. NEVER use @expo/vector-icons — use expo-symbols
安全使用建议
This skill is essentially a collection of docs and example code for Expo Router and React Native UI patterns and appears internally consistent. Before running any install commands shown in the README (for example any npx command that fetches code), review the referenced source and any scripts it would execute. The skill contains example network resource URLs and code that writes files or uses permissions (camera, media, file storage) — these are normal for mobile app examples but you should not run code snippets or install remote packages without inspecting them first. If you plan to copy example code into a real project, audit any third-party package versions (especially native modules like WebGPU/Three.js) and follow Expo's recommended build steps.
功能分析
Type: OpenClaw Skill Name: expo-native-ui Version: 1.0.0 The skill bundle primarily provides documentation and code examples for building native UI with Expo. However, the `README.md` file contains an installation instruction `npx add https://github.com/wpank/ai/tree/main/skills/frontend/expo-native-ui`. If an AI agent were to execute this command, it would fetch and execute code from an arbitrary GitHub URL, which represents a supply chain vulnerability and a risk of arbitrary code execution if the remote repository were compromised. While there is no clear evidence of intentional malicious exploitation within the bundle itself, this risky installation method classifies the skill as suspicious.
能力评估
Purpose & Capability
The skill describes Expo Router / React Native UI guidance and all included files are documentation and example code for that purpose. There are no unrelated credential requests, binaries, or configuration paths that don't match the stated goal.
Instruction Scope
SKILL.md and the reference files contain implementation guidance and code snippets only. They do not instruct the agent to read or exfiltrate user files, access unrelated environment variables, or contact hidden endpoints. Some examples reference external example media URLs and local project paths (app/, components/, ~/.ai-skills) which are normal for developer docs.
Install Mechanism
There is no install spec (instruction-only), which is low risk. The README contains example commands (e.g., 'npx clawhub@latest install expo-native-ui' and an unusual 'npx add https://github.com/.../tree/...') — these are user-facing installation hints rather than an automated install step, but users should be cautious running npx commands that fetch code from external locations without review.
Credentials
The skill declares no required environment variables, no primary credential, and no config paths. Example code references permissions typical for mobile apps (camera, media library) but does not require secrets or unrelated credentials.
Persistence & Privilege
always is false and the skill is user-invocable. There is no request to persist, enable itself system-wide, or modify other skills or agent settings. It's documentation-only and does not demand elevated runtime privileges.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install expo-native-ui
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /expo-native-ui 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
Initial release of expo-native-ui — streamlined guidance for building native iOS/Android apps with Expo Router. - Comprehensive documentation for file-based routing, native tabs, blur/glass effects, and animations. - Details on integrating SF Symbols, Reanimated, and platform-native UI controls. - Reference table covering setup, navigation, controls, visual effects, media, and 3D. - Style and code structure guidelines aligned with Apple Human Interface Guidelines. - Clear do’s and don’ts for dependencies, libraries, and UI patterns.
元数据
Slug expo-native-ui
版本 1.0.0
许可证
累计安装 7
当前安装数 7
历史版本数 1
常见问题

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. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 1470 次。

如何安装 Expor Native UI?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install expo-native-ui」即可一键安装,无需额外配置。

Expor Native UI 是免费的吗?

是的,Expor Native UI 完全免费(开源免费),可自由下载、安装和使用。

Expor Native UI 支持哪些平台?

Expor Native UI 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Expor Native UI?

由 wpank(@wpank)开发并维护,当前版本 v1.0.0。

💬 留言讨论