DateRangePicker
DateRangePicker is a standalone surface for choosing a start and end date. By default it shows two consecutive months on wide viewports and falls back to one month on narrow or coarse-pointer viewports.
Anatomy
| Element | Part | Selector |
|---|---|---|
<div> | root | [data-scope="date-range-picker"][data-part="root"]LMBCopy |
<div> | surface | [data-scope="date-range-picker"][data-part="surface"]LMBCopy |
<div> | summary | [data-scope="date-range-picker"][data-part="summary"]LMBCopy |
<span> | prompt | [data-scope="date-range-picker"][data-part="prompt"]LMBCopy |
<div> | endpoints | [data-scope="date-range-picker"][data-part="endpoints"]LMBCopy |
<button> | start-selector | [data-scope="date-range-picker"][data-part="start-selector"]LMBCopy |
<span> | value | [data-scope="date-range-picker"][data-part="value"]LMBCopy |
<button> | end-selector | [data-scope="date-range-picker"][data-part="end-selector"]LMBCopy |
<div> | header | [data-scope="date-range-picker"][data-part="header"]LMBCopy |
<IconButton> | previous-month | [data-scope="date-range-picker"][data-part="previous-month"]LMBCopy |
<Button> | month-switch | [data-scope="date-range-picker"][data-part="month-switch"]LMBCopy |
<IconButton> | next-month | [data-scope="date-range-picker"][data-part="next-month"]LMBCopy |
<IconButton> | previous-year | [data-scope="date-range-picker"][data-part="previous-year"]LMBCopy |
<Button> | year-switch | [data-scope="date-range-picker"][data-part="year-switch"]LMBCopy |
<IconButton> | next-year | [data-scope="date-range-picker"][data-part="next-year"]LMBCopy |
<div> | calendarsconditional | [data-scope="date-range-picker"][data-part="calendars"]LMBCopy |
<section> | calendar-pane | [data-scope="date-range-picker"][data-part="calendar-pane"]LMBCopy |
<div> | calendar-title | [data-scope="date-range-picker"][data-part="calendar-title"]LMBCopy |
<div> | weekdays | [data-scope="date-range-picker"][data-part="weekdays"]LMBCopy |
<span> | weekday | [data-scope="date-range-picker"][data-part="weekday"]LMBCopy |
<div> | grid | [data-scope="date-range-picker"][data-part="grid"]LMBCopy |
<span> | day-cell | [data-scope="date-range-picker"][data-part="day-cell"]LMBCopy |
<button> | day | [data-scope="date-range-picker"][data-part="day"]LMBCopy |
<div> | months | [data-scope="date-range-picker"][data-part="months"]LMBCopy |
<button> | month | [data-scope="date-range-picker"][data-part="month"]LMBCopy |
<span> | list-icon | [data-scope="date-range-picker"][data-part="list-icon"]LMBCopy |
<span> | list-label | [data-scope="date-range-picker"][data-part="list-label"]LMBCopy |
<div> | years | [data-scope="date-range-picker"][data-part="years"]LMBCopy |
<button> | year | [data-scope="date-range-picker"][data-part="year"]LMBCopy |
<div> | actions | [data-scope="date-range-picker"][data-part="actions"]LMBCopy |
Props
| Name | Description | Default | Control |
|---|---|---|---|
idOptional | Optional explicit id for the popover element. string | undefined | undefined | - |
variantOptional | Visual and positioning mode. Auto uses docked layout until a narrow/coarse pointer viewport. DatePickerVariant | undefined | "auto" | - |
calendarsOptional | Number of calendar months to show. Auto shows two months on wide viewports and one on narrow/coarse inputs. DateRangePickerCalendars | undefined | "auto" | - |
anchorNameOptional | CSS anchor name used to position the docked popover. string | undefined | undefined | - |
anchorElementOptional | Element passed to showPopover as the source for focus and dismissal semantics. HTMLElement | undefined | undefined | - |
ariaLabelOptional | Accessible label for the picker surface. string | undefined | "Choose date range" | |
minOptional | Earliest selectable date, formatted as YYYY-MM-DD. string | undefined | undefined | |
maxOptional | Latest selectable date, formatted as YYYY-MM-DD. string | undefined | undefined | |
localeOptional | BCP 47 locale used for month, weekday, and accessibility labels. string | undefined | undefined | - |
firstDayOfWeekOptional | First day of the week, where 0 is Sunday and 6 is Saturday. 0 | 1 | 2 | 3 | 4 | 5 | 6 | undefined | 0 | - |
confirmTextOptional | Text for the confirmation button. string | undefined | "OK" | |
cancelTextOptional | Text for the cancel button. string | undefined | "Cancel" | |
startTextOptional | Text used for the start side of the range. string | undefined | "Start date" | |
endTextOptional | Text used for the end side of the range. string | undefined | "End date" | |
todayOptional | Date treated as today, formatted as YYYY-MM-DD. Useful for deterministic tests. string | undefined | undefined | - |
modelValueOptional | - DateRangePickerModelValue | - | - |
openOptional | - boolean | undefined | false |
Events5
| Name | Type | Description |
|---|---|---|
update:open | [value: boolean] | - |
cancel | [] | - |
update:modelValue | [value: DateRangePickerModelValue] | - |
change | [value: DateRangePickerModelValue] | - |
confirm | [value: DateRangePickerModelValue] | - |
Slots0
No slots documented.
Styling5
| Token | Description |
|---|---|
--md-date-range-picker-docked-container-widthLayoutFallback 45rem | Controls docked container width when two calendars are visible. |
--md-date-range-picker-range-container-colorStateFallback var(--md-sys-color-primary-container) | Controls selected range container color. |
--md-date-range-picker-range-label-text-colorStateFallback var(--md-sys-color-on-primary-container) | Controls selected range label text color. |
--md-date-range-picker-summary-label-text-colorColorFallback var(--md-sys-color-primary) | Controls summary label text color. |
--md-date-range-picker-summary-value-text-colorColorFallback var(--md-sys-color-on-surface) | Controls summary value text color. |