Skip to content

DatePicker theming

Every cosmetic value DatePicker renders is a --rozie-datepicker-* custom property with a built-in fallback, so the component works with zero configuration and stays fully re-skinnable. The structural rules compile per-leaf and are not consumer-overridable — only the values below flow through tokens.

css
.rozie-datepicker {
  --rozie-datepicker-font: inherit;
  --rozie-datepicker-accent: #0066cc;
  --rozie-datepicker-gap: 0.25rem;
  --rozie-datepicker-ring: var(--rozie-datepicker-accent);
}

Tokens

surface

TokenDefault
--rozie-datepicker-fontinherit
--rozie-datepicker-fg#1a1a1a
--rozie-datepicker-bg#fff
--rozie-datepicker-border-width1px
--rozie-datepicker-borderrgba(0, 0, 0, 0.18)
--rozie-datepicker-radius10px
--rozie-datepicker-padding0.75rem

accent — the single color most consumers will set; selected day, today ring + focus ring all derive from it

TokenDefault
--rozie-datepicker-accent#0066cc
TokenDefault
--rozie-datepicker-gap0.25rem
--rozie-datepicker-header-gap0.5rem
--rozie-datepicker-heading-weight600
--rozie-datepicker-heading-size0.95rem
--rozie-datepicker-nav-size2rem
--rozie-datepicker-nav-bgtransparent
--rozie-datepicker-nav-radius6px
--rozie-datepicker-hover-bgrgba(0, 0, 0, 0.05)

focus ring

TokenDefault
--rozie-datepicker-ringvar(--rozie-datepicker-accent)
--rozie-datepicker-ring-width2px
--rozie-datepicker-ring-offset1px

grid — the single-month day grid; also covers the gap between grids when numberOfMonths > 1 renders them side by side

TokenDefault
--rozie-datepicker-cell-size2.25rem
--rozie-datepicker-cell-gap0.125rem
--rozie-datepicker-weekday-height1.75rem
--rozie-datepicker-weekday-size0.72rem
--rozie-datepicker-weekday-weight600
--rozie-datepicker-weekday-fgrgba(0, 0, 0, 0.5)
--rozie-datepicker-month-gap1rem

day cell

TokenDefault
--rozie-datepicker-day-bgtransparent
--rozie-datepicker-day-border-width1px
--rozie-datepicker-day-radius6px
--rozie-datepicker-day-size0.85rem
--rozie-datepicker-outside-fgrgba(0, 0, 0, 0.35)

today + selected

TokenDefault
--rozie-datepicker-today-bordervar(--rozie-datepicker-accent)
--rozie-datepicker-selected-fg#fff
--rozie-datepicker-selected-bgvar(--rozie-datepicker-accent)
--rozie-datepicker-selected-hover-bgcolor-mix(in srgb, var(--rozie-datepicker-selected-bg) 85%, #000)
--rozie-datepicker-selected-weight600

disabled

TokenDefault
--rozie-datepicker-disabled-opacity0.4

drill/zoom — the month-picker and year-picker grids reached via the heading click (calendar drills down/up a level)

TokenDefault
--rozie-datepicker-drill-cell-height2.5rem
--rozie-datepicker-drill-cell-size0.85rem
--rozie-datepicker-drill-cols3
--rozie-datepicker-drill-gap0.25rem
--rozie-datepicker-drill-header-gap0.5rem
--rozie-datepicker-drill-label-bgtransparent
--rozie-datepicker-drill-label-padding0.15rem 0.5rem
TokenDefault
--rozie-datepicker-footer-bgtransparent
--rozie-datepicker-footer-fginherit
--rozie-datepicker-footer-gap0.25rem
--rozie-datepicker-footer-gap-top0.5rem
--rozie-datepicker-footer-padding0.2rem 0.6rem
--rozie-datepicker-footer-radius6px
--rozie-datepicker-footer-size0.78rem

presets — the quick-range chip row

TokenDefault
--rozie-datepicker-preset-bgtransparent
--rozie-datepicker-preset-fginherit
--rozie-datepicker-preset-padding0.2rem 0.6rem
--rozie-datepicker-preset-radius999px
--rozie-datepicker-preset-size0.78rem
--rozie-datepicker-presets-gap0.25rem
--rozie-datepicker-presets-gap-top0.5rem

range/preview — the range-selection highlight painted between the start and end day cells while dragging or hovering

TokenDefault
--rozie-datepicker-preview-bgrgba(0, 102, 204, 0.08)
--rozie-datepicker-range-bgrgba(0, 102, 204, 0.14)
--rozie-datepicker-range-endpoint-bgvar(--rozie-datepicker-selected-bg, var(--rozie-datepicker-accent, #0066cc))

Design-system bridges

Each package ships token presets that map DatePicker's tokens onto a known design system's published CSS variables — import base.css first, then a bridge:

ts
import '@rozie-ui/date-picker-react/themes/base.css';
import '@rozie-ui/date-picker-react/themes/bootstrap.css';
import '@rozie-ui/date-picker-react/themes/material.css';
import '@rozie-ui/date-picker-react/themes/shadcn.css';

See also

Pre-1.0 — APIs may change between minor versions.