VivekUI vs Radix UI

VivekUI compared with Radix UI: unstyled behaviour primitives you style yourself against a styled, themed library with the behaviour built in.

How Radix UI works

Radix Primitives are unstyled, accessible behaviour components — Dialog, Popover, Select and so on — that you style entirely yourself. Radix Themes is the styled layer on top. Many libraries, including shadcn/ui, build on the primitives.

Side by side

Each aspect, for both libraries
AspectVivekUIRadix UI
Runtime dependenciesNone. `package.json` has no `dependencies` field; React and React DOM are peers.One package per primitive (or the umbrella `radix-ui`), each with internal dependencies.
StylingOne static stylesheet, every selector in `:where()` (zero specificity), variants as `data-*` attributes, tokens as `--vk-*` custom properties.None in Primitives; you supply all CSS. Radix Themes ships its own stylesheet.
Overriding a styleAny one class of yours wins — no `!important`, no specificity war.Everything is yours to style; there is nothing to override.
Server ComponentsUnbundled build; each file keeps its own 'use client'. 50 of 109 components ship no client JavaScript.Primitives are client components; you control what wraps them.
Accessibility testingA `vitest-axe` assertion per component, browser axe on composed pages in three viewports, keyboard maps from the WAI-ARIA Authoring Practices.Primitives follow WAI-ARIA patterns and are tested upstream.
Sections and pagesHero, Navbar, Pricing, FAQ, CTA, Footer, Stats, Testimonials as components; 62 blocks and 12 whole pages to copy.Not offered; primitives only.

Choose Radix UI when

  • You want only behaviour and will design every pixel yourself.

  • You are building your own design system and want primitives to wrap.

Choose VivekUI when

  • You want components that look finished on install and can still be themed with tokens.

  • You want the behaviour and the styling from one package with one changelog.

  • You want sections and page templates, which a primitives library does not offer.