Lunar Kit LogoLunar Kit
Components

Date Picker

A component that allows users to select a date from a calendar popup.

Demo
Code
Select date

Installation

lunar add date-picker

Usage

import {
DatePicker,
DatePickerTrigger,
DatePickerContent,
DatePickerValue,
} from '@/components/ui/date-picker';

Basic Usage

const [date, setDate] = useState<Date>();
 
<DatePicker value={date} onValueChange={setDate}>
<DatePickerTrigger>
  <DatePickerValue placeholder="Select a date" />
</DatePickerTrigger>
<DatePickerContent />
</DatePicker>

Variants

// Date picker (default)
<DatePicker variant="date" value={date} onValueChange={setDate}>
{/* ... */}
</DatePicker>
 
// Month picker
<DatePicker variant="month" value={date} onValueChange={setDate}>
{/* ... */}
</DatePicker>
 
// Year picker
<DatePicker variant="year" value={date} onValueChange={setDate}>
{/* ... */}
</DatePicker>

Trigger Variants

// Default - bordered input look
<DatePicker value={date} onValueChange={setDate} triggerVariant="default">
{/* ... */}
</DatePicker>
 
// Outline
<DatePicker value={date} onValueChange={setDate} triggerVariant="outline">
{/* ... */}
</DatePicker>
 
// Filled
<DatePicker value={date} onValueChange={setDate} triggerVariant="filled">
{/* ... */}
</DatePicker>

Trigger Sizes

<DatePicker value={date} onValueChange={setDate} triggerSize="sm">
{/* ... */}
</DatePicker>
 
<DatePicker value={date} onValueChange={setDate} triggerSize="md">
{/* ... */}
</DatePicker>
 
<DatePicker value={date} onValueChange={setDate} triggerSize="lg">
{/* ... */}
</DatePicker>

Custom Date Format

<DatePickerValue 
placeholder="Pick a date"
format="YYYY-MM-DD"
/>
 
<DatePickerValue 
placeholder="Pick a date"
format="DD/MM/YYYY"
/>
 
<DatePickerValue 
placeholder="Pick a date"
format="MMMM D, YYYY"  // December 25, 2024
/>

With Min/Max Dates

<DatePicker
value={date}
onValueChange={setDate}
minDate={new Date()}
maxDate={new Date(2025, 11, 31)}
>
<DatePickerTrigger>
  <DatePickerValue placeholder="Select a future date" />
</DatePickerTrigger>
<DatePickerContent />
</DatePicker>

Without Icon

<DatePickerValue 
placeholder="Select date"
showIcon={false}
/>

API Reference

DatePicker

Root component.

PropTypeDefaultDescription
valueDate—Selected date
onValueChange(date: Date) => void—Callback when date changes
variant'date' | 'month' | 'year''date'Picker variant
minDateDate—Minimum selectable date
maxDateDate—Maximum selectable date
triggerVariant'default' | 'outline' | 'filled''default'Trigger style
triggerSize'sm' | 'md' | 'lg''md'Trigger size

DatePickerTrigger

The button that opens the calendar.

PropTypeDefaultDescription
childrenReactNodeRequiredTrigger content
classNamestring—Additional classes

DatePickerContent

The calendar popup.

PropTypeDefaultDescription
classNamestring—Additional classes

DatePickerValue

Display component for the selected date.

PropTypeDefaultDescription
placeholderstring'Select date'Placeholder text
formatstring'MMM DD, YYYY'Date format (dayjs)
showIconbooleantrueShow calendar icon
classNamestring—Additional classes

Date Formats

Using dayjs format tokens:

TokenOutputExample
YYYY4-digit year2024
YY2-digit year24
MMMMFull monthDecember
MMMShort monthDec
MM2-digit month12
MMonth12
DD2-digit day05
DDay5
ddddFull weekdayTuesday
dddShort weekdayTue

On this page