About this set
Three months side by side, October to December 2026, with today ringed and a closure range from 24 November to 2 December that runs across the month boundary. A key under the months explains the range start and end, the days within the range and today. Use it for planning screens, holiday and leave calendars, school terms or any view where a range spans more than one month. Each month is a real table with a caption and weekday column headers that carry the full day name for screen readers. The range is drawn with three classes, a rounded start, flat middle cells and a rounded end, and every range day also contains visually hidden text such as studio closed, first day, so the information is not carried by colour alone. Today has aria-current=”date”. Days from the neighbouring months are shown in a lighter weight but still reach 4.5:1 contrast. On narrow screens the three months stack into one column (below 720 pixels, or the md breakpoint in Bootstrap). The Bootstrap version uses .row-cols for the columns and .table for each month, and the Tailwind version builds the same tables from utilities.
What’s included
- Three month tables with captions and weekday headers
- A date range that crosses a month boundary
- Range and today stated in hidden text, not only colour
- aria-current="date" on today
- Stacks to one column on narrow screens
Accessibility
Each month is a table with a caption and column headers whose visually hidden text gives the full weekday name. Range days include hidden text describing the closure and today has aria-current="date" plus hidden "today" text. There are no interactive controls and nothing animates.
Customise it
Change --q-accent, --q-range and --q-muted on .qcal in plain CSS and Bootstrap, or the --color-q-* theme colours in Tailwind. Mark days with the s, in, e and today classes.




















