Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
5e21bc2
chore(ui): Storybook 의존성 및 실행 스크립트 추가 (#14)
yumin-kim2 Jun 25, 2026
26b440c
chore(ui): Storybook 기본 설정 추가 (#14)
yumin-kim2 Jun 25, 2026
9371293
chore(ui): Storybook 확인용 스토리 추가 (#14)
yumin-kim2 Jun 25, 2026
a6804c1
chore(root): Storybook 실행 스크립트 간소화 (#14)
yumin-kim2 Jun 25, 2026
d8196aa
chore(ui): Storybook 설정 주석 제거 (#14)
yumin-kim2 Jun 26, 2026
ba3234e
chore(ui): Storybook 접근성 addon 추가 (#14)
yumin-kim2 Jun 26, 2026
7ef42d9
chore(ui): develop 최신 변경사항 병합 (#14)
yumin-kim2 Jun 26, 2026
4f9a479
chore(ui): Storybook 문서화 addon 구성 (#14)
yumin-kim2 Jun 27, 2026
143441f
docs(ui): Storybook 작성 가이드 추가 (#14)
yumin-kim2 Jun 27, 2026
ad16210
chore(ui): Storybook preview 옵션 보강 (#14)
yumin-kim2 Jun 27, 2026
8e77421
ci(ui): Chromatic 배포 워크플로우 추가 (#14)
yumin-kim2 Jun 27, 2026
218a3c0
merge: develop 브랜치 병합 (#14)
yumin-kim2 Jun 27, 2026
f83dfad
feat(ui): Storybook 예시 Button 컴포넌트 추가 (#14)
yumin-kim2 Jun 27, 2026
fcdaf03
chore(ui): Storybook 및 Chromatic 설정 리뷰 반영 (#14)
yumin-kim2 Jun 27, 2026
1110548
fix(ui): Storybook 타입 및 Chromatic 변경 감지 설정 수정 (#14)
yumin-kim2 Jun 27, 2026
a00bff3
chore(root): Storybook 빌드 산출물 gitignore 추가 (#14)
yumin-kim2 Jun 27, 2026
e9239e7
chore(ui): Chromatic 변경 스토리만 검사하도록 설정 (#14)
yumin-kim2 Jun 27, 2026
14d7239
chore(ui): Chromatic 리뷰 반영 (#14)
yumin-kim2 Jun 27, 2026
8adfc30
chore(fix): pull-requests write로 변경 (#14)
yumin-kim2 Jun 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
"build:web": "turbo run build --filter=timo-web",
"dev": "turbo run dev",
"dev:web": "turbo run dev --filter=timo-web",
"storybook": "pnpm --filter @repo/timo-design-system storybook",
"build-storybook": "pnpm --filter @repo/timo-design-system build-storybook",
"lint": "turbo run lint",
"lint:web": "turbo run lint --filter=timo-web",
"format": "prettier --write \"**/*.{ts,tsx,md}\"",
Expand Down
13 changes: 13 additions & 0 deletions packages/timo-design-system/.storybook/main.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// 스토리북이 어디서 스토리 파일을 찾을지 정하는 곳
Comment thread
yumin-kim2 marked this conversation as resolved.
Outdated
import type { StorybookConfig } from "@storybook/react-vite";

const config: StorybookConfig = {
stories: ["../src/**/*.stories.@(js|jsx|ts|tsx)"],
addons: ["@storybook/addon-links"],
framework: {
name: "@storybook/react-vite",
options: {},
},
};

export default config;
29 changes: 29 additions & 0 deletions packages/timo-design-system/.storybook/preview.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import type { Preview } from "@storybook/react-vite";

const preview: Preview = {
parameters: {
controls: {
matchers: {
color: /(background|color)$/i,
date: /Date$/i,
},
Comment thread
yumin-kim2 marked this conversation as resolved.
},
viewport: {
viewports: {
mobile: { name: "Mobile", styles: { width: "375px", height: "812px" } },
tablet: {
name: "Tablet",
styles: { width: "768px", height: "1024px" },
},
desktop: {
name: "Desktop",
styles: { width: "1280px", height: "900px" },
},
},
defaultViewport: "desktop",
},
layout: "centered",
},
};

export default preview;
7 changes: 6 additions & 1 deletion packages/timo-design-system/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,20 @@
"scripts": {
"lint": "eslint . --max-warnings 0",
"generate:component": "turbo gen react-component",
"check-types": "tsc --noEmit"
"check-types": "tsc --noEmit",
"storybook": "storybook dev -p 6006",
"build-storybook": "storybook build"
},
"devDependencies": {
"@repo/eslint-config": "workspace:*",
"@repo/typescript-config": "workspace:*",
"@storybook/addon-links": "^10.4.6",

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@storybook/addon-a11y, @storybook/addon-essentials 과 같은 유용한 도구를 추가해도 좋을 것 같아요

addon-a11y 같은 경우는 각 스토리에 접근성 탭을 추가해서 WCAG 위반을 바로 확인할 수 있게 해 주고,
addon-essentials 같은 경우는 autodocs, onClick, Control, bg 옵션 등등 다양한 도구를 사용할 수 있어요

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

좋은 의견 감사합니다!

@storybook/addon-a11y는 접근성 확인에 유용해서 추가해보겠습니다.

다만 @storybook/addon-essentials, @storybook/addon-interactions는 초기 설정 중에 추가해봤을 때 Storybook 본체는 10.4.6인데 해당 addon들이 계속 8.6.14로 설치되면서 version mismatch 에러가 발생했었습니다.........

Storybook 10.4.6
@storybook/addon-essentials@8.6.14
@storybook/addon-interactions@8.6.14

"@storybook/react-vite": "^10.4.6",
"@types/node": "^22.15.3",
"@types/react": "19.2.2",
"@types/react-dom": "19.2.2",
"eslint": "^9.39.1",
"storybook": "^10.4.6",
"typescript": "5.9.2"
},
"dependencies": {
Expand Down
17 changes: 17 additions & 0 deletions packages/timo-design-system/src/Introduction.stories.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import type { Meta, StoryObj } from "@storybook/react-vite";

const Introduction = () => (
<div>
<h1>Timo Design System</h1>
<p>디자인 시스템 확정 후 공통 컴포넌트와 아이콘을 추가합니다.</p>
</div>
);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Introduction는 named export + Fragment로 바꿔주세요.

로컬 컴포넌트가 div wrapper를 쓰고 있어서 TSX 컨벤션과 의미 구조가 같이 어긋납니다. 아래처럼 export const Introduction = () => <>...</>로 바꾸면 규칙을 한 번에 맞출 수 있습니다. As per path instructions, **/*.{ts,tsx}: 컴포넌트는 반드시 Arrow function + Named export, div 남발 금지, 최상단 래퍼는 Fragment.

💡 Proposed fix
-const Introduction = () => (
-  <div>
-    <h1>Timo Design System</h1>
-    <p>디자인 시스템 확정 후 공통 컴포넌트와 아이콘을 추가합니다.</p>
-  </div>
-);
+export const Introduction = () => (
+  <>
+    <h1>Timo Design System</h1>
+    <p>디자인 시스템 확정 후 공통 컴포넌트와 아이콘을 추가합니다.</p>
+  </>
+);
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
const Introduction = () => (
<div>
<h1>Timo Design System</h1>
<p>디자인 시스템 확정 후 공통 컴포넌트와 아이콘을 추가합니다.</p>
</div>
);
export const Introduction = () => (
<>
<h1>Timo Design System</h1>
<p>디자인 시스템 확정 후 공통 컴포넌트와 아이콘을 추가합니다.</p>
</>
);
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/timo-design-system/src/Introduction.stories.tsx` around lines 3 - 8,
The Introduction story component should be converted from a local default-style
declaration with a div wrapper to a named export arrow function using a Fragment
as the top-level wrapper. Update the Introduction component in
Introduction.stories.tsx to export it as a named constant, remove the div
wrapper, and keep the existing heading and paragraph inside a Fragment to match
the TSX conventions and component structure rules.

Source: Path instructions


const meta: Meta<typeof Introduction> = {
title: "Introduction",
component: Introduction,
};

export default meta;

export const Default: StoryObj<typeof Introduction> = {};
Loading
Loading