StealThis .dev

Onboarding — Getting-started checklist (progress)

A dismissible getting-started widget that walks new users through five setup tasks — complete a profile, invite teammates, connect a data source, create a project, and tune notifications. Each row carries helper text and an action button, and checking one animates an overall progress indicator and percentage. Completed items collapse with a strike-through, an expand toggle minimizes the card, and a dismiss control hides it entirely. Two live variant switchers swap a progress ring for a bar and the expanded card for a floating progress pill.

Apri in Lab
html css vanilla-js
Target: JS HTML

Codice

Getting-started checklist (progress)

A self-contained onboarding widget for the empty-state moment after sign-up. Five realistic setup tasks — completing a profile, inviting the team, connecting a data source like Northwind CRM, creating a first project, and setting notification preferences — each pair a title and one line of helper copy with an action button. Checking a task animates a circular fill and percentage, strikes the title, collapses its helper text, and fades out its action; when all five are done a completion banner appears and a toast confirms the milestone.

Two segmented switchers let you preview the variants live. The progress control swaps between a stroked SVG ring with a center percentage and a compact bar with a numeric readout, both of which recolor green at 100%. The layout control swaps the expanded card for a small floating pill that shows a conic mini-ring and a “3 of 5 done” label; clicking the pill reopens the full card. A chevron toggle collapses the card to just its header, the dismiss “X” hides the widget behind a restore button, and pressing Esc minimizes an open card.

Everything is vanilla — no frameworks, no external assets. Checkboxes use role="checkbox" with aria-checked and respond to Space/Enter, the live meta line announces progress via aria-live, focus-visible rings are kept throughout, and the layout reflows to a single column with stacked action buttons down to 360px. A prefers-reduced-motion block neutralizes the animations.

Illustrative UI only — fictional product, people, and data.