DatePicker Public Interface

All attributes, methods, events, and callbacks available on the <web-daterangepicker> element.

Public API

Attributes, methods, events, and callbacks

Attributes
AttributeTypeDefault
auto-closenever | selection | applyselection
calendar-open-triggerfocus | typing | manualfocus
calendar-placementstring (Floating UI)bottom-start
date-format-maskstringYYYY-MM-DD
disabledbooleanfalse
disabled-datesstring (comma-sep ISO dates)-
disabled-dates-handlingallow | prevent | block | split | individualallow
disabled-weekdaysstring (comma-sep)-
enable-transitionsbooleanfalse
display-format-maskstring-
grid-columnsnumber-
grid-rowsnumber-
highlight-disabled-in-rangebooleantrue
initial-datestring (YYYY-MM-DD)today
input-sizexs | sm | md | lg | xlmd
localestring | autoauto
max-datestring (YYYY-MM-DD)-
min-datestring (YYYY-MM-DD)-
month-layouthorizontal | gridhorizontal
placeholderstring-
mobile-modal-breakpointCSS length-
mobile-modal-min-heightCSS length-
positioning-modefloating | inline | modalfloating
rolling-month-rangestring (MM-MM)01-12
rolling-year-rangestring (YYYY or YYYY-YYYY)±1 year
selection-modesingle | range | multiplesingle
show-apply-buttonbooleanauto
show-clear-buttonbooleantrue
show-debug-infobooleanfalse
show-summarybooleantrue
show-today-buttonbooleantrue
unified-header-interactivebooleanfalse
unified-navigationbooleanfalse
unified-navigation-anchor-indexnumber0
valuestring-
visible-months-countnumber1
week-start-dayauto | 0-6auto
Member-mapping attributes (override specialDates property names)
date-memberstringdate
badge-text-memberstringbadgeText
badge-class-memberstringbadgeClass
badge-tooltip-memberstringbadgeTooltip
day-class-memberstringdayClass
day-tooltip-memberstringdayTooltip
is-disabled-memberstringisDisabled
Methods
MethodReturnsDescription
clearSelection()voidClear current selection
getInputValue()stringGet input value as string
hide()voidHide the calendar popup
hideMessage()voidHide the message overlay
setInputValue(value)voidSet input value
setMonthNames(names) deprecatedvoidUse the monthNames property setter instead
setRollingItemAlignment(alignment)voidSet rolling selector alignment
show()voidShow the calendar popup
showMessage(html, type?, autoHide?)voidDisplay message overlay. type: error | warning | info | success; autoHide: milliseconds
toggle()voidToggle calendar visibility
Selection state is exposed as properties, not methods: read/write selectedDate, selectedDates, selectedRanges, isOpen, value.
Events & Callbacks
Event/CallbackTypeDescription
DOM Events
date-selectCustomEventFired when a date is selected (single mode) or a range is committed (range/multiple mode, after Apply if shown). Detail shape varies by selection mode and disabled-dates-handling.
changeCustomEventAlias of date-select — fires alongside it with identical detail.
custom-actionCustomEventFired by any button with data-action="custom" (action buttons or buttons inside showMessage() HTML). Detail contains the button's data-* attributes as camelCase keys.
Note: there are no calendar-show, calendar-hide, date-change, apply, or cancel events. Use isOpen for visibility state, listen for date-select for commits, and use beforeDateSelectCallback to gate selection.
Callback Properties
badgeTooltipCallbackFunctionCustom badge tooltip HTML
beforeDateSelectCallbackFunctionValidate/adjust before selection
beforeMonthChangedCallbackFunctionBulk load metadata before render
customStylesCallbackFunctionInject CSS into Shadow DOM
dayTooltipCallbackFunctionCustom day tooltip HTML
formatSummaryCallbackFunctionCustom summary formatting
getDateMetadataCallbackFunctionReturn DateInfo for custom styling
getMonthHeaderCallbackFunctionCustom individual month header text
getUnifiedHeaderCallbackFunctionCustom unified header text
renderDayCallbackFunctionFull custom day cell rendering
renderDayContentCallbackFunctionAugment default day rendering

