Variables CSS

Le paquet styled utilise des propriétés personnalisées CSS (variables) pour toutes les valeurs visuelles. Surchargez-les sur .rdrp-root ou tout autre élément parent pour personnaliser l’apparence sans toucher au code du composant.

Comment surcharger

Toutes les variables sont limitées à .rdrp-root. Surchargez-les dans votre propre CSS :

/* Votre thème personnalisé */
.rdrp-root {
--rdrp-color-primary: #8b5cf6;
--rdrp-color-primary-hover: #7c3aed;
--rdrp-border-radius-lg: 12px;
}

Ou limitez les surcharges à une instance spécifique en utilisant une classe d’encapsulation :

.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>

Référence des variables

Couleurs

VariableDéfaut (Clair)Description
--rdrp-color-primary#3b82f6Couleur d’action principale (jour sélectionné, bouton de confirmation)
--rdrp-color-primary-hover#2563ebÉtat de survol principal
--rdrp-color-primary-light#dbeafeArrière-plan de la plage, accent principal clair
--rdrp-color-primary-lighter#eff6ffArrière-plan du préréglage actif
--rdrp-color-primary-disabled#93c5fdBouton de confirmation désactivé
--rdrp-color-bg#ffffffCouleur d’arrière-plan
--rdrp-color-bg-hover#f3f4f6Arrière-plan de survol pour les jours, les boutons
--rdrp-color-bg-subtle#f9fafbArrière-plan subtil
--rdrp-color-text#374151Couleur du texte par défaut
--rdrp-color-text-strong#111827Texte fort (titres, heure active)
--rdrp-color-text-muted#6b7280Texte atténué (boutons de navigation, étiquettes)
--rdrp-color-text-placeholder#6b7280Texte de l’espace réservé
--rdrp-color-text-disabled#d1d5dbTexte du jour désactivé
--rdrp-color-text-outside#9ca3afJours hors du mois
--rdrp-color-text-inverse#ffffffTexte sur les arrière-plans principaux
--rdrp-color-text-danger#ef4444Texte du bouton effacer/danger
--rdrp-color-text-today#2563ebCouleur de l’indicateur d’aujourd’hui
--rdrp-color-border#d1d5dbBordure par défaut
--rdrp-color-border-light#e5e7ebBordure claire (popup, sélecteurs)
--rdrp-color-border-subtle#f3f4f6Bordure subtile (pied de page, préréglages)
--rdrp-color-border-hover#93c5fdÉtat de survol de la bordure
--rdrp-color-highlight-dot#f59e0bCouleur du point de surbrillance
--rdrp-highlight-dot-size4pxDiamètre du point de surbrillance
--rdrp-color-range-bg#dbeafeArrière-plan des jours dans la plage
--rdrp-color-hover-range-bg#eff6ffArrière-plan de l’aperçu de la plage en survol
--rdrp-color-hover-target-bg#bfdbfeArrière-plan du point de terminaison en survol
--rdrp-color-time-highlightrgba(59, 130, 246, 0.08)Barre de surbrillance du panneau horaire

Typographie

VariableDéfautDescription
--rdrp-font-familyPile de polices systèmeFamille de polices
--rdrp-font-size-xs11pxExtra petit (en-tête de jour de semaine en petite taille)
--rdrp-font-size-sm12pxPetit (en-têtes de jour de semaine, étiquettes)
--rdrp-font-size-base13pxBase (cellules de jour, boutons)
--rdrp-font-size-md14pxMoyen (déclencheur, éléments temporels)
--rdrp-font-size-lg15pxGrand (titre de l’en-tête)
--rdrp-font-weight-normal400Graisse normale
--rdrp-font-weight-medium500Graisse moyenne
--rdrp-font-weight-semibold600Graisse demi-grasse
--rdrp-font-weight-bold700Graisse grasse (indicateur d’aujourd’hui)

Espacement

