Celda de Día Personalizada

Usa la render prop del componente Day para personalizar cada celda de día. Esto es útil para agregar indicadores de eventos, aplicar estilos personalizados basados en las propiedades de la fecha o reemplazar por completo la renderización del día.

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

Render Props de Day

PropTipoDescripción
dateDateEl objeto de fecha
daynumberDía del mes (1-31)
isTodaybooleanSi hoy es este día
isSelectedbooleanSi este día está seleccionado
isDisabledbooleanSi este día está deshabilitado
isInRangebooleanSi este día está dentro de un rango seleccionado
isRangeStartbooleanSi este es el inicio del rango
isRangeEndbooleanSi este es el final del rango
isInHoverRangebooleanSi este día está en el rango de vista previa flotante (hover)
isHoverTargetbooleanSi este es el punto final del hover
isOutsideDaybooleanSi este día pertenece a un mes adyacente
isHighlightedbooleanSi este día tiene un punto de resaltado
isFocusedbooleanSi este día tiene el foco del teclado
onClick() => voidManejador de clic
onMouseEnter() => voidManejador de entrada del ratón
onMouseLeave() => voidManejador de salida del ratón