Skip to content

Introduction

Stratum is an atomic design system for React Native (Expo). It combines three ideas that rarely travel together:

  • Tailwind-style ergonomics — a shared token language between design and code. theme.colors.accent in TypeScript maps directly to the same variable in Figma.
  • shadcn-style ownership — components are copied into your repo, not installed as a black-box package. You can read, modify, and understand every line.
  • Figma mirror — every token, variant, and component maps 1:1 between Figma and code. <Button variant="primary" size="md"> is Button / Primary / Md in Figma.

React Native developers building production apps who want a design system that:

  • Enforces visual consistency without fighting the tools
  • Works with AI coding tools out of the box (full llms.txt + guide)
  • Has a clear path from design decisions to shipped code

Designers who want their handoff to actually work — because the component properties in Figma exactly match the props in code, and the themes switch identically in both places.

Stratum ships with three built-in themes, each with light and dark variants:

ThemeInspirationCharacter
SlateWealthsimpleHigh-contrast B&W, pill buttons, soft shadows
ObsidianGumroadWarm off-white, sharp corners, thick borders, offset shadows
QuartzGo ClubElectric blue accent, glass blur surfaces, expressive

Theme switching happens at runtime with zero re-renders. Switching themes transforms every component — button shapes, icon weights, surface treatments, radius scale — all from a single setTheme() call.

Stratum follows atomic design: Tokens → Atoms → Molecules → Organisms → Templates → Screens.

Each layer is strict: atoms own raw styling, molecules compose atoms into single-job units, organisms assemble interface sections, templates define layout slots, and screens bind templates to data and navigation. Skipping layers is not allowed.

This means every screen can be understood by reading top-down, and every component can be tested in isolation.

Stratum is not an npm package you install and import. It’s a collection of copyable, owned components. You run npx stratum add atom/Button and the source lands in your repo. You can see it, change it, and understand it. When Stratum updates, you adopt what you want — no forced upgrades.