expo-design-system

v2026.09.24

Airbnb-DLS-aligned design system engineering for Expo / React Native apps targeting both web and native iOS, built on Unistyles v3, Reanimated, Skia, and FlashList. Use whenever building, reviewing, or refactoring shared UI — design tokens, theming, variant-driven component APIs, typography, spacing, cross-platform web/iOS parity, native-feel performance, or complex surfaces like calendars and drawing canvases (examples use a clinic app). Covers token architecture, theming, component API contracts (variants over style props), web/iOS parity (Unistyles `_web` hover/focus/cursor, Platform splits, one shared theme), the Unistyles styling engine, and governance. Trigger even when the user does not say "design system" but is creating or changing reusable React Native components, tokens, theme code, or making a component behave natively on both web and iOS. Teaches how to BUILD the design system; pair with expo-react-native-coder for features and expo-ios-hig for iOS native-feel decisions.

GitHub
Install command
npx skhub add pproenca/expo-design-system
Markdown
SKILL.md

Airbnb DLS Expo React Native Design System Best Practices

Opinionated, strict design system engineering for Expo / React Native apps on the New Architecture, targeting both web and native iOS. Contains 63 rules across 11 categories, prioritized by impact. Derived from Airbnb's Design Language System (DLS), the Unistyles v3 documentation, and the React Native ecosystem (Reanimated, Gesture Handler, Skia, FlashList, Expo SDK). The styling engine is Unistyles v3; the component API follows the Airbnb DLS pattern of variant props over style escape hatches.

Mandated Architecture Alignment

This skill is the infrastructure layer — it teaches how to BUILD the design system itself, the React Native counterpart to ios-design-system. All code examples follow the same non-negotiable constraints:

  • Feature modules import @clinic/design-system + domain; never another feature's internals
  • The design system owns the Unistyles theme (tokens, breakpoints) and exports a curated public surface
  • Reuse before you build: read the index, extend a variant, promote on the second use — never a parallel local component
  • Components expose variant and slot props (Airbnb DLS); no raw style escape hatch
  • Animation and gestures run on the UI thread (Reanimated worklets + Gesture Handler)
  • Lists use FlashList; the body-chart drawing surface uses React Native Skia
  • One source feels native on both web and iOS: Unistyles _web pseudo-states and Platform splits, never a forked web stylesheet
  • Targets the New Architecture (Fabric/JSI), Expo SDK 53+ / React Native 0.81+

Scope & Relationship to Sibling Skills

Sibling SkillIts FocusThis Skill's Focus
ios-design-systemThe SwiftUI design system for the same clinic appThe Expo / React Native counterpart
expo-react-native-coderFeature development (screens, navigation, data fetching)Design system infrastructure (tokens, components, theming)
expo-react-native-performanceApp-wide performance optimizationNative-feel performance inside the design system
reactGeneral React patternsExpo / React Native design system specifics
expo-ios-higiOS native-feel decisions (navigation, system controls, Liquid Glass)Cross-platform token/component architecture + web/iOS parity

Clinic Architecture Contract (Expo / React Native)

All guidance in this skill assumes the clinic modular architecture:

  • Feature modules depend on @clinic/design-system + domain only; the app target wires navigation (Expo Router) and dependency injection
  • The design system is a local package with a single public entry; raw token layers stay private
  • Token source of truth is the Unistyles theme; features never define local tokens
  • Server state uses TanStack Query: reads default to stale-while-revalidate, writes are optimistic and queued for offline sync
  • The New Architecture is required for Unistyles v3, Reanimated worklets, Skia, and FlashList v2

When to Apply

Reference these guidelines when:

  • Setting up a design system for a new Expo / React Native app
  • Building token architecture (colors, typography, spacing, radius, elevation) in the Unistyles theme
  • Designing component APIs — variants, slots, controlled/uncontrolled state, refs, accessibility
  • Authoring component styles with Unistyles StyleSheet, variants, and dynamic functions
  • Building the calendar, treatment-note editor, or Skia body-chart drawing surfaces
  • Migrating ad-hoc styles to a governed token system
  • Reviewing PRs for raw colors, inline styles, leaked style props, or feature-local tokens
  • Tuning native feel — list virtualization, UI-thread animation, gestures, haptics, safe areas
  • Making a component render and feel native on both web and iOS — hover/focus/cursor, Platform splits, and safe-area/haptics divergences
  • Deciding whether to build new or reuse — checking the design system index, extending vs forking, or using a native/@expo/ui control instead of reimplementing one

Rule Categories by Priority

PriorityCategoryImpactPrefixRules
1Token ArchitectureCRITICALtoken-6
2Theming & AdaptivityCRITICALtheme-5
3Component API ContractsCRITICALapi-8
4Cross-Platform ParityCRITICALplatform-5
5Reuse & System FitHIGHreuse-4
6Styling Engine (Unistyles)HIGHstyle-6
7Typography & IconographyHIGHtype-5
8Spacing, Layout & Safe AreasHIGHspace-5
9Native-Feel & PerformanceHIGHperf-7
10Complex Domain ComponentsMEDIUM-HIGHdomain-6
11Governance & ConsistencyMEDIUMgovern-6

Quick Reference

1. Token Architecture (CRITICAL)

2. Theming & Adaptivity (CRITICAL)

3. Component API Contracts (CRITICAL)

4. Cross-Platform Parity (CRITICAL)

5. Reuse & System Fit (HIGH)

6. Styling Engine (Unistyles) (HIGH)

7. Typography & Iconography (HIGH)

8. Spacing, Layout & Safe Areas (HIGH)

9. Native-Feel & Performance (HIGH)

10. Complex Domain Components (MEDIUM-HIGH)

11. Governance & Consistency (MEDIUM)

How to Use

Read individual reference files for detailed explanations and code examples:

Reference Files

FileDescription
references/_sections.mdCategory definitions and ordering
assets/templates/_template.mdTemplate for new rules
metadata.jsonVersion and reference information
Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

MIT

Source path

skills/.experimental/expo-design-system

Default branch

master

Latest commit

cf93c57

Tree SHA

afbb575