Hierarchy first
Big type, honest contrast, decisive alignment. Structure carries the message before color does.
One stylesheet. Zero dependencies. A complete vocabulary of tokens, type, and components with poster-grade presence — and the discipline to run a real product. Theme it by changing variables, not rewriting CSS.
Hammhaus is built on four convictions. They show up in every token and every component.
Big type, honest contrast, decisive alignment. Structure carries the message before color does.
Everything traces back to a custom property. Re-theme by changing variables, never by fighting specificity.
Hover, focus, success, warning, error, disabled, selected — designed up front, not bolted on.
A single namespaced file with system-ui fallbacks. Drop it into anything and adopt gradually.
Six core hues plus paper and ink. Tap any swatch to copy its custom property.
Spacing, radius, shadows, motion, type and tracking are all variables. Override one at the :root or scope it to a single section.
:root {
--hh-accent: var(--hh-red);
--hh-radius: 8px;
--hh-shadow-hard: 8px 10px 0 var(--hh-ink);
--hh-space-6: 2rem;
--hh-tracking-display: -0.035em;
}
This is the whole pitch in one panel: the components never change — only the tokens do.
Every element below reads from the same tokens. Move the controls and the whole composition responds at once.
Reads every token in the room and dresses accordingly.
Same tokens, opposite mood. The accent stays loud.
ActionArchivo for display and body, JetBrains Mono for code and labels. Display tiers carry negative tracking so big type reads tight and intentional.
Hamm follows form.
Forty-plus components, every one a plain HTML element with an hh- class.
A masthead drawn in pure gradients — no image files, full poster energy.
Turns to ink when a quiet section needs one loud thing.
--hh-* tokens globally or per section, then keep the same classes.Link the stylesheet.
Use sections, grids, and components.
Override tokens to taste.
Press ⌘ K to search.
Constraints are the kindest thing a system can give a team.
| Class | Role | Tokens it reads | Status |
|---|---|---|---|
.hh-button | Actions & commands | accent, radius, ease | Ready |
.hh-card | Grouped content | bg, line, accent | Stable |
.hh-field | Forms & validation | accent, red, green | Visible |
.hh-alert | System messages | accent per variant | Ready |
Each surface resets background, foreground and accent — so the same button knows what to do in every context.
Real page furniture, composed only from the classes above.
$0 / forever
+24%
Posters shippedConstraints are what make a design language portable. When every choice traces back to a token, a stylesheet stops being decoration and starts being infrastructure — something a team can build on without negotiating the basics every time.
Read moreCompose sections, drop in components, override a token or two. That's the whole workflow.
Add the stylesheet (and the two fonts) to your <head>.
Wrap content in sections and containers, then drop in components.
Override --hh-* tokens globally or per section. Dark mode follows the OS — or force it with <html data-hh-theme="dark">.
<link rel="stylesheet" href="hammhaus.css">
<section class="hh-section hh-section--paper">
<div class="hh-container hh-stack">
<span class="hh-kicker">New project</span>
<h1 class="hh-display">Hamm follows form.</h1>
<p class="hh-lede">Build with paper, ink, and guts.</p>
<a class="hh-button hh-button--primary" href="#">Start</a>
</div>
</section>
/* Re-theme without touching components */
:root {
--hh-accent: var(--hh-blue);
--hh-container: 1280px;
}
.launch-section {
--hh-bg: var(--hh-ink);
--hh-fg: var(--hh-paper);
--hh-accent: var(--hh-yellow);
}
Building with an AI? Point it at one hosted file and a machine-readable guide — it'll know the whole vocabulary.
No install, no build. One <link> and every hh- class works.
Point the agent at llms.txt — a concise spec of tokens, classes, and rules of thumb written for LLMs.
Use the Hammhaus CSS system for styling.
Add to <head>:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/g3hamm/hammhaus@v1.3.0/hammhaus.css">
Full guide (tokens, classes, examples):
https://cdn.jsdelivr.net/gh/g3hamm/hammhaus@v1.3.0/llms.txt
Rules: style with hh- classes; theme by overriding --hh-* tokens; it's pure CSS, no JS.
No paywall, no sign-up, MIT licensed — download it and ship. If it saved you an afternoon and you feel like chipping in, it helps keep the project maintained.
Sponsor the project 100% optional · one-off or monthly · cancel anytime