DatePicker

Designer doc
Datepicker is an input component to select date in Dayjs format.

Example

Basic Usage
View code
Specifying custom 100% width for the input is quite common. However, to achieve this you may need to take a small extra step by providing custom DatePickerInput element as shown in below section Customizing DatePicker Input. If you want to have a fixed width, using css selector [data-coral-date-picker-input] will do.
Formatting date
By default DatePicker uses YYYY/MM/DD format to:
  • Set input on selection
  • Parse input for autoselection
  • Default placeholder
You can provide dateFormat prop to override this default format.
View code
Using parseDate and displayDate
You can also pass your custom input parsing and display function. For example, this Datepicker will be able to translate ‘Today’, ‘Yesterday’, and ‘Tomorrow’.
View code
Disabling individual dates
You can specify isDateDisabled prop accepting a function to disable some dates. For MonthPicker the accepted prop is isMonthDisabled, and YearPicker is isYearDisabled.
View code
Disabling months and years
You can specify isMonthDisabled and isYearDisabled to disable some months and years, usually when no dates or months can be selected in that period.
View code
onChange vs onSelect
As the name of the callback suggests, onChange is only called when the value changes. On the other hand, onSelect is triggered whenever an option is selected. This callback can be helpful to create select again to deselect behaviour.
View code
More customizations
Managing states
In DatePicker, there are five core states that you can control or initialize with a value: value, inputValue, date, mode, isOpen.
Below is an example of controlling everything except isOpen (because the popup covers up the description). Note that it feels like it freezes, but it simply is because the states always use those fixed values and change handlers are ignored.
View code
The right combination of controlled and uncontrolled will help you a lot achieving almost any use cases and keeping your code maintainable.
Controlling states from external components
You can also use external components (e.g. Button) to control the states from outside.
View code
Customizing DatePicker input
You can pass any TextField prop to the input.
Why doesn’t Coral just reexpose TextField’s fullWidth prop to DatePicker? The reason is to ensure DatePicker is still free from individual components APIs (e.g. DatePickerInput) because the components themselves are customizable and replacable.
View code
Customizing DatePicker popup and calendar
Popup placement
View code
Popup contents
You can literally render anything inside of the popup - Coral doesn’t restrict to addons, header, or footer. Just render anything, but don’t forget to add DatePickerCalendar too.
View code
You can use DatePickerPreset to render quick actions in the popup too.
View code
Accessibility
Integration of Balloon and Calendar components keyboard handlings. Pressing Arrow Down will open the popup and autofocus on the selected value if any.

Relevant components

References

API

