About this set
A booking card for a 30-minute call: a horizontal strip of six days, a grid of ten time slots and a time zone note. Three slots are taken and cannot be picked; they are disabled, struck through and greyed, so the state does not rely on colour. Use it on a contact page, a consultation form or any flow where a visitor books one slot. Both rows are groups of real radio inputs, visually hidden, with the label after each input drawn as the button, so the browser handles selection, arrow keys and form submission. Each day input is named in full, for example Tuesday 15 September, and a short script copies the chosen day into every slot name, so a screen reader hears Tuesday 15 September, 10:30 rather than a bare time. The slot grid uses auto-fill columns, so it reflows from four columns on a desktop to two on a phone, and the day strip scrolls sideways when it runs out of room. The Bootstrap version uses .btn-check with .btn labels, and the Tailwind version wraps each input in its label and styles it with has-checked utilities.
What’s included
- Day strip and time slot grid built from native radio inputs
- Taken slots are disabled and struck through, not only greyed
- Slot names include the day, e.g. "Tuesday 15 September, 10:30"
- Slot grid reflows with auto-fill columns; day strip scrolls on small screens
- Plain CSS, Bootstrap .btn-check and Tailwind versions of the same design
Accessibility
Each row is a radiogroup with an aria-label, and every input has a full accessible name; taken slots are disabled and their names end in "taken". Tab moves between the two groups and the arrow keys change the selection. Keyboard focus draws a 2px violet outline around the visible button, and hover and selection transitions are removed under prefers-reduced-motion.
Customise it
Change --ts-accent, --ts-line and --ts-muted on .tslot in plain CSS and Bootstrap (Bootstrap maps them onto the --bs-btn-* variables). In Tailwind edit the --color-ts-* theme colours; slot width is the 94px in the grid template.




















