create-ax-project 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (258) hide show
  1. package/README.md +374 -0
  2. package/bin/create.js +193 -0
  3. package/package.json +38 -0
  4. package/template/.claude/CLAUDE.md +7 -0
  5. package/template/.claude/commands/CLAUDE.md +0 -0
  6. package/template/.claude/commands/benchmark.md +103 -0
  7. package/template/.claude/commands/brainstorm.md +67 -0
  8. package/template/.claude/commands/checkpoint.md +93 -0
  9. package/template/.claude/commands/codex.md +107 -0
  10. package/template/.claude/commands/collaborate.md +85 -0
  11. package/template/.claude/commands/context.md +154 -0
  12. package/template/.claude/commands/deploy.md +102 -0
  13. package/template/.claude/commands/fork.md +142 -0
  14. package/template/.claude/commands/gemini.md +84 -0
  15. package/template/.claude/commands/handoff.md +80 -0
  16. package/template/.claude/commands/implement.md +82 -0
  17. package/template/.claude/commands/init-project.md +49 -0
  18. package/template/.claude/commands/next.md +125 -0
  19. package/template/.claude/commands/planning.md +69 -0
  20. package/template/.claude/commands/qa.md +81 -0
  21. package/template/.claude/commands/refactor.md +95 -0
  22. package/template/.claude/commands/research.md +60 -0
  23. package/template/.claude/commands/restore.md +113 -0
  24. package/template/.claude/commands/run-stage.md +78 -0
  25. package/template/.claude/commands/stages.md +109 -0
  26. package/template/.claude/commands/status.md +73 -0
  27. package/template/.claude/commands/tasks.md +80 -0
  28. package/template/.claude/commands/test.md +93 -0
  29. package/template/.claude/commands/ui-ux.md +61 -0
  30. package/template/.claude/commands/validate.md +174 -0
  31. package/template/.claude/hooks/CLAUDE.md +0 -0
  32. package/template/.claude/hooks/ai-selector.sh +223 -0
  33. package/template/.claude/hooks/auto-checkpoint.sh +187 -0
  34. package/template/.claude/hooks/output-validator.sh +289 -0
  35. package/template/.claude/hooks/post-stage.sh +123 -0
  36. package/template/.claude/hooks/pre-stage.sh +186 -0
  37. package/template/.claude/hooks/session-start.sh +90 -0
  38. package/template/.claude/hooks/statusline.sh +115 -0
  39. package/template/.claude/hooks/stop.sh +104 -0
  40. package/template/.claude/settings.json +149 -0
  41. package/template/.claude/skills/ai-collaboration/CLAUDE.md +0 -0
  42. package/template/.claude/skills/ai-collaboration/README.md +61 -0
  43. package/template/.claude/skills/ai-collaboration/debate.md +148 -0
  44. package/template/.claude/skills/ai-collaboration/parallel.md +96 -0
  45. package/template/.claude/skills/ai-collaboration/prompts/CLAUDE.md +107 -0
  46. package/template/.claude/skills/auto-checkpoint/CLAUDE.md +0 -0
  47. package/template/.claude/skills/auto-checkpoint/README.md +77 -0
  48. package/template/.claude/skills/auto-checkpoint/prompts/CLAUDE.md +113 -0
  49. package/template/.claude/skills/auto-checkpoint/rollback.md +152 -0
  50. package/template/.claude/skills/auto-checkpoint/trigger.md +122 -0
  51. package/template/.claude/skills/context-compression/CLAUDE.md +0 -0
  52. package/template/.claude/skills/context-compression/README.md +121 -0
  53. package/template/.claude/skills/context-compression/analyze.md +114 -0
  54. package/template/.claude/skills/context-compression/compress.md +175 -0
  55. package/template/.claude/skills/context-compression/prompts/CLAUDE.md +0 -0
  56. package/template/.claude/skills/context-compression/prompts/compression.md +172 -0
  57. package/template/.claude/skills/output-validator/CLAUDE.md +0 -0
  58. package/template/.claude/skills/output-validator/README.md +86 -0
  59. package/template/.claude/skills/output-validator/prompts/CLAUDE.md +119 -0
  60. package/template/.claude/skills/output-validator/validate.md +182 -0
  61. package/template/.claude/skills/smart-handoff/CLAUDE.md +0 -0
  62. package/template/.claude/skills/smart-handoff/README.md +59 -0
  63. package/template/.claude/skills/smart-handoff/extract.md +76 -0
  64. package/template/.claude/skills/smart-handoff/prompts/CLAUDE.md +86 -0
  65. package/template/.claude/skills/smart-handoff/summarize.md +94 -0
  66. package/template/.claude/skills/stage-transition/CLAUDE.md +0 -0
  67. package/template/.claude/skills/stage-transition/README.md +84 -0
  68. package/template/.claude/skills/stage-transition/handoff-gen.md +160 -0
  69. package/template/.claude/skills/stage-transition/prompts/CLAUDE.md +0 -0
  70. package/template/.claude/skills/stage-transition/prompts/transition.md +145 -0
  71. package/template/.claude/skills/stage-transition/validate.md +108 -0
  72. package/template/CLAUDE.md +528 -0
  73. package/template/config/CLAUDE.md +0 -0
  74. package/template/config/ai_benchmarking.yaml +184 -0
  75. package/template/config/ai_collaboration.yaml +159 -0
  76. package/template/config/ai_logging.yaml +129 -0
  77. package/template/config/auto_checkpoint.yaml +189 -0
  78. package/template/config/context.yaml +78 -0
  79. package/template/config/git.yaml +161 -0
  80. package/template/config/handoff_intelligence.yaml +229 -0
  81. package/template/config/implementation.yaml.template +181 -0
  82. package/template/config/mcp_fallbacks.yaml +252 -0
  83. package/template/config/memory_integration.yaml +200 -0
  84. package/template/config/model_enforcement.yaml +141 -0
  85. package/template/config/models.yaml +242 -0
  86. package/template/config/output_validation.yaml +352 -0
  87. package/template/config/pipeline.yaml +357 -0
  88. package/template/config/pipeline_forking.yaml +236 -0
  89. package/template/config/qa_logging.yaml +166 -0
  90. package/template/config/smart_rollback.yaml +209 -0
  91. package/template/config/stage_personas.yaml +354 -0
  92. package/template/config/workflow.yaml +54 -0
  93. package/template/scripts/CLAUDE.md +0 -0
  94. package/template/scripts/ai-benchmark.sh +272 -0
  95. package/template/scripts/codex-wrapper.sh +97 -0
  96. package/template/scripts/context-manager.sh +528 -0
  97. package/template/scripts/create-checkpoint.sh +116 -0
  98. package/template/scripts/gemini-wrapper.sh +96 -0
  99. package/template/scripts/init-project.sh +109 -0
  100. package/template/scripts/list-stages.sh +245 -0
  101. package/template/scripts/next-stage.sh +228 -0
  102. package/template/scripts/output-validate.sh +12 -0
  103. package/template/scripts/pipeline-fork.sh +293 -0
  104. package/template/scripts/pre-run-check.sh +361 -0
  105. package/template/scripts/restore-checkpoint.sh +247 -0
  106. package/template/scripts/run-stage.sh +139 -0
  107. package/template/scripts/show-status.sh +185 -0
  108. package/template/scripts/smart-handoff.sh +254 -0
  109. package/template/stages/01-brainstorm/CLAUDE.md +103 -0
  110. package/template/stages/01-brainstorm/HANDOFF.md +110 -0
  111. package/template/stages/01-brainstorm/HANDOFF.md.template +112 -0
  112. package/template/stages/01-brainstorm/README.md +97 -0
  113. package/template/stages/01-brainstorm/config.yaml +92 -0
  114. package/template/stages/01-brainstorm/inputs/.gitkeep +0 -0
  115. package/template/stages/01-brainstorm/inputs/CLAUDE.md +0 -0
  116. package/template/stages/01-brainstorm/inputs/project_brief.md +40 -0
  117. package/template/stages/01-brainstorm/outputs/.gitkeep +0 -0
  118. package/template/stages/01-brainstorm/outputs/CLAUDE.md +0 -0
  119. package/template/stages/01-brainstorm/outputs/ideas.md +159 -0
  120. package/template/stages/01-brainstorm/outputs/requirements_analysis.md +222 -0
  121. package/template/stages/01-brainstorm/prompts/CLAUDE.md +0 -0
  122. package/template/stages/01-brainstorm/prompts/collaboration.md +46 -0
  123. package/template/stages/01-brainstorm/prompts/ideation.md +62 -0
  124. package/template/stages/01-brainstorm/prompts/persona.md +73 -0
  125. package/template/stages/01-brainstorm/prompts/requirements.md +73 -0
  126. package/template/stages/01-brainstorm/prompts/validation.md +50 -0
  127. package/template/stages/01-brainstorm/templates/CLAUDE.md +0 -0
  128. package/template/stages/01-brainstorm/templates/ideas.md +91 -0
  129. package/template/stages/01-brainstorm/templates/requirements_analysis.md +129 -0
  130. package/template/stages/02-research/CLAUDE.md +101 -0
  131. package/template/stages/02-research/HANDOFF.md +158 -0
  132. package/template/stages/02-research/HANDOFF.md.template +102 -0
  133. package/template/stages/02-research/config.yaml +68 -0
  134. package/template/stages/02-research/inputs/.gitkeep +0 -0
  135. package/template/stages/02-research/outputs/.gitkeep +0 -0
  136. package/template/stages/02-research/outputs/CLAUDE.md +0 -0
  137. package/template/stages/02-research/outputs/feasibility_report.md +176 -0
  138. package/template/stages/02-research/outputs/tech_research.md +403 -0
  139. package/template/stages/02-research/prompts/CLAUDE.md +0 -0
  140. package/template/stages/02-research/prompts/collaboration.md +51 -0
  141. package/template/stages/02-research/prompts/feasibility.md +73 -0
  142. package/template/stages/02-research/prompts/market_analysis.md +58 -0
  143. package/template/stages/02-research/prompts/tech_stack.md +60 -0
  144. package/template/stages/02-research/prompts/validation.md +51 -0
  145. package/template/stages/02-research/templates/.gitkeep +0 -0
  146. package/template/stages/03-planning/CLAUDE.md +98 -0
  147. package/template/stages/03-planning/HANDOFF.md +168 -0
  148. package/template/stages/03-planning/HANDOFF.md.template +91 -0
  149. package/template/stages/03-planning/config.yaml +64 -0
  150. package/template/stages/03-planning/inputs/.gitkeep +0 -0
  151. package/template/stages/03-planning/outputs/.gitkeep +0 -0
  152. package/template/stages/03-planning/outputs/CLAUDE.md +0 -0
  153. package/template/stages/03-planning/outputs/architecture.md +400 -0
  154. package/template/stages/03-planning/outputs/implementation.yaml +209 -0
  155. package/template/stages/03-planning/outputs/project_plan.md +204 -0
  156. package/template/stages/03-planning/outputs/tech_stack.md +176 -0
  157. package/template/stages/03-planning/prompts/CLAUDE.md +0 -0
  158. package/template/stages/03-planning/prompts/architecture.md +62 -0
  159. package/template/stages/03-planning/prompts/collaboration.md +57 -0
  160. package/template/stages/03-planning/prompts/validation.md +59 -0
  161. package/template/stages/03-planning/templates/.gitkeep +0 -0
  162. package/template/stages/04-ui-ux/CLAUDE.md +88 -0
  163. package/template/stages/04-ui-ux/HANDOFF.md +165 -0
  164. package/template/stages/04-ui-ux/HANDOFF.md.template +92 -0
  165. package/template/stages/04-ui-ux/config.yaml +57 -0
  166. package/template/stages/04-ui-ux/inputs/.gitkeep +0 -0
  167. package/template/stages/04-ui-ux/outputs/.gitkeep +0 -0
  168. package/template/stages/04-ui-ux/outputs/CLAUDE.md +0 -0
  169. package/template/stages/04-ui-ux/outputs/design_system.md +449 -0
  170. package/template/stages/04-ui-ux/outputs/user_flows.md +321 -0
  171. package/template/stages/04-ui-ux/outputs/wireframes.md +241 -0
  172. package/template/stages/04-ui-ux/prompts/.gitkeep +0 -0
  173. package/template/stages/04-ui-ux/prompts/CLAUDE.md +0 -0
  174. package/template/stages/04-ui-ux/prompts/collaboration.md +56 -0
  175. package/template/stages/04-ui-ux/prompts/validation.md +54 -0
  176. package/template/stages/04-ui-ux/templates/.gitkeep +0 -0
  177. package/template/stages/05-task-management/CLAUDE.md +105 -0
  178. package/template/stages/05-task-management/HANDOFF.md +187 -0
  179. package/template/stages/05-task-management/HANDOFF.md.template +97 -0
  180. package/template/stages/05-task-management/config.yaml +81 -0
  181. package/template/stages/05-task-management/inputs/.gitkeep +0 -0
  182. package/template/stages/05-task-management/outputs/.gitkeep +0 -0
  183. package/template/stages/05-task-management/outputs/CLAUDE.md +0 -0
  184. package/template/stages/05-task-management/outputs/milestones.md +253 -0
  185. package/template/stages/05-task-management/outputs/sprint_plan.md +203 -0
  186. package/template/stages/05-task-management/outputs/tasks.md +402 -0
  187. package/template/stages/05-task-management/prompts/.gitkeep +0 -0
  188. package/template/stages/05-task-management/prompts/CLAUDE.md +0 -0
  189. package/template/stages/05-task-management/prompts/collaboration.md +54 -0
  190. package/template/stages/05-task-management/prompts/validation.md +66 -0
  191. package/template/stages/05-task-management/templates/CLAUDE.md +0 -0
  192. package/template/stages/05-task-management/templates/notion_integration.md +176 -0
  193. package/template/stages/05-task-management/templates/parallel_groups.yaml +153 -0
  194. package/template/stages/05-task-management/templates/task_schema.yaml +154 -0
  195. package/template/stages/06-implementation/CLAUDE.md +163 -0
  196. package/template/stages/06-implementation/HANDOFF.md +184 -0
  197. package/template/stages/06-implementation/HANDOFF.md.template +192 -0
  198. package/template/stages/06-implementation/config.yaml +62 -0
  199. package/template/stages/06-implementation/inputs/.gitkeep +0 -0
  200. package/template/stages/06-implementation/outputs/.gitkeep +0 -0
  201. package/template/stages/06-implementation/prompts/.gitkeep +0 -0
  202. package/template/stages/06-implementation/prompts/CLAUDE.md +0 -0
  203. package/template/stages/06-implementation/prompts/collaboration.md +64 -0
  204. package/template/stages/06-implementation/prompts/validation.md +65 -0
  205. package/template/stages/06-implementation/templates/.gitkeep +0 -0
  206. package/template/stages/07-refactoring/CLAUDE.md +180 -0
  207. package/template/stages/07-refactoring/HANDOFF.md +82 -0
  208. package/template/stages/07-refactoring/HANDOFF.md.template +97 -0
  209. package/template/stages/07-refactoring/config.yaml +68 -0
  210. package/template/stages/07-refactoring/inputs/.gitkeep +0 -0
  211. package/template/stages/07-refactoring/outputs/.gitkeep +0 -0
  212. package/template/stages/07-refactoring/outputs/refactoring_report.md +102 -0
  213. package/template/stages/07-refactoring/prompts/.gitkeep +0 -0
  214. package/template/stages/07-refactoring/prompts/CLAUDE.md +0 -0
  215. package/template/stages/07-refactoring/prompts/collaboration.md +71 -0
  216. package/template/stages/07-refactoring/prompts/validation.md +76 -0
  217. package/template/stages/07-refactoring/templates/.gitkeep +0 -0
  218. package/template/stages/08-qa/CLAUDE.md +93 -0
  219. package/template/stages/08-qa/HANDOFF.md +114 -0
  220. package/template/stages/08-qa/HANDOFF.md.template +96 -0
  221. package/template/stages/08-qa/config.yaml +56 -0
  222. package/template/stages/08-qa/inputs/.gitkeep +0 -0
  223. package/template/stages/08-qa/outputs/.gitkeep +0 -0
  224. package/template/stages/08-qa/outputs/qa_report.md +138 -0
  225. package/template/stages/08-qa/prompts/.gitkeep +0 -0
  226. package/template/stages/08-qa/prompts/CLAUDE.md +0 -0
  227. package/template/stages/08-qa/prompts/collaboration.md +65 -0
  228. package/template/stages/08-qa/prompts/validation.md +71 -0
  229. package/template/stages/08-qa/templates/.gitkeep +0 -0
  230. package/template/stages/09-testing/CLAUDE.md +124 -0
  231. package/template/stages/09-testing/HANDOFF.md +118 -0
  232. package/template/stages/09-testing/HANDOFF.md.template +113 -0
  233. package/template/stages/09-testing/config.yaml +65 -0
  234. package/template/stages/09-testing/inputs/.gitkeep +0 -0
  235. package/template/stages/09-testing/outputs/.gitkeep +0 -0
  236. package/template/stages/09-testing/outputs/test_report.md +146 -0
  237. package/template/stages/09-testing/prompts/.gitkeep +0 -0
  238. package/template/stages/09-testing/prompts/CLAUDE.md +0 -0
  239. package/template/stages/09-testing/prompts/collaboration.md +77 -0
  240. package/template/stages/09-testing/prompts/validation.md +83 -0
  241. package/template/stages/09-testing/templates/.gitkeep +0 -0
  242. package/template/stages/10-deployment/CLAUDE.md +117 -0
  243. package/template/stages/10-deployment/HANDOFF.md +141 -0
  244. package/template/stages/10-deployment/HANDOFF.md.template +148 -0
  245. package/template/stages/10-deployment/config.yaml +61 -0
  246. package/template/stages/10-deployment/inputs/.gitkeep +0 -0
  247. package/template/stages/10-deployment/outputs/.gitkeep +0 -0
  248. package/template/stages/10-deployment/prompts/.gitkeep +0 -0
  249. package/template/stages/10-deployment/prompts/CLAUDE.md +0 -0
  250. package/template/stages/10-deployment/prompts/collaboration.md +80 -0
  251. package/template/stages/10-deployment/prompts/validation.md +93 -0
  252. package/template/stages/10-deployment/templates/CLAUDE.md +0 -0
  253. package/template/stages/10-deployment/templates/github-actions-cd.yaml +118 -0
  254. package/template/stages/10-deployment/templates/github-actions-ci.yaml +136 -0
  255. package/template/state/progress.json.template +111 -0
  256. package/template/state/templates/CLAUDE.md +0 -0
  257. package/template/state/templates/handoff_base.md.template +187 -0
  258. package/template/state/templates/phase_state.md.template +97 -0
