Design System
Engineer Notebook
The single source of truth for the jayptl.me redesign: four type voices, one handwriting, a doodle-led surface with HUD accents, and two themes that never mix. Everything here is hand-written vanilla HTML/CSS/JS.
Type
Stack A, "Engineer Notebook" (dossier 04 §1A). Drafting-desk DNA across all four roles. Handwriting is never body text; mono carries every number.
Display, Space Grotesk
Every suit I've built.
Headings, section titles, case-study heroes. Weights 500/600/700; tight tracking at display sizes.
--font-displayBody, IBM Plex Sans
The short version: I build it, design it, plan it, film it, and make the launch trailer.
Open apertures hold up on translucent surfaces. 65ch cap; 16–18px floors.
--font-bodyHand, Architects Daughter
this is where the work happens
The one casual voice. Annotations only: captions, margin notes, sticker labels. Minimum 16px; dark theme uses near-black-teal ink for 4.5:1 over glass.
--font-hand · --ink-handHUD, IBM Plex Mono
SITE.STATUS: 30+ shipped · v2.0 · 1st
Numbers, micro-labels, FIG captions, readouts. Tabular figures on; uppercase labels track +0.12em+.
--font-mono · .hud-readoutColor law
Two committed ramps, one per theme, never mixed. Blue is light-only; turquoise is dark-only. No emoji, one accent per surface. Gradients stay inside the ramp, icon fills, ambient glows, progress fills, never gradient text, never competing hues.
Light theme, skeuomorphic blue ramp
Dark theme, turquoise glass ramp
Working tokens
Doodle ink
Handwriting reads in neutral or dark-teal ink; lines use the accent at reduced alpha.
--doodle-line · --marker-bandHUD accents
Labels and readouts always resolve to the committed ramp (blue light / turquoise dark).
--hud-label · --hud-bracketPaper grid
Optional flat ground, alpha baked to 8% max so it never fights text contrast.
--paper-grid-line · .paper-gridGlow
Ambient radial only, one focal element per viewport.
--glow-focalDoodle system
Hand-drawn marks annotate content, they never replace layout. Symbols live in assets/doodle-sprite.svg and are placed with <svg class="doodle"><use href="#d-…"/></svg>; strokes inherit currentColor.
Sprite vocabulary
Highlighter band
A flat, hard-edged band reads as hand-annotated emphasis without a gradient, pair with the underline doodle under a heading:
Selected work
HUD accents
Instrument-panel grammar only where there is real data: micro-labels, tabular readouts, corner frames, FIG captions. Fake telemetry is banned, every readout traces to something true.
Micro-label
01 · About
Mono, uppercase, tracked. The dash is a pseudo-element.
.hud-labelMetric chips
Tabular numerals via font-variant-numeric.
FIG captions
FIG 1, patient, partner, hero, and admin views
Spec-document grammar borrowed from engineering drawings.
.fig-captionCorner frame
Bracket-only border via CSS mask; scanlines stay panel-sized.
.corner-frame .scanlinesStickers
Rotated chips with counter-rotated handwritten captions. Rotation is capped at ±12deg; on mobile they collapse into an inline strip. The homepage footer carries the Reset-stickers toy.
One sticker per row may carry a slow idle bob; the rest sit still. .sticker--idle gates on prefers-reduced-motion: no-preference.
Components
Buttons, cards, tag runs, and link rows inherit the existing system components and the new redesign layer. Tags and links use mono chips and dot-separated rows.
Buttons
Press / tap
Default tap flash is off globally; owned :active states carry feedback. Light presses into skeu inset, dark into glass inset, both scale to 0.97–0.98. Tap targets use manipulation for instant response.
Tag run
- Flutter ×3
- Next.js 16
- Bun + Hono
Hand note
five lanes, one garage
.hand .hand--mdMotion law
Ambient idle loops only: one gentle loop per viewport, everything static by default under reduced motion. Nothing flashes faster than three times per second (WCAG 2.3.1).
Idle
Slow bob on a single sticker, a breathing corner-frame glow on one focal panel.
.sticker--idle · .corner-frame--focalReduced motion
Blanket duration collapse plus per-effect static fallbacks: doodles render fully drawn, sweeps freeze, type is never animated in.
@media (prefers-reduced-motion: reduce)Retired
Gradient text washes, inset/neumorphism shadows, full-page CRT flicker, carousel auto-rotation, and emoji are not part of this system.
law: no gradient text · no emoji