calendar

Calendar

Lets the shopper pick a date from a month grid, within a minimum and maximum, starting the week where the locale it is given does, one or several months side by side.

States: Default, Hover, Focus, Disabled, Invalid

Parts

PartFileDoes
CalendarCalendar.vueLets the user pick a date from a monthly calendar.
CalendarCellCalendarCell.vueHolds one day in a row of the calendar grid.
CalendarCellTriggerCalendarCellTrigger.vueLets the user select a single day of the calendar.
CalendarGridCalendarGrid.vueLays out the days of one month in a grid.
CalendarGridBodyCalendarGridBody.vueHolds the weeks of the calendar grid.
CalendarGridHeadCalendarGridHead.vueHolds the row of weekday names above the calendar days.
CalendarGridRowCalendarGridRow.vueGroups the days of one week in the calendar grid.
CalendarHeadCellCalendarHeadCell.vueLabels one column of the calendar grid with a weekday name.
CalendarHeaderCalendarHeader.vueGroups the heading and month navigation above the calendar grid.
CalendarHeadingCalendarHeading.vueShows the month and year the calendar currently displays.
CalendarNextButtonCalendarNextButton.vueLets the user move the calendar to the next month.
CalendarPrevButtonCalendarPrevButton.vueLets the user move the calendar to the previous month.

Anatomy

<Calendar>
  <CalendarHeader>
    <CalendarHeading />
    <CalendarPrevButton />
    <CalendarNextButton />
  </CalendarHeader>
  <CalendarGrid>
    <CalendarGridHead>
      <CalendarGridRow>
        <CalendarHeadCell />
      </CalendarGridRow>
    </CalendarGridHead>
    <CalendarGridBody>
      <CalendarGridRow>
        <CalendarCell>
          <CalendarCellTrigger />
        </CalendarCell>
      </CalendarGridRow>
    </CalendarGridBody>
  </CalendarGrid>
</Calendar>

Styling

PartRecipe
Calendarcalendar
Calendarcalendar-select-label
CalendarCellcalendar-cell
CalendarCellTriggercalendar-cell-trigger
CalendarGridRowcalendar-grid-row
CalendarHeadCellcalendar-head-cell
CalendarHeadercalendar-header
CalendarHeadingcalendar-heading
CalendarNextButtoncalendar-nav
CalendarPrevButtoncalendar-nav

Install

Writes 13 files into components/ui/calendar/. For agents, npx @frontic/ui docs calendar prints this reference as markdown; the MCP server serves the same.

Installs with it
native-select
npm packages
@internationalized/date
@lucide/vue
@vueuse/core
class-variance-authority
reka-ui

Built from

API reference

Calendar Calendar.vue

Lets the user pick a date from a monthly calendar. Renders a <div>.

PropTypeDefault
defaultValueDateValue—
defaultPlaceholderDateValue—
placeholderDateValue—
pagedNavigationbooleanfalse
preventDeselectbooleanfalse
weekStartsOnWeekStartsOn—
weekdayFormatWeekDayFormat'narrow'
calendarLabelstring—
fixedWeeksbooleanfalse
maxValueDateValue—
minValueDateValue—
localestring—
numberOfMonthsnumber1
disabledbooleanfalse
readonlybooleanfalse
initialFocusbooleanfalse
isDateDisabledMatcher—
isDateUnavailableMatcher—
dirDirection—
nextPage((placeholder: DateValue) => DateValue)—
prevPage((placeholder: DateValue) => DateValue)—
modelValueDateValue | DateValue[] | null
multiplebooleanfalse
disableDaysOutsideCurrentViewbooleanfalse
asChildbooleanfalse
asAsTag | Component'div'
classClassValue—
layoutLayoutTypes
yearRangeDateValue[]—
EventPayload
update:modelValuedate: DateValue | undefined
update:placeholderdate: DateValue
SlotSlot props
calendar-heading{ date: DateValue; month: ReuseTemplateComponent<{ date: DateValue; }, Record<"default", undefined>>; year: ReuseTemplateComponent<{ date: DateValue; }, Record<"default", undefined>>; }
calendar-prev-icon—
calendar-next-icon—
Data attributeValues
data-disabled—
data-invalid—
data-readonly—
Recipe calendarSets
base: calendar 1 property
Recipe calendar-select-labelSets
base: calendar-select-label 2 properties

CalendarCell CalendarCell.vue

CalendarCellTrigger CalendarCellTrigger.vue

CalendarGrid CalendarGrid.vue

CalendarGridBody CalendarGridBody.vue

CalendarGridHead CalendarGridHead.vue

CalendarGridRow CalendarGridRow.vue

CalendarHeadCell CalendarHeadCell.vue

CalendarHeader CalendarHeader.vue

CalendarHeading CalendarHeading.vue

CalendarNextButton CalendarNextButton.vue

CalendarPrevButton CalendarPrevButton.vue

Example
State