Calendar Table Head
A calendar table head is the header section of a calendar grid, wrapping one or more rows that label the columns of the calendar. Typically contains a single row with day-of-week abbreviations (e.g., Sun, Mon, Tue). It is designed to be used inside a CalendarTable <table> structure.
The component renders a <thead> element and passes through its children, which are expected to be CalendarTableRow or <tr> elements containing <th> header cells.
Implementation Notes
- Renders as a
<thead>element for the header section of a calendar grid - Children should be one or more rows with
<th>cells labeling calendar columns (e.g., days of the week) - Designed to be used inside a CalendarTable
<table>structure - Spreads
restPropsonto the<thead>element for consumer customization - No internal state -- purely a structural wrapper
Props
children: slot (required) -- header rows, typically containing day-of-week labels...restProps: Any additional HTML attributes passed to the<thead>element
Usage
<CalendarTable label="April 2026">
<CalendarTableHead>
<CalendarTableRow>
<th><abbr title="Monday">Mon</abbr></th>
<th><abbr title="Tuesday">Tue</abbr></th>
<th><abbr title="Wednesday">Wed</abbr></th>
<th><abbr title="Thursday">Thu</abbr></th>
<th><abbr title="Friday">Fri</abbr></th>
<th><abbr title="Saturday">Sat</abbr></th>
<th><abbr title="Sunday">Sun</abbr></th>
</CalendarTableRow>
</CalendarTableHead>
<CalendarTableBody>...</CalendarTableBody>
</CalendarTable>
Keyboard Interactions
None -- this component is a passive container. Keyboard navigation is handled by the parent CalendarTable grid.
ARIA
- Implicit
rowgrouprole from the<thead>element -- groups the header rows of the grid
When to Use
- Use inside CalendarTable to provide the
<thead>for the calendar grid - Use to display day-of-week column labels such as Mon, Tue, Wed
- Use when you need semantic column headers so screen readers announce day names as users navigate cells
When Not to Use
- Do not use outside CalendarTable -- use TableHead or DataTableHead for other table types
- Do not use for calendar body rows -- use CalendarTableBody for the main date grid
Headless
This component provides a semantic <thead> element with implicit rowgroup role and zero visual styling. The consumer is responsible for all CSS including header cell typography, alignment, background color, bottom borders, and any abbreviation formatting for day names.
Styles
The consumer provides all CSS styling. The component renders with a .calendar-table-head class for targeting. No default styles are included — this is a fully headless component.
Testing
- Verify the component renders a
<thead>element with classcalendar-table-head - Verify pass-through attributes are applied
Advice
- Designers: Keep day-of-week labels short (2-3 characters) to fit within cell widths. Use a visually distinct style (bold, different background) to separate the header from body rows.
- Developers: Use
<th>elements inside the header row for proper column header semantics. Consider using<abbr>within<th>for abbreviated day names with full title attributes.
Composition
CalendarTableHead is part of the CalendarTable composition pattern:
- CalendarTable -- outer
<table>withrole="grid". - CalendarTableHead --
<thead>for day-of-week column headers. - CalendarTableBody --
<tbody>for day rows. - CalendarTableRow --
<tr>within any section.
<CalendarTable label="January 2025">
<CalendarTableHead>
<tr><th>Sun</th><th>Mon</th><th>Tue</th><th>Wed</th><th>Thu</th><th>Fri</th><th>Sat</th></tr>
</CalendarTableHead>
<CalendarTableBody>...</CalendarTableBody>
</CalendarTable>
Related components
calendar-table— a calendar table interactive grid for managing dates, days, etc. <table>calendar-table-body— a calendar table interactive grid tbody for managing dates, days, etc. <tbody>calendar-table-foot— a calendar table interactive grid tfoot for managing dates, days, etc. <tfoot>calendar-table-row— a calendar table interactive grid row for managing dates, days, etc. <tr>calendar-table-td— a calendar table interactive grid data cell for managing dates, days, etc. <td>calendar-table-th— a calendar table interactive grid header cell for managing dates, days, etc. <th>table— a table with rows and columns <table>
References
- WAI-ARIA Grid Pattern: https://www.w3.org/WAI/ARIA/apg/patterns/grid/