Every building block of a website. Zero dependencies.
83 accessible React components and 6 SVG charts. One install, one CSS import, no configuration. Works in React 18 and 19, and in Next.js with both routers.
Measured, not claimed
size-limit figures from the published build, minified and brotlied, React excluded.
- One component
- 773 B
- importing Button
- All 83 components
- 40.8 kB
- if you import everything
- Runtime dependencies
- 0
- verifiable with npm ls
- Server-safe components
- 49
- no client boundary needed
A dependency, not a copy-paste snippet
Copy-paste kits hand you the source and the maintenance burden with it. This is a normal package: npm update and you have the fixes.
Zero runtime dependencies
No Tailwind, no Radix, no clsx, no Emotion. react and react-dom are peers and are never bundled, so you cannot end up with two copies of React.
Server-safe by default
49 of 83 components carry no use-client directive. The build is unbundled per file so each one keeps its own, and CI proves it survives in both ESM and CJS.
Your CSS always wins
Every selector is wrapped in :where(), which has specificity zero. One flat class of your own beats the library — no !important, ever.
Responsive with no props
Container queries, not viewport queries. A card grid inside a narrow sidebar stacks exactly as it would on a phone, even on a 27-inch display.
Accessible by construction
IconButton requires aria-label at the type level. Alert picks alert vs status by tone. Every component is covered by automated axe assertions.
Charts with no chart library
6 chart types in pure SVG, 8.14 kB for all of them. Each renders a real table fallback, and never encodes a series by colour alone.
What it replaces
A pricing table, a command palette, a data table, a chart and a chat panel — from one install, with nothing else in package.json.
The pointin one sentence
Free. All of it. Forever.
MIT licensed. There is no paid tier, no pro components, and no telemetry.
Open source
Only tier$0Everything, for any use including commercial.
- All 83 components
- All 6 charts
- Full TypeScript types
- Server Components support
- MIT licence
Questions
How is it genuinely zero-dependency?
The published package has no dependencies field at all — run npm ls --omit=dev to confirm. Utilities other libraries pull in, like clsx or a focus trap, are written in-house. CI fails the build if a runtime dependency ever appears.
Does it work with Next.js App Router?
Yes, and this site is the proof — it is a Next.js App Router app whose landing page is a Server Component built from these section components. Only genuinely interactive components carry use-client.
How do I use my own colours and fonts?
Override the --vk-* custom properties in your own stylesheet. There is no config file, no theme object and no build step — it is plain CSS you already know.
What is the catch?
The CSS is one stylesheet, so an app using five components still downloads all 23 kB gzipped. That is the trade for one import and no build configuration. Chart CSS is a separate import.
Install it and see
npm install @the_viveksingh/vivek-ui — then one CSS import, and you are done.Free forever, MIT licensed
There is no paid tier, no pro components and no telemetry. If it saved you a weekend, a coffee is a kind way to say so — and a star on the repo helps other people find it.