timepicker-ui
4.6.0GitHub
timepicker-ui
API Reference / CSS Variables

CSS Variables

All 144 --dp-ui-* variables of @pglejzer/datepicker-ui, the companion of timepicker-ui, with their default values.

System tokens follow the Material Design 3 roles. Component tokens derive from them, so changing --dp-ui-sys-color-primary recolors the selected day, the buttons and the focus ring at once. The defaults below are the values of the basic theme in main.css. The other themes set their own values.

Set a custom theme

#

Add your own selector with ui.cssClass and set variables on it. The class is added to the surface root, which is the <dialog> for a modal and the .dp-ui__container element otherwise. Open the field to try the teal theme from the rule below.

index.css
.brand {
--dp-ui-sys-color-primary: #006a6a;
--dp-ui-sys-color-on-primary: #ffffff;
--dp-ui-sys-color-secondary-container: #cce8e7;
--dp-ui-container-shape-docked: 8px;
}
Custom theme
import DatepickerUI from "@pglejzer/datepicker-ui";
import "@pglejzer/datepicker-ui/index.css";
new DatepickerUI("#date", { ui: { cssClass: "brand" } }).create();

The classes you can combine with these variables are on CSS Classes, and the themes are on Themes.

Color roles

#

System tokens follow the Material Design 3 roles and are set with light-dark(), so the first value is the light scheme and the second the dark one.