Properties (Complex Data & State)

JavaScript-only setters for arrays, objects, and reactive selection state

Complex Data (property-wins)
PropertyType
specialDatesDecoratedDate[]
disabledDates(Date | string)[]
actionButtonsActionButton[]
customStringsPartial<LocaleStrings>
monthNamesstring[] (length 12)
Member-mapping (also available as HTML attributes)
dateMemberstring
badgeTextMemberstring
badgeClassMemberstring
badgeTooltipMemberstring
dayClassMemberstring
dayTooltipMemberstring
isDisabledMemberstring
Reactive Selection State
PropertyTypeNotes
selectedDateDate | nullSingle mode; get/set
selectedDatesDate[]Multiple mode; get/set
selectedRangesDateRange[]Range mode; get/set
isOpenbooleanCalendar visibility; get/set
valuestringFormatted input value; get/set
Precedence Rule

Complex-data properties accept values that can't fit in an HTML attribute (objects, callbacks, Date instances).

Precedence:

  1. If a property is set in JavaScript, the attribute is ignored.
  2. If only the HTML attribute is set (e.g. disabled-dates="2026-12-25"), it is parsed and used.
  3. Property setters survive across attribute changes — the element re-applies them on every re-init.

As of v1.11.0 most setters route through updateOptions() and preserve selection / scroll / focus state. Structural changes (positioningMode, selectionMode, visibleMonthsCount, layout) still trigger a full rebuild.

CSS Custom Properties

Complete CSS custom properties for theming control. Variables are organized into base variables (foundation) and semantic component-specific variables.

Global scale: set --drp-rem (default 10px) on the host element to rescale the entire calendar. Every spacing and font token is calc(N * var(--drp-rem)).
<web-daterangepicker style="--drp-rem: 12px"></web-daterangepicker>

Base Variables

Foundation colors, typography, spacing, and layout properties

Colors & Typography
VariableDefault
Colors
--drp-accent-color#3b82f6
--drp-accent-color-hover#2563eb
--drp-text-color-on-accent#ffffff
--drp-border-color#e5e7eb
--drp-dropdown-bg#ffffff
--drp-primary-bg#f3f4f6
--drp-primary-bg-hover#e5e7eb
--drp-text-primary#111827
--drp-text-secondary#6b7280
Typography
--drp-font-size-2xs10px
--drp-font-size-xs0.75rem
--drp-font-size-sm0.875rem
--drp-font-size-base1rem
--drp-font-size-lg1.125rem
--drp-font-size-xl20px
--drp-font-size-2xl24px
--drp-font-weight-normal400
--drp-font-weight-medium500
--drp-font-weight-semibold600
--drp-line-height-tight1.25
--drp-line-height-normal1.5
--drp-line-height-relaxed1.75
Spacing & Other
VariableDefault
Spacing
--drp-spacing-lg1.5rem
--drp-spacing-md1rem
--drp-spacing-sm0.5rem
--drp-spacing-xl2rem
--drp-spacing-xs0.25rem
Layout / Border Radius
--drp-border-radius-sm4px (day cells, tooltips)
--drp-border-radius-md6px (input, buttons)
--drp-border-radius-lg8px (calendar, selectors)
--drp-border-radiusalias for -md
--drp-border-width-base1px
--drp-border1px solid --drp-border-color
--drp-shadow-xl0 20px 25px...
Transitions
--drp-easing-snappycubic-bezier(...)
--drp-transition-base200ms
--drp-transition-fast150ms
Description

Input Variables

Complete input element styling control

Input Colors
VariableDefault
--drp-input-bg--drp-dropdown-bg
--drp-input-color--drp-text-primary
--drp-input-border--base-input-border
--drp-input-border-hover--base-input-border-hover
--drp-input-border-focus--base-input-border-focus
--drp-input-placeholder-color--drp-text-secondary
--drp-input-bg-disabled--drp-primary-bg
Input Sizes
VariableDefault
--drp-input-size-xs-height--base-input-size-xs-height (31px)
--drp-input-size-sm-height--base-input-size-sm-height (33px)
--drp-input-size-md-height--base-input-size-md-height (35px)
--drp-input-size-lg-height--base-input-size-lg-height (38px)
--drp-input-size-xl-height--base-input-size-xl-height (41px)
Input States
VariableDefault
--drp-input-focus-shadow-colorrgba(59, 130, 246, 0.1)
--drp-input-focus-shadow-size3px
--drp-input-icon-opacity0.5

