Fifteen years in broadcast. Eighteen months on AI. Same job. New tools. Same standard. This document is the design contract for everything Hammer ships — wordmark, color, type, motion, voice, tokens. Phase 0. No code is written until approved.
three directions.
Only hammer. gets the protected cinnamon period. Render it as a controlled circle, not a typed glyph.
Bold Outfit or Geist title lockups may use one controlled cinnamon circle as punctuation.
Never attach the cinnamon dot to Instrument Serif italic words or all-italic lines.
No bullets, metadata separators, repeated card labels, or bloodlust punctuation dots.
one hue. eleven stops.
vinaceous cinnamon.
One color. The period after hammer. One CTA per fold. Keyword highlights. Selected states. Use the dot only through the wordmark or the governed display motif. Never decorative. Never paired with another saturated hue. The deeper Polished Bloodlust is its hover & pressed state — only.
display, body, mono.
four easings. five durations.
- earn every animation. if it doesn't aid comprehension or set tone, cut it.
- cinematic over snappy. the site moves like film, not like a productivity app.
- composed, not choreographed. stagger reveals; never bloom everything at once.
- scroll is the camera. the user is the operator; the page reacts.
- reduced-motion is a real audience, not an afterthought.
short. cinematic. earned.
fifteen years on broadcast. eighteen months on ai. same job. new tools. same standard.
sample headlines
voice rules
banned · ci-enforced
spacing, radius, elevation.
spacing · base 4
| --space-1 | 4 px |
| --space-2 | 8 px |
| --space-3 | 12 px |
| --space-4 | 16 px |
| --space-5 | 24 px |
| --space-6 | 32 px |
| --space-7 | 48 px |
| --space-8 | 64 px |
| --space-9 | 96 px |
| --space-10 | 128 px |
radius · default sharp
| --radius-0 | 0 px · default · editorial |
| --radius-1 | 2 px · buttons, chips |
| --radius-2 | 4 px · inputs, small cards |
| --radius-3 | 8 px · media containers |
| --radius-4 | 16 px · large media |
border weights
| --bw-1 | 1 px · default hairline |
| --bw-2 | 2 px · accent · focus |
| --bw-3 | 3 px · scrim · disclaimer |
z-index · named layers
| base | 0 |
| texture | 10 |
| content | 20 |
| cursor | 30 |
| nav | 40 |
| overlay | 50 |
| modal | 60 |
| toast | 70 |
one source. many renders.
this document is the design contract.
app/globals.css declares every custom property in :root
and maps Tailwind v4 theme utilities.
the chosen wordmark becomes the default <Wordmark /> component.
any subsequent pr that needs a new color, weight, easing, or component variant updates this guide first.
no deviation without an entry in §changelog.
files this guide produces
phase 0 gate
jeff approves this guide and picks one wordmark direction. no code is written until both happen.