expo-design-system

Build and audit token-based design systems for Expo React Native apps.

Updated Sep 13, 2026
One-click install
npx skills add https://github.com/aadilmallick/myfitness-pal-clone --skill expo-design-system-aadilmallick
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: expo-design-system
Source: https://github.com/aadilmallick/myfitness-pal-clone/tree/main/.agents/skills/expo-design-system
Command: npx skills add https://github.com/aadilmallick/myfitness-pal-clone --skill expo-design-system-aadilmallick

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Expo apps built quickly or with AI assistance often end up with hardcoded colors, arbitrary spacing, and inconsistent components scattered across screens, making them look generic and hard to maintain. This Skill establishes a single visual source of truth: a token theme plus reusable component conventions, and provides audit tooling to measure and fix design-system drift. ## Core Features & Use Cases - Token theme structure: Defines where color, spacing, typography, radius, shadow, and motion tokens live (src/theme/ or global.css for Tailwind), with platform semantic colors and light/dark brand pairs. - Component contract: Standardizes reusable primitives with variant/size/state props, pressed feedback, style overrides merged last, and accessibility roles, plus rules for when a repeated view earns promotion into src/components/. - Drift auditing: Ships grep-based checks, a per-100-SLOC scoring rubric, an incremental adoption plan, and a catalog of 20 named AI-generated UI anti-patterns (native slop) with fixes. - Use Case: An app has hex colors and 16px padding everywhere. Run the audit to score the drift, derive tokens from the most frequent values, then migrate screen by screen until the audit comes back clean. ## Quick Start Ask the AI to audit this Expo app for design-system drift and set up a token theme following the expo-design-system conventions.

Frequently Asked Questions about expo-design-system

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create a design system in an Expo React Native app?

Create a src/theme/ directory with token files for colors, spacing, typography, radius, shadows, and motion, re-exported from one index entry point. Then build reusable components in src/components/ that consume only those tokens with variant, size, and state props.

How do I audit an Expo app for hardcoded styles and design drift?

Run grep checks for hex colors, raw fontSize, non-scale spacing values, borderRadius, and legacy shadow props outside the theme directory. Score each category as escapes per 100 source lines, then migrate typography first, followed by spacing, colors, and radius, one screen per commit.

Does this work with NativeWind, Tailwind, Tamagui, or Unistyles?

Yes. If a styling library already exists, it is the source of truth and should be extended in its own idiom rather than adding a second theme. For Tailwind projects, tokens live in global.css as CSS variables while the same scales and naming rules apply.

When should I extract a repeated view into a shared component?

Extract only when the view appears in two or more screens, has a nameable role like Card or EmptyState, and its props API is smaller than its implementation. Move it stepwise from inline JSX to a screen-local component, then to src/components/, never speculatively.

What are the common AI-generated UI mistakes in React Native apps?

The skill names 20 tells including web-style modals, emoji icons, everything-is-a-card layouts, heavy shadows, hardcoded light-mode colors, and full-screen spinners. Each tell has an observable signature and a native replacement such as formSheet, grouped lists, or semantic platform colors.

Should I wrap native controls like Switch or DateTimePicker in my design system?

No. Platform components that already carry the native design language, including Switch, DateTimePicker, stack headers, and @expo/ui views, should not be wrapped just to route them through the system. Native styling is the design system for those controls.