Home Components Templates <>
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.

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.

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>

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.

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.

30+ Components

All components with live examples on the Components page.

HeaderDrawerRail Bottom NavButtonsBadges ChipsCardsForms TabsTablesDialogs MenusListsAccordions ProgressSnackbarTooltips OverlayShapesDividers GridGridFormsTypography SwitchesSlidersPages SegmentedFABLayout

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');