From 04e9a014ef1fd31ec0921b834186932e52d6713c Mon Sep 17 00:00:00 2001 From: kimminna Date: Thu, 2 Jul 2026 02:12:41 +0900 Subject: [PATCH 1/9] =?UTF-8?q?feat(ui):=20AddTaskButton=20=EC=BB=B4?= =?UTF-8?q?=ED=8F=AC=EB=84=8C=ED=8A=B8=20=EA=B5=AC=ED=98=84=20(#71)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 할 일 추가 버튼(default/weekly/big variant) 컴포넌트와 스토리를 추가했습니다 - index.ts에 AddTaskButton export를 추가했습니다 - plus 아이콘 소스가 추가되어 더 이상 필요 없는 icons/.gitkeep을 삭제했습니다 --- .../add-task-button/AddTaskButton.stories.tsx | 41 +++++++++++++++ .../button/add-task-button/AddTaskButton.tsx | 50 +++++++++++++++++++ .../src/components/index.ts | 1 + .../timo-design-system/src/icons/.gitkeep | 0 4 files changed, 92 insertions(+) create mode 100644 packages/timo-design-system/src/components/button/add-task-button/AddTaskButton.stories.tsx create mode 100644 packages/timo-design-system/src/components/button/add-task-button/AddTaskButton.tsx delete mode 100644 packages/timo-design-system/src/icons/.gitkeep diff --git a/packages/timo-design-system/src/components/button/add-task-button/AddTaskButton.stories.tsx b/packages/timo-design-system/src/components/button/add-task-button/AddTaskButton.stories.tsx new file mode 100644 index 0000000..a227d8c --- /dev/null +++ b/packages/timo-design-system/src/components/button/add-task-button/AddTaskButton.stories.tsx @@ -0,0 +1,41 @@ +import { AddTaskButton } from "./AddTaskButton"; + +import type { Meta, StoryObj } from "@storybook/react"; + +const meta = { + title: "Components/Button/AddTaskButton", + component: AddTaskButton, + parameters: { + layout: "centered", + }, + argTypes: { + text: { + control: "text", + }, + variant: { + control: "select", + options: ["default", "weekly", "big"], + }, + }, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const Default: Story = { + args: { + variant: "default", + }, +}; + +export const Weekly: Story = { + args: { + variant: "weekly", + }, +}; + +export const Big: Story = { + args: { + variant: "big", + }, +}; diff --git a/packages/timo-design-system/src/components/button/add-task-button/AddTaskButton.tsx b/packages/timo-design-system/src/components/button/add-task-button/AddTaskButton.tsx new file mode 100644 index 0000000..46fe87b --- /dev/null +++ b/packages/timo-design-system/src/components/button/add-task-button/AddTaskButton.tsx @@ -0,0 +1,50 @@ +import { PlusIcon } from "../../../icons"; +import { cn } from "../../../lib"; + +export type AddTaskButtonVariant = "default" | "weekly" | "big"; + +const ADD_TASK_BUTTON_VARIANT: Record = { + default: "w-57.5 px-2 typo-body-m-12", + weekly: "w-29 px-2 typo-body-m-12", + big: "h-14.5 w-155 px-5 typo-headline-m-14", +}; + +export interface AddTaskButtonProps { + text?: string; + variant?: AddTaskButtonVariant; + onClick?: () => void; +} + +export const AddTaskButton = ({ + text = "할 일을 추가하세요", + variant = "default", + onClick, +}: AddTaskButtonProps) => { + const isWeekly = variant === "weekly"; + + return ( + + ); +}; diff --git a/packages/timo-design-system/src/components/index.ts b/packages/timo-design-system/src/components/index.ts index 9ae8ca5..61e2238 100644 --- a/packages/timo-design-system/src/components/index.ts +++ b/packages/timo-design-system/src/components/index.ts @@ -2,3 +2,4 @@ export { Color } from "./color/Color"; export { Typography } from "./typography/Typography"; export { Tag } from "./tag/Tag"; export { PriorityIcon } from "./priority-icon/PriorityIcon"; +export { AddTaskButton } from "./button/add-task-button/AddTaskButton"; diff --git a/packages/timo-design-system/src/icons/.gitkeep b/packages/timo-design-system/src/icons/.gitkeep deleted file mode 100644 index e69de29..0000000 From 125c0ffba14df6d3e445186f2765bfdab086d4c4 Mon Sep 17 00:00:00 2001 From: kimminna Date: Thu, 2 Jul 2026 02:13:05 +0900 Subject: [PATCH 2/9] =?UTF-8?q?feat(web):=20=EC=A0=84=EC=97=AD=20button=20?= =?UTF-8?q?cursor=20pointer=20=EC=8A=A4=ED=83=80=EC=9D=BC=20=EC=A0=81?= =?UTF-8?q?=EC=9A=A9=20(#71)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 클릭 가능함을 시각적으로 나타내기 위해 button 요소에 cursor: pointer 스타일을 추가했습니다 --- apps/timo-web/app/globals.css | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/apps/timo-web/app/globals.css b/apps/timo-web/app/globals.css index 73d2a0d..93300cb 100644 --- a/apps/timo-web/app/globals.css +++ b/apps/timo-web/app/globals.css @@ -1,3 +1,9 @@ @import "tailwindcss"; @import "@repo/tailwind-config/theme.css"; @import "@repo/timo-design-system/styles"; + +@layer base { + button { + cursor: pointer; + } +} From 23adee99806916da3700b344a88ee8c79e951d3e Mon Sep 17 00:00:00 2001 From: kimminna Date: Thu, 2 Jul 2026 02:13:13 +0900 Subject: [PATCH 3/9] =?UTF-8?q?style(ui):=20Tag=20=EC=BB=B4=ED=8F=AC?= =?UTF-8?q?=EB=84=8C=ED=8A=B8=20=ED=8F=AC=EB=A7=B7=ED=8C=85=20=EC=A0=95?= =?UTF-8?q?=EB=A6=AC=20(#71)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 가독성을 위해 빈 줄을 추가했습니다 --- packages/timo-design-system/src/components/tag/Tag.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/timo-design-system/src/components/tag/Tag.tsx b/packages/timo-design-system/src/components/tag/Tag.tsx index 96e6efe..1926189 100644 --- a/packages/timo-design-system/src/components/tag/Tag.tsx +++ b/packages/timo-design-system/src/components/tag/Tag.tsx @@ -7,6 +7,7 @@ export interface TagProps { export const Tag = ({ text, variant = "default" }: TagProps) => { const isBlue = variant === "blue"; + return (
Date: Thu, 2 Jul 2026 02:24:29 +0900 Subject: [PATCH 4/9] =?UTF-8?q?refactor(ui):=20AddTaskButton=20import=20?= =?UTF-8?q?=EA=B2=BD=EB=A1=9C=EB=A5=BC=20alias=EB=A1=9C=20=EC=A0=95?= =?UTF-8?q?=EB=A6=AC=20(#71)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 상대 경로(../../../icons, ./AddTaskButton) import를 @icons, @lib, @components alias로 변경했습니다 --- .../button/add-task-button/AddTaskButton.stories.tsx | 2 +- .../src/components/button/add-task-button/AddTaskButton.tsx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/timo-design-system/src/components/button/add-task-button/AddTaskButton.stories.tsx b/packages/timo-design-system/src/components/button/add-task-button/AddTaskButton.stories.tsx index a227d8c..2ca4c03 100644 --- a/packages/timo-design-system/src/components/button/add-task-button/AddTaskButton.stories.tsx +++ b/packages/timo-design-system/src/components/button/add-task-button/AddTaskButton.stories.tsx @@ -1,4 +1,4 @@ -import { AddTaskButton } from "./AddTaskButton"; +import { AddTaskButton } from "@components/button/add-task-button/AddTaskButton"; import type { Meta, StoryObj } from "@storybook/react"; diff --git a/packages/timo-design-system/src/components/button/add-task-button/AddTaskButton.tsx b/packages/timo-design-system/src/components/button/add-task-button/AddTaskButton.tsx index 46fe87b..9edfb2e 100644 --- a/packages/timo-design-system/src/components/button/add-task-button/AddTaskButton.tsx +++ b/packages/timo-design-system/src/components/button/add-task-button/AddTaskButton.tsx @@ -1,5 +1,5 @@ -import { PlusIcon } from "../../../icons"; -import { cn } from "../../../lib"; +import { PlusIcon } from "@icons"; +import { cn } from "@lib"; export type AddTaskButtonVariant = "default" | "weekly" | "big"; From 594661ae026c12228bba4cc9dba32bb4bcdf0462 Mon Sep 17 00:00:00 2001 From: kimminna Date: Thu, 2 Jul 2026 02:29:16 +0900 Subject: [PATCH 5/9] =?UTF-8?q?refactor(ui):=20AddTaskButton=20=ED=85=8D?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=20truncate=20=EB=A1=9C=EC=A7=81=20=EB=8B=A8?= =?UTF-8?q?=EC=88=9C=ED=99=94=20(#71)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - whitespace-nowrap/overflow-hidden/text-ellipsis 조합을 weekly variant에서 Tailwind truncate 유틸리티로 단순화했습니다 --- .../src/components/button/add-task-button/AddTaskButton.tsx | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/timo-design-system/src/components/button/add-task-button/AddTaskButton.tsx b/packages/timo-design-system/src/components/button/add-task-button/AddTaskButton.tsx index 9edfb2e..0d69eb7 100644 --- a/packages/timo-design-system/src/components/button/add-task-button/AddTaskButton.tsx +++ b/packages/timo-design-system/src/components/button/add-task-button/AddTaskButton.tsx @@ -37,10 +37,8 @@ export const AddTaskButton = ({ {text} From f9ce919f891705d3bb2fdf7a34285a1b86dc5bf0 Mon Sep 17 00:00:00 2001 From: kimminna Date: Thu, 2 Jul 2026 02:33:21 +0900 Subject: [PATCH 6/9] =?UTF-8?q?fix(ui):=20AddTaskButton=20text=20prop=20?= =?UTF-8?q?=ED=95=84=EC=88=98=ED=99=94=20=EB=B0=8F=20=ED=95=98=EB=93=9C?= =?UTF-8?q?=EC=BD=94=EB=94=A9=20=EC=B9=B4=ED=94=BC=20=EC=A0=9C=EA=B1=B0=20?= =?UTF-8?q?(#71)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 디자인 시스템에 도메인 특정 한국어 카피를 두지 않도록 text의 기본값을 제거하고 필수 prop으로 변경했습니다 - 타입을 맞추기 위해 Storybook 스토리 3곳에 text 값을 명시적으로 추가했습니다 --- .../button/add-task-button/AddTaskButton.stories.tsx | 3 +++ .../src/components/button/add-task-button/AddTaskButton.tsx | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/timo-design-system/src/components/button/add-task-button/AddTaskButton.stories.tsx b/packages/timo-design-system/src/components/button/add-task-button/AddTaskButton.stories.tsx index 2ca4c03..b6c2423 100644 --- a/packages/timo-design-system/src/components/button/add-task-button/AddTaskButton.stories.tsx +++ b/packages/timo-design-system/src/components/button/add-task-button/AddTaskButton.stories.tsx @@ -24,18 +24,21 @@ type Story = StoryObj; export const Default: Story = { args: { + text: "Add task", variant: "default", }, }; export const Weekly: Story = { args: { + text: "Add task", variant: "weekly", }, }; export const Big: Story = { args: { + text: "Add task", variant: "big", }, }; diff --git a/packages/timo-design-system/src/components/button/add-task-button/AddTaskButton.tsx b/packages/timo-design-system/src/components/button/add-task-button/AddTaskButton.tsx index 0d69eb7..f6698f2 100644 --- a/packages/timo-design-system/src/components/button/add-task-button/AddTaskButton.tsx +++ b/packages/timo-design-system/src/components/button/add-task-button/AddTaskButton.tsx @@ -10,13 +10,13 @@ const ADD_TASK_BUTTON_VARIANT: Record = { }; export interface AddTaskButtonProps { - text?: string; + text: string; variant?: AddTaskButtonVariant; onClick?: () => void; } export const AddTaskButton = ({ - text = "할 일을 추가하세요", + text, variant = "default", onClick, }: AddTaskButtonProps) => { From c1310db4e704325d471cb91bcfd66105e23098ca Mon Sep 17 00:00:00 2001 From: kimminna Date: Thu, 2 Jul 2026 02:36:26 +0900 Subject: [PATCH 7/9] =?UTF-8?q?fix(web):=20=EB=B9=84=ED=99=9C=EC=84=B1?= =?UTF-8?q?=ED=99=94=EB=90=9C=20button=20cursor=20=EC=8A=A4=ED=83=80?= =?UTF-8?q?=EC=9D=BC=20=EC=88=98=EC=A0=95=20(#71)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - button:disabled에 cursor: not-allowed를 추가해 비활성화된 버튼이 pointer 커서로 표시되지 않도록 수정했습니다 --- apps/timo-web/app/globals.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/apps/timo-web/app/globals.css b/apps/timo-web/app/globals.css index 93300cb..51c348a 100644 --- a/apps/timo-web/app/globals.css +++ b/apps/timo-web/app/globals.css @@ -6,4 +6,8 @@ button { cursor: pointer; } + + button:disabled { + cursor: not-allowed; + } } From fd94b4eaf00e04d8603d1ae6538354ccf5a7c0e8 Mon Sep 17 00:00:00 2001 From: kimminna Date: Fri, 3 Jul 2026 00:30:34 +0900 Subject: [PATCH 8/9] =?UTF-8?q?refactor(ui):=20=EC=BB=B4=ED=8F=AC=EB=84=8C?= =?UTF-8?q?=ED=8A=B8=20export=20=EA=B2=BD=EB=A1=9C=EB=A5=BC=20=EC=A0=88?= =?UTF-8?q?=EB=8C=80=20=EA=B2=BD=EB=A1=9C=EB=A1=9C=20=EB=B3=80=EA=B2=BD=20?= =?UTF-8?q?(#71)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 모든 export 경로를 상대 경로에서 @components 절대 경로로 통일했습니다 --- packages/timo-design-system/src/components/index.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/timo-design-system/src/components/index.ts b/packages/timo-design-system/src/components/index.ts index 4c83c19..9ac3229 100644 --- a/packages/timo-design-system/src/components/index.ts +++ b/packages/timo-design-system/src/components/index.ts @@ -1,8 +1,8 @@ -export { Checkbox } from "./checkbox/Checkbox"; -export { Color } from "./color/Color"; -export { Typography } from "./typography/Typography"; -export { Tag } from "./tag/Tag"; -export { PriorityIcon } from "./priority-icon/PriorityIcon"; -export { AddTaskButton } from "./button/add-task-button/AddTaskButton"; +export { Checkbox } from "@components/checkbox/Checkbox"; +export { Color } from "@components/color/Color"; +export { Typography } from "@components/typography/Typography"; +export { Tag } from "@components/tag/Tag"; +export { PriorityIcon } from "@components/priority-icon/PriorityIcon"; +export { AddTaskButton } from "@components/button/add-task-button/AddTaskButton"; export { TodayBadge } from "@components/badge/today-badge/TodayBadge"; export { PlayButton } from "@components/button/play-button/PlayButton"; From 5bd5af1c6e78dfaa6f37a0c5d45e4fefdcaf9ef3 Mon Sep 17 00:00:00 2001 From: kimminna Date: Fri, 3 Jul 2026 00:30:50 +0900 Subject: [PATCH 9/9] =?UTF-8?q?chore(root):=20=EC=BB=B4=ED=8F=AC=EB=84=8C?= =?UTF-8?q?=ED=8A=B8=20=EC=A0=9C=EB=84=88=EB=A0=88=EC=9D=B4=ED=84=B0?= =?UTF-8?q?=EA=B0=80=20=EC=A0=88=EB=8C=80=20=EA=B2=BD=EB=A1=9C=20import?= =?UTF-8?q?=EB=A5=BC=20=EC=83=9D=EC=84=B1=ED=95=98=EB=8F=84=EB=A1=9D=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20(#71)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - react-component 제너레이터가 index.ts에 절대 경로 import를 자동 생성하도록 수정했습니다 --- turbo/generators/config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/turbo/generators/config.ts b/turbo/generators/config.ts index 5b7ddcb..c918c14 100644 --- a/turbo/generators/config.ts +++ b/turbo/generators/config.ts @@ -31,7 +31,7 @@ export default function generator(plop: PlopTypes.NodePlopAPI): void { type: "append", path: "packages/timo-design-system/src/components/index.ts", template: - 'export { {{pascalCase name}} } from "./{{kebabCase name}}/{{pascalCase name}}";', + 'export { {{pascalCase name}} } from "@components/{{kebabCase name}}/{{pascalCase name}}";', }, ], });