expo-design-system

Builds Airbnb-DLS-aligned design systems for Expo React Native apps using Unistyles v3.

Updated Aug 28, 2026
One-click install
npx skills add https://github.com/Yash-Awasthi/adapfit --skill expo-design-system-yash-awasthi
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: expo-design-system
Source: https://github.com/Yash-Awasthi/adapfit/tree/main/.agents/skills/expo-design-system
Command: npx skills add https://github.com/Yash-Awasthi/adapfit --skill expo-design-system-yash-awasthi

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) and assets (resource) components.

What problem does it solve? Building a consistent design system for Expo / React Native apps that target both web and native iOS is hard: tokens drift, components leak raw style props, and web builds end up inert without hover, focus, or cursor states. This Skill provides 63 prioritized rules across 11 categories so shared UI stays token-driven, variant-based, and native-feeling on both platforms. ## Core Features & Use Cases - Token Architecture & Theming: Defines a three-layer token scale (raw, semantic, component) inside a single Unistyles theme, with runtime theme switching that avoids full JavaScript re-renders. - Component API Contracts: Enforces the Airbnb DLS pattern of variant and slot props over raw style escape hatches, with compound variants, ref forwarding, and accessibility baked into the contract. - Cross-Platform Parity & Performance: Covers Unistyles _web pseudo-states, Platform splits, FlashList virtualization, Reanimated UI-thread animation, Gesture Handler, and Skia drawing surfaces. - Use Case: When building a clinic app's appointment calendar, treatment-note editor, or body-chart drawing canvas, apply these rules to compose domain components from design system primitives with offline-first autosave and optimistic writes. ## Quick Start Ask the assistant to review or build a shared React Native component, token, or theme using the expo-design-system guidelines for web and iOS parity.

Frequently Asked Questions about expo-design-system

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

FAQPage Schema
How do I build a design system for Expo React Native apps?▼

Define a three-layer token scale (raw, semantic, component) in a single Unistyles theme, expose components through variant and slot props instead of raw style props, and isolate the system as its own package with one curated public entry point.

How do I make React Native components work on both web and iOS?▼

Use Unistyles v3 `_web` pseudo-states to add hover, focus, and cursor styles for pointer users, guard native-only APIs like haptics behind Platform checks with web fallbacks, and isolate genuine differences in `.web.tsx` and `.ios.tsx` file pairs behind one component API.

Should React Native components expose a style prop?▼

No. A raw style prop lets callers bypass design tokens and drift from the system. Expose a closed set of variant props (the Airbnb DLS pattern) and intent props like tone or inset, keeping visual styling token-driven and reviewable.

Does Unistyles v3 support dark mode without re-rendering?▼

Yes. Register themes and breakpoints in one typed module and switch themes through the Unistyles runtime, which updates styles without a full JavaScript re-render. Read theme values from the StyleSheet argument rather than subscribing per component.

Why use FlashList instead of ScrollView for long lists?▼

ScrollView mounts every row up front, spiking memory and time-to-interactive for large datasets like a full day of appointments. FlashList virtualizes the list, mounting only visible rows and recycling them during scroll.

When should I not use design system variants?▼

A genuinely one-off surface that will never be reused, such as a single marketing splash, can take a local style. The moment a second instance appears, promote the pattern to a variant in the shared system.