Calendar
Organism
Month grid, week timeline, and day timeline in one component. Events mark their days with a dot in the month grid and week strip, and timed events render as blocks on the week/day hour timelines.
Playground
Every control sets a real prop of CalendarProps. The JSX below updates as you go.
Web
iOS
Android
JSX · CalendarProps
Variants
6 examples from src/organisms/calendar/calendar.md, each rendered live from its own JSX.
States
Hover, focus and press are pinned so they can be compared side by side; the rest are real props.
Anatomy
1
Header
2
Weekday row
3
Day
4
Selected day
5
Event dot
Dimmed parts appear only in some states or variants.
Props
28 props on CalendarProps, grouped as they are declared in source. Required props are marked *.
Accessibility and keyboard
Keyboard
Arrow keys
Moves between cells
Home
End
Row start · end
PageUp
PageDown
Previous · next page
Enter
Space
Activates or selects
Semantics
Roles
button
Platform skins
The playground's props on each platform: same tree, native shapes, type and touch sizes.
Usage
A bare calendar is uncontrolled: pressing a day selects it, and in the week/day views the chevrons page the selection a week or a day at a time (crossing into another month hands the press to onPrev/onNext, since the month itself is a prop).
The view is a semantic boolean axis: pass week or day, or neither for the month grid (day wins over week when both are set).
In glass mode the selected day is a brand-tinted control-layer puck behind its number and event dot, in the month grid and along the week strip; in range mode both endpoints carry the puck over the range band. The day peek and the hover card are functional-layer glass cards beside their day. Solid mode keeps the skin's own filled day.
Tokens
Read from the playground render. Values follow the scheme and the ion hue.
--cyan
--fd
--fm
--ft
--ion
--ion-fg
--ion-glow
--ln
--sf
--sh-sm
--tx3