@doitrix/ui

The Doitrix component registry — professional Vue 3 components you install into your own code with `doitrix-ui add`, built on @doitrix/headless and @doitrix/tokens.
1,423
Install
npm install @doitrix/ui
Latest Version:1.5.0
License:MIT
Last Updated:Oct 8, 2026
Links: npm
Maintainer: venomous-maker-org

@doitrix/ui

Professional Vue 3 components that you install into your own code. The CLI copies the source into your project, so you own it: read it, change it, keep what you use. Behaviour comes from @doitrix/headless, every value from @doitrix/tokens.

Start

bunx @doitrix/ui init              # doitrix.json, shared helpers, the icon adapter
bunx @doitrix/ui add button card data-table

Then, in your main stylesheet:

@import 'tailwindcss';
@import '@doitrix/tokens/tailwind.css';

add copies each component with everything it imports, and prints the exact packages to install, pinned to the versions this registry was built against.

Nuxt

init detects Nuxt and installs the Nuxt Icon adapter under app/ with ~ aliases. Add to nuxt.config.ts:

modules: ['@doitrix/icons/nuxt', '@nuxt/icon'],
components: [{ path: '~/components/ui', pathPrefix: false, extensions: ['.vue'] }],

extensions: ['.vue'] matters: without it Nuxt registers each component's index.ts as a component too, and icon/index.ts would shadow Nuxt Icon's <Icon>.

Components

Run bunx @doitrix/ui list for the full catalogue. By area:

  • Primitives — Stack, Text, Container, VisuallyHidden
  • Form — Button, Field (label/description/error wiring), Input, Textarea, Checkbox, Switch, RadioGroup, Select, Label
  • Display — Card (Header, Title, Description, Action, Content, Footer, Section, Grid, Field, Divider), Badge, Alert, Avatar, Separator, Skeleton, Spinner, Empty
  • Overlay — Dialog, AlertDialog, Sheet, Popover, Tooltip, DropdownMenu
  • Navigation — Tabs, Pagination
  • Data — Table parts, DataTable, TableToolbar, FacetFilter

Every component is named Doitrix* and composed from parts:

<DoitrixCard>
  <DoitrixCardHeader>
    <DoitrixCardTitle>Loan book</DoitrixCardTitle>
    <DoitrixCardDescription>Every loan across your branches.</DoitrixCardDescription>
    <DoitrixCardAction><DoitrixButton size="sm">Export</DoitrixButton></DoitrixCardAction>
  </DoitrixCardHeader>
  <DoitrixCardContent>…</DoitrixCardContent>
</DoitrixCard>

Icons

DoitrixIcon renders any Iconify icon. A bare name uses the Doitrix set (<DoitrixIcon name="check" />); a prefix uses another (name="lucide:bell"). In Nuxt it renders through Nuxt Icon; in Vue through @iconify/vue.

Staying current

Each installed file carries a stamp — the item, the registry version and a hash of what was written.

bunx @doitrix/ui diff      # current · outdated · modified · unmanaged
bunx @doitrix/ui update    # refreshes untouched files, keeps the ones you edited
bunx @doitrix/ui update --force

Removing a component

bunx @doitrix/ui remove slider

It deletes only what you name, never a component another installed one still imports, and never a file you have edited; --force removes it regardless. Shared lib/ helpers and npm packages are left in place.

Rules the components keep

  • Tokens only — no hex, no Tailwind palette colours, no numeric text sizes, no dark: overrides. Enforced by test, and every class is compiled against the real theme so a typo cannot ship.
  • Variants are closed records; one variant and one size rather than booleans.
  • asChild wherever a component might need to be a link.
  • Your class wins conflicts with the component's.

Related Packages

sulaf

Sulaf is a custom registry built on top of shadcn-vue to help you build applicat...

957 17
@diyark98/arc-ui-cli

CLI for copying Arc UI component source into Vue projects.

3,294
ai-elements-vue

AI Elements Vue is a component library and custom registry built on top of shadc...

19,498 1,194
ui-thing

CLI used to add Nuxt components to a project

15,227 6
@thespielplatz/tsp-tools-theme

tsp.tools design-system theme as a Nuxt layer (Nuxt UI v4 + Tailwind v4): amber-...

3,240

Version History

Version Released License
1.5.0 MIT
1.4.1 MIT
1.4.0 MIT
1.3.0 MIT
1.2.0 MIT