Description
Basecoat implements the shadcn/ui design language in plain Tailwind CSS and optional vanilla JavaScript, without a dependency on React, Radix, or a framework runtime. Component CSS files provide layout, structure, accessibility selectors, and behavior hooks, while separate style packs, including Vega, Nova, Maia, Lyra, Mira, Luma, Sera, and Rhea, provide color, radius, shadow, typography, spacing, and state styles. Around 39 component styles cover building blocks such as buttons, forms, dialogs, dropdowns, tabs, and toasts, complemented by roughly ten vanilla JavaScript modules for the interactive components and optional Nunjucks and Jinja templates for server-side rendering.
An existing Tailwind CSS setup is required, and the Basecoat stylesheet must be loaded after the Tailwind base styles, because a full Tailwind build loaded afterward can reset borders, inputs, and other component defaults. The library does not ship icons, the documentation shows examples with inline Lucide SVGs, and a separate icon solution has to be wired in. Only some components need JavaScript; if the matching JS module is missing for an interactive block such as a dropdown or dialog, the look stays correct but the behavior is missing.
Compared with component libraries that provide shadcn/ui directly for a framework such as React, Basecoat deliberately avoids any framework binding: instead of finished components with props and slots, it delivers CSS classes and markup patterns that fit into practically any templating system, such as Shopify Liquid, plain HTML, or server-rendered Nunjucks and Jinja templates. Teams already working in React with the original shadcn/ui gain little from switching, while teams that need a consistent, modern interface look across multiple target stacks, where no real component library exists, find a fitting foundation here. Finished marketing or landing page sections are not part of the scope, only the individual building blocks of an interface look.









