@kood/claude-code 0.4.1 → 0.5.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.
- package/dist/index.js +53 -7
- package/package.json +2 -1
- package/templates/.claude/PARALLEL_AGENTS.md +737 -0
- package/templates/.claude/agents/analyst.md +416 -0
- package/templates/.claude/agents/architect.md +569 -0
- package/templates/.claude/agents/code-reviewer.md +132 -133
- package/templates/.claude/agents/dependency-manager.md +93 -94
- package/templates/.claude/agents/deployment-validator.md +64 -65
- package/templates/.claude/agents/designer.md +655 -0
- package/templates/.claude/agents/document-writer.md +500 -0
- package/templates/.claude/agents/explore.md +499 -0
- package/templates/.claude/agents/git-operator.md +74 -75
- package/templates/.claude/agents/implementation-executor.md +138 -109
- package/templates/.claude/agents/ko-to-en-translator.md +18 -22
- package/templates/.claude/agents/lint-fixer.md +250 -93
- package/templates/.claude/agents/planner.md +356 -0
- package/templates/.claude/agents/refactor-advisor.md +135 -136
- package/templates/.claude/commands/bug-fix.md +296 -207
- package/templates/.claude/commands/git-all.md +199 -46
- package/templates/.claude/commands/git-session.md +113 -57
- package/templates/.claude/commands/lint-fix.md +219 -153
- package/templates/.claude/commands/lint-init.md +113 -76
- package/templates/.claude/commands/pre-deploy.md +190 -124
- package/templates/.claude/commands/refactor.md +407 -162
- package/templates/.claude/commands/version-update.md +138 -37
- package/templates/.claude/instructions/context-engineering/ANTHROPIC_CONTEXT_ENGINEERING.md +178 -0
- package/templates/.claude/instructions/context-engineering/references/claude-4x.md +215 -0
- package/templates/.claude/instructions/context-engineering/references/core-principles.md +137 -0
- package/templates/.claude/instructions/context-engineering/references/examples.md +351 -0
- package/templates/.claude/instructions/context-engineering/references/techniques.md +162 -0
- package/templates/.claude/instructions/parallel-agent-execution.md +874 -0
- package/templates/.claude/skills/docs-creator/AGENTS.md +238 -0
- package/templates/.claude/{commands/docs-creator.md → skills/docs-creator/SKILL.md} +61 -75
- package/templates/.claude/skills/docs-refactor/AGENTS.md +270 -0
- package/templates/.claude/{commands/docs-refactor.md → skills/docs-refactor/SKILL.md} +30 -44
- package/templates/.claude/skills/execute/SKILL.md +451 -0
- package/templates/.claude/skills/figma-to-code/AGENTS.md +287 -0
- package/templates/.claude/skills/figma-to-code/SKILL.md +225 -225
- package/templates/.claude/skills/figma-to-code/references/design-tokens.md +75 -73
- package/templates/.claude/skills/figma-to-code/references/figma-mcp-tools.md +73 -73
- package/templates/.claude/skills/figma-to-code/references/layout-mapping.md +104 -104
- package/templates/.claude/skills/figma-to-code/references/responsive-design.md +99 -99
- package/templates/.claude/skills/figma-to-code/references/verification.md +91 -91
- package/templates/.claude/skills/global-uiux-design/AGENTS.md +317 -0
- package/templates/.claude/skills/global-uiux-design/SKILL.md +738 -0
- package/templates/.claude/skills/global-uiux-design/references/accessibility.md +401 -0
- package/templates/.claude/skills/global-uiux-design/references/color-system.md +275 -0
- package/templates/.claude/skills/global-uiux-design/references/design-philosophy.md +206 -0
- package/templates/.claude/skills/global-uiux-design/references/design-systems.md +446 -0
- package/templates/.claude/skills/korea-uiux-design/AGENTS.md +307 -0
- package/templates/.claude/skills/korea-uiux-design/SKILL.md +170 -0
- package/templates/.claude/skills/nextjs-react-best-practices/AGENTS.md +95 -116
- package/templates/.claude/skills/nextjs-react-best-practices/SKILL.md +134 -152
- package/templates/.claude/skills/nextjs-react-best-practices/rules/advanced-event-handler-refs.md +6 -6
- package/templates/.claude/skills/nextjs-react-best-practices/rules/advanced-use-latest.md +5 -5
- package/templates/.claude/skills/nextjs-react-best-practices/rules/async-api-routes.md +5 -5
- package/templates/.claude/skills/nextjs-react-best-practices/rules/async-defer-await.md +22 -22
- package/templates/.claude/skills/nextjs-react-best-practices/rules/async-dependencies.md +5 -5
- package/templates/.claude/skills/nextjs-react-best-practices/rules/async-parallel.md +4 -4
- package/templates/.claude/skills/nextjs-react-best-practices/rules/async-suspense-boundaries.md +21 -21
- package/templates/.claude/skills/nextjs-react-best-practices/rules/bundle-barrel-imports.md +18 -18
- package/templates/.claude/skills/nextjs-react-best-practices/rules/bundle-conditional.md +4 -4
- package/templates/.claude/skills/nextjs-react-best-practices/rules/bundle-defer-third-party.md +4 -4
- package/templates/.claude/skills/nextjs-react-best-practices/rules/bundle-dynamic-imports.md +4 -4
- package/templates/.claude/skills/nextjs-react-best-practices/rules/bundle-preload.md +5 -5
- package/templates/.claude/skills/nextjs-react-best-practices/rules/client-event-listeners.md +9 -9
- package/templates/.claude/skills/nextjs-react-best-practices/rules/client-swr-dedup.md +7 -7
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-batch-dom-css.md +13 -13
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-cache-function-results.md +14 -14
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-cache-property-access.md +4 -4
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-cache-storage.md +10 -10
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-combine-iterations.md +4 -4
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-early-exit.md +7 -7
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-hoist-regexp.md +6 -6
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-index-maps.md +6 -6
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-length-check-first.md +14 -14
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-min-max-loop.md +16 -16
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-set-map-lookups.md +4 -4
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-tosorted-immutable.md +17 -17
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rendering-activity.md +4 -4
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rendering-animate-svg-wrapper.md +11 -11
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rendering-conditional-render.md +8 -8
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rendering-content-visibility.md +4 -4
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rendering-hoist-jsx.md +6 -6
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rendering-hydration-no-flicker.md +14 -14
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rendering-svg-precision.md +5 -5
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rerender-defer-reads.md +4 -4
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rerender-dependencies.md +7 -7
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rerender-derived-state.md +5 -5
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rerender-functional-setstate.md +34 -34
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rerender-lazy-state-init.md +15 -15
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rerender-memo.md +5 -5
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rerender-transitions.md +4 -4
- package/templates/.claude/skills/nextjs-react-best-practices/rules/server-after-nonblocking.md +24 -24
- package/templates/.claude/skills/nextjs-react-best-practices/rules/server-cache-lru.md +10 -10
- package/templates/.claude/skills/nextjs-react-best-practices/rules/server-cache-react.md +4 -4
- package/templates/.claude/skills/nextjs-react-best-practices/rules/server-parallel-fetching.md +5 -5
- package/templates/.claude/skills/nextjs-react-best-practices/rules/server-serialization.md +6 -6
- package/templates/.claude/skills/plan/SKILL.md +594 -0
- package/templates/.claude/skills/prd/SKILL.md +496 -0
- package/templates/.claude/skills/ralph/AGENTS.md +393 -0
- package/templates/.claude/skills/ralph/SKILL.md +1035 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/AGENTS.md +100 -121
- package/templates/.claude/skills/tanstack-start-react-best-practices/SKILL.md +139 -157
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/async-defer-await.md +22 -22
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/async-dependencies.md +5 -5
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/async-loader.md +7 -7
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/async-parallel.md +4 -4
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/bundle-barrel-imports.md +18 -18
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/bundle-conditional.md +4 -4
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/bundle-defer-third-party.md +4 -4
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/bundle-lazy-routes.md +12 -12
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/bundle-preload.md +5 -5
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/client-event-listeners.md +9 -9
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/client-tanstack-query.md +12 -12
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-batch-dom-css.md +13 -13
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-cache-function-results.md +14 -14
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-cache-property-access.md +4 -4
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-cache-storage.md +10 -10
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-combine-iterations.md +4 -4
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-early-exit.md +7 -7
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-hoist-regexp.md +6 -6
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-index-maps.md +6 -6
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-length-check-first.md +14 -14
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-min-max-loop.md +16 -16
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-set-map-lookups.md +4 -4
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-tosorted-immutable.md +17 -17
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rendering-animate-svg-wrapper.md +11 -11
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rendering-conditional-render.md +8 -8
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rendering-content-visibility.md +4 -4
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rendering-hoist-jsx.md +6 -6
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rendering-svg-precision.md +5 -5
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-defer-reads.md +4 -4
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-dependencies.md +7 -7
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-derived-state.md +5 -5
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-functional-setstate.md +34 -34
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-lazy-state-init.md +15 -15
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-memo.md +5 -5
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-transitions.md +4 -4
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-cache-lru.md +12 -12
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-deferred-data.md +14 -14
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-parallel-fetching.md +9 -9
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-serialization.md +6 -6
- package/templates/.claude/commands/agent-creator.md +0 -370
- package/templates/.claude/commands/command-creator.md +0 -524
- package/templates/.claude/commands/execute.md +0 -469
- package/templates/.claude/commands/git.md +0 -98
- package/templates/.claude/commands/plan.md +0 -526
- package/templates/.claude/commands/prd.md +0 -629
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
# Auto Layout → CSS
|
|
1
|
+
# Auto Layout → CSS 매핑
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Figma Auto Layout을 Flexbox/Grid로 정확히 변환하는 가이드.
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
## Auto Layout
|
|
7
|
+
## Auto Layout 기본 개념
|
|
8
8
|
|
|
9
|
-
Figma Auto Layout
|
|
9
|
+
Figma Auto Layout은 CSS Flexbox와 1:1 대응됨.
|
|
10
10
|
|
|
11
|
-
###
|
|
11
|
+
### 핵심 속성
|
|
12
12
|
|
|
13
|
-
| Figma
|
|
14
|
-
|
|
13
|
+
| Figma 속성 | CSS 속성 | 설명 |
|
|
14
|
+
|-----------|----------|------|
|
|
15
15
|
| **layoutMode** | `flex-direction` | Horizontal/Vertical |
|
|
16
|
-
| **primaryAxisAlignItems** | `justify-content` |
|
|
17
|
-
| **counterAxisAlignItems** | `align-items` |
|
|
18
|
-
| **itemSpacing** | `gap` |
|
|
19
|
-
| **padding** | `padding` |
|
|
16
|
+
| **primaryAxisAlignItems** | `justify-content` | 주축 정렬 |
|
|
17
|
+
| **counterAxisAlignItems** | `align-items` | 교차축 정렬 |
|
|
18
|
+
| **itemSpacing** | `gap` | 요소 간 간격 |
|
|
19
|
+
| **padding** | `padding` | 내부 여백 |
|
|
20
20
|
|
|
21
21
|
---
|
|
22
22
|
|
|
23
23
|
## Layout Mode
|
|
24
24
|
|
|
25
|
-
### Horizontal (
|
|
25
|
+
### Horizontal (가로)
|
|
26
26
|
|
|
27
27
|
**Figma:**
|
|
28
28
|
```json
|
|
@@ -47,7 +47,7 @@ Figma Auto Layout maps 1:1 to CSS Flexbox.
|
|
|
47
47
|
</div>
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
-
### Vertical (
|
|
50
|
+
### Vertical (세로)
|
|
51
51
|
|
|
52
52
|
**Figma:**
|
|
53
53
|
```json
|
|
@@ -74,18 +74,18 @@ Figma Auto Layout maps 1:1 to CSS Flexbox.
|
|
|
74
74
|
|
|
75
75
|
---
|
|
76
76
|
|
|
77
|
-
## Primary Axis Alignment (
|
|
77
|
+
## Primary Axis Alignment (주축 정렬)
|
|
78
78
|
|
|
79
79
|
### Horizontal Layout
|
|
80
80
|
|
|
81
|
-
| Figma | CSS | Tailwind |
|
|
82
|
-
|
|
83
|
-
| `MIN` | `justify-content: flex-start` | `justify-start` |
|
|
84
|
-
| `CENTER` | `justify-content: center` | `justify-center` |
|
|
85
|
-
| `MAX` | `justify-content: flex-end` | `justify-end` |
|
|
86
|
-
| `SPACE_BETWEEN` | `justify-content: space-between` | `justify-between` |
|
|
81
|
+
| Figma | CSS | Tailwind | 설명 |
|
|
82
|
+
|-------|-----|----------|------|
|
|
83
|
+
| `MIN` | `justify-content: flex-start` | `justify-start` | 왼쪽 |
|
|
84
|
+
| `CENTER` | `justify-content: center` | `justify-center` | 중앙 |
|
|
85
|
+
| `MAX` | `justify-content: flex-end` | `justify-end` | 오른쪽 |
|
|
86
|
+
| `SPACE_BETWEEN` | `justify-content: space-between` | `justify-between` | 양끝 |
|
|
87
87
|
|
|
88
|
-
|
|
88
|
+
**예시:**
|
|
89
89
|
|
|
90
90
|
```json
|
|
91
91
|
// Figma
|
|
@@ -98,34 +98,34 @@ Figma Auto Layout maps 1:1 to CSS Flexbox.
|
|
|
98
98
|
```tsx
|
|
99
99
|
// React
|
|
100
100
|
<div className="flex flex-row justify-center">
|
|
101
|
-
<button
|
|
102
|
-
<button
|
|
101
|
+
<button>버튼 1</button>
|
|
102
|
+
<button>버튼 2</button>
|
|
103
103
|
</div>
|
|
104
104
|
```
|
|
105
105
|
|
|
106
106
|
### Vertical Layout
|
|
107
107
|
|
|
108
|
-
| Figma | CSS | Tailwind |
|
|
109
|
-
|
|
110
|
-
| `MIN` | `justify-content: flex-start` | `justify-start` |
|
|
111
|
-
| `CENTER` | `justify-content: center` | `justify-center` |
|
|
112
|
-
| `MAX` | `justify-content: flex-end` | `justify-end` |
|
|
113
|
-
| `SPACE_BETWEEN` | `justify-content: space-between` | `justify-between` |
|
|
108
|
+
| Figma | CSS | Tailwind | 설명 |
|
|
109
|
+
|-------|-----|----------|------|
|
|
110
|
+
| `MIN` | `justify-content: flex-start` | `justify-start` | 위 |
|
|
111
|
+
| `CENTER` | `justify-content: center` | `justify-center` | 중앙 |
|
|
112
|
+
| `MAX` | `justify-content: flex-end` | `justify-end` | 아래 |
|
|
113
|
+
| `SPACE_BETWEEN` | `justify-content: space-between` | `justify-between` | 양끝 |
|
|
114
114
|
|
|
115
115
|
---
|
|
116
116
|
|
|
117
|
-
## Counter Axis Alignment (
|
|
117
|
+
## Counter Axis Alignment (교차축 정렬)
|
|
118
118
|
|
|
119
119
|
### Horizontal Layout
|
|
120
120
|
|
|
121
|
-
| Figma | CSS | Tailwind |
|
|
122
|
-
|
|
123
|
-
| `MIN` | `align-items: flex-start` | `items-start` |
|
|
124
|
-
| `CENTER` | `align-items: center` | `items-center` |
|
|
125
|
-
| `MAX` | `align-items: flex-end` | `items-end` |
|
|
126
|
-
| `BASELINE` | `align-items: baseline` | `items-baseline` |
|
|
121
|
+
| Figma | CSS | Tailwind | 설명 |
|
|
122
|
+
|-------|-----|----------|------|
|
|
123
|
+
| `MIN` | `align-items: flex-start` | `items-start` | 위 |
|
|
124
|
+
| `CENTER` | `align-items: center` | `items-center` | 중앙 |
|
|
125
|
+
| `MAX` | `align-items: flex-end` | `items-end` | 아래 |
|
|
126
|
+
| `BASELINE` | `align-items: baseline` | `items-baseline` | 베이스라인 |
|
|
127
127
|
|
|
128
|
-
|
|
128
|
+
**예시:**
|
|
129
129
|
|
|
130
130
|
```json
|
|
131
131
|
// Figma
|
|
@@ -140,22 +140,22 @@ Figma Auto Layout maps 1:1 to CSS Flexbox.
|
|
|
140
140
|
// React
|
|
141
141
|
<div className="flex flex-row justify-between items-center">
|
|
142
142
|
<img src="/logo.png" alt="Logo" />
|
|
143
|
-
<nav
|
|
144
|
-
<button
|
|
143
|
+
<nav>메뉴</nav>
|
|
144
|
+
<button>로그인</button>
|
|
145
145
|
</div>
|
|
146
146
|
```
|
|
147
147
|
|
|
148
148
|
### Vertical Layout
|
|
149
149
|
|
|
150
|
-
| Figma | CSS | Tailwind |
|
|
151
|
-
|
|
152
|
-
| `MIN` | `align-items: flex-start` | `items-start` |
|
|
153
|
-
| `CENTER` | `align-items: center` | `items-center` |
|
|
154
|
-
| `MAX` | `align-items: flex-end` | `items-end` |
|
|
150
|
+
| Figma | CSS | Tailwind | 설명 |
|
|
151
|
+
|-------|-----|----------|------|
|
|
152
|
+
| `MIN` | `align-items: flex-start` | `items-start` | 왼쪽 |
|
|
153
|
+
| `CENTER` | `align-items: center` | `items-center` | 중앙 |
|
|
154
|
+
| `MAX` | `align-items: flex-end` | `items-end` | 오른쪽 |
|
|
155
155
|
|
|
156
156
|
---
|
|
157
157
|
|
|
158
|
-
## Item Spacing (
|
|
158
|
+
## Item Spacing (간격)
|
|
159
159
|
|
|
160
160
|
**Figma:**
|
|
161
161
|
```json
|
|
@@ -181,9 +181,9 @@ Figma Auto Layout maps 1:1 to CSS Flexbox.
|
|
|
181
181
|
|
|
182
182
|
---
|
|
183
183
|
|
|
184
|
-
## Padding (
|
|
184
|
+
## Padding (내부 여백)
|
|
185
185
|
|
|
186
|
-
###
|
|
186
|
+
### 균일한 Padding
|
|
187
187
|
|
|
188
188
|
**Figma:**
|
|
189
189
|
```json
|
|
@@ -198,11 +198,11 @@ Figma Auto Layout maps 1:1 to CSS Flexbox.
|
|
|
198
198
|
**Tailwind:**
|
|
199
199
|
```tsx
|
|
200
200
|
<div className="p-[24px]">
|
|
201
|
-
|
|
201
|
+
컨텐츠
|
|
202
202
|
</div>
|
|
203
203
|
```
|
|
204
204
|
|
|
205
|
-
###
|
|
205
|
+
### 비균일한 Padding
|
|
206
206
|
|
|
207
207
|
**Figma:**
|
|
208
208
|
```json
|
|
@@ -217,22 +217,22 @@ Figma Auto Layout maps 1:1 to CSS Flexbox.
|
|
|
217
217
|
**Tailwind:**
|
|
218
218
|
```tsx
|
|
219
219
|
<div className="px-[16px] py-[12px]">
|
|
220
|
-
|
|
220
|
+
컨텐츠
|
|
221
221
|
</div>
|
|
222
222
|
```
|
|
223
223
|
|
|
224
|
-
|
|
224
|
+
**개별 지정:**
|
|
225
225
|
```tsx
|
|
226
226
|
<div className="pl-[16px] pr-[16px] pt-[12px] pb-[12px]">
|
|
227
|
-
|
|
227
|
+
컨텐츠
|
|
228
228
|
</div>
|
|
229
229
|
```
|
|
230
230
|
|
|
231
231
|
---
|
|
232
232
|
|
|
233
|
-
## Resizing (
|
|
233
|
+
## Resizing (크기 조정)
|
|
234
234
|
|
|
235
|
-
### Fixed (
|
|
235
|
+
### Fixed (고정)
|
|
236
236
|
|
|
237
237
|
**Figma:**
|
|
238
238
|
```json
|
|
@@ -246,11 +246,11 @@ Figma Auto Layout maps 1:1 to CSS Flexbox.
|
|
|
246
246
|
**Tailwind:**
|
|
247
247
|
```tsx
|
|
248
248
|
<button className="w-[120px] h-[44px]">
|
|
249
|
-
|
|
249
|
+
버튼
|
|
250
250
|
</button>
|
|
251
251
|
```
|
|
252
252
|
|
|
253
|
-
### Hug Contents (
|
|
253
|
+
### Hug Contents (콘텐츠 맞춤)
|
|
254
254
|
|
|
255
255
|
**Figma:**
|
|
256
256
|
```json
|
|
@@ -264,11 +264,11 @@ Figma Auto Layout maps 1:1 to CSS Flexbox.
|
|
|
264
264
|
**Tailwind:**
|
|
265
265
|
```tsx
|
|
266
266
|
<button className="w-auto h-auto">
|
|
267
|
-
|
|
267
|
+
버튼 텍스트
|
|
268
268
|
</button>
|
|
269
269
|
```
|
|
270
270
|
|
|
271
|
-
### Fill Container (
|
|
271
|
+
### Fill Container (채우기)
|
|
272
272
|
|
|
273
273
|
**Figma:**
|
|
274
274
|
```json
|
|
@@ -280,15 +280,15 @@ Figma Auto Layout maps 1:1 to CSS Flexbox.
|
|
|
280
280
|
**Tailwind:**
|
|
281
281
|
```tsx
|
|
282
282
|
<div className="flex-1">
|
|
283
|
-
|
|
283
|
+
컨텐츠
|
|
284
284
|
</div>
|
|
285
285
|
```
|
|
286
286
|
|
|
287
287
|
---
|
|
288
288
|
|
|
289
|
-
##
|
|
289
|
+
## 복합 예제
|
|
290
290
|
|
|
291
|
-
###
|
|
291
|
+
### 버튼
|
|
292
292
|
|
|
293
293
|
**Figma:**
|
|
294
294
|
```json
|
|
@@ -310,7 +310,7 @@ Figma Auto Layout maps 1:1 to CSS Flexbox.
|
|
|
310
310
|
}
|
|
311
311
|
```
|
|
312
312
|
|
|
313
|
-
|
|
313
|
+
**코드:**
|
|
314
314
|
```tsx
|
|
315
315
|
<button className="
|
|
316
316
|
flex flex-row items-center justify-center
|
|
@@ -322,11 +322,11 @@ Figma Auto Layout maps 1:1 to CSS Flexbox.
|
|
|
322
322
|
text-white font-semibold text-[14px]
|
|
323
323
|
">
|
|
324
324
|
<svg className="w-5 h-5" />
|
|
325
|
-
<span
|
|
325
|
+
<span>버튼</span>
|
|
326
326
|
</button>
|
|
327
327
|
```
|
|
328
328
|
|
|
329
|
-
###
|
|
329
|
+
### 카드
|
|
330
330
|
|
|
331
331
|
**Figma:**
|
|
332
332
|
```json
|
|
@@ -349,7 +349,7 @@ Figma Auto Layout maps 1:1 to CSS Flexbox.
|
|
|
349
349
|
}
|
|
350
350
|
```
|
|
351
351
|
|
|
352
|
-
|
|
352
|
+
**코드:**
|
|
353
353
|
```tsx
|
|
354
354
|
<div className="
|
|
355
355
|
flex flex-col items-start justify-start
|
|
@@ -360,13 +360,13 @@ Figma Auto Layout maps 1:1 to CSS Flexbox.
|
|
|
360
360
|
border border-gray-200
|
|
361
361
|
rounded-[12px]
|
|
362
362
|
">
|
|
363
|
-
<h3 className="text-[18px] font-semibold"
|
|
364
|
-
<p className="text-[14px] text-gray-700"
|
|
365
|
-
<button className="text-[14px] text-blue-500 font-medium"
|
|
363
|
+
<h3 className="text-[18px] font-semibold">카드 제목</h3>
|
|
364
|
+
<p className="text-[14px] text-gray-700">카드 내용</p>
|
|
365
|
+
<button className="text-[14px] text-blue-500 font-medium">자세히</button>
|
|
366
366
|
</div>
|
|
367
367
|
```
|
|
368
368
|
|
|
369
|
-
###
|
|
369
|
+
### 헤더 (Horizontal + Space Between)
|
|
370
370
|
|
|
371
371
|
**Figma:**
|
|
372
372
|
```json
|
|
@@ -385,7 +385,7 @@ Figma Auto Layout maps 1:1 to CSS Flexbox.
|
|
|
385
385
|
}
|
|
386
386
|
```
|
|
387
387
|
|
|
388
|
-
|
|
388
|
+
**코드:**
|
|
389
389
|
```tsx
|
|
390
390
|
<header className="
|
|
391
391
|
flex flex-row justify-between items-center
|
|
@@ -396,22 +396,22 @@ Figma Auto Layout maps 1:1 to CSS Flexbox.
|
|
|
396
396
|
">
|
|
397
397
|
<img src="/logo.svg" alt="Logo" className="h-8" />
|
|
398
398
|
<nav className="flex gap-[24px]">
|
|
399
|
-
<a href="/"
|
|
400
|
-
<a href="/about"
|
|
399
|
+
<a href="/">홈</a>
|
|
400
|
+
<a href="/about">소개</a>
|
|
401
401
|
</nav>
|
|
402
402
|
<button className="px-[16px] py-[8px] bg-blue-500 text-white rounded-lg">
|
|
403
|
-
|
|
403
|
+
로그인
|
|
404
404
|
</button>
|
|
405
405
|
</header>
|
|
406
406
|
```
|
|
407
407
|
|
|
408
408
|
---
|
|
409
409
|
|
|
410
|
-
##
|
|
410
|
+
## 중첩 Auto Layout
|
|
411
411
|
|
|
412
|
-
###
|
|
412
|
+
### 리스트 아이템
|
|
413
413
|
|
|
414
|
-
**Figma
|
|
414
|
+
**Figma 구조:**
|
|
415
415
|
```
|
|
416
416
|
Frame "ListItem" (Horizontal, Space Between, Center)
|
|
417
417
|
├─ Frame "Left" (Horizontal, Center, gap: 12px)
|
|
@@ -424,7 +424,7 @@ Frame "ListItem" (Horizontal, Space Between, Center)
|
|
|
424
424
|
└─ Icon "Arrow"
|
|
425
425
|
```
|
|
426
426
|
|
|
427
|
-
|
|
427
|
+
**코드:**
|
|
428
428
|
```tsx
|
|
429
429
|
<div className="
|
|
430
430
|
flex flex-row justify-between items-center
|
|
@@ -435,14 +435,14 @@ Frame "ListItem" (Horizontal, Space Between, Center)
|
|
|
435
435
|
<div className="flex flex-row items-center gap-[12px]">
|
|
436
436
|
<img src="/thumb.jpg" className="w-[48px] h-[48px] rounded-lg" />
|
|
437
437
|
<div className="flex flex-col gap-[4px]">
|
|
438
|
-
<div className="text-[14px] font-semibold"
|
|
439
|
-
<div className="text-[13px] text-gray-600"
|
|
438
|
+
<div className="text-[14px] font-semibold">제목</div>
|
|
439
|
+
<div className="text-[13px] text-gray-600">설명</div>
|
|
440
440
|
</div>
|
|
441
441
|
</div>
|
|
442
442
|
|
|
443
443
|
{/* Right */}
|
|
444
444
|
<div className="flex flex-row items-center gap-[8px]">
|
|
445
|
-
<span className="text-[14px] font-semibold"
|
|
445
|
+
<span className="text-[14px] font-semibold">15,000원</span>
|
|
446
446
|
<svg className="w-5 h-5 text-gray-400" />
|
|
447
447
|
</div>
|
|
448
448
|
</div>
|
|
@@ -450,19 +450,19 @@ Frame "ListItem" (Horizontal, Space Between, Center)
|
|
|
450
450
|
|
|
451
451
|
---
|
|
452
452
|
|
|
453
|
-
## Constraints (
|
|
453
|
+
## Constraints (제약 조건)
|
|
454
454
|
|
|
455
|
-
Figma Constraints
|
|
455
|
+
Figma Constraints는 반응형 동작을 정의함.
|
|
456
456
|
|
|
457
|
-
| Figma Constraint | CSS
|
|
457
|
+
| Figma Constraint | CSS 대응 |
|
|
458
458
|
|-----------------|----------|
|
|
459
|
-
| **Left + Right** | `width: 100%` (
|
|
460
|
-
| **Left** | `margin-right: auto` (
|
|
461
|
-
| **Right** | `margin-left: auto` (
|
|
462
|
-
| **Center** | `margin: 0 auto` (
|
|
463
|
-
| **Scale** | `width: 50%` (
|
|
459
|
+
| **Left + Right** | `width: 100%` (부모 너비 채움) |
|
|
460
|
+
| **Left** | `margin-right: auto` (왼쪽 고정) |
|
|
461
|
+
| **Right** | `margin-left: auto` (오른쪽 고정) |
|
|
462
|
+
| **Center** | `margin: 0 auto` (중앙 정렬) |
|
|
463
|
+
| **Scale** | `width: 50%` (비율 유지) |
|
|
464
464
|
|
|
465
|
-
|
|
465
|
+
**예시:**
|
|
466
466
|
|
|
467
467
|
```json
|
|
468
468
|
// Figma: Left + Right Constraint
|
|
@@ -475,9 +475,9 @@ Figma Constraints define responsive behavior.
|
|
|
475
475
|
```
|
|
476
476
|
|
|
477
477
|
```tsx
|
|
478
|
-
//
|
|
478
|
+
// 반응형: 부모 너비 채움
|
|
479
479
|
<div className="w-full">
|
|
480
|
-
|
|
480
|
+
컨텐츠
|
|
481
481
|
</div>
|
|
482
482
|
```
|
|
483
483
|
|
|
@@ -512,34 +512,34 @@ Figma Constraints define responsive behavior.
|
|
|
512
512
|
|
|
513
513
|
---
|
|
514
514
|
|
|
515
|
-
##
|
|
515
|
+
## 베스트 프랙티스
|
|
516
516
|
|
|
517
517
|
### DO
|
|
518
518
|
|
|
519
|
-
|
|
|
520
|
-
|
|
521
|
-
| **Auto Layout
|
|
522
|
-
|
|
|
519
|
+
| 원칙 | 설명 |
|
|
520
|
+
|------|------|
|
|
521
|
+
| **Auto Layout 우선** | Absolute 대신 Flexbox 사용 |
|
|
522
|
+
| **정확한 gap** | `gap-4` 대신 `gap-[18px]` |
|
|
523
523
|
| **Hug → auto** | Hug Contents → `w-auto h-auto` |
|
|
524
524
|
| **Fill → flex-1** | Fill Container → `flex-1` |
|
|
525
525
|
|
|
526
526
|
### DON'T
|
|
527
527
|
|
|
528
|
-
|
|
|
529
|
-
|
|
530
|
-
|
|
|
531
|
-
| **
|
|
532
|
-
| **
|
|
528
|
+
| 금지 사항 | 이유 |
|
|
529
|
+
|----------|------|
|
|
530
|
+
| **임의 margin** | Auto Layout은 gap 사용 |
|
|
531
|
+
| **float 사용** | Flexbox로 충분 |
|
|
532
|
+
| **inline-block** | Flex item으로 처리 |
|
|
533
533
|
|
|
534
534
|
---
|
|
535
535
|
|
|
536
|
-
##
|
|
536
|
+
## 변환 체크리스트
|
|
537
537
|
|
|
538
538
|
```
|
|
539
539
|
□ layoutMode → flex-direction
|
|
540
540
|
□ primaryAxisAlignItems → justify-content
|
|
541
541
|
□ counterAxisAlignItems → align-items
|
|
542
|
-
□ itemSpacing → gap (
|
|
542
|
+
□ itemSpacing → gap (정확한 px)
|
|
543
543
|
□ padding → p-[Npx] / px-[Npx] py-[Npx]
|
|
544
544
|
□ layoutGrow → flex-1 / flex-0
|
|
545
545
|
□ width/height → w-[Npx] h-[Npx]
|
|
@@ -550,7 +550,7 @@ Figma Constraints define responsive behavior.
|
|
|
550
550
|
|
|
551
551
|
---
|
|
552
552
|
|
|
553
|
-
##
|
|
553
|
+
## 참조
|
|
554
554
|
|
|
555
555
|
- [Figma Auto Layout](https://help.figma.com/hc/en-us/articles/360040451373)
|
|
556
556
|
- [CSS Flexbox Guide](https://css-tricks.com/snippets/css/a-guide-to-flexbox/)
|