React Native · Expo

The mobile UI kit for
React Native.

Axiom gives you a theme, components, hooks, gestures, patterns and ready-made screens for React Native and Expo. The CLI copies the source into your project, styled with the tool you already use, so you own it and edit it like the rest of your code.

Read the docs
AppBarNavigation,title, actionsItemComposablelist itemButtonVariants,states, loadingScaffoldFull-screenlayout systemThemeLight, dark,custom tokensSwitchCross-platformbehaviorTappable44pt target,gesture handling

05 / Workflow

Fits the way
you build.

Choose the source you need, put it in your project and keep working with your stack.

Registry

Use only what you need.

Pick the pieces you want. Axiom resolves their dependencies and copies exactly what they need, in your styling, nothing more.

The CLI resolves dependencies and copies only the selected source.

components/ui/button.tsx
import { StyleSheet } from 'react-native';import { Text } from 'react-native';import { Tappable } from '@/components/core/tappable';import { useTheme } from '@/theme'; export function Button({ label, variant = 'solid', ...props }: ButtonProps) {  const { components } = useTheme();  return (    <Tappable style={[styles.base, components.button[variant].container]} {...props}>      <Text style={[styles.label, components.button[variant].label]}>{label}</Text>    </Tappable>  );} const styles = StyleSheet.create({  base: { minHeight: 44, paddingHorizontal: 16, borderRadius: 12 },  label: { fontSize: 16, fontWeight: '600' },});

No dependency. Theme through useTheme().

Ownership

Your code. Your styling.

Axiom copies each component into your app. The source and styling stay yours.

Package
node_modules black box
Axiom
your repo your code

npx axiom init

Styling

Agents

Your agent
knows the system.

Describe the screen. Your agent finds the right Axiom pieces, adds them in your styling and checks the flow on a phone.

Read the agent docs
agent sessionpreview
  1. Add an SMS code screen with resend, loading and errors.
  2. axiom search "sms code verification" --json
  3. otp-verificationpattern
  4. input-otp · button · textuses
  5. axiom plan otp-verification
  6. styling stylesheetaxiom.json
  7. + components/ui/input-otp.tsxnew
  8. = components/ui/button.tsxkept
  9. verify otp-verification --platform android
  10. tap verify-code-input
  11. type wrong code → error state
  12. tap verify-code-resend → countdown

03 / Experience

Real, complete
mobile UI.

Lens / Components

AppBar, SearchBar, Chip, Item, Badge and BottomTabBar, composed into one inbox.

Principle / 004

Components are
only the beginning.

A component solves a local problem. A system composes components, behavior and patterns into complete mobile experiences.

Fig. 004 — Levels of composition
  1. 01

    Primitive

    Raw building block
  2. 02

    Component

    Reusable UI unit
  3. 03

    Behavior

    Interaction logic
  4. 04

    Pattern

    Recurring mobile solution
  5. 05

    Experience

    Complete user flow

05 / System

Start with a system.

  1. 01

    Foundations

    Tokens · color · type · spacing · radius

  2. 02

    Atoms

    Button · Switch · Checkbox · Badge · Avatar

  3. 03

    Molecules

    SearchBar · Attachment · DatePicker

  4. 04

    Organisms

    Passcode

  5. 05

    Templates

    AppBar · BottomTabBar · ToolBar · Scaffold

  6. 06

    Blocks

    Login · Onboarding · Paywall · Checkout

02 / Platform

  • Expo
  • React Native
  • iOS
  • Android
  • TypeScript
  • New Architecture

Styling

  • StyleSheet
  • Unistyles
  • NativeWind
  • Uniwind

09 / Mobile

Built for fingers,
not cursors.

  1. Press
  2. Drag
  3. Swipe
  4. Keyboard
  5. Gestures

Press

Feedback that lands under the thumb, not after it.

Drag

Sheets and handles that follow the finger 1:1.

Swipe

Rows, cards and pages with real velocity.

Keyboard

Inputs that stay visible, always.

Gestures

Pinch, long-press and composed gestures.

10 / Open source

Built in the open,
with the community.

Every component, behavior and block lives on GitHub. Read it, fork it, send a pull request.

Star on GitHub
Components
48
Core primitives
4
License
MIT
  • registry/
  • foundations/theme · tokens
  • core/Slot · Portal · Overlay · Tappable
  • atoms/33 components
  • stylesheet/ · unistyles/ · tailwind/one folder per styling
  • molecules/SearchBar · Attachment · DatePicker
  • organisms/Passcode
  • templates/AppBar · Scaffold · ToolBar
  • blocks/phase 2
  • registry.json