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
| Taille | Taille de Cellule | Police de Base | Largeur Min. Déclencheur |
|---|---|---|---|
small | 28px | 11px | 160px |
medium | 36px | 13px | 200px |
large | 44px | 14px | 240px |
x-large | 52px | 15px | 280px |
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> );}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> );}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.