DMT / System / 01
Style guide.
The same components and tokens used throughout this site. These specimens use the existing DMT colours, fonts, animated background, and controls.
01 / Themes
Track palette + colour modeTrack theme: GL+HF. Colour mode: dark.
Track themes keep the same animated grid while changing the palette and dock treatment. Light mode swaps the black ground for a warm paper ground and is saved in this browser.
02 / Tokens
Values from the stylesheetColour & surfaces
backgrounds, ink, accents, rails, and dock--bg-void#0a0705 --theme-page-bg#1c130c --theme-pixel-bg#1c130c --theme-color-1#ffa908 --theme-color-2#fb5c07 --theme-color-3#ff5807 --theme-color-4#f57587 --theme-color-5#b17b94 --theme-color-6#077b97 --theme-color-7#058232 --surface-glassrgba(10,7,5,0.72) --surface-glass-dimrgba(10,7,5,0.52) --surface-solidrgba(10,7,5,0.96) --border-subtlergba(245,240,232,0.10) --border-activergba(245,240,232,0.28) --border-accentrgba(255,170,0,0.45) --text-primary#f5f0e8 --text-mutedrgba(245,240,232,0.65) --text-accent#ffaa00 --text-destructive#ff4500 --page-bgvar(--theme-page-bg) --pixel-bgvar(--theme-pixel-bg) --theme-dock-bgvar(--surface-glass) --theme-dock-bordervar(--border-accent) --theme-dock-fgvar(--text-primary) --theme-dock-mutedvar(--text-muted) --theme-dock-btn-bg#251a10 --theme-dock-btn-hover#352718 --theme-dock-primary-bg#4a3a0e --theme-dock-primary-hover#5c4a12 --theme-dock-primary-fg#f5e6c8 --dock-bgvar(--theme-dock-bg) --dock-bordervar(--theme-dock-border) --dock-fgvar(--theme-dock-fg) --dock-mutedvar(--theme-dock-muted) --dock-btn-bgvar(--theme-dock-btn-bg) --dock-btn-hovervar(--theme-dock-btn-hover) --dock-primary-bgvar(--theme-dock-primary-bg) --dock-primary-hovervar(--theme-dock-primary-hover) --dock-primary-fgvar(--theme-dock-primary-fg) --nav-border#fff --footer-line#fff --footer-link#fff --control-fg#fff --control-hover-bg#fff --control-hover-fg#000 --rail-bg#000 --rail-fg#f5f0e8 --rail-bordertransparent --placeholder-label-bg#000 --placeholder-label-fg#f5f0e8 --papervar(--bg-void) --inkvar(--text-primary) --mutedvar(--text-muted) --accentvar(--text-accent) --on-accentvar(--bg-void) --linevar(--border-subtle) --surfacevar(--surface-glass) Grid & layout
units, reading measure, and shared geometry--cell16px --cell-232px --cell-348px --cell-464px --cell-696px --cell-8128px --pixel-roundcalc(var(--cell) * 0.4) --nav-height64px --pad-sizevar(--cell-4) --pad-gap4px --backdrop-blurblur(12px) saturate(140%) --ui-outglowdrop-shadow(0 0 6px rgba(0,0,0,0.25)) drop-shadow(0 0 2px rgba(0,0,0,0.25)) --reading-railclamp(160px,20vw,290px) --reading-gapclamp(24px,4vw,64px) --gutterclamp(1rem,4vw,4rem) --measure68ch --page-width1100px --grid-unit32px Type & spacing
font stacks, type scale, and rhythm--font-mono'Geist Mono',ui-monospace,SFMono-Regular,Consolas,monospace --font-display'Geist Pixel', ui-monospace, monospace --text-xs0.75rem --text-sm0.875rem --text-base1rem --text-lg1.25rem --text-xlclamp(1.5rem,3vw,2.5rem) --text-displayclamp(2rem,5vw,3.5rem) --space-10.25rem --space-20.5rem --space-30.75rem --space-41rem --space-61.5rem --space-82rem --space-123rem --space-164rem --space-246rem Motion & layering
stacking order, texture strength, and timings--z-bg0 --z-noise5 --z-squares10 --z-content50 --z-overlay70 --z-words-track15 --z-words-sample110 --z-ui100 --z-modal120 --z-debug9999 --grain-opacity0.16 --noise-opacity1 --stroke1px --motion180ms The existing track palettes remain the source of colour. These values come from global.css and the scoped reading components; they follow the active runtime theme.
03 / Typography
Geist Mono + Geist Pixel / locally hosted--text-xs / 0.75remHigh tech, low life.
--text-sm / 0.875remHigh tech, low life.
--text-base / 1remHigh tech, low life.
--text-lg / 1.25remHigh tech, low life.
--text-xl / clamp(1.5rem,3vw,2.5rem)High tech, low life.
--text-display / clamp(2rem,5vw,3.5rem)High tech, low life.
Reading measure: 68ch. Body line height: 1.85. Geist Mono for reading and controls; Geist Pixel for display headings. Use sentence case for prose and short uppercase labels for metadata.
04 / Links & controls
Keyboard accessibleInline link
Read the working notes for context.
How does a disclosure behave?
A native details element works without JavaScript. Enter or Space opens it, and the square arrow points up. The About navigation also uses a native disclosure. The homepage sampler opens from the dock in a modal, closes with Escape, and restores keyboard focus.
What about motion and focus?
Focus outlines stay visible. Reduced-motion preferences disable transitions and scroll animation. Decorative elements never block reading.
Project status tags
Four shared states with solid fills and noise texture. Spike cycles every 1.6 seconds between red/black and black/white; reduced motion keeps it red.
05 / Media
Post covers 16:9 · compact project thumbsSolid placeholder cover: the active theme colour, black diagonal rules, and the reusable noise texture.
A real property photo, converted locally to a transparent one-bit mask. Both colours follow the theme.
Compact project thumbnail using the same solid, diagonal, noisy placeholder treatment.
Project media placeholder. Replace it with an image when the real asset is ready.
noise-color-1noise-color-2noise-color-3noise-color-4noise-color-5noise-color-6noise-color-7Image covers use Astro's image pipeline and explicit dimensions. Add an image and alt text in MDX frontmatter; when no image is supplied, the static solid placeholder keeps the page quiet until the real asset is ready. Use effects on editorial images, not screenshots where detail matters. Noisy surfaces can use noise-color-1 through noise-color-7; thumbnails derive a stable slot from their seed, while a component's color prop can choose one explicitly.
Noise texture
.noiseHigh tech, low life.
A working link under the textureAdd class="noise" to a container. The isolated SVG texture uses soft-light blending and never intercepts pointer events. Set --noise-opacity to tune its strength.
06 / Grid & motion
Structure, with interruptionsThe original animated background grid remains in place. The left rail follows pointer height across the page, and becomes a Back link on inner pages. The following label is hidden on mobile and touch screens. With a mouse and reduced motion it stays still. Homepage content sections have a minimum height of 150vh; the footer stays compact. Pixel cells are progressively omitted outside the left rail as home scrolls, without translating or clipping the grid. Navigation uses a flat background; section panels are transparent without blur. This optional content specimen reveals small marks once on entry; it does not replace the background engine.