forever components

Progress & Status

Seamless Progress Line

Three progress idioms in one handoff card: a determinate copy line filling to a tabular percentage, an indeterminate stream where a lit accent segment travels the track, and a five-segment stepped build — run in sequence by one clock with a mono footer showing the phase and elapsed time.

csslight complexitysubtle motion

Open on the canvas to copy the code → Free account · 3 copies a day · membership goes unlimited

Live demo — the real component, running in a sandbox. One self-contained HTML file, zero dependencies. Open it on the canvas →
Worth keeping? Votes steer what gets built next — sign in to cast one, free to read

When to use it

Multi-stage operations such as copy → stream → build, agent handoffs, uploads with a processing tail; any place three kinds of progress need to read as one system.

When not to

A single simple bar (use only the first row), or operations with unknown stage boundaries.

Working with an AI agent

Every component ships agent-ready metadata. An example instruction for this one:

Rename the three rows and the steps array, change the phase lengths COPY=2400 / STREAM=2000 / STEP=420 / HOLD=1800, and recolour via --pl15-accent; keep the aria-valuenow updates on the determinate bar. Theme: dark tokens live in :root, the light variant in :root[data-theme="light"]; ?theme=light or a {type:'forever:theme'} postMessage switches at runtime.

Safe to edit

  • row labels and the footer copy in paint()/reset()
  • phase lengths (COPY, STREAM, STEP, HOLD)
  • segment count (five <b> elements + the 5 in paint())
  • travel speed of the indeterminate segment (1.4s on .pl15-ind)
  • accent token (--pl15-accent)
  • theme tokens (:root dark defaults + [data-theme=light] overrides)

Keep intact

  • IIFE wrapper
  • role=progressbar + aria-valuenow on the determinate track
  • the indeterminate segment moves by transform only
  • prefers-reduced-motion guard (all three rows complete, still)
  • visibilitychange pause
  • theme hook (?theme= bootstrap + forever:theme message listener + theme tokens)

Known limitations

  • The sequence is a demo loop — drive phase changes from real events in a product

progressdeterminateindeterminatesteppedlinehandoffstreammonopercent

More Progress & Status components

  • Linear ProgressOlive-to-slate gradient bar fills left-to-right with a glowing leading edge, live percent readout, tick scale, and status dot; cycles fill → hold → reset…
  • Segmented StepperFour-step circular stepper auto-advances, filling connector segments with a plum-to-teal gradient and stamping SVG checkmarks as each step completes.
  • Upload ProgressCircular rust-toned ring fills to 100% with a leading dot and numeric readout; completes with a green checkmark draw-in. Auto-cycles.
  • Skeleton LoaderDark content-card skeleton with avatar, text rows, thumbnail, and pills swept by a staggered denim-blue diagonal shimmer and a breathing radial pulse.
  • Battery ChargeBattery shell fills olive-to-tan from 4%→100% over 6 s with a travelling sheen, pulsing bolt icon, and green glow ring at full charge.
  • Multi-TrackFour color-coded bars (ingest, transcode, index, publish) fill at staggered ease-out rates with a live N/4 complete counter; auto-resets after all finish.