# Basecoat Basecoat is a Tailwind CSS, vanilla HTML/CSS/JavaScript implementation of the shadcn/ui design system. It provides shadcn-style components for any web stack without React, Radix, or framework runtime dependencies. ![screenshot](public/assets/images/screenshot.png) ## Features - Semantic HTML-first components. - Tailwind CSS v4 source files and generated CSS bundles. - Small vanilla JavaScript for components that need behavior. - Nunjucks and Jinja templates. - Standalone style packs: Vega, Nova, Maia, Lyra, Mira, Luma, Sera, and Rhea. - Dark mode and CSS variable theming. - CDN, npm, and template usage paths. ## Documentation - Website: [basecoatui.com](https://basecoatui.com) - Installation: [basecoatui.com/installation](https://basecoatui.com/installation) - Customization: [basecoatui.com/customization](https://basecoatui.com/customization) ## Packages This repository publishes one workspace package: - `basecoat-css`: CSS, JavaScript, Nunjucks templates, and Jinja templates. Package details live in: - `packages/css/README.md` ## Install ```bash npm install basecoat-css ``` Use the default bundle: ```css @import "tailwindcss"; @import "basecoat-css"; ``` Use a specific style bundle: ```css @import "tailwindcss"; @import "basecoat-css/nova"; ``` Use the styleless base plus a custom style file: ```css @import "tailwindcss"; @import "basecoat-css/base"; @import "./style-acme.css"; ``` ## Repository Layout ```text . ├── docs/ │ ├── generated/ Generated RSD/Astro docs input │ └── src/ Documentation source pages, examples, and fragments ├── packages/ │ └── css/ Published CSS package ├── public/ Generated docs assets for Astro ├── scripts/ Build and generation scripts └── src/ ├── components/ Astro overrides for ReallySimpleDocs ├── css/ │ ├── base/ Shared tokens, base layer, and semantic utilities │ ├── components/ Component structure and behavior hooks │ └── styles/ Style-pack visual rules ├── docs.css Documentation-site CSS extension ├── jinja/ Jinja component templates ├── js/ Vanilla JS components and registry └── nunjucks/ Nunjucks component templates ``` ## CSS Architecture Basecoat separates structure from style: - `src/css/base/base.css`: shared tokens and semantic utilities. - `src/css/components/*.css`: component layout, structure, accessibility selectors, and behavior hooks. - `src/css/styles/*.css`: style-pack visuals such as color, radius, shadow, typography, spacing, variants, and state styles. Generated source entrypoints are committed for transparency and package imports: - `src/css/basecoat.css`: default backward-compatible Vega bundle. - `src/css/basecoat-base.css`: base plus components, no style pack. - `src/css/basecoat-components.css`: component imports only. - `src/css/basecoat-