Célula de Dia Personalizada

Personalize como cada dia é renderizado usando as render props Grid e Day. Isso permite que você adicione indicadores de eventos, estilização personalizada ou qualquer conteúdo extra às células de dias individuais.

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 do Dia

PropTipoDescrição
dateDateO objeto de data
daynumberDia do mês (1-31)
isTodaybooleanSe este é o dia de hoje
isSelectedbooleanSe este dia está selecionado
isDisabledbooleanSe este dia está desabilitado
isInRangebooleanSe este dia está dentro de um intervalo selecionado
isRangeStartbooleanSe este é o início do intervalo
isRangeEndbooleanSe este é o fim do intervalo
isInHoverRangebooleanSe este dia está no intervalo de pré-visualização ao passar o mouse
isHoverTargetbooleanSe este é o ponto final do hover
isOutsideDaybooleanSe este dia pertence a um mês adjacente
isHighlightedbooleanSe este dia tem um ponto de destaque
isFocusedbooleanSe este dia tem foco do teclado
onClick() => voidManipulador de clique
onMouseEnter() => voidManipulador de entrada do mouse
onMouseLeave() => voidManipulador de saída do mouse