CSS-Variablen

Das styled-Paket verwendet CSS Custom Properties (Variablen) für alle visuellen Werte. Überschreiben Sie diese auf .rdrp-root oder einem übergeordneten Element, um das Erscheinungsbild anzupassen, ohne den Komponenten-Code zu berühren.

Wie man sie überschreibt

Alle Variablen sind unter .rdrp-root gültig. Überschreiben Sie sie in Ihrem eigenen CSS:

/* Ihr benutzerdefiniertes Thema */
.rdrp-root {
--rdrp-color-primary: #8b5cf6;
--rdrp-color-primary-hover: #7c3aed;
--rdrp-border-radius-lg: 12px;
}

Oder beschränken Sie die Überschreibungen auf eine bestimmte Instanz, indem Sie eine Wrapper-Klasse verwenden:

.my-purple-picker .rdrp-root {
--rdrp-color-primary: #8b5cf6;
--rdrp-color-primary-hover: #7c3aed;
--rdrp-color-primary-light: #ede9fe;
--rdrp-color-primary-lighter: #f5f3ff;
}
<div className="my-purple-picker">
<DatePicker value={value} onChange={setValue} />
</div>

Variablen-Referenz

Farben

VariableStandard (Hell)Beschreibung
--rdrp-color-primary#3b82f6Primäre Aktionsfarbe (ausgewählter Tag, Bestätigungs-Button)
--rdrp-color-primary-hover#2563ebPrimärer Hover-Zustand
--rdrp-color-primary-light#dbeafeBereichshintergrund, heller Primärakzent
--rdrp-color-primary-lighter#eff6ffHintergrund für aktive Voreinstellungen
--rdrp-color-primary-disabled#93c5fdDeaktivierter Bestätigungs-Button
--rdrp-color-bg#ffffffHintergrundfarbe
--rdrp-color-bg-hover#f3f4f6Hover-Hintergrund für Tage, Buttons
--rdrp-color-bg-subtle#f9fafbDezenter Hintergrund
--rdrp-color-text#374151Standard-Textfarbe
--rdrp-color-text-strong#111827Starker Text (Titel, aktive Zeit)
--rdrp-color-text-muted#6b7280Gedämpfter Text (Navigations-Buttons, Beschriftungen)
--rdrp-color-text-placeholder#6b7280Platzhaltertext
--rdrp-color-text-disabled#d1d5dbText für deaktivierte Tage
--rdrp-color-text-outside#9ca3afTage außerhalb des Monats
--rdrp-color-text-inverse#ffffffText auf primären Hintergründen
--rdrp-color-text-danger#ef4444Text für Löschen/Gefahr-Button
--rdrp-color-text-today#2563ebFarbe für “Heute”-Indikator
--rdrp-color-border#d1d5dbStandard-Rand
--rdrp-color-border-light#e5e7ebHeller Rand (Popup, Auswahlen)
--rdrp-color-border-subtle#f3f4f6Dezenter Rand (Fußzeile, Voreinstellungen)
--rdrp-color-border-hover#93c5fdRand-Hover-Zustand
--rdrp-color-highlight-dot#f59e0bFarbe des Hervorhebungspunkts
--rdrp-highlight-dot-size4pxDurchmesser des Hervorhebungspunkts
--rdrp-color-range-bg#dbeafeHintergrund für Tage im Bereich
--rdrp-color-hover-range-bg#eff6ffHintergrund der Bereichsvorschau beim Hovern
--rdrp-color-hover-target-bg#bfdbfeHintergrund des Endpunkts beim Hovern
--rdrp-color-time-highlightrgba(59, 130, 246, 0.08)Hervorhebungsleiste des Zeit-Panels

Typografie

VariableStandardBeschreibung
--rdrp-font-familySystem font stackSchriftfamilie
--rdrp-font-size-xs11pxExtra klein (Wochentag-Kopfzeile in kleiner Größe)
--rdrp-font-size-sm12pxKlein (Wochentag-Kopfzeilen, Beschriftungen)
--rdrp-font-size-base13pxBasis (Tageszellen, Buttons)
--rdrp-font-size-md14pxMittel (Auslöser, Zeitelemente)
--rdrp-font-size-lg15pxGroß (Kopfzeilentitel)
--rdrp-font-weight-normal400Normale Schriftstärke
--rdrp-font-weight-medium500Mittlere Schriftstärke
--rdrp-font-weight-semibold600Halbfette Schriftstärke
--rdrp-font-weight-bold700Fette Schriftstärke (“Heute”-Indikator)

Abstände

VariableStandardBeschreibung
--rdrp-spacing-xs2pxExtra kleiner Abstand
--rdrp-spacing-sm4pxKleiner Abstand
--rdrp-spacing-md8pxMittlerer Abstand
--rdrp-spacing-lg12pxGroßer Abstand
--rdrp-spacing-xl16pxExtra großer Abstand
--rdrp-spacing-2xl24px2x extra großer Abstand

Ränder

VariableStandardBeschreibung
--rdrp-border-radius-sm4pxKleiner Radius
--rdrp-border-radius-md6pxMittlerer Radius (Buttons, Auswahlen)
--rdrp-border-radius-lg8pxGroßer Radius (Tage, Auslöser)
--rdrp-border-radius-xl12pxExtra großer Radius (Popup)
--rdrp-border-radius-full9999pxVollständiger Radius (Hervorhebungspunkt)
--rdrp-border-width1pxRandbreite

Schatten

VariableStandardBeschreibung
--rdrp-shadow-popup0 10px 25px rgba(0,0,0,0.1)Popup-Schatten
--rdrp-shadow-inline0 4px 12px rgba(0,0,0,0.06)Schatten im Inline-Modus
--rdrp-shadow-sm0 2px 6px rgba(0,0,0,0.04)Kleiner Schatten