VariableDéfautDescription
--rdrp-spacing-xs2pxEspacement extra petit
--rdrp-spacing-sm4pxPetit espacement
--rdrp-spacing-md8pxEspacement moyen
--rdrp-spacing-lg12pxGrand espacement
--rdrp-spacing-xl16pxEspacement extra large
--rdrp-spacing-2xl24pxEspacement 2x extra large

Bordures

VariableDéfautDescription
--rdrp-border-radius-sm4pxPetit rayon
--rdrp-border-radius-md6pxRayon moyen (boutons, sélecteurs)
--rdrp-border-radius-lg8pxGrand rayon (jours, déclencheur)
--rdrp-border-radius-xl12pxRayon extra large (popup)
--rdrp-border-radius-full9999pxRayon complet (point de surbrillance)
--rdrp-border-width1pxLargeur de bordure

Ombres

VariableDéfautDescription
--rdrp-shadow-popup0 10px 25px rgba(0,0,0,0.1)Ombre du popup
--rdrp-shadow-inline0 4px 12px rgba(0,0,0,0.06)Ombre du mode en ligne
--rdrp-shadow-sm0 2px 6px rgba(0,0,0,0.04)Petite ombre

Dimensionnement

VariableDéfautDescription
--rdrp-cell-size36pxLargeur/hauteur de la cellule de jour
--rdrp-nav-btn-size28pxTaille du bouton de navigation
--rdrp-weekday-height28pxHauteur de la ligne d’en-tête du jour de la semaine
--rdrp-grid-min-height216pxHauteur minimale de la grille du calendrier
--rdrp-panel-min-width252pxLargeur du panneau de calendrier unique
--rdrp-dual-gap24pxEspace entre les doubles calendriers
--rdrp-trigger-min-width200pxLargeur minimale du bouton déclencheur
--rdrp-trigger-padding-x14pxRembourrage horizontal du déclencheur
--rdrp-trigger-padding-y8pxRembourrage vertical du déclencheur
--rdrp-popup-padding16pxRembourrage interne du popup
--rdrp-popup-gap6pxEspace du contenu du popup
--rdrp-btn-padding-x14pxRembourrage horizontal du bouton de pied de page
--rdrp-btn-padding-y6pxRembourrage vertical du bouton de pied de page
--rdrp-preset-min-width140pxLargeur minimale de la barre latérale des préréglages

Sélecteur d’heure

VariableDéfautDescription
--rdrp-time-item-height32pxHauteur de l’élément de défilement de l’heure
--rdrp-time-panel-height176pxHauteur totale du panneau de l’heure
--rdrp-time-column-height160pxHauteur de la colonne déroulante
--rdrp-time-panel-min-width120pxLargeur minimale du panneau de l’heure
--rdrp-time-colon-width12pxLargeur du séparateur deux-points

Z-index

VariableDéfautDescription
--rdrp-z-popup50Z-index du popup
--rdrp-z-day-button20Z-index du jour focalisé

Transitions

VariableDéfautDescription
--rdrp-transition-fast0.1sTransitions rapides (survol du jour)
--rdrp-transition-normal0.15sTransitions normales (déclencheur, boutons)

Exemples en direct

Couleurs personnalisées (Thème violet)

Surchargez les variables de couleur primaire pour créer un schéma de couleurs complètement différent. Cet exemple utilise un DatePicker avec des tons violets/pourpres.

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>
);
}

Police personnalisée (Serif)

Les polices se propagent en cascade via CSS, donc envelopper le sélecteur dans une div avec une font-family personnalisée s’applique à tout le texte. Cet exemple utilise un DateRangePicker avec la police serif 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>
);
}

Coins vifs (Pas de rayon de bordure)

Définissez toutes les variables de rayon de bordure à 0px pour un aspect complètement carré.

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>
);
}

Taille personnalisée via les variables CSS

Au lieu d’utiliser la prop size intégrée, surchargez les variables de dimensionnement individuelles pour un contrôle précis. Cet exemple utilise un DateRangePicker avec une taille de cellule et des tailles de police personnalisées.

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>
);
}