Styling and classNames
Use classNames when you want to restyle the internal parts while keeping the
default component tree.
How it works
Each key in classNames maps to one internal calendar part. The value is a
string of classes that gets appended to the default calendar__* class.
<Calendar
classNames={{
DayContent: "text-orange-600",
DaySelection: "bg-orange-500/20",
}}
/>
Styling with classNames
Layer your own classes onto the internal parts without replacing components.
Loading interactive preview...
const classNames = {
CalendarContainer: "booking-demo booking-demo--sunrise",
MonthContent: "booking-demo__month",
MonthArrowBack: "booking-demo__arrow",
MonthArrowNext: "booking-demo__arrow",
WeekContent: "booking-demo__weekday",
DayContainer: "booking-demo__day",
DayContent: "booking-demo__day-content",
DaySelection: "booking-demo__selection",
DayReservation: "booking-demo__reservation",
DayToday: "booking-demo__today",
};
<Calendar
range
selected={selected}
reserved={reserved}
classNames={classNames}
onChange={setSelected}
/>;
Available keys
CalendarContainerMonthContainerMonthContentMonthArrowBackMonthArrowNextWeekContainerWeekContentDaysContainerDayContainerDayContentDaySelectionDayReservationDayToday
When to stop at classNames
classNames is the right tool when you need:
- visual theming
- spacing or typography changes
- custom hover and selection treatment
- design-system utility classes such as Tailwind
Move to Custom Components only when the markup itself needs to change.