Home / Docs / Components‹›

Components

247 families — primitives through composed patterns — installed as source you own, with named design variants as their own items.

Install

npx @lumioui/cli add button
npx @lumioui/cli add pro/paywall-sheet   # pro items take the pro/ prefix

The CLI writes components/ui/<name>/<name>.tsx and installs the dependencies the component declares (react-native-svg, expo-haptics, …) — npx @lumioui/cli init sets up Reanimated + NativeWind first.

Variants

Design variants are separate registry items named <family>-<variant> — button-glass writes components/ui/button/variants/glass.tsx. From the family name, --design resolves the same item:

npx @lumioui/cli add button-glass        # direct
npx @lumioui/cli add button --design glass  # same item, resolved

Props

Every component ships a typed <Name>Props interface; the catalog's detail pages render it as a live table driven against the real preview. Handlers are optional — components mount complete with no wiring.

Behavior is wired

Haptics run through useHaptic(), motion uses the library's spring tokens only, touch targets keep ≥44pt, and every animation honors reduced-motion. Nothing to re-glue.

Theming

Components style through the semantic classes in Theming (bg-card, text-foreground, …) — light/dark follows your ThemeProvider; nothing is hard-coded to a scheme.

Expo Go

Most free components run inside Expo Go — the catalog marks compatibility per item (expoGoCompatible), so anything needing a dev-build says so up front.

Browsing + listing

npx @lumioui/cli list --type component   # grouped by category

The catalog filters by category and dependency (?dep=/?glyph=), and each family has a detail page — /components/button — with the live prop playground, variants, and install bar.

// ask an llm