VariableDefault
--dp-ui-sys-color-surface-container-highlight-dark(#ece6f0, #2b2930)
--dp-ui-sys-color-surface-variantlight-dark(#e7e0ec, #49454f)
--dp-ui-sys-color-on-surfacelight-dark(#1d1b20, #e6e0e9)
--dp-ui-sys-color-on-surface-variantlight-dark(#49454f, #cac4d0)
--dp-ui-sys-color-primarylight-dark(#6750a4, #d0bcff)
--dp-ui-sys-color-on-primarylight-dark(#ffffff, #381e72)
--dp-ui-sys-color-secondary-containerlight-dark(#e8def8, #4a4458)
--dp-ui-sys-color-on-secondary-containerlight-dark(#4a4458, #e8def8)
--dp-ui-sys-color-on-primary-containerlight-dark(#4f378b, #eaddff)
--dp-ui-sys-color-outlinelight-dark(#79747e, #938f99)
--dp-ui-sys-color-outline-variantlight-dark(#cac4d0, #49454f)
--dp-ui-sys-color-errorlight-dark(#b3261e, #f2b8b5)
--dp-ui-sys-color-scrim#000000

Shape

#
VariableDefault
--dp-ui-sys-shape-corner-none0
--dp-ui-sys-shape-corner-extra-small4px
--dp-ui-sys-shape-corner-small8px
--dp-ui-sys-shape-corner-medium12px
--dp-ui-sys-shape-corner-large16px
--dp-ui-sys-shape-corner-extra-large28px
--dp-ui-sys-shape-corner-full9999px

Typography

#

--dp-ui-sys-typescale-font sets the family. Each scale below has a font, size, line height, weight and tracking variable.

VariableDefault
--dp-ui-sys-typescale-fontRoboto, system-ui, sans-serif
--dp-ui-sys-typescale-body-large-fontvar(--dp-ui-sys-typescale-font)
--dp-ui-sys-typescale-body-large-size16px
--dp-ui-sys-typescale-body-large-line-height24px
--dp-ui-sys-typescale-body-large-weight400
--dp-ui-sys-typescale-body-large-tracking0.5px
--dp-ui-sys-typescale-body-small-fontvar(--dp-ui-sys-typescale-font)
--dp-ui-sys-typescale-body-small-size12px
--dp-ui-sys-typescale-body-small-line-height16px
--dp-ui-sys-typescale-body-small-weight400
--dp-ui-sys-typescale-body-small-tracking0.4px
--dp-ui-sys-typescale-label-large-fontvar(--dp-ui-sys-typescale-font)
--dp-ui-sys-typescale-label-large-size14px
--dp-ui-sys-typescale-label-large-line-height20px
--dp-ui-sys-typescale-label-large-weight500
--dp-ui-sys-typescale-label-large-tracking0.1px
--dp-ui-sys-typescale-label-small-fontvar(--dp-ui-sys-typescale-font)
--dp-ui-sys-typescale-label-small-size11px
--dp-ui-sys-typescale-label-small-line-height16px
--dp-ui-sys-typescale-label-small-weight500
--dp-ui-sys-typescale-label-small-tracking0.5px
--dp-ui-sys-typescale-title-large-fontvar(--dp-ui-sys-typescale-font)
--dp-ui-sys-typescale-title-large-size22px
--dp-ui-sys-typescale-title-large-line-height28px
--dp-ui-sys-typescale-title-large-weight400
--dp-ui-sys-typescale-title-large-tracking0
--dp-ui-sys-typescale-headline-large-fontvar(--dp-ui-sys-typescale-font)
--dp-ui-sys-typescale-headline-large-size32px
--dp-ui-sys-typescale-headline-large-line-height40px
--dp-ui-sys-typescale-headline-large-weight400
--dp-ui-sys-typescale-headline-large-tracking0

State layers

#
VariableDefault
--dp-ui-sys-state-layer-hover-opacity0.08
--dp-ui-sys-state-layer-focus-opacity0.1
--dp-ui-sys-state-layer-pressed-opacity0.1
--dp-ui-sys-state-disabled-opacity0.38

Elevation

#
VariableDefault
--dp-ui-sys-elevation-level30 1px 3px rgba(0, 0, 0, 0.3), 0 4px 8px 3px rgba(0, 0, 0, 0.15)

Container

#
VariableDefault
--dp-ui-container-colorvar(--dp-ui-sys-color-surface-container-high)
--dp-ui-container-text-colorvar(--dp-ui-sys-color-on-surface)
--dp-ui-container-width360px
--dp-ui-container-shape-dockedvar(--dp-ui-sys-shape-corner-large)
--dp-ui-container-shape-modalvar(--dp-ui-sys-shape-corner-extra-large)
--dp-ui-container-elevationvar(--dp-ui-sys-elevation-level3)
--dp-ui-container-backdrop-filternone
--dp-ui-container-side-padding12px

Scrim and divider

#
VariableDefault
--dp-ui-scrim-colorvar(--dp-ui-sys-color-scrim)
--dp-ui-scrim-opacity0.32
--dp-ui-divider-colorvar(--dp-ui-sys-color-outline-variant)
#
VariableDefault
--dp-ui-header-height-docked64px
--dp-ui-header-height-modal120px
--dp-ui-header-supporting-text-colorvar(--dp-ui-sys-color-on-surface-variant)
--dp-ui-header-headline-colorvar(--dp-ui-sys-color-on-surface-variant)

Buttons

#
VariableDefault
--dp-ui-menu-button-height40px
--dp-ui-menu-button-label-text-colorvar(--dp-ui-sys-color-on-surface-variant)
--dp-ui-menu-button-icon-size18px
--dp-ui-icon-button-size40px
--dp-ui-icon-button-icon-size24px
--dp-ui-icon-button-icon-colorvar(--dp-ui-sys-color-on-surface-variant)
--dp-ui-text-button-height36px
--dp-ui-text-button-label-text-colorvar(--dp-ui-sys-color-primary)

Weekdays

#
VariableDefault
--dp-ui-weekday-label-text-colorvar(--dp-ui-sys-color-on-surface)
--dp-ui-week-number-label-text-colorvar(--dp-ui-sys-color-on-surface-variant)
--dp-ui-week-number-width48px

Day cell

#
VariableDefault
--dp-ui-date-container-size48px
--dp-ui-date-state-layer-size40px
--dp-ui-date-label-text-colorvar(--dp-ui-sys-color-on-surface)
--dp-ui-date-state-layer-colorvar(--dp-ui-sys-color-on-surface)
--dp-ui-date-outside-month-opacity0.38
--dp-ui-date-disabled-opacityvar(--dp-ui-sys-state-disabled-opacity)
--dp-ui-date-today-outline-width1px
--dp-ui-date-today-outline-colorvar(--dp-ui-sys-color-primary)
--dp-ui-date-today-label-text-colorvar(--dp-ui-sys-color-primary)
--dp-ui-date-selected-container-colorvar(--dp-ui-sys-color-primary)
--dp-ui-date-selected-label-text-colorvar(--dp-ui-sys-color-on-primary)
--dp-ui-date-content-colorvar(--dp-ui-sys-color-on-surface-variant)
--dp-ui-date-content-row-height64px

Range, badge and presets

#
VariableDefault
--dp-ui-date-in-range-container-colorvar(--dp-ui-sys-color-secondary-container)
--dp-ui-date-in-range-label-text-colorvar(--dp-ui-sys-color-on-secondary-container)
--dp-ui-date-in-range-state-layer-colorvar(--dp-ui-sys-color-on-primary-container)
--dp-ui-date-badge-colorvar(--dp-ui-sys-color-primary)
--dp-ui-date-badge-selected-colorvar(--dp-ui-sys-color-on-primary)
--dp-ui-date-badge-size4px
--dp-ui-range-height568px
--dp-ui-input-container-width328px
--dp-ui-month-widthcalc(7 * var(--dp-ui-date-container-size))
--dp-ui-month-gap24px
--dp-ui-presets-width168px
--dp-ui-preset-height32px
--dp-ui-preset-shape8px
--dp-ui-preset-outline-colorvar(--dp-ui-sys-color-outline)
--dp-ui-preset-label-text-colorvar(--dp-ui-sys-color-on-surface-variant)
--dp-ui-preset-pressed-container-colorvar(--dp-ui-sys-color-secondary-container)
--dp-ui-preset-pressed-label-text-colorvar(--dp-ui-sys-color-on-secondary-container)
--dp-ui-preset-row-height48px

Text field

#
VariableDefault
--dp-ui-text-field-height56px
--dp-ui-text-field-shapevar(--dp-ui-sys-shape-corner-extra-small)
--dp-ui-text-field-outline-width1px
--dp-ui-text-field-outline-colorvar(--dp-ui-sys-color-outline)
--dp-ui-text-field-focus-outline-width2px
--dp-ui-text-field-focus-outline-colorvar(--dp-ui-sys-color-primary)
--dp-ui-text-field-label-container-colorvar(--dp-ui-container-color)
--dp-ui-text-field-label-text-colorvar(--dp-ui-sys-color-on-surface-variant)
--dp-ui-text-field-focus-label-text-colorvar(--dp-ui-sys-color-primary)
--dp-ui-text-field-input-text-colorvar(--dp-ui-sys-color-on-surface)
--dp-ui-text-field-supporting-text-colorvar(--dp-ui-sys-color-on-surface-variant)
--dp-ui-text-field-error-colorvar(--dp-ui-sys-color-error)
#
VariableDefault
--dp-ui-menu-item-height48px
--dp-ui-menu-item-label-text-colorvar(--dp-ui-sys-color-on-surface)
--dp-ui-menu-item-icon-colorvar(--dp-ui-sys-color-on-surface-variant)
--dp-ui-menu-item-selected-container-colorvar(--dp-ui-sys-color-surface-variant)
--dp-ui-menu-max-height336px
--dp-ui-scrollbar-thumb-colorvar(--dp-ui-sys-color-on-surface-variant)

Year grid

#
VariableDefault
--dp-ui-year-item-width72px
--dp-ui-year-item-height36px
--dp-ui-year-item-label-text-colorvar(--dp-ui-sys-color-on-surface-variant)
--dp-ui-year-item-selected-container-colorvar(--dp-ui-sys-color-primary)
--dp-ui-year-item-selected-label-text-colorvar(--dp-ui-sys-color-on-primary)
--dp-ui-year-selection-height288px

Focus ring

#
VariableDefault
--dp-ui-focus-ring-colorvar(--dp-ui-sys-color-primary)
--dp-ui-focus-ring-width2px
--dp-ui-focus-ring-offset2px

Popover

#
VariableDefault
--dp-ui-popover-gap4px
--dp-ui-popover-edge-margin4px
--dp-ui-popover-min-height160px
--dp-ui-popover-z-index5001

Set by the picker

#

With calendar.months above 1, the container gets dp-ui__container--multi-month and an inline --dp-ui-visible-months property that holds the number of months shown. Read it in your own CSS if you need it, and do not set it.

Esc