MUD
Grav MUD Alpha · Theming
CSSTheme Expo Full design token reference for agency handoff — page-level @@@ overrides, grav-mud-site CSS variables, preset palettes, and live component samples. No guessing which hex Andy's allergic to.
"Markdown is the manuscript. MUD is the layout. CSS is the costume department — and yes, we brought swatches." — Team DC, FutureVision Labs Copy a preset into your client .mud or extend user/themes/your-theme/css/.
How theming works
Grav MUD separates structure (fences) from skin (CSS):
1. Theme shell — user/themes/grav-mud-site/css/grav-mud.css defines :root defaults and component classes (.hero, .card, .btn, …).
2. Page tokens — @@@ block can set name, layout, and optional tokens: lines → injected as .mud-page { --accent: … }.
3. Layout mode — layout: promo | spec-doc | theme-expo adjusts spacing via data-mud-layout.
Layer File / syntax Job Global CSS grav-mud.cssComponent shapes + default palette Page wrapper @@@ … @@@Per-page token overrides Fence HTML ::: hero, ::: cards, …Semantic regions (theme-agnostic)
Token map
These keys map in the compiler (MudDesignSpec::buildTokenCss) to CSS custom properties on .mud-page:
Token key CSS variable Typical use bg--bgPage background bg-card / panel--bg-cardCards, panels, quote blocks text--textBody copy muted--mutedSecondary text, eyebrows accent--accentLinks, primary buttons, accents accent-glow--accent-glowHover / gradient hints gold--goldBadges, highlights teal--tealSecondary accent border--borderDividers, card edges
Page-level token override mud @@@
name: client-acme
layout: promo
tokens:
bg #0f172a
bg-card #1e293b
text #f1f5f9
muted #94a3b8
accent #38bdf8
border #334155
@@@
::: hero
mascot: none
title: Acme Corp
accent: Rebrand 2026
:::Tokens compile to an inline <style> on .mud-page — no Twig edits required for a client palette swap.
Preset palettes (live)
Each panel is a ::: theme fence — same tokens + sample components agencies can screenshot for handoff docs.
bg
bg-card
text
muted
accent
teal
gold
border
Eyebrow · sample
Heading Accent Lead copy on --muted — cards, buttons, and quotes inherit these tokens.
Ghost Primary
Card surface Uses --bg-card and --border.
Theme in MUD = @@@ tokens + grav-mud.css.
bg
bg-card
text
muted
accent
teal
gold
border
Eyebrow · sample
Heading Accent Lead copy on --muted — cards, buttons, and quotes inherit these tokens.
Ghost Primary
Card surface Uses --bg-card and --border.
Theme in MUD = @@@ tokens + grav-mud.css.
bg
bg-card
text
muted
accent
teal
gold
border
Eyebrow · sample
Heading Accent Lead copy on --muted — cards, buttons, and quotes inherit these tokens.
Ghost Primary
Card surface Uses --bg-card and --border.
Theme in MUD = @@@ tokens + grav-mud.css.
bg
bg-card
text
muted
accent
teal
gold
border
Eyebrow · sample
Heading Accent Lead copy on --muted — cards, buttons, and quotes inherit these tokens.
Ghost Primary
Card surface Uses --bg-card and --border.
Theme in MUD = @@@ tokens + grav-mud.css.
bg
bg-card
text
muted
accent
teal
gold
border
Eyebrow · sample
Heading Accent Lead copy on --muted — cards, buttons, and quotes inherit these tokens.
Ghost Primary
Card surface Uses --bg-card and --border.
Theme in MUD = @@@ tokens + grav-mud.css.
bg
bg-card
text
muted
accent
teal
gold
border
Eyebrow · sample
Heading Accent Lead copy on --muted — cards, buttons, and quotes inherit these tokens.
Ghost Primary
Card surface Uses --bg-card and --border.
Theme in MUD = @@@ tokens + grav-mud.css.
bg
bg-card
text
muted
accent
teal
gold
border
Eyebrow · sample
Heading Accent Lead copy on --muted — cards, buttons, and quotes inherit these tokens.
Ghost Primary
Card surface Uses --bg-card and --border.
Theme in MUD = @@@ tokens + grav-mud.css.
bg
bg-card
text
muted
accent
teal
gold
border
Eyebrow · sample
Heading Accent Lead copy on --muted — cards, buttons, and quotes inherit these tokens.
Ghost Primary
Card surface Uses --bg-card and --border.
Theme in MUD = @@@ tokens + grav-mud.css.
bg
bg-card
text
muted
accent
teal
gold
border
Eyebrow · sample
Heading Accent Lead copy on --muted — cards, buttons, and quotes inherit these tokens.
Ghost Primary
Card surface Uses --bg-card and --border.
Theme in MUD = @@@ tokens + grav-mud.css.
bg
bg-card
text
muted
accent
teal
gold
border
Eyebrow · sample
Heading Accent Lead copy on --muted — cards, buttons, and quotes inherit these tokens.
Ghost Primary
Card surface Uses --bg-card and --border.
Theme in MUD = @@@ tokens + grav-mud.css.
bg
bg-card
text
muted
accent
teal
gold
border
Eyebrow · sample
Heading Accent Lead copy on --muted — cards, buttons, and quotes inherit these tokens.
Ghost Primary
Card surface Uses --bg-card and --border.
Theme in MUD = @@@ tokens + grav-mud.css.
bg
bg-card
text
muted
accent
teal
gold
border
Eyebrow · sample
Heading Accent Lead copy on --muted — cards, buttons, and quotes inherit these tokens.
Ghost Primary
Card surface Uses --bg-card and --border.
Theme in MUD = @@@ tokens + grav-mud.css.
bg
bg-card
text
muted
accent
teal
gold
border
Eyebrow · sample
Heading Accent Lead copy on --muted — cards, buttons, and quotes inherit these tokens.
Ghost Primary
Card surface Uses --bg-card and --border.
Theme in MUD = @@@ tokens + grav-mud.css.
bg
bg-card
text
muted
accent
teal
gold
border
Eyebrow · sample
Heading Accent Lead copy on --muted — cards, buttons, and quotes inherit these tokens.
Ghost Primary
Card surface Uses --bg-card and --border.
Theme in MUD = @@@ tokens + grav-mud.css.
bg
bg-card
text
muted
accent
teal
gold
border
Eyebrow · sample
Heading Accent Lead copy on --muted — cards, buttons, and quotes inherit these tokens.
Ghost Primary
Card surface Uses --bg-card and --border.
Theme in MUD = @@@ tokens + grav-mud.css.
bg
bg-card
text
muted
accent
teal
gold
border
Eyebrow · sample
Heading Accent Lead copy on --muted — cards, buttons, and quotes inherit these tokens.
Ghost Primary
Card surface Uses --bg-card and --border.
Theme in MUD = @@@ tokens + grav-mud.css.
bg
bg-card
text
muted
accent
teal
gold
border
Eyebrow · sample
Heading Accent Lead copy on --muted — cards, buttons, and quotes inherit these tokens.
Ghost Primary
Card surface Uses --bg-card and --border.
Theme in MUD = @@@ tokens + grav-mud.css.
bg
bg-card
text
muted
accent
teal
gold
border
Eyebrow · sample
Heading Accent Lead copy on --muted — cards, buttons, and quotes inherit these tokens.
Ghost Primary
Card surface Uses --bg-card and --border.
Theme in MUD = @@@ tokens + grav-mud.css.
bg
bg-card
text
muted
accent
teal
gold
border
Eyebrow · sample
Heading Accent Lead copy on --muted — cards, buttons, and quotes inherit these tokens.
Ghost Primary
Card surface Uses --bg-card and --border.
Theme in MUD = @@@ tokens + grav-mud.css.
bg
bg-card
text
muted
accent
teal
gold
border
Eyebrow · sample
Heading Accent Lead copy on --muted — cards, buttons, and quotes inherit these tokens.
Ghost Primary
Card surface Uses --bg-card and --border.
Theme in MUD = @@@ tokens + grav-mud.css.
bg
bg-card
text
muted
accent
gold
border
Eyebrow · sample
Heading Accent Lead copy on --muted — cards, buttons, and quotes inherit these tokens.
Ghost Primary
Card surface Uses --bg-card and --border.
Theme in MUD = @@@ tokens + grav-mud.css.
Component classes
All fences emit stable class names — theme CSS targets these, not raw tags:
Core surfaces .hero · .hero-actionsPromo band, eyebrow, split title + .accent, CTA row.
.card · .cardsGrid sections — pricing, features, services.
.btn · .btn.primaryGhost + filled; uses --accent and hover from theme.
.quote-block · .manifestoPull quotes and closing pitch blocks.
.pricing-cardServices tiers — featured variant with badge.
.mud-spec-*Spec doc panes (source | HTML preview) on /spec.
Layout modes
Layout attribute `layout:` value Best for
promo Home, services, marketing landers
spec-doc MUD Spec reference, wide example columns
theme-expo This page — palette grids + swatches
expose Legacy Lone Mamber profile layouts (optional)
Agency handoff checklist
Ship a client theme 1 · Fork CSS Copy grav-mud.css → user/themes/client-name/css/ — tweak :root or add preset class.
2 · Set tokens Put client hex values in page @@@ block or site-wide theme YAML (Phase 2).
3 · Prove it Duplicate this Theme Expo page with their palette — send PDF or live URL.
4 · Compile elite mud compile in CI — same HTML Grav serves. BAZINGA optional.
Theme ≠ template soup Grav MUD keeps Twig thin and CSS honest . Your agency sells the spec file and the skin — clients see live swatches here, not a Figma link that expires when the intern leaves.
← MUD Spec · Agency packages · FutureVision Labs