Install Bridge UI, import the theme, and mount the provider for React or Vue.
This guide covers the common path for any Vite- or bundler-based app: install packages, import the theme, wrap your tree with providers, then render a component.
Use the framework selector in the site header to switch between React and Vue. For Next.js, Nuxt, or Inertia backends, follow the matching Integrations guide after these basics.
Tailwind CSS v4 in your app stylesheet - A React 18+ or Vue 3 app - Node.js and a package manager (npm, pnpm, yarn, or bun)
Packages are published on npm as 0.0.3.
-
Install packages
Install the framework adapter. @bridge-ui/core is pulled in automatically—you do not need to install it separately:
bun add @bridge-ui/[email protected]bun add @bridge-ui/[email protected]pnpm add @bridge-ui/[email protected]pnpm add @bridge-ui/[email protected]yarn add @bridge-ui/[email protected]yarn add @bridge-ui/[email protected]npm install @bridge-ui/[email protected]npm install @bridge-ui/[email protected]
| Package | Role |
|---|---|
| @bridge-ui/react | React components, provider, actions, theme, and AI resources |
| @bridge-ui/vue | Vue components, provider, plugin, actions, theme, and AI resources |
| @bridge-ui/core | Shared types and tokens (transitive dependency—import types if needed) |
Icons are optional: pick any library and wire an icon adapter, or pass concrete icon components where needed.
-
Import the theme
Import the framework theme after Tailwind so Bridge UI sources and semantic color tokens are available:
@import "tailwindcss"; @import "@bridge-ui/vue/theme.css";@import "tailwindcss"; @import "@bridge-ui/react/theme.css";To remap palettes (primary, error, …), see Theme colors.
-
Mount the provider
Wrap your app (or root layout) with BridgeUIProvider. Include BridgeUIHosts if you use imperative actions (modal, dialog, snackbar):
<script setup lang="ts"> import { BridgeUIProvider } from "@bridge-ui/vue"; import { BridgeUIHosts } from "@bridge-ui/vue/Actions"; </script> <template> <BridgeUIProvider :global="{}" :components="{}"> <BridgeUIHosts :modal="{ modal: { transition: 'fade' } }" :dialog="{ modal: { transition: 'fade' } }" :snackbar="{ max: 3, timeout: 5000, position: 'bottom-center' }" > <slot /> </BridgeUIHosts> </BridgeUIProvider> </template>import { BridgeUIProvider } from "@bridge-ui/react"; import { BridgeUIHosts } from "@bridge-ui/react/Actions"; import type { PropsWithChildren } from "react"; const Layout = ({ children }: PropsWithChildren) => ( <BridgeUIProvider global={{}} components={{}}> <BridgeUIHosts modal={{ modal: { transition: "fade" } }} dialog={{ modal: { transition: "fade" } }} snackbar={{ max: 3, timeout: 5000, position: "bottom-center" }} > {children} </BridgeUIHosts> </BridgeUIProvider> ); export default Layout; -
First component
Import from the framework package and render:
<script setup lang="ts"> import { Button } from "@bridge-ui/vue/Components/Button"; </script> <template> <Button>Save</Button> </template>"use client"; import { Button } from "@bridge-ui/react/Components/Button"; export function Example() { return <Button>Save</Button>; }
On Vue you can also register Bridge UI with createBridgeUI() when creating the app. Pass global and components into createBridgeUI({ ... }) if you want shared defaults; the provider merges with those options:
import { createApp } from "vue";
import { createBridgeUI } from "@bridge-ui/vue";
import App from "./App.vue";
createApp(App).use(createBridgeUI()).mount("#app");
For Nuxt, register the same plugin under plugins/—see Nuxt.
On React, pass global and components directly to BridgeUIProvider (see the layout above). Framework-specific wiring for App Router is covered in Next.js.
When your stack needs more than this global setup, continue with a framework guide below.
Framework guides
| Guide | When to use |
|---|---|
| Next.js | React App Router + client providers |
| Nuxt | Vue Nuxt plugin + layout |
| Laravel + Inertia | Vite entries and Inertia pages |
| Django + Inertia | Inertia client + Django views |
| Rails + Inertia | Inertia + Vite Ruby |
| Elixir + Inertia | Phoenix assets + Inertia |
Next steps
- AI skills — install agent guidelines and Cursor skills
- Customization — theme, defaults, classes, and typed tokens
- Components — Button, Select, Modal, and the rest of the catalog
- useModalAction — imperative overlays