Celda de Día Personalizada

Personaliza cómo se renderiza cada día usando las render props Grid y Day. Esto te permite añadir indicadores de eventos, estilos personalizados o cualquier contenido extra a las celdas de días individuales.

import { useState } from "react";
import { DatePicker } from "react-date-range-picker-tailwind4";
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 del Día

PropTipoDescripción
dateDateEl objeto de fecha
daynumberDía del mes (1-31)
isTodaybooleanSi este es el día de hoy
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
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