Day Cell Variables

Day cell colors, states, and interactions

Basic States
VariableDefault
--drp-day-bg-hover--drp-primary-bg
--drp-day-border2px solid transparent
--drp-day-border-hover--drp-accent-color
--drp-day-drag-border2px dashed --drp-day-range-bg
--drp-day-disabled-color--drp-text-secondary
--drp-day-other-month-color--drp-text-secondary
--drp-day-text-color--drp-text-primary
--drp-day-today-border--drp-accent-color
--drp-weekday-color--drp-text-secondary
Selection States
VariableDefault
--drp-day-focused-outline--drp-accent-color
--drp-day-focused-outline-width2px
--drp-day-focused-outline-offset2px
--drp-day-selected-bg--drp-accent-color
--drp-day-selected-bg-hover--drp-accent-color-hover
--drp-day-selected-color--drp-text-color-on-accent
--drp-day-selected-color-hover--drp-day-selected-color
--drp-day-disabled-bgtransparent
--drp-day-disabled-pattern-opacity0.1
Range States
VariableDefault
--drp-day-range-bg--drp-accent-color
--drp-day-range-bg-hover--drp-accent-color-hover
--drp-day-range-color--drp-text-color-on-accent
--drp-day-range-color-hover--drp-day-range-color
--drp-day-in-range-bg-opacity0.15
--drp-day-in-range-hover-bg-opacity0.25
Hover Preview (v1.13)
--drp-day-hover-preview-bg-opacity0.18
--drp-day-hover-preview-invalid-bg-opacity0.18
Drag & Invalid
--drp-day-drag-preview-bg-opacity0.30
--drp-day-drag-preview-edge-bg-opacity0.60
--drp-day-dragging-scale1.1
--drp-day-drag-invalid-bg#ef4444
--drp-day-drag-invalid-bg-opacity0.20
--drp-day-invalid-range-bg--drp-message-error-border
--drp-day-invalid-range-color--drp-text-color-on-accent

Header & Navigation Variables

Header, navigation buttons, and rolling selector

Header
VariableDefault
--drp-header-bg-active--drp-primary-bg-hover
--drp-header-bg-hover--drp-primary-bg
--drp-header-text-color--drp-text-primary
--drp-unified-month-color--drp-text-secondary
--drp-unified-range-bg-hover--drp-primary-bg
--drp-unified-range-text-color--drp-text-primary
Navigation Buttons
VariableDefault
--drp-nav-bg-active--drp-primary-bg-hover
--drp-nav-bg-hover--drp-primary-bg
--drp-nav-border-color--drp-border-color
--drp-nav-border-hover--drp-accent-color
--drp-nav-text-color--drp-text-primary
Rolling Selector
VariableDefault
--drp-rolling-bg--drp-primary-bg
--drp-rolling-border-color--drp-border-color
--drp-rolling-item-bg-hover--drp-primary-bg
--drp-rolling-item-bg-selected--drp-accent-color
--drp-rolling-item-color-selected--drp-text-color-on-accent

Button & Summary Variables

Action buttons and summary section

Button States
VariableDefault
--drp-button-bgtransparent
--drp-button-color--drp-text-primary
--drp-button-bg-hover--drp-primary-bg
--drp-button-border--drp-border
--drp-button-border-color--drp-border-color
--drp-button-border-hover--drp-accent-color
Button Types
VariableDefault
--drp-button-apply-bg--drp-accent-color
--drp-button-apply-bg-hover--drp-accent-color-hover
--drp-button-apply-colorwhite
--drp-button-cancel-color--drp-text-secondary
--drp-button-clear-color--drp-text-secondary
--drp-button-today-color--drp-accent-color
Summary
VariableDefault
--drp-summary-border--drp-border
--drp-summary-border-color--drp-border-color
--drp-summary-count-color--drp-accent-color
--drp-summary-text-color--drp-text-secondary

