Skip to content

[BUG] dcc.DatePickerRange class removed for first date after max_date_allowed #3451

Description

@rzvcs

Describe your context
I use dcc.DatePickerRange and max_date_allowed with CSS override of class CalendarDay__blocked_out_of_range to set a background for the dates beyond maximum. This helps our UX well. However, using the calendar to select a new range removes this class for the next date after max_date_allowed.

  • replace the result of pip list | grep dash below
dash 3.2.0
  • if frontend related, tell us your Browser, Version and OS

    • OS: Windows 11 24H2 26100.6584
    • Browser: Chrome
    • Version: 140.0.7339.128

Describe the bug

Using dcc.DatePickerRange with max_date_allowed sets css class CalendarDay__blocked_out_of_range for days beyond the max_date_allowed. When clicking on a new start or end date in the calendar, the class is removed for date == max date allowed. Closing the calendar and opening it again repeats the whole behaviour.

Use sample code in main.py:

fromdatetimeimportdatefromdashimportDash, html, dccapp=Dash(
assets_folder="./assets"
)
STRFORMAT="%Y-%m-%d"app.layout= [
html.Div(
children=[
'Repro', dcc.DatePickerRange(
start_date=date(2025,9,21).strftime(STRFORMAT),
end_date=date(2025,9,25).strftime(STRFORMAT),
max_date_allowed=date(2025,9,26).strftime(STRFORMAT),
display_format='YYYY-MM-DD',
id="my-date-range-picker",
updatemode="bothdates"
)
]
)
]
if__name__=='__main__':
app.run(debug=True)

Create a folder assets at main.py location and add style.css:

.CalendarDay__blocked_out_of_range {
background-color:rgba(240,240,240,1) !important;
}

Expected behavior

CSS Class should still be enforced.

Screenshots
Open the calendar picker and the 27th has the class applied:

Image

Click on a new date and the 27th doesn't have the class applied:

Image

Metadata

Metadata

Assignees

Labels

P1needed for current cyclebugsomething broken

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions