Individual skill
expo-design-system
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.
skills/.experimental/expo-design-system/SKILL.md
Source commit cf93c57cac89d6fc3e4194686000411567f5caf3
What was checked
- Matches the observed repository HEAD
- Yes
- Scanner rules are current
- No
- Repository scan complete
- No
- Skill scan complete
- No
- Observed behavior
- Not checked yet
- Last checked
- Nov 5, 2026
These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.
Install this skill
Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.
An install command is unavailable: current rules, complete repository and skill scans, an eligible behavior level and a permitted license are required.
Repository context
- Repository stars (not skill ratings)
- 222
- Repository last updated
- Aug 15, 2026
- License
- MIT
Observed agent integration: codex
- design Derived category
- engineering Derived category
- design-interface Derived category
- engineering-web Derived category
Files and excerpt
File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.
Browse files
AGENTS.mddoc · 14,890 bytesSKILL.mdcore · 14,200 bytesSKILL.mdcore · 14,200 bytesSKILL.mdcore · 14,200 bytesassets/templates/_template.mddoc · 1,082 bytesmetadata.jsonasset · 1,743 bytesreferences/_sections.mddoc · 4,344 bytesreferences/api-accessibility-in-contract.mddoc · 1,695 bytesreferences/api-aschild-polymorphism.mddoc · 1,673 bytesreferences/api-compound-variants.mddoc · 1,893 bytesreferences/api-controlled-uncontrolled.mddoc · 1,749 bytesreferences/api-forward-ref.mddoc · 1,720 bytesreferences/api-no-style-escape-hatch.mddoc · 2,129 bytesreferences/api-slots-for-composition.mddoc · 1,672 bytesreferences/api-variants-over-style-prop.mddoc · 2,319 bytesreferences/domain-bodychart-gesture-paths.mddoc · 1,712 bytesreferences/domain-bodychart-skia-canvas.mddoc · 1,671 bytesreferences/domain-calendar-virtualization.mddoc · 1,572 bytesreferences/domain-compose-from-primitives.mddoc · 1,758 bytesreferences/domain-note-editor-autosave.mddoc · 1,673 bytesreferences/domain-optimistic-writes.mddoc · 1,667 bytesreferences/govern-design-system-package.mddoc · 1,428 bytesreferences/govern-incremental-migration.mddoc · 1,420 bytesreferences/govern-lint-no-raw-values.mddoc · 2,016 bytesreferences/govern-naming-conventions.mddoc · 1,305 bytesreferences/govern-prevent-local-tokens.mddoc · 1,405 bytesreferences/govern-storybook-catalog.mddoc · 1,517 bytesreferences/perf-defer-offscreen-work.mddoc · 1,669 bytesreferences/perf-expo-image.mddoc · 1,278 bytesreferences/perf-flashlist-for-lists.mddoc · 1,168 bytesreferences/perf-gesture-handler.mddoc · 1,925 bytesreferences/perf-haptics-key-actions.mddoc · 1,530 bytesreferences/perf-memoize-list-items.mddoc · 1,576 bytesreferences/perf-reanimated-ui-thread.mddoc · 1,595 bytesreferences/platform-divergence-split.mddoc · 1,713 bytesreferences/platform-guard-native-only.mddoc · 1,582 bytesreferences/platform-input-model.mddoc · 1,442 bytesreferences/platform-shared-theme-parity.mddoc · 1,643 bytesreferences/platform-web-pseudo-states.mddoc · 1,872 bytesreferences/reuse-extend-not-fork.mddoc · 2,001 bytesreferences/reuse-inventory-first.mddoc · 1,772 bytesreferences/reuse-platform-component-first.mddoc · 1,724 bytesreferences/reuse-promote-on-second-use.mddoc · 1,483 bytesreferences/space-gap-over-margins.mddoc · 1,170 bytesreferences/space-radius-tokens.mddoc · 1,300 bytesreferences/space-safe-area-insets.mddoc · 1,497 bytesreferences/space-spacing-scale.mddoc · 1,253 bytesreferences/space-touch-targets.mddoc · 1,338 bytesreferences/style-dynamic-functions.mddoc · 1,646 bytesreferences/style-no-inline-array-merge.mddoc · 1,524 bytesreferences/style-press-states-from-variants.mddoc · 1,802 bytesreferences/style-stylesheet-create.mddoc · 1,694 bytesreferences/style-variants-api.mddoc · 1,740 bytesreferences/style-withunistyles-third-party.mddoc · 1,264 bytesreferences/theme-adaptive-system.mddoc · 1,614 bytesreferences/theme-breakpoints-responsive.mddoc · 1,432 bytesreferences/theme-config-single-module.mddoc · 1,590 bytesreferences/theme-runtime-not-rerender.mddoc · 1,715 bytesreferences/theme-stylesheet-theme-arg.mddoc · 1,394 bytesreferences/token-avoid-over-abstraction.mddoc · 1,573 bytesreferences/token-define-in-unistyles-theme.mddoc · 1,651 bytesreferences/token-elevation-pairs.mddoc · 1,692 bytesreferences/token-no-raw-values-in-components.mddoc · 1,708 bytesreferences/token-semantic-naming.mddoc · 1,519 bytesreferences/token-three-layer-scale.mddoc · 2,145 bytesreferences/type-font-loading-expo-font.mddoc · 1,455 bytesreferences/type-icon-registry.mddoc · 1,676 bytesreferences/type-respect-font-scaling.mddoc · 1,353 bytesreferences/type-scale-tokens.mddoc · 1,427 bytesreferences/type-text-component-wrapper.mddoc · 1,691 bytes
Read excerpt
# 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