Four extensions to the official spec.
The Google Labs DESIGN.md spec is intentionally minimal — a foundation for design tokens that any agent can read.
We've added four orthogonal capabilities under an x-webdesignhot namespace
(per the spec's "unknown content is preserved" rule, so files stay valid against
the official lint).
Themes — multiple palettes per file
Same component library renders identically across editorial-dark, daylight, fintech-cool — by swapping a single attribute.
The spec's colors map describes a single palette. Real systems
ship two or more (light + dark, or three brand variants). Our
x-webdesignhot.themes block lists the available themes, the
default, and the runtime switch mechanism. Each theme is a complete
colors map of its own.
---
name: AgentKit
spec: design.md/v1
colors: # this is the *default* theme, flat — passes Google's lint
bg: '#0a0a0a'
text: '#ededed'
brand: '#c6f432'
x-webdesignhot:
themes:
default: editorial-dark
available: [editorial-dark, bright, cool-blue]
switch-via: 'data-theme attribute on <html>; persisted in localStorage'
palettes:
bright:
bg: '#fafafa'
text: '#0a0a0a'
brand: '#16a34a'
cool-blue:
bg: '#0b1120'
text: '#f1f5f9'
brand: '#06b6d4'
--- Motion — easing + duration tokens
Cubic-bezier curves and millisecond durations agents can wire into any component animation.
Without motion tokens, agents either copy-paste random durations or
hard-code them. Both patterns drift fast. x-webdesignhot.motion
declares the design's pacing once.
x-webdesignhot:
motion:
ease: 'cubic-bezier(0.4, 0, 0.2, 1)'
duration-fast: 150 # hover, focus
duration-standard: 240 # card open, expand
duration-slow: 320 # dialog enter
cursor-blink: '1s step-end infinite' Breakpoints — viewport size scale
Standard widths so responsive media queries stay consistent across components.
The spec touches layout but not viewport boundaries. We add an explicit breakpoint scale that doubles as the media-query token an agent can pick when writing CSS.
x-webdesignhot:
breakpoints:
sm: 640
md: 768
lg: 1024
xl: 1280
2xl: 1440 Dark mode — same-file pair
Light + dark in one DESIGN.md so agents don't have to track two source-of-truth files.
A standalone case of the themes extension, formalized so agents can query "give me the dark variant" without parsing arbitrary theme names.
x-webdesignhot:
dark:
bg: '#0a0a0a'
surface: '#141416'
text: '#ededed'
brand: '#c6f432' # often unchanged across light/dark
Google's spec explicitly says: "Unknown sections / unknown YAML keys —
preserve, don't error." That means our extensions sit alongside the
canonical fields without breaking design.md lint. If the
spec evolves to absorb any of these, we'll move them up. Until then,
the x- prefix means "non-normative; expect change".