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.