About this set
A recurrence picker with a live preview. Three options, every weekday, every Tuesday and monthly on the 14th, sit beside a September 2026 month, and choosing one highlights the dates that rule produces, with a line under the month spelling them out, for example 5 dates: 1, 8, 15, 22 and 29 September. Use it in event and booking forms, reminders and any settings screen where a repeat rule is easy to get wrong without seeing its result. There is no JavaScript. The options are native radio inputs in a fieldset with a legend, drawn as rings with appearance: none, and a :has() rule on the wrapper highlights the matching dates and shows the matching summary. The preview is a table with weekday headers, and each highlighted date also gets visually hidden text saying it repeats, so the result is not carried by colour alone. The ring outline reaches 3:1 contrast. Below 620 pixels the options stack above the preview. The Bootstrap version uses .form-check radios and .table, and the Tailwind version uses has-checked and arbitrary :has() variants on each date.
What’s included
- Three repeat rules as native radio inputs, no JavaScript
- :has() highlights the dates each rule produces
- Summary line lists the dates in text
- Hidden "repeats" text on every highlighted date
- Stacks below 620px
Accessibility
The options are radio inputs in a fieldset with a legend, reachable with Tab and changed with the arrow keys, and focus draws a 2px violet outline around the whole option. The preview is a table with full weekday headers; highlighted dates include hidden "repeats" text and the summary line is a polite live region. Nothing animates.
Customise it
Change --rc-accent, --rc-muted and --rc-ring on .rec in plain CSS and Bootstrap, or the --color-rc-* theme colours in Tailwind. Each rule needs a radio id, a hit class on the matching dates and a summary span.




















