Knit UI
GitHub

Playground

Loading playground…

true
false
Playground
<MonthsList
  year="2026-06-15"
  size="md"
  withCellSpacing
  fullWidth={false}
  monthsListFormat="MMM"
/>

Examples

Default

Default month grid with a selected month.

Loading example…

DefaultSourceStorybook

Custom Format

Custom label format — full month names.

Loading example…

Custom FormatSourceStorybook

Bounded

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

Loading example…

BoundedSourceStorybook

Full Width

Full-width grid stretched to its container's width (controls share each row equally).

Loading example…

Full WidthSourceStorybook

Full Width Filled

fullWidth fills BOTH axes — in a fixed-height box the rows distribute the height and the controls grow taller.

Loading example…

Full Width FilledSourceStorybook

Styled Slots

Per-slot styles sugar — recolour every control via the control slot.

Loading example…

Styled SlotsSourceStorybook

Sizes

Every size token.

Loading example…

SizesSourceStorybook

Props

PropTypeDefaultDescription
year requiredstring2026-06-15Year for which the months list is displayed, any date within it (`YYYY-MM-DD`).
disabled systemboolean | undefined——
fullWidth systemboolean | undefinedfalseStretch the grid to its container width.
getMonthControlProps((date: DateStringValue) => Partial<PickerControlProps>) | undefined—Passes props down to each month `PickerControl`, keyed by date (wins over `styles.control`).
localestring | undefined—dayjs locale; falls back to the value defined in `DatesProvider`.
maxDatestring | Date | undefined—Maximum possible date in `YYYY-MM-DD` format or a `Date` object.
minDatestring | Date | undefined—Minimum possible date in `YYYY-MM-DD` format or a `Date` object.
monthsListFormatstring | undefined'MMM'dayjs format for the month labels.
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 controls.
styles systemSlotStyles<MonthsListStyles> | undefined—Per-slot style sugar — props spread onto the matching styled part. Lives on `MonthsListProps` (not the inherited `MonthsListSettings`) so the `styles` shape does not flow up the shared Calendar settings chain and collide with sibling components' own `styles` props.
theme systemThemeName | null | undefined—Applies a theme to this element
withCellSpacingboolean | undefinedtrueSeparate controls/rows with spacing.

Style slots

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

SlotTargets
cellProps for each month-cell wrapper (.Cell).
controlProps for each control inside a cell (.Control — the PickerControl leaf).
rootProps for the grid container (.Frame).
rowProps for each month row (.Row).
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.

Edit this page on GitHub