BrewCSS v3.0 — Reinheitsgebot Edition
Only 3 ingredients.
Settings + Elements + Helpers.
Like the German Beer Purity Law (Reinheitsgebot), BrewCSS uses only what's essential. Semantic HTML elements as components. M3 design tokens as settings. English helper classes for customization. Plus BrewCSS additions: GridForms & Bones Grid.
Philosophy
Reinheitsgebot: The Purity Law
In 1516, the German Beer Purity Law declared that beer may only contain water, barley, and hops. BrewCSS follows the same principle — a CSS framework needs only three ingredients:
1. Settings
CSS Variables (M3 Tokens)
Material Design 3 color tokens that affect the whole document. --primary, --surface, --error, and 30+ tokens. Set once, used everywhere.
2. Elements
Semantic HTML Components
Components styled by their HTML tag, not by class. <button> not <div class="btn">. <article> for cards. <nav class="left"> for drawers.
3. Helpers
English Modifier Classes
Full English words that make elements scalable: small, large, round, fill, primary, border. No abbreviations.
Simplicity
Write HTML, Not Classes
BrewCSS (Reinheitsgebot)
<button class="fill round">Save</button>
<button class="border">Cancel</button>
<article class="elevate round">
<h6>Title</h6>
<div>Content</div>
</article>
<nav class="left">...</nav>
Other Frameworks
<div class="btn btn-primary btn-rounded">Save</div>
<div class="btn btn-outline">Cancel</div>
<div class="card card-elevated card-rounded">
<div class="card-header">Title</div>
<div class="card-body">Content</div>
</div>
<div class="sidebar sidebar-left">...</div>
The Brew
What BrewCSS Adds
Beyond the BeerCSS purity, BrewCSS brews in three extra ingredients:
▦ GridForms
Spreadsheet-style data-entry forms with labeled cells, column spans, and fieldset grouping.
▧ Bones Grid
12-column CSS Grid with border-based cells, gap utilities, and auto-fit responsive patterns.
🎨 6D Theming
Six independent theme dimensions: style, colors, typography, borders, size, density. Mix freely via data-* attributes.
Features
Why BrewCSS?
📦 Pure CSS, ~27KB
No JavaScript dependencies. No build tools required. One CSS file with 30+ components, a grid system, and form layouts.
♿ WCAG 2.1 AA Accessible
4.5:1+ contrast ratios, keyboard navigation, focus-visible outlines, ARIA attributes, skip links, and screen reader support.
⚙ Material Design 3
Full M3 color token system. Elevated/filled/outlined cards, segmented buttons, FABs, chips, dialogs, and more.
📄 Semantic HTML
Components use native HTML elements: <button>, <article>, <nav>, <details>, <dialog>. Clean, accessible markup.
🎨 3 Style Presets
Material (subtle, elevated), Brutalist (sharp, heavy borders), Neobrutalist (bold offset shadows). Switch with one attribute.
◐ Light/Dark Mode
Toggle themes by adding .dark to the body. All colors switch via CSS custom properties — zero JS for theming.
Components
30+ Components
All components with live examples on the Components page.
HeaderDrawerRail Bottom NavButtonsBadges ChipsCardsForms TabsTablesDialogs MenusListsAccordions ProgressSnackbarTooltips OverlayShapesDividers GridGridFormsTypography SwitchesSlidersPages SegmentedFABLayout
Quick Start
Get Started in Seconds
Usage
Add one CSS file to your HTML:
<link rel="stylesheet" href="brew.css">
Use semantic HTML with helper classes:
<button class="fill round">Click me</button>
<article class="elevate round">
<h6>Title</h6>
<div>Content</div>
</article>
Toggle dark mode:
document.body.classList.toggle('dark');