Knit UI
GitHub

Playground

Loading playground…

true
false
false
false
false
false
false
Playground
<Month
  month="2026-06-15"
  size="md"
  withCellSpacing
  hideOutsideDates={false}
  hideWeekdays={false}
  highlightToday={false}
  withWeekNumbers={false}
  fullWidth={false}
  static={false}
/>

Examples

Default

Default month grid with a selected day.

Loading example…

DefaultSourceStorybook

Hide Outside Dates

Outside days hidden — the trailing/leading adjacent-month cells disappear.

Loading example…

Hide Outside DatesSourceStorybook

Highlight Today

Today highlighted with a border (uses the real current date).

Loading example…

Highlight TodaySourceStorybook

With Week Numbers

Leading week-number column.

Loading example…

With Week NumbersSourceStorybook

Bounded

Bounded — days outside [minDate, maxDate] are disabled.

Loading example…

BoundedSourceStorybook

Static Display

Static (display-only) grid — no interactive day buttons.

Loading example…

Static DisplaySourceStorybook

Full Width

Full-width grid stretched to its container's width (day cells share the row equally).

Loading example…

Full WidthSourceStorybook

Full Width Filled

fullWidth fills BOTH axes: in a container with a fixed height the week rows distribute the extra vertical space and the day cells grow taller to fill it.

Loading example…

Full Width FilledSourceStorybook

Styled Slots

Per-slot styles sugar — recolour the week-number labels via the weekNumberLabel slot.

Loading example…

Styled SlotsSourceStorybook

Sizes

Every size token.

Loading example…

SizesSourceStorybook

Props

PropTypeDefaultDescription
month requiredstring2026-06-15Month to display, any date within it, `YYYY-MM-DD`.
disabled systemboolean | undefined
excludeDate((date: DateStringValue) => boolean) | undefinedPredicate marking a day disabled.
firstDayOfWeekDayOfWeek | undefined`DatesProvider` (1)First weekday of each row, `0` (Sunday) … `6` (Saturday).
fullWidth systemboolean | undefinedfalseStretch the grid to its container width.
getDayAriaLabel((date: DateStringValue) => string) | undefinedAssigns each `Day` an `aria-label` based on its date.
getDayProps((date: DateStringValue) => Partial<DayProps>) | undefinedPasses props down to every `Day` (wins over `styles.day`).
hideOutsideDatesboolean | undefinedfalseHide days outside the current month.
hideWeekdaysboolean | undefinedfalseHide the weekday header row.
highlightTodayboolean | undefinedfalseHighlight today with a border.
localestring | undefineddayjs locale; falls back to `DatesProvider`.
maxDatestring | Date | undefinedMaximum selectable date.
minDatestring | Date | undefinedMinimum selectable date.
renderDayRenderDay | undefinedCustom renderer for each day's content.
shadow system"xs" | "sm" | "md" | "lg" | "xl" | "xxs" | "xxl" | undefined
size systemCalendarSize | undefined
xxs · xs · sm · md · lg · xl · xxl
'md'Width/font of the grid cells.
staticboolean | undefinedfalseRender days as non-interactive display cells.
styles systemSlotStyles<MonthStyles> | undefinedPer-slot style sugar — props spread onto the matching styled part. Lives on `MonthProps` (not the inherited `MonthSettings`) so Month's `styles` shape does not flow up the shared Calendar settings chain and collide with sibling components' own `styles` props.
theme systemThemeName | null | undefinedApplies a theme to this element
weekdayFormatDateLabelFormat | undefined'dd'dayjs format for weekday names, or a custom renderer.
weekendDaysDayOfWeek[] | undefined`DatesProvider` ([0, 6])Indices of weekend days.
withCellSpacingboolean | undefinedtrueSeparate cells/rows with spacing.
withWeekNumbersboolean | undefinedfalseDisplay a leading week-number column.

Style slots

Every part of Month can be styled through the styles prop. Explicit props on the component always win over slot styles.

SlotUsage
cellstyles={{ cell: { … } }}
daystyles={{ day: { … } }}
rootstyles={{ root: { … } }}
rowstyles={{ row: { … } }}
weekNumberstyles={{ weekNumber: { … } }}
weekNumberLabelstyles={{ weekNumberLabel: { … } }}
Accessibility & DOM props (2)
PropType
keyKey | null | undefined
refRef<TamaguiElement> | undefined

Plus 498 inherited style props from Box — the full Tamagui/React Native style surface, including token shorthands like p, mx, bg and c. See Tokens for the scales they accept, or the full list.