The Venizia design system
Components you own.
Tokens from Figma.
Vela UI is what every Venizia app wears: accessible React components on Radix UI or Base UI primitives, styled by a Tailwind v4 token set generated from Figma Variables. Install a component and its source lands in your repository, ready to read and change.
- 42 components
- 856 icons
- 12 app shell block
- Tailwind v4
- Radix UI and Base UI
- shadcn registry
- Figma Variables tokens
- Inter Display
Three steps to install
Vela UI is a shadcn registry, not a package. Nothing to keep in sync: the code is yours from the moment it lands.
Base
Vela UI ships two bases from this one registry, with the same items under the same names: https://velaui.dev.venizia.ai/r/radix/ for Radix UI and https://velaui.dev.venizia.ai/r/base/ for Base UI. The switch picks which base the snippets on this site show; the install commands are the same for both.
01
Register the namespace
In an app that has run npx shadcn init, point the @velaui namespace at this registry in components.json.
{ "registries": { "@velaui": "https://velaui.dev.venizia.ai/r/radix/{name}.json" } }{ "registries": { "@velaui": "https://velaui.dev.venizia.ai/r/base/{name}.json" } }02
Add the style, then any component
The style brings the tokens, fonts and base layer once. Components pull their own dependencies, icons and sibling components with them.
npx shadcn add @velaui/vela-ui @velaui/button @velaui/data-table03
Make vela-ui your global stylesheet
Replace the contents of the CSS file your app imports. It already imports Tailwind, so do not import it twice.
@import "./styles/vela-ui/index.css";
What the registry holds
Every component and block, by install name
- @velaui/accordion
- @velaui/alert
- @velaui/avatar
- @velaui/badge
- @velaui/breadcrumb
- @velaui/button
- @velaui/calendar
- @velaui/card
- @velaui/checkbox
- @velaui/collapsible
- @velaui/combobox
- @velaui/counter
- @velaui/data-table
- @velaui/date-picker
- @velaui/dialog
- @velaui/dropdown-menu
- @velaui/field
- @velaui/input
- @velaui/input-group
- @velaui/input-number
- @velaui/input-otp
- @velaui/label
- @velaui/pagination
- @velaui/popover
- @velaui/progress
- @velaui/radio-group
- @velaui/rating
- @velaui/segmented
- @velaui/select
- @velaui/separator
- @velaui/sheet
- @velaui/sidebar
- @velaui/skeleton
- @velaui/slider
- @velaui/stepper
- @velaui/switch
- @velaui/table
- @velaui/tabs
- @velaui/tag
- @velaui/textarea
- @velaui/tooltip
- @velaui/uploader
- @velaui/app-layout
- @velaui/app-layout-dashboard
- @velaui/drive
- @velaui/drive-create
- @velaui/drive-empty
- @velaui/drive-file-menu
- @velaui/drive-folder-menu
- @velaui/drive-grid
- @velaui/form-editor
- @velaui/form-editor-chat
- @velaui/mail
- @velaui/mail-selected