From 1ddc099a8bbbbef0a9e977e7f6cf1fa5786acaf5 Mon Sep 17 00:00:00 2001 From: hyewon <130418741+ehye1@users.noreply.github.com> Date: Wed, 7 Oct 2026 15:02:00 +0900 Subject: [PATCH 1/3] =?UTF-8?q?feat(web):=20=EC=98=A4=EB=8A=98=20=ED=8E=98?= =?UTF-8?q?=EC=9D=B4=EC=A7=80=20=EB=AA=A8=EB=B0=94=EC=9D=BC=20=EB=A0=88?= =?UTF-8?q?=EC=9D=B4=EC=95=84=EC=9B=83=20=EC=97=AC=EB=B0=B1=20=EB=B0=8F=20?= =?UTF-8?q?=EB=84=88=EB=B9=84=20=EC=A1=B0=EC=A0=95=20(#318)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 모바일에서 가로 스크롤이 생기지 않도록 오늘 페이지 여백을 px-5로 줄이고 최소 너비와 가로 스크롤은 데스크톱에서만 적용했습니다 - 캘린더 일정 카드가 모바일 화면 폭에 맞도록 최소 너비를 데스크톱에서만 적용하고 모바일 여백을 줄였습니다 --- .../app/[locale]/(main)/(with-time-sidebar)/today/page.tsx | 4 ++-- apps/timo-web/components/calendar/TodayCalendarEventCard.tsx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/today/page.tsx b/apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/today/page.tsx index 4fffe122..1b06d043 100644 --- a/apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/today/page.tsx +++ b/apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/today/page.tsx @@ -6,8 +6,8 @@ export default function TodayPage() { return (
-
-
+
+
diff --git a/apps/timo-web/components/calendar/TodayCalendarEventCard.tsx b/apps/timo-web/components/calendar/TodayCalendarEventCard.tsx index 5a5d1573..c0662370 100644 --- a/apps/timo-web/components/calendar/TodayCalendarEventCard.tsx +++ b/apps/timo-web/components/calendar/TodayCalendarEventCard.tsx @@ -9,7 +9,7 @@ interface TodayCalendarEventCardProps { export const TodayCalendarEventCard = ({ title, }: TodayCalendarEventCardProps) => ( -
+
Date: Wed, 7 Oct 2026 15:02:02 +0900 Subject: [PATCH 2/3] =?UTF-8?q?feat(web):=20=EC=98=A4=EB=8A=98=20=ED=88=AC?= =?UTF-8?q?=EB=91=90=20=EC=B9=B4=EB=93=9C=20=ED=88=B4=EB=B0=94=EB=A5=BC=20?= =?UTF-8?q?=EB=AA=A8=EB=B0=94=EC=9D=BC=20=EB=8C=80=EC=9D=91=20=EA=B5=AC?= =?UTF-8?q?=EC=A1=B0=EB=A1=9C=20=EB=B3=80=EA=B2=BD=20(#318)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 보여주기용으로만 쓰던 TodoToolbar를 정적인 툴바 한 줄로 바꿔 모바일과 데스크톱을 md 클래스로 분기했습니다 - 모바일에서는 홈 투두 카드처럼 좌측에 날짜·우선순위·태그·메모·반복, 우측에 시간이 보이도록 했습니다 - 데스크톱에서는 피그마에 맞게 우선순위를 22px 영역으로 감싸고 아이콘과 글자 간격을 통일했습니다 - 카드가 모바일 화면 폭에 맞도록 최소 너비를 데스크톱에서만 적용하고 모바일 여백을 줄였습니다 - 더 이상 쓰지 않는 toolbar.dateValue를 제거했습니다 --- .../today/_components/TodayTodoCard.tsx | 109 +++++++++++++----- .../_containers/TodayTodoListContainer.tsx | 1 - 2 files changed, 80 insertions(+), 30 deletions(-) diff --git a/apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/today/_components/TodayTodoCard.tsx b/apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/today/_components/TodayTodoCard.tsx index 920d018f..3c09dc7b 100644 --- a/apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/today/_components/TodayTodoCard.tsx +++ b/apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/today/_components/TodayTodoCard.tsx @@ -1,12 +1,21 @@ import { + CalendarDisableIcon, + CalendarOnIcon, + ClockDisableIcon, + ClockOnIcon, + MemoDisableIcon, + MemoOnIcon, PlayDisabledIcon, PlayIcon, + RepeatDisableIcon, + RepeatOnIcon, StopIcon, } from "@repo/timo-design-system/icons"; import { Checkbox, PlayButton, - TodoToolbar, + PriorityIcon, + TagIcon, type PriorityLevel, } from "@repo/timo-design-system/ui"; import { cn } from "@repo/timo-design-system/utils"; @@ -19,14 +28,18 @@ const CARD_STYLE = { card: "bg-white", title: "text-timo-gray-900", subText: "text-timo-gray-700", + toolbarText: "text-timo-gray-900", }, done: { card: "bg-timo-gray-200", title: "text-timo-gray-700", subText: "text-timo-gray-700", + toolbarText: "text-timo-gray-700", }, } as const; +const TOOLBAR_ICON_CLASS_NAME = "size-[18px] shrink-0 md:size-[22px]"; + export interface SubTodo { id: number; text: string; @@ -35,7 +48,6 @@ export interface SubTodo { export interface TodayTodoCardToolbar { date: string; - dateValue: Date; time: string; priority?: PriorityLevel; tag?: string; @@ -98,7 +110,7 @@ export const TodayTodoCard = ({ onClick={onCardClick} onKeyDown={onCardClick ? handleCardKeyDown : undefined} className={cn( - "border-timo-gray-500 flex min-w-80 flex-col gap-1 rounded-[4px] border px-5 py-4", + "border-timo-gray-500 flex w-full flex-col gap-1 overflow-hidden rounded-[4px] border px-3.5 py-3 md:min-w-80 md:px-5 md:py-4", style.card, onCardClick && "cursor-pointer", )} @@ -173,33 +185,72 @@ export const TodayTodoCard = ({ )} -
-
- +
+
+ + {isDimmed ? ( + + ) : ( + + )} + + {toolbar.date} + + + + {isDimmed ? : } + + {toolbar.time} + + + + + + + + + + {isDimmed || !toolbar.hasMemo ? ( + + ) : ( + + )} + + + {isDimmed || !toolbar.hasRepeat ? ( + + ) : ( + + )} +
+ + {toolbar.time} +
); diff --git a/apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/today/_containers/TodayTodoListContainer.tsx b/apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/today/_containers/TodayTodoListContainer.tsx index 94a4a295..7d544a7e 100644 --- a/apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/today/_containers/TodayTodoListContainer.tsx +++ b/apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/today/_containers/TodayTodoListContainer.tsx @@ -139,7 +139,6 @@ export const TodayTodoListContainer = () => { date: formatShortDateLabel( parseDateKey(todo.date) ?? new Date(), ), - dateValue: parseDateKey(todo.date) ?? new Date(), time: convertDurationToTimeText(durationSeconds), priority: todo.priority, tag: todo.tag ? getTagLabel(todo.tag) : undefined, From 0858283e29f908204bb8c9d2ffd4a8695423538c Mon Sep 17 00:00:00 2001 From: hyewon <130418741+ehye1@users.noreply.github.com> Date: Wed, 7 Oct 2026 15:17:58 +0900 Subject: [PATCH 3/3] =?UTF-8?q?refactor(web):=20=EC=98=A4=EB=8A=98=20?= =?UTF-8?q?=ED=88=AC=EB=91=90=20=EC=B9=B4=EB=93=9C=20=ED=88=B4=EB=B0=94=20?= =?UTF-8?q?=ED=81=B4=EB=9E=98=EC=8A=A4=20=ED=91=9C=EA=B8=B0=20=ED=86=B5?= =?UTF-8?q?=EC=9D=BC=20=EB=B0=8F=20=EC=9A=B0=EC=84=A0=EC=88=9C=EC=9C=84=20?= =?UTF-8?q?=EB=9D=BC=EB=B2=A8=20=EC=B6=94=EA=B0=80=20(#318)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 아이콘 크기 클래스를 다른 코드와 같이 Tailwind 단위(size-4.5, size-5.5)로 통일했습니다 - 스크린리더가 우선순위를 읽을 수 있도록 홈 투두 카드와 같이 우선순위 라벨을 추가했습니다 --- .../today/_components/TodayTodoCard.tsx | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/today/_components/TodayTodoCard.tsx b/apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/today/_components/TodayTodoCard.tsx index 3c09dc7b..f222083d 100644 --- a/apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/today/_components/TodayTodoCard.tsx +++ b/apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/today/_components/TodayTodoCard.tsx @@ -38,7 +38,7 @@ const CARD_STYLE = { }, } as const; -const TOOLBAR_ICON_CLASS_NAME = "size-[18px] shrink-0 md:size-[22px]"; +const TOOLBAR_ICON_CLASS_NAME = "size-4.5 shrink-0 md:size-5.5"; export interface SubTodo { id: number; @@ -92,8 +92,13 @@ export const TodayTodoCard = ({ onMouseLeave, }: TodayTodoCardProps) => { const t = useTranslations("Home.createModal"); + const tCommon = useTranslations("Common"); const style = CARD_STYLE[isDimmed ? "done" : "active"]; + const priorityLabel = toolbar.priority + ? tCommon(`priority.${toolbar.priority}`) + : undefined; + const handleCardKeyDown = (e: KeyboardEvent) => { if (e.key === "Enter" || e.key === " ") { e.preventDefault(); @@ -215,7 +220,7 @@ export const TodayTodoCard = ({ @@ -223,6 +228,7 @@ export const TodayTodoCard = ({ priority={ isDimmed || !toolbar.priority ? "Disable" : toolbar.priority } + label={priorityLabel} />