About this set
Tabs drawn as a four-step setup wizard: Workspace and Invite team are complete and show a tick, Connect a repo is the current step, and First board is locked. A connecting line runs through the step dots and turns indigo up to the last completed step. Use it for onboarding, checkout or setup flows where people should be able to go back to finished steps but not skip ahead. The locked step is disabled in the markup rather than only styled grey: in the plain CSS version it is a disabled radio, in the Bootstrap and Tailwind versions a disabled tab button, so it cannot be clicked, focused or reached with the arrow keys. Each step’s small status line (Created, 4 sent, In progress, Locked) is part of its name, so assistive technology hears the state as well as the title. The plain CSS version picks the panel with :has(); the Bootstrap version is a .nav of step buttons driven by the Tab plugin; the Tailwind version uses group-aria-selected utilities and a small WAI-ARIA tabs script.
What’s included
- Completed, current and locked steps with a progress line
- The locked step is disabled, not just styled
- Completed steps stay selectable so people can go back
- Status text such as In progress is part of each step's name
- Grey step text darkened to pass 4.5:1
Accessibility
In the plain CSS version the tabs are a radio group, not ARIA tabs: the radios sit inside an element with role="radiogroup" and an aria-label, each takes its name from its visible label, Tab enters the group and the arrow keys move the selection (radios have no Home or End). In the Bootstrap and Tailwind versions they follow the WAI-ARIA tabs pattern: role tablist, tab and tabpanel, aria-selected, aria-controls, a roving tabindex, arrow keys plus Home and End. The disabled step is skipped by keyboard and pointer in every version. The step dots are aria-hidden and focus shows a 2px indigo outline around the whole step.
Customise it
Change #4f46e5 for the progress line, dots and ring in the .steps rules (plain CSS and Bootstrap) or the --color-tab-accent and --color-tab-tint theme colours (Tailwind). Add a step by adding a radio and label, or a tab button and panel, and moving the done class along.

















