āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā š shadcn/directory/preetecool/roi-ui/(root)/start ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā
Roi UI components are built on top of Base UI. You'll need to install Base UI first to use these components.
<CodeBlockTabs> <CodeBlockTabsList> <CodeBlockTabsTrigger value="npm">npm</CodeBlockTabsTrigger> <CodeBlockTabsTrigger value="pnpm">pnpm</CodeBlockTabsTrigger> </CodeBlockTabsList> <CodeBlockTab value="npm">npm install @base-ui-components/react
</CodeBlockTab>
<CodeBlockTab value="pnpm">
pnpm add @base-ui-components/react
</CodeBlockTab>
</CodeBlockTabs>
The tailwind utils file will not have the -tailwind suffix when it's in your registry.
<CodeBlockTabs> <CodeBlockTabsList> <CodeBlockTabsTrigger value="npm">npm</CodeBlockTabsTrigger> <CodeBlockTabsTrigger value="pnpm">pnpm</CodeBlockTabsTrigger> </CodeBlockTabsList> <CodeBlockTab value="npm">npx shadcn@latest add @roiui/utils
npx shadcn@latest add @roiui/utils-tailwind
</CodeBlockTab>
<CodeBlockTab value="pnpm">
pnpm dlx shadcn@latest add @roiui/utils
pnpm dlx shadcn@latest add @roiui/utils-tailwind
</CodeBlockTab>
</CodeBlockTabs>
Add a portal container to your root layout:
<CodeBlock filename="layout.tsx" language="tsx" code={`<body>
<div className="root"> {children} </div> </body>`} />Copy and paste the css modules or tailwind globals.
<GlobalsCSS />Once you have Base UI set up, you can start using roi-ui components. Here's a simple button example:
<ComponentPreview name="button-demo" />ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā