Tailles

Le package stylisé inclut 4 variantes de taille intégrées qui mettent à l’échelle la typographie, l’espacement, les dimensions des cellules et les dimensions du déclencheur de manière proportionnelle.

Tailles Disponibles

TailleTaille de CellulePolice de BaseLargeur Min. Déclencheur
small28px11px160px
medium36px13px200px
large44px14px240px
x-large52px15px280px

medium est la valeur par défaut.

Utilisation

Passez la prop size à n’importe quel composant de sélecteur :

import { useState } from "react";
import { DatePicker } from "react-date-range-picker-styled";
import "react-date-range-picker-styled/rdrp-styles.css";
import type { DatePickerSize } from "react-date-range-picker-headless";
const sizes: DatePickerSize[] = ["small", "medium", "large", "x-large"];
function Sizes() {
const [values, setValues] = useState<Record<DatePickerSize, Date | null>>({
small: null,
medium: null,
large: null,
"x-large": null,
});
return (
<div style={{ display: "flex", flexDirection: "column", gap: 20 }}>
{sizes.map((size) => (
<div key={size} style={{ display: "flex", alignItems: "center", gap: 12 }}>
<span style={{ width: 60, fontSize: 13, fontWeight: 600, opacity: 0.5, flexShrink: 0 }}>
{size}
</span>
<DatePicker
value={values[size]}
onChange={(date) => setValues((prev) => ({ ...prev, [size]: date }))}
size={size}
/>
</div>
))}
</div>
);
}
small
medium
large
x-large

Ce qui Change par Taille

Chaque variante de taille surcharge un ensemble de variables CSS via une classe (par ex. .rdrp-size-small). Voici ce que chaque taille ajuste :

Small

.rdrp-size-small {
--rdrp-cell-size: 28px;
--rdrp-nav-btn-size: 24px;
--rdrp-weekday-height: 24px;
--rdrp-grid-min-height: 168px;
--rdrp-panel-min-width: 196px;
--rdrp-dual-gap: 16px;
--rdrp-font-size-xs: 10px;
--rdrp-font-size-sm: 11px;
--rdrp-font-size-base: 11px;
--rdrp-font-size-md: 12px;
--rdrp-font-size-lg: 13px;
--rdrp-trigger-min-width: 160px;
--rdrp-trigger-padding-x: 10px;
--rdrp-trigger-padding-y: 6px;
--rdrp-popup-padding: 12px;
--rdrp-btn-padding-x: 10px;
--rdrp-btn-padding-y: 4px;
--rdrp-spacing-lg: 8px;
--rdrp-spacing-xl: 12px;
--rdrp-time-item-height: 28px;
--rdrp-time-panel-height: 148px;
--rdrp-time-column-height: 132px;
--rdrp-time-panel-min-width: 100px;
--rdrp-time-picker-content-min-width: 210px;
--rdrp-preset-min-width: 110px;
}

Large

.rdrp-size-large {
--rdrp-cell-size: 44px;
--rdrp-nav-btn-size: 32px;
--rdrp-weekday-height: 32px;
--rdrp-grid-min-height: 264px;
--rdrp-panel-min-width: 308px;
--rdrp-dual-gap: 28px;
--rdrp-font-size-xs: 12px;
--rdrp-font-size-sm: 13px;
--rdrp-font-size-base: 14px;
--rdrp-font-size-md: 15px;
--rdrp-font-size-lg: 16px;
--rdrp-trigger-min-width: 240px;
--rdrp-trigger-padding-x: 16px;
--rdrp-trigger-padding-y: 10px;
--rdrp-popup-padding: 20px;
--rdrp-btn-padding-x: 16px;
--rdrp-btn-padding-y: 8px;
--rdrp-spacing-lg: 16px;
--rdrp-spacing-xl: 20px;
--rdrp-time-item-height: 36px;
--rdrp-time-panel-height: 196px;
--rdrp-time-column-height: 180px;
--rdrp-time-panel-min-width: 140px;
--rdrp-time-picker-content-min-width: 290px;
--rdrp-preset-min-width: 160px;
}

X-Large

.rdrp-size-x-large {
--rdrp-cell-size: 52px;
--rdrp-nav-btn-size: 36px;
--rdrp-weekday-height: 36px;
--rdrp-grid-min-height: 312px;
--rdrp-panel-min-width: 364px;
--rdrp-dual-gap: 32px;
--rdrp-font-size-xs: 13px;
--rdrp-font-size-sm: 14px;
--rdrp-font-size-base: 15px;
--rdrp-font-size-md: 16px;
--rdrp-font-size-lg: 18px;
--rdrp-trigger-min-width: 280px;
--rdrp-trigger-padding-x: 20px;
--rdrp-trigger-padding-y: 12px;
--rdrp-popup-padding: 24px;
--rdrp-btn-padding-x: 20px;
--rdrp-btn-padding-y: 10px;
--rdrp-spacing-lg: 20px;
--rdrp-spacing-xl: 24px;
--rdrp-time-item-height: 40px;
--rdrp-time-panel-height: 216px;
--rdrp-time-column-height: 200px;
--rdrp-time-panel-min-width: 160px;
--rdrp-preset-min-width: 180px;
}

Tailles Personnalisées

Créez votre propre taille en définissant une classe CSS qui surcharge les variables de dimensionnement :

.rdrp-size-custom {
--rdrp-cell-size: 40px;
--rdrp-nav-btn-size: 30px;
--rdrp-font-size-base: 14px;
--rdrp-font-size-md: 15px;
--rdrp-trigger-min-width: 220px;
--rdrp-popup-padding: 18px;
}

Appliquez-la ensuite via un conteneur :

<div className="rdrp-size-custom">
<DatePicker value={value} onChange={setValue} />
</div>

Ou avec l’API de Composant Composé, ajoutez la classe à Root :

<DatePicker.Root value={value} onChange={setValue} className="rdrp-size-custom">
{/* ... */}
</DatePicker.Root>

Vous pouvez également surcharger les variables de dimensionnement via des styles en ligne :

import { useState } from "react";
import { DatePicker } from "react-date-range-picker-styled";
import "react-date-range-picker-styled/rdrp-styles.css";
function CustomSizeViaCSS() {
const [value, setValue] = useState<Date | null>(null);
return (
<div
style={{
["--rdrp-cell-size" as string]: "44px",
["--rdrp-font-size-base" as string]: "15px",
["--rdrp-font-size-md" as string]: "16px",
["--rdrp-font-size-lg" as string]: "18px",
["--rdrp-nav-btn-size" as string]: "34px",
["--rdrp-trigger-padding-x" as string]: "18px",
["--rdrp-trigger-padding-y" as string]: "12px",
}}
>
<DatePicker value={value} onChange={setValue} />
</div>
);
}
💡 Tip

La taille medium est la valeur par défaut et n’applique aucune surcharge. Les variables de base dans variables.css sont les valeurs medium.