One CSS file.
No build step.

Beautiful defaults, real components, and dark mode โ€” all in 8KB. One file. No build step. Just beautiful HTML.

<link rel="stylesheet" href="grit.css">
Read the Docs Kitchen Sink โ†’
8KB
Minified + gzipped
0
Build tools required
0
Build steps
30+
Components

Everything you need. Nothing you don't.

CSS frameworks got complicated. grit.css is one file you drop in. Your HTML looks good immediately. Add a class when you need a component. Write CSS when you need something custom.

โœจ

Beautiful Defaults

Semantic HTML looks good out of the box. Buttons, inputs, tables, blockquotes โ€” all styled without adding a single class.

๐Ÿงฉ

Real Components

Cards, modals, dropdowns, tabs, toggles, alerts, badges, tooltips, progress bars, avatars, skeletons โ€” one class each.

๐Ÿ“

Flexible Layout

Row, col, grid, container, wrap, grow, center, between. A handful of layout classes that cover 95% of what you need.

๐ŸŽจ

Theming Built In

Override CSS custom properties and everything updates. Dark mode is automatic via prefers-color-scheme, or toggle it with a class.

๐Ÿชถ

Featherweight

~8KB gzipped. No JavaScript runtime. No build step. No config files. One link tag and you're done.

๐Ÿ”ง

Your CSS, Not Ours

When you need something custom, you write CSS โ€” because you know CSS. grit gives you a starting point, not a straitjacket.

Add one line. Start building.

1. Link it

<!-- From a CDN --> <link rel="stylesheet" href="https://unpkg.com/grit-css/grit.css"> <!-- Or drop the file in your project --> <link rel="stylesheet" href="grit.css">

2. Write HTML

<button class="btn btn-primary">Click me</button> <div class="card"> <div class="card-body"> <h3>It just works.</h3> <p>No config needed.</p> </div> </div>

3. See the result

โœ“ Changes saved successfully.
New Draft Featured Active Pending Declined

30+ components. One class each.

Buttons, cards, modals, dropdowns, tabs, toggles, tooltips, alerts, badges, progress bars, avatars, skeletons, navbars, tables, forms โ€” and more.

Buttons

Alerts

โ„น๏ธ A new version is available.
โœ… Your changes have been saved.
โš ๏ธ Your trial expires in 3 days.
โŒ Something went wrong. Try again.

Cards & Badges

Primary Secondary Accent Success Warning Error
React Vue Svelte Vanilla JS

Form Elements

See it in action

Full-page examples showing what you can build with a single CSS file and plain HTML.

Dark mode included. Custom themes easy.

grit.css respects prefers-color-scheme: dark automatically. No JavaScript toggle needed. Want manual control? Add .dark or .light to the body.

Override any CSS custom property and the entire framework updates. Change --grit-primary and every button, link, and accent color follows.

/* Override the primary color */ :root { --grit-primary: #e11d48; --grit-radius: 0; } /* Or use a built-in theme */ <body class="theme-midnight">

Built-in themes

Default
Midnight

Or create your own โ€” just override the CSS custom properties and every component updates automatically.

Start building with grit.css

One file. 8KB. Zero build tools. Zero config. Beautiful defaults. Real components. Your CSS.

Get Started View Components