ワンクリックで
mobile-navigation
Expo Router navigation patterns, tab layout, focus mode, safe area, gestures. Load when creating or modifying routes.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Expo Router navigation patterns, tab layout, focus mode, safe area, gestures. Load when creating or modifying routes.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
Project UI design system — read this before building any page or component. Defines visual style, color tokens, typography, and constraints.
Design tokens, Tailwind classes, card patterns, spacing, colors, radius, typography, gamification patterns (Duolingo). Load when working on UI, components, styling.
Phân tích và refactor codebase. Load khi cần review code structure, tìm vấn đề thiết kế, tách component, dọn dead code.
Tạo, cập nhật, hoặc implement RFC cho frontend-v2. Use when user says 'tạo rfc', 'viết rfc', 'implement rfc', 'update rfc', 'rfc status', or when a cross-cutting UI/UX change needs formal spec before coding.
TanStack Query patterns, data fetching, cache invalidation, route loaders. Load when working with server state, queries, mutations.
TypeScript patterns, type conventions, naming, code style. Load when writing complex types, reviewing code style, or refactoring.
SOC 職業分類に基づく
| name | mobile-navigation |
| description | Expo Router navigation patterns, tab layout, focus mode, safe area, gestures. Load when creating or modifying routes. |
app/_layout.tsx — auth context provider + query clientapp/(auth)/ — login, register (modal presentation)app/(app)/_layout.tsx — stack navigationapp/(app)/(tabs)/_layout.tsx — 4 tabs (Overview, Practice, Exams, Profile)// app/(app)/(tabs)/_layout.tsx
import { Tabs } from "expo-router";
import { Ionicons } from "@expo/vector-icons";
import { CustomTabBar } from "@/components/CustomTabBar";
export default function TabLayout() {
return (
<Tabs tabBar={(props) => <CustomTabBar {...props} />}>
<Tabs.Screen name="index" options={{ title: "Overview" }} />
<Tabs.Screen name="practice" options={{ title: "Practice" }} />
<Tabs.Screen name="exams" options={{ title: "Exams" }} />
<Tabs.Screen name="profile" options={{ title: "Profile" }} />
</Tabs>
);
}
headerShown: false for exam/practice (fullscreen immersion)app/(app)/_layout.tsx:
<Stack.Screen name="exam/[id]" options={{ headerShown: false, gestureEnabled: false }} />
<Stack.Screen name="session/[id]" options={{ gestureEnabled: false }} />
useSegments() + useRouter() in _layout.tsx!profileuseEffectuseSafeAreaInsets() for top/bottom paddingcontentContainerStyle={{ paddingBottom: insets.bottom + 24 }}paddingBottom: insets.bottom + spacing.lgrouter.push() — navigate forward (stack push)router.replace() — replace current screen (no back)router.back() — go backrouter.dismiss() — dismiss modaloptions={{ href: null }}gestureEnabled: falsegestureEnabled: truepresentation: "modal" + gestureEnabled: false for onboarding