@@ -0,0 +1,449 @@
1
+ # 🎨 Snake Game - 디자인 시스템
2
+
3
+ > 생성일: 2026-01-21
4
+ > 스테이지: 04-ui-ux
5
+ > 프로젝트: snake-game
6
+ > 테마: Neon Arcade
7
+
8
+ ---
9
+
10
+ ## 1. 색상 팔레트 (Color Palette)
11
+
12
+ ### 1.1 핵심 색상
13
+
14
+ | 역할 | 변수명 | 색상 코드 | 용도 |
15
+ |------|--------|----------|------|
16
+ | **Primary** | `--color-primary` | `#00ff88` | 뱀, 메인 버튼, 강조 텍스트 |
17
+ | **Primary Dark** | `--color-primary-dark` | `#00cc6a` | 뱀 머리, 버튼 hover |
18
+ | **Secondary** | `--color-secondary` | `#ff6b6b` | 먹이, 위험/삭제, Game Over |
19
+ | **Accent** | `--color-accent` | `#f0e130` | 최고 점수, 특별 알림 |
20
+ | **Background** | `--color-bg` | `#1a1a2e` | 페이지 배경 |
21
+ | **Surface** | `--color-surface` | `#16213e` | 카드, 모달, 캔버스 배경 |
22
+
23
+ ### 1.2 텍스트 색상
24
+
25
+ | 역할 | 변수명 | 색상 코드 | 용도 |
26
+ |------|--------|----------|------|
27
+ | **Text Primary** | `--color-text` | `#ffffff` | 주요 텍스트, 점수 |
28
+ | **Text Secondary** | `--color-text-sub` | `#aeb2b8` | 보조 설명, 힌트 |
29
+ | **Text Muted** | `--color-text-muted` | `#6b7280` | 비활성 텍스트 |
30
+
31
+ ### 1.3 그리드/보더 색상
32
+
33
+ | 역할 | 변수명 | 색상 코드 | 용도 |
34
+ |------|--------|----------|------|
35
+ | **Grid Line** | `--color-grid` | `rgba(255, 255, 255, 0.05)` | 게임 보드 격자 |
36
+ | **Border** | `--color-border` | `rgba(255, 255, 255, 0.1)` | 컴포넌트 테두리 |
37
+
38
+ ### 1.4 CSS 변수 정의
39
+
40
+ ```css
41
+ :root {
42
+ /* Colors - Primary */
43
+ --color-primary: #00ff88;
44
+ --color-primary-dark: #00cc6a;
45
+ --color-primary-glow: rgba(0, 255, 136, 0.5);
46
+
47
+ /* Colors - Secondary */
48
+ --color-secondary: #ff6b6b;
49
+ --color-secondary-glow: rgba(255, 107, 107, 0.5);
50
+
51
+ /* Colors - Accent */
52
+ --color-accent: #f0e130;
53
+
54
+ /* Colors - Background */
55
+ --color-bg: #1a1a2e;
56
+ --color-surface: #16213e;
57
+ --color-overlay: rgba(0, 0, 0, 0.85);
58
+
59
+ /* Colors - Text */
60
+ --color-text: #ffffff;
61
+ --color-text-sub: #aeb2b8;
62
+ --color-text-muted: #6b7280;
63
+
64
+ /* Colors - Utility */
65
+ --color-grid: rgba(255, 255, 255, 0.05);
66
+ --color-border: rgba(255, 255, 255, 0.1);
67
+ }
68
+ ```
69
+
70
+ ---
71
+
72
+ ## 2. 타이포그래피 (Typography)
73
+
74
+ ### 2.1 폰트 패밀리
75
+
76
+ | 용도 | 폰트 | 대체 폰트 |
77
+ |------|------|----------|
78
+ | **Primary (Pixel)** | 'Press Start 2P' | 'Courier New', monospace |
79
+ | **Secondary (Modern)** | 'Roboto Mono' | 'Consolas', monospace |
80
+ | **Fallback** | system-ui | -apple-system, sans-serif |
81
+
82
+ ### 2.2 폰트 크기
83
+
84
+ | 변수명 | 크기 | 용도 |
85
+ |--------|------|------|
86
+ | `--font-xs` | 10px | 저작권, 힌트 |
87
+ | `--font-sm` | 12px | 보조 텍스트 |
88
+ | `--font-base` | 14px | 기본 텍스트 |
89
+ | `--font-lg` | 16px | 버튼, 점수 |
90
+ | `--font-xl` | 20px | 섹션 제목 |
91
+ | `--font-2xl` | 24px | 모달 제목 |
92
+ | `--font-3xl` | 32px | 큰 제목 |
93
+ | `--font-4xl` | 48px | 로고 |
94
+
95
+ ### 2.3 폰트 두께
96
+
97
+ | 변수명 | 값 | 용도 |
98
+ |--------|-----|------|
99
+ | `--font-normal` | 400 | 기본 텍스트 |
100
+ | `--font-medium` | 500 | 강조 텍스트 |
101
+ | `--font-bold` | 700 | 제목, 점수 |
102
+
103
+ ### 2.4 CSS 정의
104
+
105
+ ```css
106
+ :root {
107
+ /* Font Family */
108
+ --font-pixel: 'Press Start 2P', 'Courier New', monospace;
109
+ --font-mono: 'Roboto Mono', 'Consolas', monospace;
110
+
111
+ /* Font Size */
112
+ --font-xs: 0.625rem; /* 10px */
113
+ --font-sm: 0.75rem; /* 12px */
114
+ --font-base: 0.875rem; /* 14px */
115
+ --font-lg: 1rem; /* 16px */
116
+ --font-xl: 1.25rem; /* 20px */
117
+ --font-2xl: 1.5rem; /* 24px */
118
+ --font-3xl: 2rem; /* 32px */
119
+ --font-4xl: 3rem; /* 48px */
120
+
121
+ /* Font Weight */
122
+ --font-normal: 400;
123
+ --font-medium: 500;
124
+ --font-bold: 700;
125
+
126
+ /* Line Height */
127
+ --line-tight: 1.25;
128
+ --line-normal: 1.5;
129
+ --line-relaxed: 1.75;
130
+ }
131
+ ```
132
+
133
+ ---
134
+
135
+ ## 3. 스페이싱 시스템 (Spacing)
136
+
137
+ ### 3.1 기본 스케일 (4px 기반)
138
+
139
+ | 변수명 | 값 | 용도 |
140
+ |--------|-----|------|
141
+ | `--space-1` | 4px | 미세 간격 |
142
+ | `--space-2` | 8px | 요소 내 간격 |
143
+ | `--space-3` | 12px | 작은 간격 |
144
+ | `--space-4` | 16px | 기본 간격 |
145
+ | `--space-5` | 20px | 중간 간격 |
146
+ | `--space-6` | 24px | 섹션 간격 |
147
+ | `--space-8` | 32px | 큰 간격 |
148
+ | `--space-10` | 40px | 컴포넌트 간격 |
149
+ | `--space-12` | 48px | 섹션 구분 |
150
+ | `--space-16` | 64px | 페이지 여백 |
151
+
152
+ ### 3.2 CSS 정의
153
+
154
+ ```css
155
+ :root {
156
+ --space-1: 0.25rem; /* 4px */
157
+ --space-2: 0.5rem; /* 8px */
158
+ --space-3: 0.75rem; /* 12px */
159
+ --space-4: 1rem; /* 16px */
160
+ --space-5: 1.25rem; /* 20px */
161
+ --space-6: 1.5rem; /* 24px */
162
+ --space-8: 2rem; /* 32px */
163
+ --space-10: 2.5rem; /* 40px */
164
+ --space-12: 3rem; /* 48px */
165
+ --space-16: 4rem; /* 64px */
166
+ }
167
+ ```
168
+
169
+ ---
170
+
171
+ ## 4. 컴포넌트 스타일
172
+
173
+ ### 4.1 버튼 (Button)
174
+
175
+ ```css
176
+ /* Primary Button */
177
+ .btn-primary {
178
+ background: transparent;
179
+ color: var(--color-primary);
180
+ border: 2px solid var(--color-primary);
181
+ padding: var(--space-3) var(--space-6);
182
+ font-family: var(--font-pixel);
183
+ font-size: var(--font-base);
184
+ cursor: pointer;
185
+ transition: all 0.2s ease;
186
+ }
187
+
188
+ .btn-primary:hover {
189
+ background: var(--color-primary);
190
+ color: var(--color-bg);
191
+ box-shadow: 0 0 20px var(--color-primary-glow);
192
+ }
193
+
194
+ /* Secondary Button */
195
+ .btn-secondary {
196
+ background: transparent;
197
+ color: var(--color-text-sub);
198
+ border: 1px solid var(--color-border);
199
+ padding: var(--space-2) var(--space-4);
200
+ }
201
+
202
+ .btn-secondary:hover {
203
+ border-color: var(--color-text);
204
+ color: var(--color-text);
205
+ }
206
+ ```
207
+
208
+ ### 4.2 모달 (Modal)
209
+
210
+ ```css
211
+ /* Modal Overlay */
212
+ .modal-overlay {
213
+ position: fixed;
214
+ inset: 0;
215
+ background: var(--color-overlay);
216
+ display: flex;
217
+ align-items: center;
218
+ justify-content: center;
219
+ backdrop-filter: blur(4px);
220
+ }
221
+
222
+ /* Modal Content */
223
+ .modal-content {
224
+ background: var(--color-surface);
225
+ border: 2px solid var(--color-primary);
226
+ border-radius: var(--radius-lg);
227
+ padding: var(--space-8);
228
+ max-width: 400px;
229
+ width: 90%;
230
+ box-shadow: 0 0 30px var(--color-primary-glow);
231
+ }
232
+
233
+ /* Modal Title */
234
+ .modal-title {
235
+ font-family: var(--font-pixel);
236
+ font-size: var(--font-2xl);
237
+ color: var(--color-text);
238
+ text-align: center;
239
+ margin-bottom: var(--space-6);
240
+ }
241
+ ```
242
+
243
+ ### 4.3 카드 (Card)
244
+
245
+ ```css
246
+ .card {
247
+ background: var(--color-surface);
248
+ border: 1px solid var(--color-border);
249
+ border-radius: var(--radius-md);
250
+ padding: var(--space-4);
251
+ }
252
+
253
+ .card:hover {
254
+ border-color: var(--color-primary);
255
+ }
256
+ ```
257
+
258
+ ### 4.4 점수판 (ScoreBoard)
259
+
260
+ ```css
261
+ .scoreboard {
262
+ display: flex;
263
+ justify-content: space-between;
264
+ align-items: center;
265
+ padding: var(--space-3) var(--space-4);
266
+ background: var(--color-surface);
267
+ border-bottom: 1px solid var(--color-border);
268
+ }
269
+
270
+ .score {
271
+ font-family: var(--font-pixel);
272
+ font-size: var(--font-lg);
273
+ color: var(--color-text);
274
+ }
275
+
276
+ .high-score {
277
+ font-family: var(--font-pixel);
278
+ font-size: var(--font-base);
279
+ color: var(--color-accent);
280
+ }
281
+ ```
282
+
283
+ ---
284
+
285
+ ## 5. 효과 (Effects)
286
+
287
+ ### 5.1 네온 글로우
288
+
289
+ ```css
290
+ /* Snake Glow */
291
+ .snake-glow {
292
+ box-shadow: 0 0 10px var(--color-primary),
293
+ 0 0 20px var(--color-primary-glow);
294
+ }
295
+
296
+ /* Food Glow */
297
+ .food-glow {
298
+ box-shadow: 0 0 10px var(--color-secondary),
299
+ 0 0 20px var(--color-secondary-glow);
300
+ }
301
+
302
+ /* Text Glow */
303
+ .text-glow {
304
+ text-shadow: 0 0 10px currentColor;
305
+ }
306
+ ```
307
+
308
+ ### 5.2 애니메이션
309
+
310
+ ```css
311
+ /* Score Pulse */
312
+ @keyframes score-pulse {
313
+ 0%, 100% { transform: scale(1); }
314
+ 50% { transform: scale(1.2); }
315
+ }
316
+
317
+ .score-pulse {
318
+ animation: score-pulse 0.2s ease;
319
+ }
320
+
321
+ /* Modal Enter */
322
+ @keyframes modal-enter {
323
+ from {
324
+ opacity: 0;
325
+ transform: scale(0.9);
326
+ }
327
+ to {
328
+ opacity: 1;
329
+ transform: scale(1);
330
+ }
331
+ }
332
+
333
+ .modal-enter {
334
+ animation: modal-enter 0.3s ease;
335
+ }
336
+
337
+ /* Blink (High Score) */
338
+ @keyframes blink {
339
+ 0%, 100% { opacity: 1; }
340
+ 50% { opacity: 0.5; }
341
+ }
342
+
343
+ .blink {
344
+ animation: blink 1s infinite;
345
+ }
346
+
347
+ /* Snake Pulse */
348
+ @keyframes snake-pulse {
349
+ 0%, 100% { box-shadow: 0 0 5px var(--color-primary); }
350
+ 50% { box-shadow: 0 0 15px var(--color-primary-glow); }
351
+ }
352
+ ```
353
+
354
+ ---
355
+
356
+ ## 6. 반응형 디자인
357
+
358
+ ### 6.1 브레이크포인트
359
+
360
+ | 변수명 | 값 | 설명 |
361
+ |--------|-----|------|
362
+ | `--bp-sm` | 480px | 모바일 |
363
+ | `--bp-md` | 768px | 태블릿 |
364
+ | `--bp-lg` | 1024px | 데스크톱 |
365
+
366
+ ### 6.2 미디어 쿼리
367
+
368
+ ```css
369
+ /* Mobile First */
370
+ .container {
371
+ padding: var(--space-4);
372
+ }
373
+
374
+ /* Tablet */
375
+ @media (min-width: 480px) {
376
+ .container {
377
+ padding: var(--space-6);
378
+ }
379
+ }
380
+
381
+ /* Desktop */
382
+ @media (min-width: 768px) {
383
+ .container {
384
+ padding: var(--space-8);
385
+ max-width: 600px;
386
+ margin: 0 auto;
387
+ }
388
+ }
389
+ ```
390
+
391
+ ---
392
+
393
+ ## 7. 기타 토큰
394
+
395
+ ### 7.1 Border Radius
396
+
397
+ | 변수명 | 값 |
398
+ |--------|-----|
399
+ | `--radius-sm` | 4px |
400
+ | `--radius-md` | 8px |
401
+ | `--radius-lg` | 12px |
402
+ | `--radius-xl` | 16px |
403
+ | `--radius-full` | 9999px |
404
+
405
+ ### 7.2 Shadow
406
+
407
+ | 변수명 | 값 |
408
+ |--------|-----|
409
+ | `--shadow-sm` | `0 1px 2px rgba(0,0,0,0.3)` |
410
+ | `--shadow-md` | `0 4px 6px rgba(0,0,0,0.4)` |
411
+ | `--shadow-lg` | `0 10px 15px rgba(0,0,0,0.5)` |
412
+ | `--shadow-glow` | `0 0 20px var(--color-primary-glow)` |
413
+
414
+ ### 7.3 Transition
415
+
416
+ | 변수명 | 값 |
417
+ |--------|-----|
418
+ | `--transition-fast` | `0.1s ease` |
419
+ | `--transition-normal` | `0.2s ease` |
420
+ | `--transition-slow` | `0.3s ease` |
421
+
422
+ ---
423
+
424
+ ## 8. 컴포넌트 목록
425
+
426
+ | 컴포넌트 | 설명 | 스타일 파일 |
427
+ |---------|------|------------|
428
+ | App | 레이아웃 컨테이너 | App.module.css |
429
+ | StartScreen | 시작 화면 | StartScreen.module.css |
430
+ | GameEngine | 게임 엔진 래퍼 | GameEngine.module.css |
431
+ | CanvasLayer | Canvas 렌더링 | CanvasLayer.module.css |
432
+ | ScoreBoard | 점수판 | ScoreBoard.module.css |
433
+ | GameOverModal | 게임 오버 모달 | GameOverModal.module.css |
434
+ | MobileControls | 모바일 컨트롤 | MobileControls.module.css |
435
+
436
+ ---
437
+
438
+ ## ✅ 디자인 시스템 체크리스트
439
+
440
+ - [x] 색상 팔레트 정의
441
+ - [x] 타이포그래피 정의
442
+ - [x] 스페이싱 시스템
443
+ - [x] 버튼 스타일
444
+ - [x] 모달 스타일
445
+ - [x] 네온 글로우 효과
446
+ - [x] 애니메이션 정의
447
+ - [x] 반응형 브레이크포인트
448
+ - [x] CSS 변수 정의
449
+ - [x] 컴포넌트 목록