ui-design-principles
2
总安装量
2
周安装量
#66158
全站排名
安装命令
npx skills add https://github.com/ssiumha/dots --skill ui-design-principles
Agent 安装分布
opencode
2
gemini-cli
2
claude-code
2
github-copilot
2
codex
2
kimi-cli
2
Skill 文档
UI Design Principles
UI/íë¡ í¸ìë ì½ë ìì± ì ëìì´ëê° ë°ë¥´ë 기본 ìì¹ì ì ì©í©ëë¤.
íµì¬ ì² í:
- AIê° ë§ëë “ìì í ì í”ì í¼í¨ (Inter, ë³´ë¼ì ê·¸ë¼ë°ì´ì , í° ë°°ê²½)
- ê²ì¦ë ëìì¸ ìì¹ì¼ë¡ ì¼ê´ì± ìë UI ìì±
- ê·ì¹ 기ë°ì¼ë¡ 주ê´ì íë¨ ìµìí
1. ì»¬ë¬ (60-30-10 Rule)
ìì ë¹ì¨ì ê· í ìê² ë°°ë¶:
| ë¹ì¨ | ìí | ì ì© ìì | ìì |
|---|---|---|---|
| 60% | Dominant (ë°°ê²½) | ë°°ê²½, 주ì 컨í ì¸ ìì | í°ì, ì°í íì, ë¤í¬ëª¨ë ì #121212 |
| 30% | Secondary (ë³´ì¡°) | ì¹´ë, ì¬ì´ëë°, í¤ë | ì°í ë¸ëëì, íì ê³ì´ |
| 10% | Accent (ê°ì¡°) | CTA ë²í¼, ë§í¬, ìì´ì½ | ë¸ëë 컬ë¬, í¬ì¸í¸ ì»¬ë¬ |
ì¤ì ìì:
- Google: í°ì(60%) + íì(30%) + íë(10%)
- Spotify: ê²ì (60%) + ì§íì(30%) + ì´ë¡(10%)
- Slack: í°ì(60%) + ë³´ë¼(30%) + ì´ë¡/빨ê°(10%)
ì ì© ìì¹:
- Dominantë ì¤ë¦½ì ê¶ì¥ (í°, ê²ì , íì)
- Accentë ê³ ëë¹, ëì ëë ì
- Secondaryë Dominantì ì¡°íë¡ì´ í¤
2. ë ì´ìì (CARP ìì¹)
Contrast (ëë¹)
ìì ê° ëª íí ìê°ì ì°¨ì´:
- í¤ëë¼ì¸ vs 본문: í¬ê¸°, 굵기 ì°¨ì´ 2ë°° ì´ì
- CTA ë²í¼: 배경과 ëì ëë¹ (WCAG AA 4.5:1 ì´ì)
- íì±/ë¹íì± ìí: ëª íí ìì ì°¨ì´
Alignment (ì ë ¬)
ìê°ì ì§ì ìì±:
- ì¢ì¸¡ ì ë ¬ 기본 (ì½ê¸° íë¦)
- ì ë ¬ì íµì¼ (ë¤ì¥ë ì¥ ê¸ì§)
- 그리ë ê¸°ë° ë°°ì¹
Repetition (ë°ë³µ)
ì¼ê´ë í¨í´ ì ì§:
- ëì¼ ë²í¼ ì¤íì¼
- ëì¼ ì¹´ë íí
- ëì¼ ê°ê²© ì²´ê³
Proximity (ê·¼ì ì±)
ê´ë ¨ ììë ê°ê¹ê²:
- ë¼ë²¨ â ì ë ¥íë: ê°ê¹ê²
- ê´ë ¨ ë²í¼ 그룹: ë¶ì¬ì
- ì¹ì ê°: ì¶©ë¶í ì¬ë°±ì¼ë¡ ë¶ë¦¬
3. íì´í¬ê·¸ëí¼
ìê³ (Hierarchy)
Display â ìì
ì¹ì
(48-72px, Bold)
H1 â íì´ì§ ì 목 (32-40px, Bold)
H2 â ì¹ì
ì 목 (24-28px, Semi-bold)
H3 â ìë¸ì¹ì
(20-24px, Medium)
Body â 본문 (16px, Regular)
Caption â ë³´ì¡° í
ì¤í¸ (12-14px, Regular)
íµì¬ ê·ì¹
- í°í¸ í¨ë°ë¦¬: 2-3ê°ë¡ ì í (í¤ë©ì© + 본문ì©)
- í¬ê¸° ëë¹: ìµì 4px ì°¨ì´ (1-2ptë í¨ê³¼ ìì)
- ì¤ ëì´: 본문 1.5
1.75ë°°, í¤ë© 1.21.3ë°° - ì¤ ê¸¸ì´: 45-75ì (ì문), íê¸ì 20-40ì
í¼í´ì¼ í í°í¸ (AI 기본ê°)
- Inter, Roboto, Arial, Helvetica (ê³¼ë¤ ì¬ì©)
- ëì: SF Pro, Pretendard, Noto Sans KR, Geist
4. ì¬ë°± (Spacing)
8px Grid System
모ë ê°ê²©ì 8ì ë°°ìë¡ íµì¼:
4px â ìì´ì½ ë´ë¶, ë§¤ì° ì¢ì ê°ê²©
8px â ì¸ë¼ì¸ ìì ê°ê²©
16px â 기본 í¨ë©, ì»´í¬ëí¸ ë´ë¶
24px â ì¹ì
ë´ ê·¸ë£¹ ê°ê²©
32px â ì¹´ë í¨ë©, ì¤ê° ì¹ì
48px â ì¹ì
ê° ê°ê²©
64px+ â ëí ì¹ì
ë¶ë¦¬
ì¬ë°± ì í
| ì©ì´ | ì¤ëª | ì©ë |
|---|---|---|
| Margin | ìì ë°ê¹¥ | ìì ê° ë¶ë¦¬ |
| Padding | ìì ì쪽 | ë´ë¶ ì½í ì¸ ì¬ì |
| Gap | 그리ë/íë ì¤ ê°ê²© | ìì ìì ê° |
ìì¹
- ì¼ê´ì±: ê°ì ë§¥ë½ìë ê°ì ê°ê²©
- ìê³: ê´ë ¨ì± ëì¼ë©´ ì¢ê², ë®ì¼ë©´ ëê²
- ì¨ ì´ ê³µê°: 빽빽íê² ì±ì°ì§ ì기
5. 그리ë ìì¤í
12ì»¬ë¼ ê·¸ë¦¬ë (ì¹ íì¤)
| Container (max-width: 1200-1440px) |
| Margin | Column | Gutter | Column | ... | Margin |
| 구ì±ìì | ìí | ì¼ë°ì ê° |
|---|---|---|
| Column | ì½í ì¸ ë°°ì¹ ìì | 12ê° |
| Gutter | ì»¬ë¼ ì¬ì´ ê°ê²© | 16-24px |
| Margin | ì쪽 ê°ì¥ì리 | 16-80px (ë°ìí) |
ë°ìí ë¸ë ì´í¬í¬ì¸í¸
Mobile: < 640px (4컬ë¼)
Tablet: 640-1024px (8컬ë¼)
Desktop: > 1024px (12컬ë¼)
í©ê¸ë¹ì¨
- 1:1.618 ë¹ì¨
- ì¬ì´ëë°:ë©ì¸ = 1:2.618 ëë 1:3
6. ìê°ì ìê³ (Visual Hierarchy)
ì¬ì©ì ìì ì ì ëíë ìì:
- í¬ê¸° â í° ê²ì´ 먼ì (í¤ëë¼ì¸)
- ìì â ê°ì¡°ìì´ ìì ì§ì¤ (CTA)
- ëë¹ â ë°ê¸° ì°¨ì´ê° í´ìë¡ ëì ë
- ìì¹ â ìë¨ > íë¨, ì¢ì¸¡ > ì°ì¸¡
- ì¬ë°± â ì¬ë°±ì´ ë§ì¼ë©´ ì¤ìí´ ë³´ì
- ìì§ì â ì ëë©ì´ì ì ìµê° (ë¨ì© ê¸ì§)
ì½ê¸° í¨í´
- Fí¨í´: í ì¤í¸ ì주 íì´ì§ (ë¸ë¡ê·¸, 기ì¬)
- Zí¨í´: ëë©íì´ì§, ë§ì¼í
7. Gestalt ìì¹ (ì§ê° ì¬ë¦¬í)
ì¬ì©ìê° ìê° ìì를 ìì°ì¤ë½ê² 그룹ííë ë°©ì:
ì ì¬ì± (Similarity)
- ê°ì ìì, í¬ê¸°, ííì ììë 그룹ì¼ë¡ ì¸ì
- CTA ë²í¼ì ë¤ë¥¸ ììì¼ë¡ â ë 립ì ì¼ë¡ ì¸ì
- ê°ì 기ë¥ì ë²í¼ì ê°ì ì¤íì¼ë¡
ì°ìì± (Continuity)
- ìì ì ë¶ëë¬ì´ ì /곡ì ì ë°ë¼ê°
- ë¤ë¹ê²ì´ì , íë¡ê·¸ë ì¤ ë°, ì¤í ì¸ëì¼ì´í°ì íì©
- ìì를 ì ìì ë°°ì¹íë©´ ì°ê²°ê° íì±
íìì± (Closure)
- ë¶ìì í ííë ìì í ííë¡ ì¸ì
- ë¡ê³ ëìì¸ì íì© (IBM, NBC)
- í ë리 ìì´ë ì¹´ë ìì ì¸ì ê°ë¥
ê³µë ìì (Common Region)
- ê°ì í ë리/ë°°ê²½ ì ììë 그룹ì¼ë¡ ì¸ì
- ì¹´ë UI, í¼ ê·¸ë£¹, 모ë¬ì ì ì©
- Pinterest, Facebookì ì¹´ë ë ì´ìì
ì ê²½/ë°°ê²½ (Figure/Ground)
- 주 ììì ë°°ê²½ì ëª íí 구ë¶
- ëª¨ë¬ ë¤ ì´ëì´ ì¤ë²ë ì´
- í¬ì»¤ì¤ ìíì ìì ê°ì¡°
8. ì ê·¼ì± (a11y / WCAG)
ìì ëë¹ ê¸°ì¤
| ë 벨 | ëì | ìµì ë¹ì¨ |
|---|---|---|
| AA | ì¼ë° í ì¤í¸ (< 18px) | 4.5:1 |
| AA | ëí í ì¤í¸ (⥠18px, 14px bold) | 3:1 |
| AA | UI ì»´í¬ëí¸ (ë²í¼, ì ë ¥íë) | 3:1 |
| AAA | ì¼ë° í ì¤í¸ | 7:1 |
ë구: WebAIM Contrast Checker, Stark (Figma íë¬ê·¸ì¸)
í¤ë³´ë ì ê·¼ì±
- 모ë ì¸í°ëí°ë¸ ììë Tabì¼ë¡ ì ê·¼ ê°ë¥
- í¬ì»¤ì¤ ì¸ëì¼ì´í° ìµì 2px, 배경과 3:1 ëë¹
- í¬ì»¤ì¤ ììê° ìê°ì ììì ì¼ì¹
íì ìì¹
- ììë§ì¼ë¡ ì미 ì ë¬ ê¸ì§ (ìì´ì½/í ì¤í¸ ë³í)
- ë§í¬ë ë°ì¤ ëë ëª íí 구ë¶
- ìë¬ ìíë ìì + ìì´ì½ + í ì¤í¸
ë²ì ì구ì¬í (2024-2027)
- 미êµ: ADA â WCAG 2.1 AA íì
- EU: 2025ë 6ìë¶í° WCAG 2.1 AA ì무í
9. 모ì /ì ëë©ì´ì
íì´ë° ê°ì´ëë¼ì¸
| ì©ë | ì§ì ìê° | ìì |
|---|---|---|
| ë§ì´í¬ë¡ ì¸í°ëì | 100-200ms | ë²í¼ í¸ë², í ê¸ |
| ì í | 200-300ms | íì´ì§ ì í, ëª¨ë¬ |
| ë³µì¡í ì ëë©ì´ì | 300-500ms | ëë¡ì´, ìì½ëì¸ |
íµì¬: 300ms ì´íë¡ ë°ìì± ì ì§
ì´ì§ (Easing)
| ì í | ì¤ëª | ì©ë |
|---|---|---|
| ease-out | ë¹ ë¥´ê² ìì â ì²ì²í ë | ìì ë±ì¥ (ê¶ì¥) |
| ease-in | ì²ì²í ìì â ë¹ ë¥´ê² ë | ìì í´ì¥ |
| ease-in-out | ì쪽 ë¶ëë½ê² | ìì¹ ì´ë |
| linear | ì¼ì ìë | â ë¡ë´ ê°ì (í¼í기) |
ë§ì´í¬ë¡ ì¸í°ëì 4ìì
- Trigger – ìì ì´ë²¤í¸ (í´ë¦, í¸ë²)
- Rules – ëì ê·ì¹
- Feedback – ìê°/ì²ê° ìëµ
- Loops – ë°ë³µ/ìí ì¡°ê±´
ì ê·¼ì± ì£¼ì
prefers-reduced-motion미ëì´ ì¿¼ë¦¬ ì§ì- ê¹ë¹¡ì/íëì 3í/ì´ ì´í (ë°ì ë°©ì§)
- íì ìë ì ëë©ì´ì ì ë ì ìê²
10. ë¤í¬ëª¨ë ì¤ê³
ìì ìì¹
| ìì | ë¼ì´í¸ëª¨ë | ë¤í¬ëª¨ë |
|---|---|---|
| ë°°ê²½ | #FFFFFF | #121212 (ìì ê²ì â) |
| íë©´ | #F5F5F5 | #1E1E1E |
| í ì¤í¸ | #212121 | #E0E0E0 (ìì í°ì â) |
| ë³´ì¡° í ì¤í¸ | #757575 | #9E9E9E |
íµì¬: ìì ê²ì (#000)ê³¼ ìì í°ì(#FFF) í¼í기 â ë í¼ë¡ ì ë°
ê³ ë (Elevation) íí
- ë¼ì´í¸ëª¨ë: 그림ìë¡ ëì´ íí
- ë¤í¬ëª¨ë: ë°ê¸°ë¡ ëì´ íí (ëììë¡ ë°ê²)
- 0dp: #121212
- 1dp: #1E1E1E
- 4dp: #272727
- 8dp: #2D2D2D
ìì ì¡°ì
- ì±ë ë®ì¶ê¸° (ëë¶ì¬ ë°©ì§)
- ë¸ëë ì»¬ë¬ ë°ê¸° ì¡°ì
- ëë¹ 4.5:1 ì ì§ íì¸
ì í í
- ìì¤í
ì¤ì ì°ë (
prefers-color-scheme) - ë¶ëë¬ì´ ì í ì ëë©ì´ì (200-300ms)
- ì¬ì©ì ì í ì ì¥
ì ì© ì²´í¬ë¦¬ì¤í¸
UI ìì±/리뷰 ì íì¸:
기본
[ ] 컬ë¬ê° 60-30-10 ë¹ì¨ì¸ê°?
[ ] ëë¹ê° ì¶©ë¶íê°? (í
ì¤í¸ 4.5:1, ë²í¼ 3:1)
[ ] ì ë ¬ì ì´ íµì¼ëì´ ìëê°?
[ ] ê´ë ¨ ììë¼ë¦¬ ê°ê¹ê² ë°°ì¹ëìëê°?
[ ] íì´í¬ ìê³ê° ëª
ííê°? (3ë¨ê³ ì´ì)
[ ] ê°ê²©ì´ 8px ë°°ìë¡ ì¼ê´ì ì¸ê°?
[ ] ì¬ë°±ì´ ì¶©ë¶íê°? (ì¨ ì´ ê³µê°)
[ ] ìì íë¦ì´ ìì°ì¤ë¬ì´ê°?
ì ê·¼ì±
[ ] í¤ë³´ëë¡ ëª¨ë ê¸°ë¥ ì ê·¼ ê°ë¥íê°?
[ ] í¬ì»¤ì¤ ì¸ëì¼ì´í°ê° ë³´ì´ëê°?
[ ] ììë§ì¼ë¡ ì미 ì ë¬íì§ ìëê°?
[ ] prefers-reduced-motion ì§ìíëê°?
ë¤í¬ëª¨ë (í´ë¹ ì)
[ ] ìì ê²ì /í°ìì í¼íëê°?
[ ] ëë¹ê° ì¬ì í 4.5:1 ì´ìì¸ê°?
[ ] ê³ ë를 ë°ê¸°ë¡ íííëê°?
í¼í´ì¼ í AI 기본ê°
| ìì | AI ê¸°ë³¸ê° (í¼í기) | ëì |
|---|---|---|
| í°í¸ | Inter, Roboto | Pretendard, SF Pro, Geist |
| ì»¬ë¬ | ë³´ë¼ ê·¸ë¼ë°ì´ì + í° ë°°ê²½ | ë¸ëë ë§ì¶¤ íë í¸ |
| ë²í¼ | ë¥ê·¼ íë ë²í¼ | ë¸ëë ì»¬ë¬ + ì ì í radius |
| ë ì´ìì | ì¤ì ì ë ¬ ì¹´ë ëì´ | 그리ë ê¸°ë° ë¹ëì¹ |
| ìì´ì½ | 기본 SVG | íµì¼ë ìì´ì½ ì¸í¸ |
Examples
UI ì»´í¬ëí¸ ìì± ì
User: "ë¡ê·¸ì¸ í¼ ë§ë¤ì´ì¤"
â 60-30-10 ì»¬ë¬ ì ì©
â ë¼ë²¨-ì
ë ¥íë ê·¼ì ë°°ì¹
â CTA ë²í¼ ê°ì¡° (Accent ìì)
â 8px 그리ë ê°ê²©
기존 UI ê°ì ì
User: "ì´ íì´ì§ ëìì¸ ê°ì í´ì¤"
â ì²´í¬ë¦¬ì¤í¸ë¡ 문ì ì ì§ë¨
â CARP ìì¹ ìë° ì¬í ìì
â ìê°ì ìê³ ì¬ì 립
Technical Details
ì°¸ê³ ìë£
- Laws of UX – UX ë²ì¹ 모ì
- WebAIM Contrast Checker – ëë¹ ê²ì¦
- Material Design – Google ëìì¸ ìì¤í
- Apple HIG – Apple í´ë¨¼ ì¸í°íì´ì¤ ê°ì´ë
íì¥ ê°ë¥ ìì (resources/)
- ëìì¸ í í° ì²´ê³
- ì»´í¬ëí¸ë³ ìì¸ ê°ì´ë
- ë¸ëëë³ ì ì© ì¬ë¡