Cellule de Jour Personnalisée

Utilisez la render prop du composant Day pour personnaliser chaque cellule de jour. Ceci est utile pour ajouter des indicateurs d’événements, un style personnalisé basé sur les propriétés de la date, ou pour remplacer entièrement le rendu du jour.

import { useState } from "react";
import { DatePicker } from "react-date-range-picker-tailwind3";
const eventDates = new Set([5, 12, 18, 25]);
function CompoundCustomDay() {
const [value, setValue] = useState<Date | null>(null);
return (
<DatePicker.Root value={value} onChange={setValue} inline>
<DatePicker.Content>
<DatePicker.Header>
<DatePicker.PrevButton />
<DatePicker.Title />
<DatePicker.NextButton />
</DatePicker.Header>
<DatePicker.Grid>
{({ date }) => (
<DatePicker.Day date={date}>
{({ day, isDisabled, isSelected, isToday, onClick, onMouseEnter, onMouseLeave }) => (
<button
type="button"
onClick={onClick}
onMouseEnter={onMouseEnter}
onMouseLeave={onMouseLeave}
disabled={isDisabled}
style={{
display: "flex",
flexDirection: "column",
alignItems: "center",
justifyContent: "center",
width: 36,
height: 36,
border: "none",
borderRadius: 6,
cursor: isDisabled ? "default" : "pointer",
background: isSelected ? "#3b82f6" : "transparent",
color: isSelected ? "#fff" : isToday ? "#2563eb" : undefined,
fontWeight: isToday || isSelected ? 600 : 400,
fontSize: 13,
position: "relative",
}}
>
{day}
{eventDates.has(date.getDate()) && (
<span
style={{
position: "absolute",
bottom: 2,
width: 4,
height: 4,
borderRadius: "50%",
background: isSelected ? "#fff" : "#f59e0b",
}}
/>
)}
</button>
)}
</DatePicker.Day>
)}
</DatePicker.Grid>
</DatePicker.Content>
</DatePicker.Root>
);
}
March 2026
Su
Mo
Tu
We
Th
Fr
Sa

Props de Rendu pour Day

PropTypeDescription
dateDateL’objet Date
daynumberJour du mois (1-31)
isTodaybooleanIndique si c’est aujourd’hui
isSelectedbooleanIndique si ce jour est sélectionné
isDisabledbooleanIndique si ce jour est désactivé
isInRangebooleanIndique si ce jour est dans une plage sélectionnée
isRangeStartbooleanIndique si c’est le début de la plage
isRangeEndbooleanIndique si c’est la fin de la plage
isInHoverRangebooleanIndique si ce jour est dans la plage de prévisualisation au survol
isHoverTargetbooleanIndique si c’est le point final du survol
isOutsideDaybooleanIndique si ce jour appartient à un mois adjacent
isHighlightedbooleanIndique si ce jour a un point de surbrillance
isFocusedbooleanIndique si ce jour a le focus du clavier
onClick() => voidGestionnaire de clic
onMouseEnter() => voidGestionnaire d’entrée de la souris
onMouseLeave() => voidGestionnaire de sortie de la souris