Calendar
Application-controlled month grid for date selection; month and year navigation are composed by the application.
Preview
A live, theme-aware example rendered with the published component.
Loading preview…
Import
Import the component from its dedicated entry point to keep the dependency and generated bundle explicit.
tsximport { Calendar } from "@tavojs/ui/calendar";Normal Tavo.js applications load component styles through the Tavo.js UI plugin. If the application manages component CSS manually, also import @tavojs/ui/css/calendar.
When to use
Use it when
Choose something else when
Examples
Calendar example
tsximport { Calendar } from "@tavojs/ui/calendar";
export function CalendarExample1() {
return (
<>
<Calendar />
</>
);
}Common props and defaults
| Prop | Type | Default | Description |
|---|---|---|---|
className | string | — | Optional class hook applied to the public root element owned by the component. |
size | Size | md | Control scale: sm, md, or lg when supported. Applies to Calendar. |
disabled | boolean | false | Disables the control when supported. Applies to Calendar. |
aria-* | unknown | — | ARIA attributes are passed through for accessible labeling and state. Applies to Calendar. |
Complete TypeScript API
Import from @tavojs/ui/calendar. Published exports: Calendar, CalendarProps.
CalendarProps
| Property | Type | Required | Description |
|---|---|---|---|
children | Child | No | Inherited children attribute accepted by Calendar. |
className | string | No | Optional class hook applied to the public root element owned by the component. |
sx | Sx | No | Inherited sx attribute accepted by Calendar. |
id | string | No | Inherited id attribute accepted by Calendar. |
role | string | No | Inherited role attribute accepted by Calendar. |
style | Record<string, unknown> | No | Inherited style attribute accepted by Calendar. |
title | string | No | Inherited title attribute accepted by Calendar. |
tabIndex | number | No | Inherited tabIndex attribute accepted by Calendar. |
hidden | boolean | No | Inherited hidden attribute accepted by Calendar. |
disabled | boolean | No | Disables the control when supported. Applies to Calendar. |
onClick | TavoEventHandler<MouseEvent> | No | Inherited onClick attribute accepted by Calendar. |
onChange | TavoEventHandler<Event> | No | Inherited onChange attribute accepted by Calendar. |
onInput | TavoEventHandler<Event> | No | Inherited onInput attribute accepted by Calendar. |
onKeyDown | TavoEventHandler<KeyboardEvent> | No | Inherited onKeyDown attribute accepted by Calendar. |
onFocus | TavoEventHandler<FocusEvent> | No | Inherited onFocus attribute accepted by Calendar. |
onBlur | TavoEventHandler<FocusEvent> | No | Inherited onBlur attribute accepted by Calendar. |
year | number | No | Inherited year attribute accepted by Calendar. |
month | number | No | Inherited month attribute accepted by Calendar. |
selected | string | No | Inherited selected attribute accepted by Calendar. |
min | string | No | Inherited min attribute accepted by Calendar. |
max | string | No | Inherited max attribute accepted by Calendar. |
locale | string | No | Inherited locale attribute accepted by Calendar. |
onSelect | (value: string) => void | No | Inherited onSelect attribute accepted by Calendar. |
State ownership and DOM target
| Concern | Contract |
|---|---|
| State | No component state contract is exposed; the application owns the rendered content and surrounding behavior. |
| DOM target | Native input attributes target the owned form control; wrapper-specific props stay on the documented component root. |
Anatomy and related components
This component exposes one public component root rather than a compound member API.
Limitations
Use DatePicker for a form field with a trigger and floating calendar. Calendar does not provide built-in previous-month, next-month, month-select, or year-select controls.
Use only the documented props, entry points, and compound members. Internal DOM nesting and CSS class names can change without becoming part of the public component contract.
Accessibility
Form components pass through native attributes and should be paired with visible labels or accessible names.
Use Field, FormLabel, FormControlLabel, or aria-label for labeling.
Preserve native input semantics whenever possible.
Expose validation with error text and aria-invalid where relevant.
Component status
| Contract | Current value |
|---|---|
| Maturity | stable |
| Category | forms |
| Component import | @tavojs/ui/calendar |
| Explicit CSS import | @tavojs/ui/css/calendar |
| Preview | Interactive preview available on this page |