diff --git a/src/components/Calendar/day.js b/src/components/Calendar/day.js index 9bae9b11a..8e2d0d3ff 100644 --- a/src/components/Calendar/day.js +++ b/src/components/Calendar/day.js @@ -35,6 +35,7 @@ function DayComponent(props) { const buttonRef = useRef(); const isRangeStartDate = useRangeStartDate(date, currentRange); const isRangeEndDate = useRangeEndDate(date, currentRange); + const isToday = isSameDay(date, new Date()); useEffect(() => { if (useAutoFocus && buttonRef.current && tabIndex !== -1) { @@ -58,6 +59,7 @@ function DayComponent(props) { isLastInRange={isRangeEndDate} isFirstDayOfWeek={isFirstDayOfWeek} isLastDayOfWeek={isLastDayOfWeek} + isToday={isToday} > {day} diff --git a/src/components/Calendar/styled/dayButton.js b/src/components/Calendar/styled/dayButton.js index 9f2b6727d..6e6501d42 100644 --- a/src/components/Calendar/styled/dayButton.js +++ b/src/components/Calendar/styled/dayButton.js @@ -18,7 +18,8 @@ const StyledDayButton = attachThemeAttrs(styled.button)` text-transform: none; appearance: button; border: 1px solid transparent; - + position: relative; + ${props => !props.isHovered && ` @@ -40,6 +41,43 @@ const StyledDayButton = attachThemeAttrs(styled.button)` line-height: 36px; } + ${props => + props.isToday && + ` + font-weight: 900; + + &::after { + content: ''; + height: 4px; + width: 4px; + position: absolute; + top: 28px; + left: 16px; + border-radius: 50%; + background: ${ + props.isSelected || props.isHovered + ? props.palette.getContrastText(props.palette.brand.main) + : props.palette.brand.main + }; + } + + + `} + + ${props => + props.isSelected && + props.isToday && + ` + &:hover, + &:focus, + &:active { + &::after { + top: 27px; + left: 16px; + } + } + `}; + ${props => props.isSelected && ` diff --git a/src/components/Calendar/styled/rangeHighlight.js b/src/components/Calendar/styled/rangeHighlight.js index 7d4529de6..3099e2f80 100644 --- a/src/components/Calendar/styled/rangeHighlight.js +++ b/src/components/Calendar/styled/rangeHighlight.js @@ -20,6 +20,12 @@ const StyledRangeHighlight = attachThemeAttrs(styled.div).attrs(props => { margin: 3px auto; } + ${props => + props.isToday && + ` + color: ${props.palette.brand.main}; + `} + ${props => props.isVisible && `