Skip to main content

OnlyNative UI

Design-system agnostic components for React Native

Ships with Material Design 3. Works with Expo and bare React Native.

Get started in 3 steps

From zero to a running app in under a minute.

01

Create

Scaffold a new Expo project with everything pre-configured.

npx onlynative create my-app
02

Add

Pick the components you need. They get copied into your project.

npx onlynative add button card
03

Build

Own the code. Customize freely. Ship with confidence.

npx expo start

Why OnlyNative?

Everything you need to build beautiful, accessible React Native apps.

🎨

Design-System Agnostic

Use Material Design 3 out of the box, build your own theme system, or mix both. The theme engine adapts to your design language.

📦

Tree-Shakeable

Every component has its own subpath export. Import only what you use — your bundle stays lean.

Accessible by Default

Proper roles, labels, and accessibility states baked into every component. No extra configuration needed.

⌨️

TypeScript First

Strict types, full IntelliSense, and autocomplete for every prop, theme token, and style override.

🔧

Highly Customizable

Override colors, styles, and variants at every level — theme defaults, component props, or direct style overrides. You have full control.

CLI Scaffolding

Copy components directly into your project with the onlynative CLI. Own your code, customize freely.

Simple API, Powerful Results

Theme-aware components with a clean, intuitive API. Wrap your app once and start building.

Read the Docs
App.tsx
import { ThemeProvider } from '@onlynative/core'
import { Button } from '@onlynative/components/button'

export default function App() {
  return (
    <ThemeProvider>
      <Button
        variant="filled"
        onPress={() => console.log('Hello!')}
      >
        Get Started
      </Button>
    </ThemeProvider>
  )
}

Ready to build?

Get up and running in minutes with the CLI or install packages directly.