DatePicker
Prop nameTypeDefaultDescription
clearInvalidInputOnBlurbooleantrue
Set to true to automatically clear input when the whole component is blurred.
dateDayjs
Controlled current calendar date, month, or year. This prop is also used to manage focus when using keyboard arrow navigation.
dateFormatstringYYYY/MM/DD
Dayjs format to display from selected date, and parse input to autoselect date when the parse is valid.
disabledboolean
displayDate(value: Dayjs) => string(value: Dayjs | null) => (value ? value.format(dateFormat) : '')
Callback to convert value to inputValue
initialDateDayjs
Uncontrolled current calendar date, month, or year. This prop's default depends on value initialized.
initialInputValuestring
Uncontrolled input value. In this component, normally you would want to use controlled inputValue instead.
initialIsOpenboolean
Uncontrolled of popup open state.
initialModeCalendarModesdate
Uncontrolled calendar mode.
initialValueDayjs
Uncontrolled selected date. In this component, normally you would want to use controlled value instead.
inputElementReactElement<any, any><DatePickerInput />
Customizing input. Normally, how you use this prop is passing DatePickerInput with some additional props.
inputValuestring
Controlled input value. You can think of this prop as text representation of value using dateFormat.
isDateDisabled(date: Dayjs) => boolean() => false
Whether a certain date cannot be selected. This prop is not only used to disable dates on the calendar, but also for input not to trigger selection when input is a valid date but disabled.
isMonthDisabled(date: Dayjs) => boolean() => false
Disable input, date selection, and opening popup.
isOpenboolean
Controlled of popup open state.
isYearDisabled(date: Dayjs) => boolean() => false
modeCalendarModes
Controlled calendar mode.
onChange(value: Dayjs) => void
Callback when selected date changes. Note that this is different from onSelect because onChange is not triggered when the currently selected date is selected.
onDateChange(date: Dayjs) => void
Callback when current calendar date changes.
Generally, this prop is triggered when: (1) Navigating calendar using arrow next/previous month, year, or decade. (2) Keyboard date navigation. (3) Input changes that's valid. (4) Opening the popup.
onInputChange(inputValue: string) => void
Callback when input value changes.
Generally, it's triggered by: (1) Typing on the input. (2) Blur or clicking away from input, which will reset to selected value. (3) A date is selected.
onIsOpenChange(isOpen: boolean) => void
Callback when popup open state changes.
The event that triggers opening the popup is the same as Balloon component's - either click or keyboard arrow down. Closing is triggered when a date is selected.
onModeChange(mode: CalendarModes) => void
Callback when calendar mode changes.
onSelect(value: Dayjs) => void
Callback when a date is selected. Note that this is different from onChange because onSelect is triggered even when the currently selected date is selected again.
parseDate(inputValue: string) => Dayjs(value: string) => dayjs(value, dateFormat, true)
Callback to convert inputValue to value
popupElementReactElement<any, any><DatePickerPopup />
Customizing popup. Normally, how you use this prop is passing DatePickerPopup with some additional props.
todayDayjsdayjs()
Can be used to customize current day. Helpful for testing to keep the result consistent.
valueDayjs
Controlled selected date. Pass null to indicate no date is selected, but still controlled.
DatePickerActions
Prop nameTypeDefaultDescription
asany
Tag or component, but a simple tag (i.e. built-in components, e.g. div, span) is recommended.
heightnumber
DatePickerCalendar
Prop nameTypeDefaultDescription
asany
Tag or component, but a simple tag (i.e. built-in components, e.g. div, span) is recommended.
dateDayjs
dateFooterReactNode
dateHeaderReactNode
dateViewPropsViewProps
immediateboolean
initialDateDayjs
initialModeCalendarModes
modeCalendarModes
monthFooterReactNode
monthHeaderReactNode
monthViewPropsViewProps
onDateChange(date: Dayjs) => void
onModeChange(mode: CalendarModes) => void
onPreviousModeChange(mode: CalendarModes) => void
previousModeCalendarModes
renderDate(props: RenderCalendarDateOptions, defaultCell: ReactElement<CalendarDateCellProps, any>) => ReactNode(props: RenderCalendarDateOptions) => <DatePickerDateCell {...props} />
renderDay(props: RenderDayOptions, defaultCell: ReactElement<RenderDayOptions, any>) => ReactNode
renderMonth(props: RenderCalendarMonthOptions, defaultCell: ReactElement<CalendarMonthCellProps, any>) => ReactNode(props: RenderCalendarMonthOptions) => <DatePickerMonthCell {...props} />
renderYear(props: RenderCalendarYearOptions, defaultCell: ReactElement<CalendarYearCellProps, any>) => ReactNode(props: RenderCalendarYearOptions) => <DatePickerYearCell {...props} />
startOfWeekDay
Accepts numbers from 0 (Sunday) to 6 (Saturday).
todayDayjs
yearFooterReactNode
yearHeaderReactNode
yearViewPropsViewProps
DatePickerDateCell
Prop nameTypeDefaultDescription
asany
Tag or component, but a simple tag (i.e. built-in components, e.g. div, span) is recommended.
autoFocusboolean
closeOnClickbooleantrue
dateDayjs
disableGridboolean
disabledboolean
Equivalent to button's disabled property.
keyboardClickKeysstring[]
onBlurFocusEventHandler<HTMLDivElement>
onClickMouseEventHandler<HTMLDivElement>
onGridFocus() => void
onKeyDownKeyboardEventHandler<HTMLDivElement>
onKeyUpKeyboardEventHandler<HTMLDivElement>
onMouseDownMouseEventHandler<HTMLDivElement>
onMouseLeaveMouseEventHandler<HTMLDivElement>
onMouseUpMouseEventHandler<HTMLDivElement>
onReleaseEventHandler<SyntheticEvent<HTMLDivElement, Event>>
Callback that's triggered after click i.e. mouseup and keyup of enter or space.
onTouchEndTouchEventHandler<HTMLDivElement>
onTouchStartTouchEventHandler<HTMLDivElement>
preventScrollboolean
rangeRange
startOfWeekDay
todayDayjs
typeDateTypes
variantCellVariants
DatePickerFooter
Prop nameTypeDefaultDescription
asany
Tag or component, but a simple tag (i.e. built-in components, e.g. div, span) is recommended.
DatePickerIcon
Prop nameTypeDefaultDescription
asvoid | WebTarget
Tag or component, but a simple tag (i.e. built-in components, e.g. div, span) is recommended.
forwardedAsvoid | WebTarget
themeDefaultTheme
DatePickerInput
Prop nameTypeDefaultDescription
asany
Tag or component, but a simple tag (i.e. built-in components, e.g. div, span) is recommended.
autoComplete"on" | "off" | "nope"
autoformatboolean
clearableboolean
defaultValuestring
@deprecated use initialValue
disabledboolean
fullWidthboolean
width: 100% is too troublesome to handle with custom css because of the nesting
initialValuestring
invalidboolean
leftElementReactNode
leftElementContainerPropsHTMLAttributes<HTMLDivElement> & { ref?: MutableRefObject<HTMLDivElement>; }
onChange(e: ChangeEvent<HTMLInputElement>) => void
onTextChange(val: string) => void
placeholderReactNode
readOnlyboolean
rightElementReactNode
rightElementContainerPropsHTMLAttributes<HTMLDivElement> & { ref?: MutableRefObject<HTMLDivElement>; }
type"number" | "text" | "password"
valuestring
wrapperPropsWrapperProps
DatePickerMonthCell
Prop nameTypeDefaultDescription
asany
Tag or component, but a simple tag (i.e. built-in components, e.g. div, span) is recommended.
autoFocusboolean
disableDateModeboolean
disableGridboolean
disabledboolean
Equivalent to button's disabled property.
keyboardClickKeysstring[]
monthDayjs
onBlurFocusEventHandler<HTMLDivElement>
onClickMouseEventHandler<HTMLDivElement>
onGridFocus() => void
onKeyDownKeyboardEventHandler<HTMLDivElement>
onKeyUpKeyboardEventHandler<HTMLDivElement>
onMouseDownMouseEventHandler<HTMLDivElement>
onMouseLeaveMouseEventHandler<HTMLDivElement>
onMouseUpMouseEventHandler<HTMLDivElement>
onReleaseEventHandler<SyntheticEvent<HTMLDivElement, Event>>
Callback that's triggered after click i.e. mouseup and keyup of enter or space.
onTouchEndTouchEventHandler<HTMLDivElement>
onTouchStartTouchEventHandler<HTMLDivElement>
preventScrollboolean
rangeRange
todayDayjs
variantCellVariants
DatePickerPopup
Prop nameTypeDefaultDescription
arrowArrowProps
asany
Tag or component, but a simple tag (i.e. built-in components, e.g. div, span) is recommended.
containerHTMLElement
focusOnOpenboolean
immediateboolean
offset[number, number][0, 1]
onComponentBlur() => void
Callback function that will be called when the whole Balloon component is blurred.
placementPlacementsbottom-start
popperOptionsPopperPopperOptions
Options for Popper.js instance
popperUpdateKeystring
shouldKeyDownReturn(e: KeyboardEvent<HTMLDivElement>) => boolean
springConfigPartial<AnimationConfig>
DatePickerPreset
Prop nameTypeDefaultDescription
asany
Tag or component, but a simple tag (i.e. built-in components, e.g. div, span) is recommended.
closeOnClickboolean
colorTypeColorTypesneuBg2nd
Set color based on theme. If color is specified, that prop is used instead of this.
dateDayjs
disabledboolean
Equivalent to button's disabled property.
keyboardClickKeysstring[]
leftIconReactNode
Element before the label. Equivalent to element on the label with some margin.
loadingboolean
onBlurFocusEventHandler<HTMLDivElement>
onClickMouseEventHandler<HTMLDivElement>
onKeyDownKeyboardEventHandler<HTMLDivElement>
onKeyUpKeyboardEventHandler<HTMLDivElement>
onMouseDownMouseEventHandler<HTMLDivElement>
onMouseLeaveMouseEventHandler<HTMLDivElement>
onMouseUpMouseEventHandler<HTMLDivElement>
onReleaseEventHandler<SyntheticEvent<HTMLDivElement, Event>>
Callback that's triggered after click i.e. mouseup and keyup of enter or space.
onTouchEndTouchEventHandler<HTMLDivElement>
onTouchStartTouchEventHandler<HTMLDivElement>
radiusnumber
rightIconReactNode
Element after the label. Equivalent to element on the label with some margin.
sizeButtonSizes
variantButtonVariants
Prefers naming it as variant because type is a known button html property.
DatePickerYearCell
Prop nameTypeDefaultDescription
asany
Tag or component, but a simple tag (i.e. built-in components, e.g. div, span) is recommended.
autoFocusboolean
disableGridboolean
disabledboolean
Equivalent to button's disabled property.
keyboardClickKeysstring[]
onBlurFocusEventHandler<HTMLDivElement>
onClickMouseEventHandler<HTMLDivElement>
onGridFocus() => void
onKeyDownKeyboardEventHandler<HTMLDivElement>
onKeyUpKeyboardEventHandler<HTMLDivElement>
onMouseDownMouseEventHandler<HTMLDivElement>
onMouseLeaveMouseEventHandler<HTMLDivElement>
onMouseUpMouseEventHandler<HTMLDivElement>
onReleaseEventHandler<SyntheticEvent<HTMLDivElement, Event>>
Callback that's triggered after click i.e. mouseup and keyup of enter or space.
onTouchEndTouchEventHandler<HTMLDivElement>
onTouchStartTouchEventHandler<HTMLDivElement>
preventScrollboolean
rangeRange
todayDayjs
typeYearTypes
variantCellVariants
yearDayjs
MonthPicker
Prop nameTypeDefaultDescription
clearInvalidInputOnBlurboolean
Set to true to automatically clear input when the whole component is blurred.
dateDayjs
Controlled current calendar date, month, or year. This prop is also used to manage focus when using keyboard arrow navigation.
dateFormatstringYYYY/MM
Dayjs format to display from selected date, and parse input to autoselect date when the parse is valid.
disabledboolean
displayDate(value: Dayjs) => string
Callback to convert value to inputValue
initialDateDayjs
Uncontrolled current calendar date, month, or year. This prop's default depends on value initialized.
initialInputValuestring
Uncontrolled input value. In this component, normally you would want to use controlled inputValue instead.
initialIsOpenboolean
Uncontrolled of popup open state.
initialModeCalendarModesmonth
Uncontrolled calendar mode.
initialValueDayjs
Uncontrolled selected date. In this component, normally you would want to use controlled value instead.
inputElementReactElement<any, any>
Customizing input. Normally, how you use this prop is passing DatePickerInput with some additional props.
inputValuestring
Controlled input value. You can think of this prop as text representation of value using dateFormat.
isMonthDisabled(month: Dayjs) => boolean() => false
Disable input, date selection, and opening popup.
isOpenboolean
Controlled of popup open state.
isYearDisabled(date: Dayjs) => boolean() => false
mode"month" | "year"
Controlled calendar mode.
onChange(value: Dayjs) => void
Callback when selected date changes. Note that this is different from onSelect because onChange is not triggered when the currently selected date is selected.
onDateChange(date: Dayjs) => void
Callback when current calendar date changes.
Generally, this prop is triggered when: (1) Navigating calendar using arrow next/previous month, year, or decade. (2) Keyboard date navigation. (3) Input changes that's valid. (4) Opening the popup.
onInputChange(inputValue: string) => void
Callback when input value changes.
Generally, it's triggered by: (1) Typing on the input. (2) Blur or clicking away from input, which will reset to selected value. (3) A date is selected.
onIsOpenChange(isOpen: boolean) => void
Callback when popup open state changes.
The event that triggers opening the popup is the same as Balloon component's - either click or keyboard arrow down. Closing is triggered when a date is selected.
onModeChange(mode: CalendarModes) => void
Callback when calendar mode changes.
onSelect(value: Dayjs) => void
Callback when a date is selected. Note that this is different from onChange because onSelect is triggered even when the currently selected date is selected again.
parseDate(inputValue: string) => Dayjs
Callback to convert inputValue to value
popupElementReactElement<any, any><MonthPickerPopup />
Customizing popup. Normally, how you use this prop is passing DatePickerPopup with some additional props.
todayDayjs
Can be used to customize current day. Helpful for testing to keep the result consistent.
valueDayjs
Controlled selected date. Pass null to indicate no date is selected, but still controlled.
MonthPickerCalendar
Prop nameTypeDefaultDescription
asany
Tag or component, but a simple tag (i.e. built-in components, e.g. div, span) is recommended.
dateDayjs
dateFooterReactNode
dateViewPropsViewProps
immediateboolean
initialDateDayjs
initialModeCalendarModes
modeCalendarModes
monthFooterReactNode
monthHeaderReactNode
monthViewPropsViewProps
onDateChange(date: Dayjs) => void
onModeChange(mode: CalendarModes) => void
onPreviousModeChange(mode: CalendarModes) => void
previousModeCalendarModes
renderMonth(props: RenderCalendarMonthOptions, defaultCell: ReactElement<CalendarMonthCellProps, any>) => ReactNode(props: RenderCalendarMonthOptions) => <MonthPickerMonthCell {...props} />
renderYear(props: RenderCalendarYearOptions, defaultCell: ReactElement<CalendarYearCellProps, any>) => ReactNode
startOfWeekDay
Accepts numbers from 0 (Sunday) to 6 (Saturday).
todayDayjs
yearFooterReactNode
yearHeaderReactNode
yearViewPropsViewProps
MonthPickerMonthCell
Prop nameTypeDefaultDescription
asany
Tag or component, but a simple tag (i.e. built-in components, e.g. div, span) is recommended.
autoFocusboolean
closeOnClickbooleantrue
disableDateModeboolean
disableGridboolean
disabledboolean
Equivalent to button's disabled property.
keyboardClickKeysstring[]
monthDayjs
onBlurFocusEventHandler<HTMLDivElement>
onClickMouseEventHandler<HTMLDivElement>
onGridFocus() => void
onKeyDownKeyboardEventHandler<HTMLDivElement>
onKeyUpKeyboardEventHandler<HTMLDivElement>
onMouseDownMouseEventHandler<HTMLDivElement>
onMouseLeaveMouseEventHandler<HTMLDivElement>
onMouseUpMouseEventHandler<HTMLDivElement>
onReleaseEventHandler<SyntheticEvent<HTMLDivElement, Event>>
Callback that's triggered after click i.e. mouseup and keyup of enter or space.
onTouchEndTouchEventHandler<HTMLDivElement>
onTouchStartTouchEventHandler<HTMLDivElement>
preventScrollboolean
rangeRange
todayDayjs
variantCellVariants
MonthPickerPopup
Prop nameTypeDefaultDescription
arrowArrowProps
asany
Tag or component, but a simple tag (i.e. built-in components, e.g. div, span) is recommended.
containerHTMLElement
focusOnOpenboolean
immediateboolean
offset[number, number]
onComponentBlur() => void
Callback function that will be called when the whole Balloon component is blurred.
placementPlacements
popperOptionsPopperPopperOptions
Options for Popper.js instance
popperUpdateKeystring
shouldKeyDownReturn(e: KeyboardEvent<HTMLDivElement>) => boolean
springConfigPartial<AnimationConfig>
YearPicker
Prop nameTypeDefaultDescription
clearInvalidInputOnBlurboolean
Set to true to automatically clear input when the whole component is blurred.
dateDayjs
Controlled current calendar date, month, or year. This prop is also used to manage focus when using keyboard arrow navigation.
dateFormatstringYYYY
Dayjs format to display from selected date, and parse input to autoselect date when the parse is valid.
disabledboolean
displayDate(value: Dayjs) => string
Callback to convert value to inputValue
initialDateDayjs
Uncontrolled current calendar date, month, or year. This prop's default depends on value initialized.
initialInputValuestring
Uncontrolled input value. In this component, normally you would want to use controlled inputValue instead.
initialIsOpenboolean
Uncontrolled of popup open state.
initialValueDayjs
Uncontrolled selected date. In this component, normally you would want to use controlled value instead.
inputElementReactElement<any, any>
Customizing input. Normally, how you use this prop is passing DatePickerInput with some additional props.
inputValuestring
Controlled input value. You can think of this prop as text representation of value using dateFormat.
isMonthDisabled(date: Dayjs) => boolean
Disable input, date selection, and opening popup.
isOpenboolean
Controlled of popup open state.
isYearDisabled(month: Dayjs) => boolean() => false
onChange(value: Dayjs) => void
Callback when selected date changes. Note that this is different from onSelect because onChange is not triggered when the currently selected date is selected.
onDateChange(date: Dayjs) => void
Callback when current calendar date changes.
Generally, this prop is triggered when: (1) Navigating calendar using arrow next/previous month, year, or decade. (2) Keyboard date navigation. (3) Input changes that's valid. (4) Opening the popup.
onInputChange(inputValue: string) => void
Callback when input value changes.
Generally, it's triggered by: (1) Typing on the input. (2) Blur or clicking away from input, which will reset to selected value. (3) A date is selected.
onIsOpenChange(isOpen: boolean) => void
Callback when popup open state changes.
The event that triggers opening the popup is the same as Balloon component's - either click or keyboard arrow down. Closing is triggered when a date is selected.
onSelect(value: Dayjs) => void
Callback when a date is selected. Note that this is different from onChange because onSelect is triggered even when the currently selected date is selected again.
parseDate(inputValue: string) => Dayjs
Callback to convert inputValue to value
popupElementReactElement<any, any><YearPickerPopup />
Customizing popup. Normally, how you use this prop is passing DatePickerPopup with some additional props.
todayDayjs
Can be used to customize current day. Helpful for testing to keep the result consistent.
valueDayjs
Controlled selected date. Pass null to indicate no date is selected, but still controlled.
YearPickerCalendar
Prop nameTypeDefaultDescription
asany
Tag or component, but a simple tag (i.e. built-in components, e.g. div, span) is recommended.
dateDayjs
dateFooterReactNode
dateViewPropsViewProps
immediateboolean
initialDateDayjs
initialModeCalendarModes
modeCalendarModes
monthFooterReactNode
monthViewPropsViewProps
onDateChange(date: Dayjs) => void
onModeChange(mode: CalendarModes) => void
onPreviousModeChange(mode: CalendarModes) => void
previousModeCalendarModes
renderYear(props: RenderCalendarYearOptions, defaultCell: ReactElement<CalendarYearCellProps, any>) => ReactNode(props: RenderCalendarYearOptions) => <YearPickerYearCell {...props} />
startOfWeekDay
Accepts numbers from 0 (Sunday) to 6 (Saturday).
todayDayjs
yearFooterReactNode
yearHeaderReactNode
yearViewPropsViewProps
YearPickerPopup
Prop nameTypeDefaultDescription
arrowArrowProps
asany
Tag or component, but a simple tag (i.e. built-in components, e.g. div, span) is recommended.
containerHTMLElement
focusOnOpenboolean
immediateboolean
offset[number, number]
onComponentBlur() => void
Callback function that will be called when the whole Balloon component is blurred.
placementPlacements
popperOptionsPopperPopperOptions
Options for Popper.js instance
popperUpdateKeystring
shouldKeyDownReturn(e: KeyboardEvent<HTMLDivElement>) => boolean
springConfigPartial<AnimationConfig>
YearPickerYearCell
Prop nameTypeDefaultDescription
asany
Tag or component, but a simple tag (i.e. built-in components, e.g. div, span) is recommended.
autoFocusboolean
closeOnClickbooleantrue
disableGridboolean
disabledboolean
Equivalent to button's disabled property.
keyboardClickKeysstring[]
onBlurFocusEventHandler<HTMLDivElement>
onClickMouseEventHandler<HTMLDivElement>
onGridFocus() => void
onKeyDownKeyboardEventHandler<HTMLDivElement>
onKeyUpKeyboardEventHandler<HTMLDivElement>
onMouseDownMouseEventHandler<HTMLDivElement>
onMouseLeaveMouseEventHandler<HTMLDivElement>
onMouseUpMouseEventHandler<HTMLDivElement>
onReleaseEventHandler<SyntheticEvent<HTMLDivElement, Event>>
Callback that's triggered after click i.e. mouseup and keyup of enter or space.
onTouchEndTouchEventHandler<HTMLDivElement>
onTouchStartTouchEventHandler<HTMLDivElement>
preventScrollboolean
rangeRange
todayDayjs
typeYearTypes
variantCellVariants
yearDayjs
    Example
    Example
    Basic Usage
    Basic Usage
    Formatting date
    Formatting date
    Using parseDate and displayDate
    Using parseDate and displayDate
    Disabling individual dates
    Disabling individual dates
    onChange vs onSelect
    onChange vs onSelect
    More customizations
    More customizations
    Accessibility
    Accessibility
    Relevant components
    Relevant components
    References
    References
    API
    API
    DatePicker
    DatePicker
    DatePickerActions
    DatePickerActions
    DatePickerCalendar
    DatePickerCalendar
    DatePickerDateCell
    DatePickerDateCell
    DatePickerFooter
    DatePickerFooter
    DatePickerIcon
    DatePickerIcon
    DatePickerInput
    DatePickerInput
    DatePickerMonthCell
    DatePickerMonthCell
    DatePickerPopup
    DatePickerPopup
    DatePickerPreset
    DatePickerPreset
    DatePickerYearCell
    DatePickerYearCell
    MonthPicker
    MonthPicker
    MonthPickerCalendar
    MonthPickerCalendar
    MonthPickerMonthCell
    MonthPickerMonthCell
    MonthPickerPopup
    MonthPickerPopup
    YearPicker
    YearPicker
    YearPickerCalendar
    YearPickerCalendar
    YearPickerPopup
    YearPickerPopup
    YearPickerYearCell
    YearPickerYearCell
Coral is a thoroughly developed design system widely adopted by developers and designers for creating beautiful and user-friendly Sea internal products.

Copyright © 2018-2025 Sea Labs