About this set
A Gantt chart built with CSS grid, with no canvas, SVG or script. Six month columns from July to December carry four phase rows: Discovery, Design, Build and Launch, each with a coloured bar labelled with its work, from Research & specs to Beta → GA. Faint gridlines mark the months, a red Today line crosses every row at the start of September, and a legend sits underneath. Use it for project plans, delivery schedules, release trains or event programmes where time spans overlap. Each bar is placed with three custom properties, –r for the row and –from and –to for the start and end grid lines, so rescheduling is a one-number change. Because a positioned chart means little to a screen reader, the drawn chart and legend are aria-hidden and the same plan is given as a visually hidden table with a caption, phase, work, start month and end month, with months in time elements. The chart sits in a focusable region named Delivery plan, which scrolls sideways on narrow screens instead of overflowing the page. Bar colours were darkened, or given dark text, so every label reaches 4.5:1.
What’s included
- Bars placed with --r, --from and --to on a CSS grid
- Today marker and painted month gridlines
- Visually hidden table carries the same data as text
- Focusable named region scrolls the chart on phones
- Bar label colours adjusted to pass 4.5:1
Accessibility
Screen readers get a visually hidden table with a caption, column and row headers and month values in time elements; the drawn grid and legend are aria-hidden so the plan is not read twice. The chart region is named, keyboard focusable for scrolling and shows a 2px indigo outline on focus. Month labels, legend and bar text all reach 4.5:1.
Customise it
Move a bar by changing --r, --from and --to; move the Today line with its grid-column. Colours are the .c-* classes and --g-line, --g-muted and --g-today on .gantt. In Tailwind edit col-start-, col-end- and the bg-[#…] classes, and keep the hidden table in step with the bars.

















