diff --git a/apps/timo-web/app/globals.css b/apps/timo-web/app/globals.css index 73d2a0d..51c348a 100644 --- a/apps/timo-web/app/globals.css +++ b/apps/timo-web/app/globals.css @@ -1,3 +1,13 @@ @import "tailwindcss"; @import "@repo/tailwind-config/theme.css"; @import "@repo/timo-design-system/styles"; + +@layer base { + button { + cursor: pointer; + } + + button:disabled { + cursor: not-allowed; + } +} 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..b6c2423 --- /dev/null +++ b/packages/timo-design-system/src/components/button/add-task-button/AddTaskButton.stories.tsx @@ -0,0 +1,44 @@ +import { AddTaskButton } from "@components/button/add-task-button/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: { + 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 new file mode 100644 index 0000000..f6698f2 --- /dev/null +++ b/packages/timo-design-system/src/components/button/add-task-button/AddTaskButton.tsx @@ -0,0 +1,48 @@ +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 ee483bf..9ac3229 100644 --- a/packages/timo-design-system/src/components/index.ts +++ b/packages/timo-design-system/src/components/index.ts @@ -3,6 +3,6 @@ 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 { CreateButton } from "@components/button/create-button/CreateButton"; +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"; 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 (