Größenanpassung

VariableStandardBeschreibung
--rdrp-cell-size36pxBreite/Höhe der Tageszelle
--rdrp-nav-btn-size28pxGröße des Navigations-Buttons
--rdrp-weekday-height28pxHöhe der Wochentag-Kopfzeile
--rdrp-grid-min-height216pxMindesthöhe des Kalenderrasters
--rdrp-panel-min-width252pxBreite eines einzelnen Kalender-Panels
--rdrp-dual-gap24pxAbstand zwischen zwei Kalendern
--rdrp-trigger-min-width200pxMindestbreite des Auslöse-Buttons
--rdrp-trigger-padding-x14pxHorizontales Padding des Auslösers
--rdrp-trigger-padding-y8pxVertikales Padding des Auslösers
--rdrp-popup-padding16pxInneres Padding des Popups
--rdrp-popup-gap6pxAbstand im Popup-Inhalt
--rdrp-btn-padding-x14pxHorizontales Padding des Fußzeilen-Buttons
--rdrp-btn-padding-y6pxVertikales Padding des Fußzeilen-Buttons
--rdrp-preset-min-width140pxMindestbreite der Voreinstellungs-Seitenleiste

Zeitauswahl

VariableStandardBeschreibung
--rdrp-time-item-height32pxHöhe eines Zeit-Scroll-Elements
--rdrp-time-panel-height176pxGesamthöhe des Zeit-Panels
--rdrp-time-column-height160pxHöhe der scrollbaren Spalte
--rdrp-time-panel-min-width120pxMindestbreite des Zeit-Panels
--rdrp-time-colon-width12pxBreite des Doppelpunkt-Trennzeichens

Z-Index

VariableStandardBeschreibung
--rdrp-z-popup50Z-Index des Popups
--rdrp-z-day-button20Z-Index des fokussierten Tages

Übergänge

VariableStandardBeschreibung
--rdrp-transition-fast0.1sSchnelle Übergänge (Tag-Hover)
--rdrp-transition-normal0.15sNormale Übergänge (Auslöser, Buttons)

Live-Beispiele

Benutzerdefinierte Farben (Lila-Thema)

Überschreiben Sie die primären Farbvariablen, um ein völlig anderes Farbschema zu erstellen. Dieses Beispiel verwendet einen DatePicker mit violetten/lila Tönen.

import { useState } from "react";
import { DatePicker } from "react-date-range-picker-styled";
import "react-date-range-picker-styled/rdrp-styles.css";
function CustomColors() {
const [value, setValue] = useState<Date | null>(null);
return (
<div
style={
{
"--rdrp-color-primary": "#7c3aed",
"--rdrp-color-primary-hover": "#6d28d9",
"--rdrp-color-primary-light": "#ede9fe",
"--rdrp-color-primary-lighter": "#f5f3ff",
"--rdrp-color-primary-disabled": "#c4b5fd",
"--rdrp-color-text-today": "#7c3aed",
"--rdrp-color-border-hover": "#c4b5fd",
} as React.CSSProperties
}
>
<DatePicker value={value} onChange={setValue} />
</div>
);
}

Benutzerdefinierte Schriftart (Serif)

Schriftarten werden über CSS vererbt. Wenn Sie den Picker in ein Div mit einer benutzerdefinierten font-family einbetten, wird dies auf den gesamten Text angewendet. Dieses Beispiel verwendet einen DateRangePicker mit der Serif-Schriftart Georgia.

import { useState } from "react";
import { DateRangePicker } from "react-date-range-picker-styled";
import "react-date-range-picker-styled/rdrp-styles.css";
function CustomFont() {
const [value, setValue] = useState<{ start: Date | null; end: Date | null }>({
start: null,
end: null,
});
return (
<div style={{ fontFamily: "'Georgia', serif" }}>
<DateRangePicker value={value} onChange={setValue} />
</div>
);
}

Scharfe Ecken (kein Randradius)

Setzen Sie alle Randradius-Variablen auf 0px, um ein vollständig quadratisches Aussehen zu erzielen.

import { useState } from "react";
import { DatePicker } from "react-date-range-picker-styled";
import "react-date-range-picker-styled/rdrp-styles.css";
function CustomBorderRadius() {
const [value, setValue] = useState<Date | null>(null);
return (
<div
style={
{
"--rdrp-border-radius-sm": "0px",
"--rdrp-border-radius-md": "0px",
"--rdrp-border-radius-lg": "0px",
"--rdrp-border-radius-xl": "0px",
} as React.CSSProperties
}
>
<DatePicker value={value} onChange={setValue} />
</div>
);
}

Benutzerdefinierte Größe über CSS-Variablen

Anstatt die integrierte size-Prop zu verwenden, überschreiben Sie einzelne Größenvariablen für eine präzise Steuerung. Dieses Beispiel verwendet einen DateRangePicker mit benutzerdefinierter Zellengröße und Schriftgrößen.

import { useState } from "react";
import { DateRangePicker } from "react-date-range-picker-styled";
import "react-date-range-picker-styled/rdrp-styles.css";
function CustomSize() {
const [value, setValue] = useState<{ start: Date | null; end: Date | null }>({
start: null,
end: null,
});
return (
<div
style={
{
"--rdrp-cell-size": "44px",
"--rdrp-font-size-base": "15px",
"--rdrp-font-size-md": "16px",
"--rdrp-font-size-lg": "18px",
"--rdrp-spacing-sm": "6px",
"--rdrp-spacing-md": "10px",
"--rdrp-spacing-lg": "14px",
} as React.CSSProperties
}
>
<DateRangePicker value={value} onChange={setValue} />
</div>
);
}