Styling
Tailwind CSS + @murasakijs/ui, a shadcn-style component library.
The scaffold ships Tailwind CSS and @murasakijs/ui — a
shadcn/ui-style component library built on Radix primitives, styled with the
same cn() + class-variance-authority conventions shadcn/ui users already
know. Every component it ships is documented, live, in the
Components section — this guide only covers how the
library is wired into a scaffolded app.
import { Button } from "@murasakijs/ui";export function ButtonDemo() {return <Button>Button</Button>;}Setup
Import the stylesheet once (the scaffold already does this in the root layout), and extend your Tailwind config with the shared preset:
import '@murasakijs/ui/styles.css'
import './globals.css'import type { Config } from 'tailwindcss'
export default {
presets: [require('@murasakijs/ui/tailwind-preset')],
content: [
'./src/**/*.{ts,tsx}',
'./node_modules/@murasakijs/ui/dist/**/*.js',
],
darkMode: ['selector', '[data-theme="dark"]'],
} satisfies ConfigComponents
Import components directly from @murasakijs/ui:
import { Button, Card, CardHeader, CardTitle, CardContent } from '@murasakijs/ui'
function Example() {
return (
<Card>
<CardHeader>
<CardTitle>Try it out</CardTitle>
</CardHeader>
<CardContent>
<Button variant="outline">Click me</Button>
</CardContent>
</Card>
)
}The package currently ships:
- Layout & content —
Card,Separator,Accordion,Tabs,ScrollArea,Table,Skeleton - Forms & inputs —
Button,Input,Textarea,Label,Checkbox,Switch,RadioGroup,Select - Overlays —
Dialog,Sheet,Popover,Tooltip,DropdownMenu,Command(a command palette) - Feedback —
Alert,Badge,Progress,Toast/Toaster(+useToast) - Misc —
Avatar,cn(theclsx+tailwind-mergeclass helper)
Button supports variant (default / secondary / outline / ghost /
destructive / link) and size (default / sm / lg / icon) props,
plus asChild to render as a different element (Radix Slot) — the same
pattern as the rest of the library.
Every one of these is documented on its own page under Components, with a live, interactive preview and the full prop table — not just the short list above.
@murasakijs/ui is not required — it's Tailwind + Radix under the hood, so
you can swap in your own components or another library instead.