frontend-mobile
Skill1 starsChanged 11 days agoMITView on GitHub
Build production-grade mobile apps with native design tokens and platform compliance. Triggers: mobile app, React Native, Flutter, iOS, Android. Do NOT use for web-only projects.
We split this skill into the rules it gives an agent
19 rules. About 0 are common, 6 are distinctive, and 13 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈6
Distinctive · estimate
This author's own choices. Worth a look.
13
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 18
Built on
engineering-fundamentals: Read that skill first. This document adds mobile-specific implementation. - Distinctive: line 47
If context exists → Resume from detected phase.
- Very specific: line 80
Read guides/DISCOVERY-GUIDE.md for complete mobile checklist.
- Distinctive: line 125
No system default fonts as display (San Francisco, Roboto).
- Very specific: line 127
Use expo-font with useFonts hook.
- Very specific: line 130
No system default colors (systemBlue, systemGray).
- Very specific: line 131
Use theme tokens from DESIGN.md or theme provider.
- Distinctive: line 134
No web patterns in mobile (hover states, tooltips on touch).
- Distinctive: line 135
Use platform conventions: iOS HIG, Android Material Design 3.
- Very specific: line 140
No animation of width, height, top, left, margin, padding.
- Very specific: line 141
Only transform and opacity for 60fps.
- Distinctive: line 144
No default flat solid colors.
- Very specific: line 157
Accessibility: Every animation MUST respect AccessibilityInfo reduced motion.
- Very specific: line 158
Performance: Only transform and opacity may be animated.
- Very specific: line 173
Use expo-font for fonts in the root component.
- Very specific: line 181
Use Reanimated useAnimatedStyle for entrance animations.
- Very specific: line 182
Use <Image> from expo-image with contentFit and accessibilityLabel.
- Very specific: line 183
Ensure SafeAreaView wraps every screen.
- Distinctive: line 249
No generic system color utilities.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Frontend Mobile
Built on engineering-fundamentals. Read that skill first. This document adds
mobile-specific implementation.
When to Use
Build, design, or redesign any mobile app interface.
When NOT to Use
- Web-only tasks (use
frontend-web) - Installable web apps (use
frontend-pwa) - Backend-only tasks
Output Contract
| Artifact | Format | Location | Quality Criteria |
| Mobile interface | Source code | Project source directory | Platform-compliant, accessible, token-compliant, build passes |
Context Persistence Check
Before starting work:
- Check
design/DESIGN-LOCK.md:- Exists and < 7 days → Read it. Extract direction, palette, typography, key decisions.
7 days → Read it, ask: "Still valid?"
- Missing → Proceed with Phase 1.
- Check
SPEC.md:- Exists → Read it. Respect locked stack and boundaries.
- Missing → If non-trivial, invoke
spec-driven-development.
- If context exists → Resume from detected phase. Do NOT re-run discovery unless user requests changes.
Stack Detection
Check for STACK_CONFIG.md:
- Exists → Adapt examples to chosen stack.
- Missing → Default to React Native 0.76+ + Expo SDK 52+.
Adaptation examples:
- React Native → Flutter: Widgets instead of components.
StyleSheet→ThemeData. JSX → Dart. - React Native → SwiftUI:
.swiftfiles.@Stateinstead ofuseState. - React Native → Jetpack Compose:
@Composablefunctions. Kotlin syntax.
Core Process
Phase 0 — Language Detection
→ See engineering-fundamentals Phase 0.
Phase 1 — Discovery Gate
→ See engineering-fundamentals Phase 1 for universal discovery.
Mobile-specific questions:
- Platforms: iOS only, Android only, or both?
- Navigation: Tabs, stack, drawer, or custom?
- Offline: Does the app work without internet?
- Push notifications: Needed?
- Native features: Camera, GPS, biometric auth, contacts?
- App Store: Public store, enterprise, or internal distribution?
Read guides/DISCOVERY-GUIDE.md for complete mobile checklist.
Phase 2 — Write Contracts
→ See engineering-fundamentals Phase 2.
Mobile-specific additions:
- SPEC.md must include: Platform targets (iOS min version, Android min SDK), App Store requirements.
Phase 3 — Three Dials System
→ See engineering-fundamentals/guides/DESIGN-CORE.md for the universal Three Dials System (VARIANCE, MOTION, DENSITY), vibe→dial inference, color principles, and dark mode protocol.
Apply dials to mobile constraints: Reanimated for MOTION > 4, SafeArea-aware layouts for VARIANCE > 4, platform-native touch targets for DENSITY.
Phase 4 — Stack Lock-in
| Tool | Minimum | Notes |
| React Native | 0.76+ | New Architecture (Fabric) enabled |
| Expo SDK | 52+ | EAS Build, Expo Router |
| TypeScript | 5.7+ | |
| React Navigation | 7+ | If not using Expo Router |
| Reanimated | 3.16+ | Primary animation engine |
| React Native Gesture Handler | 2.20+ | Gestures |
| lucide-react-native | latest | Icons |
Optional: expo-camera, expo-location, @shopify/flash-list.
Forbidden: Animated API (use Reanimated), inline styles, any type.
Phase 5 — Anti-Slop Rules (Mobile)
→ See engineering-fundamentals/guides/ANTI-SLOP-CORE.md for universal AI tells, content density, copy protocol, and UI state requirements.
Mobile-specific rules:
Typography
- No system default fonts as display (San Francisco, Roboto).
- Pair distinctive display + refined body font.
- Use
expo-fontwithuseFontshook.
Color
- No system default colors (
systemBlue,systemGray). - Use theme tokens from
DESIGN.mdor theme provider.
Layout
- No web patterns in mobile (hover states, tooltips on touch).
- Use platform conventions: iOS HIG, Android Material Design 3.
- Think in screens, not pages. Mobile-first: verify 375pt (iPhone SE).
- Respect SafeAreaView and avoid the notch/status bar.
Motion
- No animation of
width,height,top,left,margin,padding. - Only
transformandopacityfor 60fps.
Native Feel
- No default flat solid colors.
- Touch targets minimum 44pt (iOS) or 48dp (Android).
Phase 6 — Animation System
Read guides/ANIMATION-GUIDE.md.
Summary:
- Primary: Reanimated
useAnimatedStyle+withSpring. - Fallback: React Native
AnimatedAPI for simple cases. - Gestures: React Native Gesture Handler for swipe, pinch, long-press.
- Accessibility: Every animation MUST respect
AccessibilityInforeduced motion. - Performance: Only
transformandopacitymay be animated.
Phase 7 — Build with Tokens
BEFORE WRITING CODE:
- Read
design/DESIGN-LOCK.md— Verify approved direction, palette, typography. - Check
design/approved/— Screenshots, previews, moodboards. - Cross-check with
DESIGN.md— Tokens must match locked system.
Then build:
- Apply tokens to a theme provider (e.g.,
ThemeProviderorStyleSheet.createconstants). - Use
expo-fontfor fonts in the root component. - Build screens with canonical order:
- Splash / Onboarding
- Authentication (if needed)
- Main App Shell (tabs, drawer, or stack)
- Home / Dashboard
- Feature Screens
- Profile / Settings
- Use Reanimated
useAnimatedStylefor entrance animations. - Use
<Image>fromexpo-imagewithcontentFitandaccessibilityLabel. - Ensure
SafeAreaViewwraps every screen.
Phase 8 — QA Gates
→ See engineering-fundamentals Phase 5 for universal gates. Read engineering-fundamentals/guides/PRE-FLIGHT-CORE.md for universal checks first.
After QA gates, log metrics:
LOG METRIC: gate
- project: [detect from git remote or directory]
- gate_name: frontend-mobile-qa
- result: pass/fail
- checks_passed: [N]/12Mobile-specific checks:
- TypeScript —
npx tsc --noEmitpasses. - Build —
eas build --localornpx expo prebuildsucceeds. - No template residue — Remove default Expo text and assets.
- No hardcoded colors — Search
color: '#, replace with tokens. - Responsive — Check 375pt, 428pt, tablet sizes.
- Accessibility — Contrast 4.5:1,
accessibilityLabel,AccessibilityInfo. - Images — Every
<Image>hasaccessibilityLabel. Cache policy configured. - Reduced motion — Respect
AccessibilityInfo.isReduceMotionEnabled(). - Animation performance — Only
transformandopacity. No layout thrashing. - Design Lock present —
design/DESIGN-LOCK.mdexists and was read. - Visual consistency — No color, font, or spacing deviates without approval.
- Platform compliance — Follows iOS HIG and Android Material 3.
Examples & Troubleshooting
Read guides/EXAMPLES.md:
- New mobile app walkthrough (15 steps)
- Adding animation to existing component
- Troubleshooting (Expo prebuild, fonts, SafeArea, gesture conflicts)
DESIGN.md Output
Fills sections 13-17 for mobile. React Native + Expo SDK 52. StyleSheet tokens, Appearance API, device sizes (375pt/428pt/tablet). expo-font, expo-image. Reanimated animations.
Red Flags (Mobile-Specific)
- System default colors or generic palettes used.
- Display font is San Francisco, Roboto, or system default.
- Generic centered card grid with no native consideration.
- Animations use
width,height, ormargintransitions. - No
AccessibilityInforeduced-motion check. - Web patterns (hover, tooltips) suggested in a mobile app.
- Code generated before DESIGN.md confirmed or PLAN created.
Verification
DESIGN.mdexists in project root.design/DESIGN-LOCK.mdexists with approved decisions.- Theme provider or
StyleSheet.createcontains tokens. accessibilityLabelon every element. Reduced-motion check exists.- Build passes (
eas buildorexpo prebuild). - No generic system color utilities.
- Animation code only touches
transformandopacity.
In this repository59 other files it gives its agents.
- AGENTS.mdAGENTS.md
- templates/CLAUDE.mdCLAUDE.md
- adapt-skillSkill
- api-and-interface-designSkill
- architecture-analysisSkill
- audit-skillSkill
- backend-api-masterySkill
- browser-testing-with-devtoolsSkill
- ci-cd-and-automationSkill
- clarify-skillSkill
- cli-toolsSkill
- code-review-and-qualitySkill
- code-simplificationSkill
- context-engineeringSkill
- critique-skillSkill
- customize-opencodeSkill
- debugging-and-error-recoverySkill
- debugging-three-strikesSkill
- delight-skillSkill
- deprecation-and-migrationSkill
- dev-environment-auditSkill
- documentation-and-adrsSkill
- doubt-driven-developmentSkill
- engineering-fundamentalsSkill
- frontend-desktopSkill
- frontend-pwaSkill
- frontend-ui-engineeringSkill
- frontend-webSkill
- fullstack-shippingSkill
- gateSkill
- git-init-and-versioningSkill
- git-workflow-and-versioningSkill
- hard-skillSkill
- idea-refineSkill
- incremental-implementationSkill
- industrial-brutalist-uiSkill
- interview-meSkill
- minimalist-uiSkill
- multi-agent-orchestrationSkill
- observability-and-instrumentationSkill
- optimize-skillSkill
- output-skillSkill
- performance-optimizationSkill
- planning-and-task-breakdownSkill
- polish-skillSkill
- project-health-checkSkill
- project-metricsSkill
- redesign-skillSkill
- security-and-hardeningSkill
- self-improvementSkill
- shipping-and-launchSkill
- skill-creatorSkill
- skill-improverSkill
- soft-premium-uiSkill
- source-driven-developmentSkill
- spec-driven-developmentSkill
- test-driven-developmentSkill
- typeset-skillSkill
- user-onboardingSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

