커스텀 날짜 셀

Day 컴포넌트의 render prop을 사용하여 각 날짜 셀의 모양을 커스텀할 수 있습니다. 이는 이벤트 표시기, 툴팁을 추가하거나 개별 날짜에 완전히 커스텀된 스타일을 적용할 때 유용합니다.

import { useState } from "react";
import { DatePicker } from "react-date-range-picker-styled";
import "react-date-range-picker-styled/rdrp-styles.css";
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마우스 이탈 핸들러