사용자 정의 날짜 셀

Day 컴포넌트의 render prop을 사용하여 각 날짜 셀을 사용자 정의할 수 있습니다. 이는 이벤트 인디케이터를 추가하거나, 날짜 속성에 기반한 사용자 정의 스타일을 적용하거나, 날짜 렌더링을 완전히 교체하는 데 유용합니다.

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

Day Render Props

PropType설명
dateDate날짜 객체
daynumber월의 일 (1-31)
isTodayboolean오늘 날짜인지 여부
isSelectedboolean이 날짜가 선택되었는지 여부
isDisabledboolean이 날짜가 비활성화되었는지 여부
isInRangeboolean이 날짜가 선택된 범위 내에 있는지 여부
isRangeStartboolean범위의 시작 날짜인지 여부
isRangeEndboolean범위의 끝 날짜인지 여부
isInHoverRangeboolean이 날짜가 호버 미리보기 범위 내에 있는지 여부
isHoverTargetboolean호버의 끝점인지 여부
isOutsideDayboolean이 날짜가 인접한 달에 속하는지 여부
isHighlightedboolean이 날짜에 하이라이트 점이 있는지 여부
isFocusedboolean이 날짜에 키보드 포커스가 있는지 여부
onClick() => void클릭 핸들러
onMouseEnter() => void마우스 진입 핸들러
onMouseLeave() => void마우스 이탈 핸들러