expo-design-system

Build and audit design token themes and reusable components in Expo apps.

2.5k|140|Updated Nov 30, 2025
One-click install
npx skills add https://github.com/expo/skills --skill expo-design-system
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: expo-design-system
Source: https://github.com/expo/skills/tree/main/plugins/expo/skills/expo-design-system
Command: npx skills add https://github.com/expo/skills --skill expo-design-system

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Expo apps often accumulate inconsistent styling: hardcoded hex colors, arbitrary spacing values, and duplicated view code scattered across screens. This Skill establishes a single visual source of truth - a token theme plus a small set of reusable components - and provides audit tooling to measure and fix design-system drift in existing apps.

Core Features & Use Cases

  • Token Theme Setup: Creates a src/theme/ structure covering colors (platform semantic colors via Platform.select), spacing on a 4-point grid, typography ramps, radius, boxShadow-based shadows, and motion durations.
  • Reusable Component Conventions: Defines a component contract with variant/size/state props, pressed-state feedback via Pressable, style-override merging, and rules for when a repeated view earns promotion into src/components/.
  • Drift Auditing: Ships references/audit.md with grep-based checks, a per-100-SLOC scoring rubric, an incremental adoption plan, and templates for documenting or proposing components.
  • Use Case: When an AI-generated screen uses hardcoded #5B21B6 and padding: 13, run the audit to score the drift, derive tokens from the app's real values, and migrate one screen at a time until the audit comes back clean.

Quick Start

Use the expo-design-system skill to create the src/theme token files and audit my screens for hardcoded style values.

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 token theme in an Expo app?▼

Place all tokens under src/theme/ with files for colors, spacing, typography, radius, shadows, and motion, re-exported from one index.ts entry point. Use platform semantic colors via Platform.select and a 4-point spacing grid, and never hardcode values outside the theme.

How do I audit an Expo app for hardcoded style values?▼

Run the grep-based checks in references/audit.md to find hex colors, raw fontSize, non-scale spacing, and legacy shadow props outside the theme directory. Score each category as escapes per 100 source lines to prioritize migration.

Does this work with NativeWind, Tamagui, or Restyle?▼

Yes. If a styling library already exists in package.json, 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.

When should I extract a 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 from inline JSX to the screen folder, then to src/components/.

Why should shadows use boxShadow instead of elevation in React Native?▼

The skill mandates boxShadow strings for all shadows and bans legacy shadowColor/shadowOffset/elevation props, per the expo-native-ui rules. Define two or three elevation levels as tokens in theme/shadows.ts.