Design notes · how this was made
The pit-wall aesthetic.
This site sells a fictional privateer Le Mans team to fans and sponsors. Everything on it is code — no photography, no stock. The design bet: a race engineer's screen is already beautiful, so build the whole identity out of telemetry.
Concept & art direction
APEXLINE is a twelve-person LMP2 privateer entering the 24 Hours of Le Mans. The page has three jobs: the car, the drivers, the 24-hour mission. The art direction treats speed as diagonal geometry — skewed plates, clipped section edges, italic type wherever motion is implied — over carbon black, with livery red and pit-lane amber doing all the talking.
Palette
Red is reserved for the car, the brake trace, and one call to action per screen. Amber is data: gears, sector clocks, throttle. Green appears only when a sector is a personal best — exactly as it does on a timing screen. The drivers section flips to livery white so the page itself reads like a car: dark body, white number panel.
Type pairing
Saira 300/400 carries body copy — a grotesque family drawn wide and legible, born from the same designer's motorsport-inspired Saira project.
SHARE TECH MONO — 329 KM/H · S2 41.3 — every number on the page
Chakra Petch has squared, chamfered terminals that look machine-cut — in bold italic caps it reads like a sticker on a sidepod. Share Tech Mono is the dashboard: tabular, technical, slightly retro like a timing monitor. All three stay in their lanes: display shouts, body explains, mono measures.
The signature: a lap of Le Mans, live
The hero is an SVG map of the Circuit de la Sarthe with a car marker lapping it. The trick that makes it feel real is that the dot does not move at constant speed — it follows a speed profile keyed to the real corners, so it visibly brakes for Arnage and stretches out at 329 km/h down Mulsanne.
The circuit is one SVG path. Feature coordinates (Dunlop, Tertre Rouge, both chicanes…) are mapped to fractions of the path length at runtime, each with a target speed:
// [x, y, target km/h] at known circuit features var FEATURES = [ [408, 181, 126], // Tertre Rouge [790, 418, 329], // Mulsanne kink, vmax [810, 448, 86], // Mulsanne corner [508, 509, 90], // Arnage ... ]; // each frame: chase the target, then advance by real physics v = tgt >= v ? Math.min(tgt, v + accel * dt) : Math.max(tgt, v - 118 * dt * brakeBias); u += (v / 3.6) * dt / 13626; // meters around a 13,626 m lap var p = path.getPointAtLength(u * path.getTotalLength());
Everything else falls out of that one simulation: gear is a lookup on speed bands, throttle and brake chase the same target with different response rates, and the canvas strip charts just plot the last 520 samples of the ring buffer — speed in white, throttle amber, brake red, like an engineer's overlay. Sector clocks tick because the sim knows which split fraction the car is between. A full lap lands near 3:31, which is an honest LMP2 pace, compressed ×9 so you see a lap in about 23 seconds.
With prefers-reduced-motion, the sim silently runs one full lap into the buffer, draws a single captured frame, parks the car on Mulsanne, and says so in a note.
Other techniques
- Diagonal geometry: plates and buttons use
transform: skewX(-8deg)with counter-skewed inner spans; the white drivers section is cut with aclip-pathpolygon so its edges run at the same angle the car travels. - Carbon weave: two crossed repeating-linear-gradients at 45° / −45°, at 1.4% white — visible only where light would catch real weave.
- 24-hour bar: a single gradient from afternoon amber through night blue-black to dawn gold, divided into 24 cells by a repeating gradient overlay. The event markers hang off it at their true hour positions.
- Livery zones: the sponsor picker toggles
.liton rect overlays inside the car SVG — hover a row, see where your name rides.
The three iteration passes
Correctness: killed a header overflow at 390px, replaced fragile scroll-reveals with a single page-load rise so no section can ever render empty, tightened the circuit's viewBox so the map fills its cell, warm-started the telemetry ring buffer so the board opens mid-lap instead of blank, and pulled the hero scale down so the pit-wall screen shares the fold.
Elevation: a live T-minus countdown to lights out now fills the hero's dead corner, the Mulsanne label moved off the racing line, the car marker's glow swells and brightens under braking (watch it into Arnage), a 4,745 mm dimension callout joined the car drawing, and timeline diamonds anchored to their events.
Taste: deleted the big 01/02/03 numerals from the driver cards — numbers that encoded nothing, exactly the decoration this series bans — re-checked 390px, keyboard focus and the reduced-motion captured-lap fallback, and did the final copy and spacing sweep.
Do this yourself
- Pick a subject with an instrument panel. Racing has telemetry; ships have charts; labs have plots. Build the identity out of the subject's own screens, not stock imagery.
- Ask Claude for a token system first: 4–6 named hex colors, three type roles (display / body / data), and one signature element. Refuse anything that would fit a different subject.
- Make the signature honest. A dot moving at constant speed is a loading spinner; a dot that brakes for corners is telemetry. Push for the version where the data means something.
- Drive one simulation, render many widgets. Speed, gear, pedals, traces and sector clocks here all read from a single state object — ask for that architecture and every gauge agrees.
- Reserve each accent for one meaning. Red = the car and braking, amber = data, green = a best. When color is grammar, the page needs no decoration.
- Screenshot, critique, repeat — three times. Ask Claude to screenshot its own build at 1440px and 390px, name the three weakest things it sees, and fix them. Do not accept "looks good".
- Test reduced motion and keyboard last. A calm fallback (a captured lap, not a dead panel) is the difference between a demo and a product.