Badge Variables

Badge styling for special dates

Badge Types
VariableDefaultDescription
--drp-badge-number-bg--drp-accent-colorNumber badge background
--drp-badge-number-color--drp-text-color-on-accentNumber badge text
--drp-badge-count-bg#ef4444Count badge background
--drp-badge-count-color#ffffffCount badge text
--drp-badge-text-bg--drp-text-secondaryText badge background
--drp-badge-text-color#ffffffText badge text
--drp-badge-row-height16pxBadge row height
Controls
Description

Loading & Tooltip Variables

Loading overlay and tooltip styling

Loading Overlay
VariableDefault
--drp-loading-overlay-bgrgba(255, 255, 255, 0.8)
--drp-loading-spinner-color--drp-border-color
--drp-loading-spinner-accent--drp-accent-color
--drp-loading-spinner-size40px
--drp-loading-spinner-border-width4px
Tooltip
VariableDefault
--drp-tooltip-bg#1f2937
--drp-tooltip-text-color#ffffff
--drp-tooltip-line-height1.4
--drp-tooltip-max-width200px
--drp-tooltip-arrow-size8px
Description

Modal Mode Variables

Centered overlay with backdrop (v1.12 — positioning-mode='modal')

Sizing & Backdrop
VariableDefault
--drp-modal-gap16px
--drp-modal-backdrop-bgrgba(0, 0, 0, 0.45)
--drp-modal-transition150ms ease-out
Per-Tier Widths
VariableDefaultViewport
--drp-modal-width-xscalc(100vw − 2× gap)≤ 480px
--drp-modal-width-smcalc(100vw − 2× gap)481–768px
--drp-modal-width-md900px769–1200px
--drp-modal-width-lg1100px≥ 1201px
Description

Message Variables

Inline message overlay colors (error / warning / info / success)

Error & Warning
VariableDefault
--drp-message-error-bg#fef2f2
--drp-message-error-color#991b1b
--drp-message-error-border#fecaca
--drp-message-warning-bg#fffbeb
--drp-message-warning-color#92400e
--drp-message-warning-border#fde68a
Info & Success
VariableDefault
--drp-message-info-bg#eff6ff
--drp-message-info-color#1e40af
--drp-message-info-border#bfdbfe
--drp-message-success-bg#f0fdf4
--drp-message-success-color#166534
--drp-message-success-border#bbf7d0
Description

Layout, Z-Index & Opacity

Calendar dimensions, stacking layers, and opacity tokens

Calendar Dimensions
VariableDefault
--drp-month-min-width280px
--drp-month-min-width-inline250px
--drp-calendar-max-widthcalc(100vw − 2rem)
--drp-grid-columns3
--drp-grid-rows2
Z-Index Layers
VariableDefault
--drp-z-index-dropdown9500
--drp-z-index-modal-backdrop9700
--drp-z-index-modal9800
--drp-z-index-tooltip9999
Opacity Tokens
VariableDefault
--drp-opacity-disabled0.6
--drp-opacity-other-month0.5
--drp-opacity-hover0.8
--drp-opacity-dragging0.7

Weekend & Weekday Hooks (v1.13)

No defaults shipped — pure theming surface for weekend / per-day styling

CSS Hooks

Every day cell carries a numeric weekday attribute and Sat/Sun get an additional modifier class. These have no shipped styling; they exist so you can target weekends or specific days from your own stylesheet (via customStylesCallback).

SelectorMatches
.drp-date-picker__day--weekendSaturday and Sunday cells
.drp-date-picker__day[data-weekday="0"]Sunday (matches Date.prototype.getDay() values 0–6)
// Highlight Sundays in red, Saturdays in dimmed text
el.customStylesCallback = () => `
  .drp-date-picker__day[data-weekday="0"] { color: #dc2626; }
  .drp-date-picker__day[data-weekday="6"] { color: #6b7280; }
`;
Controls
Description