Basecoat
The shadcn/ui look for any stack, no React required.
Basecoat is shadcn/ui without React. The same visual language, the same CSS variables, the same theme tokens, delivered as plain HTML classes with a small vanilla JavaScript layer for the interactive parts.
At a glance
| Distribution | npm install basecoat-css, or a CDN link |
| Framework | none required, works anywhere HTML renders |
| Styling | Tailwind CSS, shadcn-compatible variables |
| JavaScript | vanilla, only where behaviour is needed |
| Docs for agents | llms.txt published |
| License | MIT |
The gap it fills
The shadcn aesthetic became the default look of modern web software, and for two years it was only available to React developers. If you build in Rails, Django, Laravel, Go templates or Astro, you either adopted React you did not want or built the look by hand.
Basecoat is the answer to that. Because it reuses shadcn's CSS variable names, a theme generated for shadcn/ui applies here unchanged, which also makes it viable for teams running a React app and a server-rendered admin from one design system.
Pairs naturally with htmx and Alpine
The JavaScript layer is deliberately thin, so Basecoat sits well in the htmx, Alpine and Stimulus world rather than fighting it. That is a stack this directory otherwise serves poorly.
Choose it if
- You want the shadcn look in a server-rendered stack.
- You run React and non-React surfaces and want one visual system.
Look elsewhere if
- You are in React already. Use shadcn/ui directly.
- You need rich interactive components. The behaviour layer is intentionally minimal.