Skip to content

No.234 · Stats

Uptime Ribbon

A status-page ribbon of ninety thin days: scrub along it and a tooltip rides your pointer with that day's uptime and incidents, while the bars under your hand lift like keys.

The prompt

The design brief behind this component — reuse it to regenerate, remix, or explain it.

Build a status-page component: one row per service with a status dot, its name and the 90-day average uptime, then a ribbon of 90 thin bars (2px gaps) coloured by day — green ≥ 99.95%, amber ≥ 99%, red below — and an axis ('90 days ago' / 'Today'). Scrubbing the ribbon (pointer move, press or ←/→ when focused) selects a day: bars near the pointer lift like keys under a finger — height 70% → 100% and opacity up with a smooth quadratic falloff over four neighbours (260ms expo-out) — the exact day gets a white outline, and a tooltip rides above it (position eased 120ms) with the date, uptime in mono (colour-coded) and any incident note. Each ribbon is a single focusable group with an aria-label summarising it.

Notes

Interaction
Move across a ribbon (or use ←/→/Home/End when focused) to inspect any day.
Motion
Neighbour lift 260ms expo-out; tooltip tracks with a 120ms linear ease.
Accessibility
Each ribbon is a labelled focusable group with keyboard scrubbing; the tooltip is a status region. Colour is backed by text (percentages and notes). Reduced motion removes transitions.
Responsive
Bars are grid columns so the ribbon fits any width; the tooltip is centred on the day.
On touch
Press and drag along the ribbon to scrub (vertical scroll still works).

Featured

301 components