Skip to content

Latest commit

ย 

History

History
519 lines (301 loc) ยท 27.7 KB

grid.md

File metadata and controls

519 lines (301 loc) ยท 27.7 KB

๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ๋””์ž์ธ ์‹œ์Šคํ…œ 2: ๊ทธ๋ฆฌ๋“œ(Grid)


  1. ๋ฐฐ๊ฒฝ์ง€์‹ 1 - ํ”ฝ์…€, ํฌ์ธํŠธ, Apple์˜ 72ppi
  2. ๋ฐฐ๊ฒฝ์ง€์‹ 2 - CSS ํ”ฝ์…€, DPPX(Device Pixel Ratio)
  3. ๊ทธ๋ฆฌ๋“œ ๊ตฌ์„ฑ์š”์†Œ: Margin, Flowline, Module, Column, Row, Gutter
  4. 8ํฌ์ธํŠธ ๊ทธ๋ฆฌ๋“œ ์‹œ์Šคํ…œ(8pt Grid System)
  5. ๋ฒ ์ด์Šค๋ผ์ธ ๊ทธ๋ฆฌ๋“œ(Baseline Grid)
  6. ๋‹จ์œ„: px, rem, em
  7. ์ปดํฌ์ง€์…˜ ๊ทธ๋ฆฌ๋“œ(Composition Grids)
  8. ๋ชจ๋“ˆ์‹ ์Šค์ผ€์ผ(Modular Scales)
  9. ๋ฐ˜์‘ํ˜• ๊ทธ๋ฆฌ๋“œ: Breakpoint ์‹œ์Šคํ…œ, ๊ฑฐํ„ฐ ๊ฐ’ ์ •ํ•˜๊ธฐ, ๊ฐ€๋กœ ๋ฐฉํ–ฅ ๊ทธ๋ฆฌ๋“œ
  10. Figma์—์„œ ๊ตฌ์ถ•ํ•˜๊ธฐ: ์ปฌ๋Ÿผ ๊ทธ๋ฆฌ๋“œ, ๋ฒ ์ด์Šค๋ผ์ธ ๊ทธ๋ฆฌ๋“œ

1. ๋ฐฐ๊ฒฝ์ง€์‹ 1 - ํ”ฝ์…€, ํฌ์ธํŠธ, Apple์˜ 72ppi

1-1. ํ”ฝ์…€(px)

ํ”ฝ์…€(px)์€ ๋””์ง€ํ„ธ ํ™”๋ฉด์—์„œ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ด ๋˜๋Š” ๋‹จ์œ„์ž…๋‹ˆ๋‹ค. ํ™”๋ฉด์„ ์ชผ๊ฐค ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ์ž‘์€ ๋‹จ์œ„๋ฅผ ํ”ฝ์…€, ์šฐ๋ฆฌ๋ง๋กœ๋Š” ํ™”์†Œ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๊ฑด์˜ ์‚ฌ์ด์ฆˆ๋ฅผ ์ธก์ •ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” mm๋‚˜ inch์™€ ๊ฐ™์ด ๊ณ ์ •๋œ ๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋‹จ์œ„๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋™์ผํ•œ ํฌ๊ธฐ์˜ ํ™”๋ฉด์ด๋ผ๋„ ํ”ฝ์…€ ์ˆ˜๋Š” ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์ฃ . ๋”ฐ๋ผ์„œ 1px์˜ ์‹ค์ œ ๋ฌผ๋ฆฌ์  ํฌ๊ธฐ๋Š” ๋””๋ฐ”์ด์Šค ํ•ด์ƒ๋„์—๋”ฐ๋ผ ์ œ๊ฐ๊ฐ์ž…๋‹ˆ๋‹ค.


1-2. ํฌ์ธํŠธ(pt), Apple์˜ 72ppi

ํฌ์ธํŠธ(pt)๋ฅผ ์ดํ•ดํ•˜๋ ค๋ฉด ์—ญ์‚ฌ๋ฅผ ์กฐ๊ธˆ ์‚ดํŽด๋ด์•ผํ•ฉ๋‹ˆ๋‹ค. ํฌ์ธํŠธ๋Š” ๋””์ง€ํ„ธ ๋””๋ฐ”์ด์Šค๊ฐ€ ์—†๋˜ ์‹œ์ ˆ, ์ธ์‡„๋ฌผ์˜ ํƒ€์ดํฌ๊ทธ๋ž˜ํ”ผ(Typography)์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ€์žฅ ์ž‘์€ ๋‹จ์œ„์˜€์Šต๋‹ˆ๋‹ค. ์‹ค์ œ ์ธ์‡„๋œ ํ™œ์ž์˜ ํฌ๊ธฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋‹จ์œ„์ด๋ฏ€๋กœ 1pt๋Š” ํ”ฝ์…€๊ณผ ๋‹ฌ๋ฆฌ ๊ณ ์ •๋œ ํ˜„์‹ค ์„ธ๊ณ„์˜ ๊ฐ’์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. 1pt๋Š” ๋Œ€๋žต 1/72inch(0.3527mm) ์ •๋„๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.


๊ทธ๋Ÿฐ๋ฐ ์ด ํฌ์ธํŠธ ๋‹จ์œ„๋ฅผ ํ”ฝ์…€ ๊ธฐ๋ฐ˜์˜ ๋””์ง€ํ„ธ ๋””๋ฐ”์ด์Šค๋กœ ์˜ฎ๊ฒจ์˜ค๋Š” ๊ณผ์ •์—์„œ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ํ˜ผ์„ ์„ ๊ฒช๊ฒŒ ๋˜์—ˆ๊ณ ์š”, Xerox PARC ์—ฐ๊ตฌ์†Œ๋Š” ์ด๋ฅผ ํ•ด์†Œํ•˜๊ธฐ ์œ„ํ•ด ๋””์ง€ํ„ธ ํ™”๋ฉด์˜ ํ‘œ์ค€ ํ•ด์ƒ๋„๋ฅผ 72 ppi(pixels per inch)๋กœ ์ฑ„ํƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋กœ์จ ํ‘œ์ค€ ํ•ด์ƒ๋„๋ฅผ ๊ฐ€์ง„ ๋””๋ฐ”์ด์Šค์—์„œ 1pt = 1px๊ฐ€ ์„ฑ๋ฆฝํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹น์‹œ 72 ppi ํ‘œ์ค€ ํ•ด์ƒ๋„๋ฅผ ์ฑ„ํƒํ•œ Apple PC์˜ ์„ฑ๊ณต์œผ๋กœ 72 ppi๊ฐ€ ๋ณดํŽธํ™”๋˜์—ˆ๊ณ ์š”, Human Interface Guides ๋ฌธ์„œ๋ฅผ ๋ณด๋ฉด ํ˜„์žฌ๊นŒ์ง€๋„ Apple ๋””๋ฐ”์ด์Šค์—์„œ ์ด ํ‘œ์ค€ํ•ด์ƒ๋„๋ฅผ ์‚ฌ์šฉํ•˜๊ณ ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๋งŒ์•ฝ ์–ด๋–ค ๋””๋ฐ”์ด์Šค์˜ ํ•ด์ƒ๋„๊ฐ€ @x2(2๋ฐฐ)๋ผ๋ฉด ๋ฌผ๋ฆฌ์ ์œผ๋กœ 1*1 pt ํฌ๊ธฐ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ 2*2 px, ์ด 4๊ฐœ์˜ ํ”ฝ์…€์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ฐ€๋กœ, ์„ธ๋กœ ๋ชจ๋‘ ์ธ์น˜๋‹น ํ”ฝ์…€ ์ˆ˜๊ฐ€ 2๋ฐฐ์”ฉ ์ปค์กŒ์Œ์„ ์˜๋ฏธํ•˜๊ธฐ ๋•Œ๋ฌธ์ด์ฃ .


spoqa ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ ํ”ฝ์…€๊ณผ ํฌ์ธํŠธ๊ฐ€ ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


2. ๋ฐฐ๊ฒฝ์ง€์‹ 2 - CSS ํ”ฝ์…€, DPPX(Device Pixel Ratio)

2-1. CSS ํ”ฝ์…€

CSS ํ”ฝ์…€์€ 72ppi๊ฐ€ ์•„๋‹Œ 96ppi ํ•ด์ƒ๋„๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฑฐ์˜ ๋ชจ๋“  ์›น ๋ธŒ๋ผ์šฐ์ €๋„ 96ppi๋ฅผ ํ‘œ์ค€ํ•ด์ƒ๋„ ๊ทœ๊ฒฉ์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Apple์˜ Safari๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ฃ . ๋”ฐ๋ผ์„œ CSS์—์„œ๋Š” ํ‘œ์ค€ํ•ด์ƒ๋„๋ผ๊ณ ํ•ด๋„ 1pt = 1px์ด ์„ฑ๋ฆฝ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. CSS 1px์€ 1/96inch์ž…๋‹ˆ๋‹ค. ๊ฐ€๋ น, CSS์—์„œ 16px๋กœ ์ง€์ •ํ•˜๋ฉด ๋ฌผ๋ฆฌ์  ํฌ๊ธฐ๋Š” 16pt๊ฐ€ ์•„๋‹Œ 12pt๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

div {
	font-size: 16px; /* = 12pt */
}

์ฐธ๊ณ ๋กœ 96ppi๋Š” Microsoft๊ฐ€ ๊ฐœ๋ฐœํ•˜๊ณ  ์ฑ„ํƒํ–ˆ๋˜ ํ•ด์ƒ๋„ ๊ทœ๊ฒฉ์ž…๋‹ˆ๋‹ค.


2-2. DPPX(Device Pixel Ratio)

๋””๋ฐ”์ด์Šค ํ™”๋ฉด์— ์ตœ์ข… ๋ Œ๋”๋ง๋  ๋•Œ ์ค‘์š”ํ•œ ๊ฒƒ์€ DPPX(Device Pixel Ratio)์ž…๋‹ˆ๋‹ค. DPPX๋Š” ๋””๋ฐ”์ด์Šค ํ”ฝ์…€๊ณผ CSS ํ”ฝ์…€๊ฐ„ ๋น„์œจ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ๋””๋ฐ”์ด์Šค๋Š” CSS์—์„œ์˜ 1px์ด ์‹ค์ œ ํ™”๋ฉด์—์„œ ๋ช‡ ํ”ฝ์…€์„ ์ฐจ์ง€ํ•˜๋Š”์ง€ ์ •ํ•ด์ง„ ๋น„์œจ์„ ๊ฐ–์Šต๋‹ˆ๋‹ค. ๊ฐ€๋ น, ์–ด๋–ค ๋””๋ฐ”์ด์Šค์˜ DPPX๊ฐ€ 2๋ผ๋ฉด CSS 1*1 px์ด ์‹ค์ œ ํ™”๋ฉด์— ๋ Œ๋”๋ง๋  ๋•Œ 2*2 px์„ ์ฐจ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ CSS Length Explained์—์„œ ๋ฐœ์ทŒํ•œ ์„ค๋ช…์ž…๋‹ˆ๋‹ค.


In order to make sure that CSS pixels are sized consistently across every device that accesses the web (i.e. everything with a screen and network connection), device manufacturers had to map multiple device pixels to one CSS pixel to make up for itโ€™s relative bigger physical size. The ratio of the dimension of CSS pixel relative to device pixels is the device pixel ratio (DPPX).


์ฐธ๊ณ ๋กœ JavaScript์—์„œ๋Š” window.devicePixelRatio ์†์„ฑ์„ ํ†ตํ•ด DPPX ๊ฐ’์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์–ด๋–ค ์ด๋ฏธ์ง€์˜ ํฌ๊ธฐ๋ฅผ CSS์—์„œ 60*60 px๋กœ ์ง€์ •ํ•œ๋‹ค๋ฉด DPPX๊ฐ€ 4์ธ ๋””๋ฐ”์ด์Šค์—์„œ ์ด ์ด๋ฏธ์ง€๋Š” ์‹ค์ œ๋กœ 24*24 px์„ ์ฐจ์ง€ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์›น๊ฐœ๋ฐœ์ž๋Š” 24*24 px ํฌ๊ธฐ์˜ ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ ์ค€๋น„ํ•˜์—ฌ ๋กœ๋”ฉ๋˜๋„๋ก ํ•ด์•ผ๊ฒ ์ฃ . window.devicePixelRatio ์†์„ฑ์„ ์ด์šฉํ•˜๋ฉด DPPX์— ๋”ฐ๋ผ ๋™์ ์œผ๋กœ ์•Œ๋งž์€ ํฌ๊ธฐ์˜ ์ด๋ฏธ์ง€๋ฅผ ๋กœ๋”ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

console.log(window.devicePixelRatio); // 4

3. ๊ทธ๋ฆฌ๋“œ ๊ตฌ์„ฑ์š”์†Œ: Margin, Flowline, Module, Column, Row, Gutter

3-1. ๋งˆ์ง„(Margin)

๋งˆ์ง„(Margin)์€ ํ”„๋ ˆ์ž„์˜ ๊ฐ€์žฅ์ž๋ฆฌ ์—ฌ๋ฐฑ์ž…๋‹ˆ๋‹ค.



3-2. ํ๋ฆ„์„ (Flowline)

ํ๋ฆ„์„ (Flowline)์€ ํ”„๋ ˆ์ž„ ์ „์ฒด์— ํ‰ํ–‰ํ•˜๊ฒŒ ๋ฐฐ์น˜๋˜๋Š” ๊ฐ€๋กœ์„ ์ž…๋‹ˆ๋‹ค. ์ด ํ๋ฆ„์„ ๋“ค์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ”„๋ ˆ์ž„ ๋‚ด์—์„œ ํฐ ์˜์—ญ๋“ค์„ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๊ณ , ์ฝ˜ํ…์ธ ๊ฐ€ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ๋๋‚˜๋Š” ๋ถ€๋ถ„์„ ์ •ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.



3-3. ๋ชจ๋“ˆ(Module)

๋ชจ๋“ˆ(Module)์€ ๊ทธ๋ฆฌ๋“œ์—์„œ ์„ธ๋กœ์„ ๊ณผ ๊ฐ€๋กœ์„ (ํ๋ฆ„์„ )์ด ๊ต์ฐจํ•˜๋ฉด์„œ ๋งŒ๋“ค์–ด๋‚ด๋Š” ๋ธ”๋ก๋“ค์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.



3-4. ์ปฌ๋Ÿผ(Column)

์ปฌ๋Ÿผ(Column)์€ ํ”„๋ ˆ์ž„์˜ ์ฒœ์žฅ๋ถ€ํ„ฐ ๋ฐ”๋‹ฅ๊นŒ์ง€ ์„ธ๋กœ ๋ฐฉํ–ฅ์œผ๋กœ ์ธ์ ‘ํ•œ ๋ชจ๋“ˆ๋“ค์˜ ๊ทธ๋ฃน์ž…๋‹ˆ๋‹ค.



3-5. ํ–‰(Row)

ํ–‰(Row)์€ ํ”„๋ ˆ์ž„์˜ ์™ผ์ชฝ๋ถ€ํ„ฐ ์˜ค๋ฅธ์ชฝ๊นŒ์ง€ ๊ฐ€๋กœ ๋ฐฉํ–ฅ์œผ๋กœ ์ธ์ ‘ํ•œ ๋ชจ๋“ค์˜ ๊ทธ๋ฃน์ž…๋‹ˆ๋‹ค.



3-6. ๊ฑฐํ„ฐ(Gutter)

๊ฑฐํ„ฐ(Gutter)๋Š” ์ปฌ๋Ÿผ๊ณผ ์ปฌ๋Ÿผ ์‚ฌ์ด, ํ˜น์€ ํ–‰๊ณผ ํ–‰ ์‚ฌ์ด์˜ ๋นˆ ๊ณต๊ฐ„์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฑฐํ„ฐ์˜ ๊ฐ’์€ ๋™์ผํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.


์‚ฌ์ง„์ถœ์ฒ˜ : A Quick Look at Types of Grids for Creating Professional Designs


4. 8ํฌ์ธํŠธ ๊ทธ๋ฆฌ๋“œ ์‹œ์Šคํ…œ

4-1. 8ํฌ์ธํŠธ ๊ทธ๋ฆฌ๋“œ ์‹œ์Šคํ…œ

8ํฌ์ธํŠธ ๊ทธ๋ฆฌ๋“œ ์‹œ์Šคํ…œ์€ ๊ทธ๋ฆฌ๋“œ๋ฅผ ๊ตฌ์„ฑํ•  ๋•Œ 8์”ฉ ์ฆ๊ฐํ•˜๋Š” ๊ฐ’๋“ค๋งŒ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๋“œ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฑฐํ„ฐ, ๋งˆ์ง„์˜ ๊ฐ’์„ 8์˜ ๋ฐฐ์ˆ˜๋กœ, ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ๊ฐ€๋ น CSS์—์„œ๋Š” 16px, 24px๊ณผ ๊ฐ™์€ ๊ฐ’๋“ค๋งŒ ์‚ฌ์šฉํ•˜๋Š” 8px ๊ทธ๋ฆฌ๋“œ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. Material Design์—์„œ๋„ Android ์•ฑ์„ ์œ„ํ•œ 8dp ๊ทธ๋ฆฌ๋“œ ์‹œ์Šคํ…œ์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ, ์•„์ด์ฝ˜๊ณผ ๊ฐ™์ด ์ž‘์€ ์‚ฌ์ด์ฆˆ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋Š” 4dp ๊ทธ๋ฆฌ๋“œ๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.


์ตœ๊ทผ์—๋Š” ๊ณต๊ฐ„์„ ๋” ์„ธ๋ฐ€ํ•˜๊ฒŒ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋Š” 4ํฌ์ธํŠธ ๊ทธ๋ฆฌ๋“œ๊ฐ€ ์ธ๊ธฐ๋ฅผ ์–ป๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ํฌํŠธํด๋ฆฌ์˜ค ํ”„๋กœ์ ํŠธ์˜ ๋””์ž์ธ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๋ฉด์„œ Goodbye 8-point grid, hello 4-point grid? ๋“ฑ์˜ ์•„ํ‹ฐํด์„ ์ฐธ๊ณ ํ–ˆ๋Š”๋ฐ์š”, ๊ธฐ๋ณธ์ ์œผ๋กœ 8ํฌ์ธํŠธ, ๊ฒฝ์šฐ์— ๋”ฐ๋ผ 4ํฌ์ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค.


4-2. ์™œ 4, 8์ธ๊ฐ€์š”?

๊ทธ๋Ÿฐ๋ฐ ์™œ 4, 8์ธ๊ฐ€์š”? 2์™€ 4๋กœ๋งŒ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์–ด ๊ณ ํ•ด์ƒ๋„์—์„œ ํ”ฝ์…€์ ˆ๋ฐ˜ ํ˜„์ƒ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ณ ํ•ด์ƒ๋„ ๋””๋ฐ”์ด์Šค๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํ‘œ์ค€ํ•ด์ƒ๋„์˜ 1.5๋ฐฐ, 2๋ฐฐ, 3๋ฐฐ, 4๋ฐฐ ํ•ด์ƒ๋„๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. @x1.5, @x2, @x3, @x4๋กœ ํ‘œ์‹œํ•˜๊ณ ์š”.


์˜ˆ๋ฅผ ๋“ค์–ด, ํ‘œ์ค€ํ•ด์ƒ๋„์—์„œ 1pt = 1px์ด๊ณ , @x1.5 ํ•ด์ƒ๋„์˜ ๋””๋ฐ”์ด์Šค์—์„œ ๋ฌผ๋ฆฌ์ ์œผ๋กœ 5*5 pt ํฌ๊ธฐ๋งŒํ•œ ์•„์ด์ฝ˜์„ ๊ตฌํ˜„ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ด…์‹œ๋‹ค. ์•„์ด์ฝ˜์˜ ํ•œ ๋ฉด์˜ ํ”ฝ์…€ ์‚ฌ์ด์ฆˆ๋Š” 7.5px(5 * 1.5)์ด ๋˜๊ฒ ์ฃ . ์ด๋ฅผ ํ”ฝ์…€์ ˆ๋ฐ˜ ํ˜„์ƒ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์• ์ดˆ์— ํ”ฝ์…€์€ ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฐ€์žฅ ์ž‘์€ ๋‹จ์œ„์ด๊ธฐ ๋•Œ๋ฌธ์— ์ •์ˆ˜(Integer) ๊ฐ’์—์„œ ๋ฒ—์–ด๋‚œ ์†Œ์ˆ˜์  ์•„๋ž˜ ๊ฐ’์œผ๋กœ ์ธํ•ด ๊ณ„๋‹จ ํ˜„์ƒ(Aliasing)์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณ„๋‹จํ˜„์ƒ์„ ์ž๋™์œผ๋กœ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š” Anti-aliasing ๊ธฐ๋Šฅ์„ ํƒ‘์žฌํ•œ ๋””๋ฐ”์ด์Šค์—์„œ๋Š” ๊ฐ€์žฅ์ž๋ฆฌ๊ฐ€ ํ๋ฆฟํ•ด์งˆ ์ˆ˜ ์žˆ๊ณ ์š”. ๋˜๋Š” ๋ Œ๋”๋ง ์—”์ง„์ด ์ž๋™์œผ๋กœ ํ”ฝ์…€ ๊ฐ’์„ ๋ฐ˜์˜ฌ๋ฆผ ์ฒ˜๋ฆฌํ•˜๋ฉด์„œ ๋””์ž์ธ๊ณผ ๋‹ค๋ฅด๊ฒŒ ๋ Œ๋”๋ง๋  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.


4ํฌ์ธํŠธ, 8ํฌ์ธํŠธ ๊ทธ๋ฆฌ๋“œ์—์„œ๋Š” ํ”ฝ์…€์ ˆ๋ฐ˜ ํ˜„์ƒ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ 4์™€ 8์€ ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ๊ธฐ๋ณธ ํฐํŠธ ํฌ๊ธฐ์ธ 16px๊ณผ๋„ ๋งž์•„๋–จ์–ด์ ธ์„œ ๋ฐธ๋Ÿฐ์Šค ์œ ์ง€์—๋„ ๋„์›€์ด ๋˜๊ณ ์š”.


4-3. ์ปดํฌ๋„ŒํŠธ ๋ฐ•์Šค๋ชจ๋ธ(Box Model)์— ๊ทธ๋ฆฌ๋“œ ์ ์šฉํ•˜๊ธฐ

8ํฌ์ธํŠธ ๊ทธ๋ฆฌ๋“œ ์‹œ์Šคํ…œ์„ ์ „์ฒด ํ™”๋ฉด ๋ ˆ์ด์•„์›ƒ์ด ์•„๋‹Œ ์ปดํฌ๋„ŒํŠธ ๋””์ž์ธ์— ์ ์šฉํ•  ๋•Œ ๋ฌด์—‡์„ ๊ณ ๋ คํ•ด์•ผํ• ๊นŒ์š”? ์›น/์•ฑ์—์„œ ํ™”๋ฉด์„ ๊ทธ๋ฆด ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ•์Šค๋ชจ๋ธ(Box Model)์„ ํ•˜๋‚˜์˜ ํ™”๋ฉด์œผ๋กœ ์ƒ๊ฐํ•˜๊ณ , ๋ชจ๋“  ๊ตฌ์„ฑ์š”์†Œ์™€ ํ…์ŠคํŠธ์— 8ํฌ์ธํŠธ ๊ทธ๋ฆฌ๋“œ๋ฅผ ์ ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ์ปดํฌ๋„ŒํŠธ๋“ค์„ ํ™”๋ฉด์— ๋ฐฐ์น˜ํ–ˆ์„ ๋•Œ ์ „์ฒด ๋ ˆ์ด์•„์›ƒ์˜ ๊ทธ๋ฆฌ๋“œ์™€ ๋งž์•„๋–จ์–ด์ง‘๋‹ˆ๋‹ค.


ํ•˜๋‚˜์˜ ๋ฐ•์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” 4๊ฐ€์ง€ ๊ตฌ์„ฑ์š”์†Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์ฝ˜ํ…์ธ (Content) : ๋ฐ•์Šค์˜ ์ฝ˜ํ…์ธ  ์˜์—ญ
  • ํŒจ๋”ฉ(Padding) : ๋ฐ•์Šค์˜ ์ฝ˜ํ…์ธ ๋ฅผ ๋‘˜๋Ÿฌ์‹ผ ์—ฌ๋ฐฑ
  • ์„ (Border) : ๋ฐ•์Šค์˜ ์„ 
  • ๋งˆ์ง„(Margin) : ๋ฐ•์Šค ์™ธ๋ถ€์˜ ์—ฌ๋ฐฑ, ์ฃผ๋ณ€ ์š”์†Œ์™€์˜ ๋ ˆ์ด์•„์›ƒ์— ์‚ฌ์šฉ

์‚ฌ์ง„์ถœ์ฒ˜ : W3S ๋ฐ•์Šค๋ชจ๋ธ(Box Model)


4-4. Escape

์ปดํฌ๋„ŒํŠธ๋ฅผ ๋””์ž์ธํ•˜๋‹ค๋ณด๋ฉด ์•„๋ฌด๋ฆฌํ•ด๋„ 4๋‚˜ 8๋กœ ๋‚˜๋ˆ„์–ด๋–จ์–ด์ง€์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. 8ํฌ์ธํŠธ์— ์–ต์ง€๋กœ ๋งž์ถ”๋‹ค๋ณด๋ฉด ๋ฒ„ํŠผ์˜ ์—ฌ๋ฐฑ์ด ๋„ˆ๋ฌด ๋„“๊ฑฐ๋‚˜ ์ข์•„์ง€๋Š” ๊ฒฝ์šฐ, ํ…์ŠคํŠธ๊ฐ€ ๋„ˆ๋ฌด ํฌ๊ฑฐ๋‚˜ ์ž‘์•„์ง€๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์ฃ . ์ด๋Ÿด ๋•Œ ๋‹ค์Œ ๊ทœ์น™์„ ๊ณ ๋ คํ•ด๋ณด์„ธ์š”.


์ง€์ผœ์•ผํ•  ๊ฒƒ

  • ๋ฐ•์Šค์˜ ๋„ˆ๋น„, ๋†’์ด
  • ํ…์ŠคํŠธ ์ค„๋†’์ด(Line Height)

ํฌ๊ธฐํ•ด๋„ ๋  ๊ฒƒ

  • ๋ฐ•์Šค ๋‚ด์— ์ค‘์•™์ •๋ ฌ๋œ ํฐํŠธ์˜ ์‚ฌ์ด์ฆˆ

๋ฐ•์Šค์˜ ํฌ๊ธฐ์™€ ํ…์ŠคํŠธ ์ค„๋†’์ด๋Š” ์ตœ์†Œ 4์˜ ๋ฐฐ์ˆ˜๋ฅผ ์œ ์ง€ํ•˜๊ณ  ํฐํŠธ ์‚ฌ์ด์ฆˆ(Font Size)๋Š” ๊ทธ๋ฆฌ๋“œ์—์„œ ์–ด๋Š์ •๋„ ๋ฒ—์–ด๋‚˜๋„ ๊ดœ์ฐฎ๋‹ค๋Š” ๊ฒƒ์ด Material Design์˜ ์„ค๋ช…์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ๋ฐœ์ทŒ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.


Type can be placed outside of the 4dp grid when itโ€™s centered within a component, such as a button or list item. When placed outside of the grid but centered within a component, text can still appear vertically center-aligned.


5. ๋ฒ ์ด์Šค๋ผ์ธ ๊ทธ๋ฆฌ๋“œ(Baseline Grid)

๋ฒ ์ด์Šค๋ผ์ธ ๊ทธ๋ฆฌ๋“œ(Baseline Grid)๋Š” ํƒ€์ดํฌ๊ทธ๋ž˜ํ”ผ์—์„œ ํ…์ŠคํŠธ์˜ ๊ธฐ์ค€์„ ์„ ์žก์•„์ฃผ๋Š” ๊ทธ๋ฆฌ๋“œ ๋ฐฉ์‹์ด๊ณ ์š”, ์ฝ˜ํ…์ธ ์˜ ๋ฆฌ๋“ฌ์„ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๊ฒƒ์ด ํŠน์ง•์ž…๋‹ˆ๋‹ค. ์œ„์—์„œ ์†Œ๊ฐœํ•œ ๊ทธ๋ฆฌ๋“œ ๊ตฌ์„ฑ์š”์†Œ ์ค‘ ํ๋ฆ„์„ (Flowline)์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค.


์‚ฌ์ง„์ถœ์ฒ˜ : A Quick Look at Types of Grids for Creating Professional Designs


์ผ๋ฐ˜์ ์œผ๋กœ 8ํฌ์ธํŠธ ๊ทธ๋ฆฌ๋“œ ์‹œ์Šคํ…œ์—์„œ 4ํฌ์ธํŠธ ๋ฒ ์ด์Šค๋ผ์ธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ”ฝ์…€์ ˆ๋ฐ˜ ํ˜„์ƒ์„ ๋ฐฉ์ง€ํ•˜๋ฉด์„œ, 8ํฌ์ธํŠธ ๋ฒ ์ด์Šค๋ผ์ธ์— ๋น„ํ•ด ํฐํŠธ ์‚ฌ์ด์ฆˆ์™€ ์ค„๋†’์ด์— ๋‹ค์–‘์„ฑ์„ ์ฃผ๊ธฐ ์šฉ์ดํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ์€ Figma ๊ณต์‹ ๋ธ”๋กœ๊ทธ์˜ Our grid pro quo: Everything you need to know about layout grids in Figma์—์„œ ๋ฐœ์ทŒํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

In many 8pt grid systems, a 4pt baseline is used. This basic unit makes the math easy and scalable as you start to setup different type sizes and line-height combinations.


6. ๋‹จ์œ„: px, rem, em

์ง€๊ธˆ๊นŒ์ง€ ํ”ฝ์…€์„ ๊ฐ€์ง€๊ณ  ์–˜๊ธฐํ–ˆ์ง€๋งŒ, ์‚ฌ์‹ค ์›น ๊ฐœ๋ฐœ์—์„œ๋Š” ๊ณต๊ฐ„๊ณผ ํƒ€์ดํฌ๊ทธ๋ž˜ํ”ผ์— rem์„ ํ”ํžˆ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. <html> ํƒœ๊ทธ์˜ ํฐํŠธ์‚ฌ์ด์ฆˆ(๊ธฐ๋ณธ์ ์œผ๋กœ 16px)์„ 1rem์œผ๋กœ ํ™˜์‚ฐํ•˜๋Š” ์ƒ๋Œ€์  ๋‹จ์œ„์ด๊ธฐ ๋•Œ๋ฌธ์—, ๋‹จ ํ•˜๋‚˜์˜ ํ”ฝ์…€ ๊ฐ’์„ ์กฐ์ •ํ•จ์œผ๋กœ์จ ๋ชจ๋“  ํฐํŠธ์™€ ์ฃผ๋ณ€ ์—ฌ๋ฐฑ ๊ฐ’์ด ์ž๋™์œผ๋กœ ๋Š˜์–ด๋‚˜๊ณ  ์ค„์–ด๋“ ๋‹ค๋Š” ์‚ฌ์‹ค ๋•Œ๋ฌธ์ด์ฃ . ์ด๋Š” ๋ ˆ์ด์•„์›ƒ์˜ ์œ ์—ฐ์„ฑ๊ณผ ์ ‘๊ทผ์„ฑ ์ธก๋ฉด์—์„œ ์žฅ์ ์œผ๋กœ ์ž‘์šฉํ•ฉ๋‹ˆ๋‹ค. Tailwind CSS์—์„œ๋„ padding, margin ๊ฐ’์œผ๋กœ rem์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.


ํ•˜์ง€๋งŒ ํ•ญ์ƒ rem์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์–ด๋–ค ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ƒํ™ฉ์— ๋”ฐ๋ผ ๋‹ค์–‘ํ•œ ํฌ๊ธฐ๋ฅผ ๊ฐ–๊ฒŒํ•˜๋ ค๋ฉด ๋ณธ์ธ ์š”์†Œ์˜ ํฐํŠธ์‚ฌ์ด์ฆˆ๋ฅผ 1em์œผ๋กœ ํ™˜์‚ฐํ•˜๋Š” em์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๊ณ , ๊ณ ์ •๋œ ๊ฐ’์„ ๋ฐ˜๋“œ์‹œ ์œ ์ง€ํ•ด์•ผํ•  ๋•Œ๋Š” px์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๋“œ ์‹œ์Šคํ…œ์—์„œ๋„ px, rem, em ๊ฐ ๋‹จ์œ„๋Š” ์šฉ๋„์— ๋งž๊ฒŒ ์‚ฌ์šฉํ•˜๋ฉด ๋˜์ง€๋งŒ, ๊ทธ ๊ธฐ์ค€์„ ์ฐพ๊ธฐ๊ฐ€ ์ฐธ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.


Create your design system, part 1: Typography์—์„œ ์ผ€์ด์Šค ์Šคํ„ฐ๋””๋ฅผ ํ•ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Comprehensive Guide: When to Use Em vs. Rem๋„ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.


7. ์ปดํฌ์ง€์…˜ ๊ทธ๋ฆฌ๋“œ(Composition Grids)

ํ…์ŠคํŠธ๊ฐ€ ์ ๊ณ  ์ถ”์ƒ์  ์ด๋ฏธ์ง€์™€ ๋„ํ˜• ์œ„์ฃผ์˜ ํ™”๋ฉด์€ ๋ฒ ์ด์Šค๋ผ์ธ ๊ทธ๋ฆฌ๋“œ๋ณด๋‹ค๋Š” ์ปดํฌ์ง€์…˜ ๊ทธ๋ฆฌ๋“œ(Composition Grids)๊ฐ€ ์ ํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜น์€ ์„ž์–ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ ์š”. ๋‘ ๊ฐ€์ง€ ์ปดํฌ์ง€์…˜ ๊ทธ๋ฆฌ๋“œ๋ฅผ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.


7-1. Rule of Thirds

Rule of Thirds๋Š” ํ™”๋ฉด์„ ๋˜‘๊ฐ™์€ ํฌ๊ธฐ์˜ 9๊ฐœ ์กฐ๊ฐ์œผ๋กœ ๋‚˜๋ˆˆ ํ›„, ์ด๋“ค์„ ๋‚˜๋ˆˆ ์„ ๊ณผ ์„ ๋“ค์˜ ๊ต์ฐจ์ ์„ ๊ธฐ์ค€ ์‚ผ์•„ ์ฝ˜ํ…์ธ ๋ฅผ ๋ฐฐ์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž์˜ ์‹œ์„ ์ด Z์ž๋ฅผ ๊ทธ๋ฆฌ๋ฉฐ ์™ผ์ชฝ ์ƒ๋‹จ, ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ, ์™ผ์ชฝ ํ•˜๋‹จ, ์˜ค๋ฅธ์ชฝ ํ•˜๋‹จ ์ˆœ์„œ๋กœ ํ๋ฅธ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.


์‚ฌ์ง„์ถœ์ฒ˜ : A Quick Look at Types of Grids for Creating Professional Designs


7-2. ํ™ฉ๊ธˆ๋น„(Golden Ratio)

ํ™ฉ๊ธˆ๋น„(Golden Ratio)๋Š” ์ž์—ฐ์—์„œ ๋ฐœ๊ฒฌ๋œ ๋ฏธ์˜ ๋น„์œจ์—์„œ ๊ฐ€์ ธ์˜จ ๊ทธ๋ฆฌ๋“œ ๋ฐฉ๋ฒ•๋ก ์ž…๋‹ˆ๋‹ค. ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์—์„œ ์ˆซ์ž๊ฐ€ ์ฆ๊ฐํ•˜๋Š” ๋น„์œจ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ทธ๋ฆฌ๋“œ๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.


์‚ฌ์ง„์ถœ์ฒ˜ : A Quick Look at Types of Grids for Creating Professional Designs


8. ๋ชจ๋“ˆ์‹ ์Šค์ผ€์ผ(Modular Scales)

์ผ๋ฐ˜์ ์œผ๋กœ ํƒ€์ดํฌ๊ทธ๋ž˜ํ”ผ๋Š” ํŠน์ • ๋น„์œจ๋กœ ์ฆ๊ฐํ•˜๋Š” ๊ฐ’๋“ค๋กœ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์•ผ ์‚ฌ์šฉ์ž๊ฐ€ ์ฝ˜ํ…์ธ ๋ฅผ ์ฝ์–ด๋‚ด๋ ค๊ฐˆ ๋•Œ ๊ธ€์ด ๋ฆฌ๋“ฌ์„ ๊ฐ–๋Š”๋‹ค๊ณ  ๋ณด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ชจ๋“ˆ์‹ ์Šค์ผ€์ผ์„ ์ปดํฌ๋„ŒํŠธ ๋””์ž์ธ์—๋„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠน์ • ๋น„์œจ๋กœ ์ฆ๊ฐํ•˜๋Š” ๊ฐ’๋“ค๋กœ ์ปดํฌ๋„ŒํŠธ์˜ ์‚ฌ์ด์ฆˆ๋ฅผ ๊ตฌ์„ฑํ•ด์„œ ํ™”๋ฉด ์ „์ฒด์˜ ๋ฆฌ๋“ฌ๊ฐ์— ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. Modular Scale ๋“ฑ์˜ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ฆ๊ฐ ๊ฐ’๋“ค์„ ๋น ๋ฅด๊ฒŒ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


์ฆ๊ฐ ๋น„์œจ๋กœ๋Š” ์œ„์—์„œ ์†Œ๊ฐœํ•œ ํ™ฉ๊ธˆ๋น„ 1.618๋„ ๋งŽ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ํ™ฉ๊ธˆ๋น„๋กœ ์ฆ๊ฐํ•˜๋Š” ์‚ฌ์ด์ฆˆ ๋ชจ๋“ˆ์„ ๊ตฌ์„ฑํ•˜๋ฉด์„œ 4px ๋ฒ ์ด์Šค๋ผ์ธ ๊ทธ๋ฆฌ๋“œ์—๋„ ๋งž์ถ”๊ณ ์žํ•œ๋‹ค๋ฉด, ์ถ”์ถœ๋œ ๊ฐ ๊ฐ’๋“ค์„ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด 4์˜ ๋ฐฐ์ˆ˜๋กœ ๋ฐ˜์˜ฌ๋ฆผํ•˜์—ฌ ๊ตฌ์„ฑํ•ด๋ณผ ์ˆ˜ ์žˆ๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ€๋ น 16px์„ ๊ธฐ์ค€์œผ๋กœ ํ™ฉ๊ธˆ๋น„๋กœ ์ฆ๊ฐํ•˜๋Š” ๊ฐ’๋“ค์„ ์ถ”์ถœํ•˜๋ฉด 3.78, 6.11, 9.89, 16, 25.89, 41.89, 67.77, 109.66, 177.42์ด๊ณ ์š”, ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ 4px ๋ฒ ์ด์Šค๋ผ์ธ ๊ทธ๋ฆฌ๋“œ์—์„œ ์‚ฌ์šฉํ•  ๋ชจ๋“ˆ ๊ฐ’๋“ค์„ ๊ตฌ์„ฑํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


:root {
	--base-size: 4;
}

:root {
	--modular-size-1: calc(var(--base-size) * 1); /* 4 */
	--modular-size-2: calc(var(--base-size) * 2); /* 8 */
	--modular-size-3: calc(var(--base-size) * 4); /* 16 */
	--modular-size-4: calc(var(--base-size) * 6); /* 24 */
	--modular-size-5: calc(var(--base-size) * 10); /* 40 */
	--modular-size-6: calc(var(--base-size) * 17); /* 68 */
	--modular-size-7: calc(var(--base-size) * 27); /* 108 */
	--modular-size-8: calc(var(--base-size) * 44); /* 176 */
}

์ดํ›„ ํ•„์š”์— ๋งž๊ฒŒ ๋‹จ์œ„๋ฅผ ํ™˜์‚ฐํ•ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

:root {
	--box-size-1: calc(var(--modular-size-1) * 1px); /* 4 */
	--box-size-2: calc(var(--modular-size-2) * 1px); /* 8 */
	--box-size-3: calc(var(--modular-size-3) * 1px); /* 16 */
	--box-size-4: calc(var(--modular-size-4) * 1px); /* 24 */
	--box-size-5: calc(var(--modular-size-5) * 1px); /* 40 */
	--box-size-6: calc(var(--modular-size-6) * 1px); /* 68 */
	--box-size-7: calc(var(--modular-size-7) * 1px); /* 108 */
	--box-size-8: calc(var(--modular-size-8) * 1px); /* 176 */
}
:root {
	--margin-size-1: calc(var(--modular-size-1) / 16rem); /* 0.25rem */
	--margin-size-2: calc(var(--modular-size-2) / 16rem); /* 0.5rem */
	--margin-size-3: calc(var(--modular-size-3) / 16rem); /* 1rem */
	--margin-size-4: calc(var(--modular-size-4) / 16rem); /* 1.5rem */
	--margin-size-5: calc(var(--modular-size-5) / 16rem); /* 2.5rem */
	--margin-size-6: calc(var(--modular-size-6) / 16rem); /* 4.25rem */
	--margin-size-7: calc(var(--modular-size-7) / 16rem); /* 6.75rem */
	--margin-size-8: calc(var(--modular-size-8) / 16rem); /* 11rem */
}

9. ๋ฐ˜์‘ํ˜• ๊ทธ๋ฆฌ๋“œ: Breakpoint ์‹œ์Šคํ…œ, ๊ฑฐํ„ฐ ๊ฐ’ ์ •ํ•˜๊ธฐ, ๊ฐ€๋กœ ๋ฐฉํ–ฅ ๊ทธ๋ฆฌ๋“œ

9-1. Breakpoint ์‹œ์Šคํ…œ

์ง€๊ธˆ๊นŒ์ง€ ํ”ฝ์…€ ๊ธฐ์ค€์œผ๋กœ๋งŒ ์–˜๊ธฐํ–ˆ์ง€๋งŒ, ๋ชจ๋“  ๋””๋ฐ”์ด์Šค์—์„œ ์ผ๊ด€๋œ ๋ ˆ์ด์•„์›ƒ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ˜์‘ํ˜• ๊ทธ๋ฆฌ๋“œ๋ฅผ ์„ค๊ณ„ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜์‘ํ˜• ๊ทธ๋ฆฌ๋“œ์—์„œ๋Š” ๋ทฐํฌํŠธ(Viewport)์˜ ๋„ˆ๋น„(Width), ๋†’์ด(Height)์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ์ปฌ๋Ÿผ์˜ ์ˆ˜, ์ปฌ๋Ÿผ ๋„ˆ๋น„, ๊ฑฐํ„ฐ, ๋งˆ์ง„ ๊ฐ’์ด ์ ์šฉ๋˜๋„๋ก ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋งค๋…„ ์ƒˆ๋กœ์šด ํฌ๊ธฐ์˜ ๋ทฐํฌํŠธ๋“ค์ด ๋“ฑ์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ๋ทฐํฌํŠธ๋ฅผ ํ•˜๋‚˜์”ฉ ๋‹ค๋ฃจ์ง€์•Š๊ณ , ๋ทฐํฌํŠธ์˜ ๋„ˆ๋น„๋ฅผ ํŠน์ • ๋ฒ”์œ„๋กœ ๊ทธ๋ฃจํ•‘ํ•œ Breakpoint ์‹œ์Šคํ…œ์— ๋”ฐ๋ฅธ ๊ทธ๋ฆฌ๋“œ๋ฅผ ๊ตฌ์„ฑํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ฐธ๊ณ ๋กœ Adobe์˜ Spectrum, Google์˜ Material Design, Bootstrap ๋“ฑ ๊ฑฐ์˜ ๋ชจ๋“  ๋””์ž์ธ ๊ฐ€์ด๋“œ์—์„œ ์„œ๋กœ ๋‹ค๋ฅธ Breakpoint ์‹œ์Šคํ…œ์„ ์ œ์•ˆํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.


๋‹ค์Œ์€ Material Design์˜ Breakpoint ์‹œ์Šคํ…œ์ด๊ณ ์š”, ๊ฐ ๊ทธ๋ฃน๋งˆ๋‹ค ์ ์ ˆํ•œ ์ปฌ๋Ÿผ์˜ ์ˆ˜์™€ ๋งˆ์ง„ ๊ฐ’์— ๋Œ€ํ•œ ๊ฐ€์ด๋“œ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํœด๋Œ€ํฐ (600dp ๋ฏธ๋งŒ) : 4 ์ปฌ๋Ÿผ, 16dp ๋งˆ์ง„

  • ํƒœ๋ธ”๋ฆฟ (600dp ~ 904dp) : 8 ์ปฌ๋Ÿผ, 32dp ๋งˆ์ง„

  • ํฐ ํƒœ๋ธ”๋ฆฟ (905dp ~ 1239dp) : 12 ์ปฌ๋Ÿผ, 840dp ๋ฐ”๋””, Scaling ๋งˆ์ง„

  • ๋…ธํŠธ๋ถ (1240dp ~ 1439dp) : 12 ์ปฌ๋Ÿผ, 200dp ๋งˆ์ง„

  • ๋ฐ์Šคํฌํƒ‘ (1440dp ์ด์ƒ) : 12 ์ปฌ๋Ÿผ, 1040dp ๋ฐ”๋””, Scaling ๋งˆ์ง„


ํฐ ํƒœ๋ธ”๋ฆฟ, ๋ฐ์Šคํฌํƒ‘์˜ ๊ฒฝ์šฐ, ์ฝ˜ํ…์ธ ๊ฐ€ ๋‹ด๊ธฐ๋Š” ๋ฐ”๋””(Body)์˜ ํฌ๊ธฐ๋ฅผ 840dp, 1040dp๋กœ ๊ณ ์ •์‹œํ‚ค๊ณ  ๋งˆ์ง„ ๊ฐ’์€ ๋‚จ๋Š” ๊ณต๊ฐ„์„ ์ฑ„์šฐ๋„๋ก ํ•˜๋Š” ๊ฒƒ์— ์ฃผ๋ชฉํ•ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. CSS์—์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์ง€์ •ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

.wrapper {
	width: 100%;
	max-width: 840px; /* ๋˜๋Š” 1040px */
	margin-left: auto;
	margin-right: auto;
}

์ฃผ์š” ๋””๋ฐ”์ด์Šค๋“ค์˜ ๋ทฐํฌํŠธ ํฌ๊ธฐ๋“ค์ด Material Design ๊ฐ€์ด๋“œ์—์„œ ๊ฑฐ์˜ ๋ฒ—์–ด๋‚˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ €๋Š” Material Design์˜ ์‹œ์Šคํ…œ์„ ๊ทธ๋Œ€๋กœ ๋”ฐ๋ฅด๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ, ๋…ธํŠธ๋ถ ๊ธฐ์ค€์—์„œ ๋ฒ—์–ด๋‚˜๋Š” 15" Macbook์„ ์œ„ํ•ด ๋ฐ์Šคํฌํƒ‘์œผ๋กœ ์‹๋ณ„๋˜๋Š” ์ตœ์†Œ๊ฐ’์„ 1440px์—์„œ 1441px๋กœ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.


9-2. ๊ฑฐํ„ฐ ๊ฐ’ ์ •ํ•˜๊ธฐ

๊ฑฐํ„ฐ์˜ ๊ฐ’์€ 16px, 24px๊ณผ ๊ฐ™์ด 8px ๋ฒ ์ด์Šค๋ผ์ธ๊ณผ ๋งž์•„ ๋–จ์–ด์ง€๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ด๊ณ ์š”, ๋งˆ์ง„๊ณผ ๊ฐ™๊ฑฐ๋‚˜ ์ž‘์€ ๊ฐ’์œผ๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ Spectrum์—์„œ ๋ฐœ์ทŒํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

Gutters are the gaps between the columns. Gutter widths are fixed values (16 px, 24 px, etc.) based on breakpoints.

Grid margins are the outer margins of the grid. They can be the same width as the gutters or greater.


๊ฑฐํ„ฐ ๊ฐ’ ๊ณ„์‚ฐ์„ ์œ„ํ•ด Grid Calculator๋ฅผ ์‚ฌ์šฉํ•˜์˜€๊ณ ์š”, ๊ฒฐ๊ณผ์ ์œผ๋กœ ์ €์˜ Breakpoint ์‹œ์Šคํ…œ์€ ์•„๋ž˜์™€ ๊ฐ™์ด ์ •๋ฆฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • ํœด๋Œ€ํฐ (600px ๋ฏธ๋งŒ) : 4 ์ปฌ๋Ÿผ, 16px ๋งˆ์ง„, 16px ๊ฑฐํ„ฐ

  • ํƒœ๋ธ”๋ฆฟ (600px ~ 904px) : 8 ์ปฌ๋Ÿผ, 32px ๋งˆ์ง„, 16px ๊ฑฐํ„ฐ

  • ํฐ ํƒœ๋ธ”๋ฆฟ (905px ~ 1239px) : 12 ์ปฌ๋Ÿผ, ์ž๋™ ๋งˆ์ง„, 840px ๋ฐ”๋””, 16px ๊ฑฐํ„ฐ, 44px ํŒจ๋”ฉ

  • ๋…ธํŠธ๋ถ (1240px ~ 1440px) : 12 ์ปฌ๋Ÿผ, 200px ๋งˆ์ง„, 24px ๊ฑฐํ„ฐ

  • ๋ฐ์Šคํฌํƒ‘ (1441px ์ด์ƒ) : 12 ์ปฌ๋Ÿผ, ์ž๋™ ๋งˆ์ง„, 1040px ๋ฐ”๋””, 24px ๊ฑฐํ„ฐ, 52px ํŒจ๋”ฉ


9-3. ๊ฐ€๋กœ ๋ฐฉํ–ฅ ๊ทธ๋ฆฌ๋“œ

๊ฐ€๋กœ ๋ฐฉํ–ฅ์˜ ๊ทธ๋ฆฌ๋“œ๋Š” ์ƒ๋‹จ์˜ ์•ฑ๋ฐ”(App Bar) ์˜์—ญ์„ ์ œ์™ธํ•˜๊ณ  ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.


์‚ฌ์ง„์ถœ์ฒ˜ : Material Design


10. Figma์—์„œ ๊ตฌ์ถ•ํ•˜๊ธฐ: ์ปฌ๋Ÿผ ๊ทธ๋ฆฌ๋“œ, ๋ฒ ์ด์Šค๋ผ์ธ ๊ทธ๋ฆฌ๋“œ

10-1. ์ปฌ๋Ÿผ ๊ทธ๋ฆฌ๋“œ

Figma์—์„œ ๊ทธ๋ฆฌ๋“œ๋Š” ์šฐ์ธก Design ํƒญ์˜ Layout Grid ์˜์—ญ์—์„œ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ๊ธฐ๋ณธ ๊ทธ๋ฆฌ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•œ ํ›„, ์ถ”๊ฐ€๋œ ๊ทธ๋ฆฌ๋“œ์˜ ์™ผ์ชฝ ์•„์ด์ฝ˜์„ ํด๋ฆญํ•˜๋ฉด ๊ทธ๋ฆฌ๋“œ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์˜์—ญ์ด ์ƒ๊น๋‹ˆ๋‹ค.



๊ทธ๋‹ค์Œ ๊ฐ€์žฅ ์ƒ๋‹จ์—์„œ ๊ทธ๋ฆฌ๋“œ ์ข…๋ฅ˜๋ฅผ Columns๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.



๊ทธ๋‹ค์Œ Count, Margin, Gutter ๊ฐ’์„ ์ง€์ •ํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.



๊ทธ๋ฆฌ๋“œ ์ƒ์„ฑ์ด ์™„๋ฃŒ๋˜์—ˆ์œผ๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์ด Styles ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ๋ชจ๋“ˆ ์˜์—ญ์„ ์—ด๊ณ , + ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ์ƒˆ๋กœ์šด ๋ชจ๋“ˆ๋กœ ์ถ”๊ฐ€ํ•ด์ค๋‹ˆ๋‹ค.



๋ฐ”๋”” ์˜์—ญ์˜ ํฌ๊ธฐ๊ฐ€ 840px, 1040px๋กœ ๊ณ ์ •๋œ ๊ทธ๋ฃน์˜ ๊ฒฝ์šฐ, 2๊ฐœ์˜ ์ปฌ๋Ÿผ ๊ทธ๋ฆฌ๋“œ๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.



์ปฌ๋Ÿผ ๊ทธ๋ฆฌ๋“œ๊ฐ€ 2๊ฐœ ํ•„์š”ํ•œ ์ด์œ ๋Š” ๊ณ ์ •๋œ ๋ฐ”๋”” ์˜์—ญ์„ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•จ์ž…๋‹ˆ๋‹ค. ์ปฌ๋Ÿผ ์ˆ˜ 1, ์ปฌ๋Ÿผ ํƒ€์ž… Center, ์ปฌ๋Ÿผ ๋„ˆ๋น„ 840/1040, ๊ฑฐํ„ฐ 0์„ ์„ ํƒํ•˜์—ฌ 1๊ฐœ์˜ ์ปฌ๋Ÿผ ๊ทธ๋ฆฌ๋“œ๋ฅผ ์ถ”๊ฐ€๋กœ ์‚ฌ์šฉํ•˜๋Š”๊ฑฐ์ฃ . ๋ฐ”๋”” ์˜์—ญ์ด ์–ด๋–ค ํ”„๋ ˆ์ž„์—์„œ๋“  ์ค‘์•™์— ์ •๋ ฌ๋˜๋„๋ก 2๊ฐœ์˜ ๊ทธ๋ฆฌ๋“œ ๋ชจ๋‘ ์ปฌ๋Ÿผ ํƒ€์ž…์„ Center๋กœ ์„ ํƒํ•˜๊ณ  ์ปฌ๋Ÿผ์˜ ๊ณ ์ •๋œ ๋„ˆ๋น„ ๊ฐ’์„ ์ง€์ •ํ•ด์ค๋‹ˆ๋‹ค.



๊ทธ๋‹ค์Œ ์ด 2๊ฐœ์˜ ์ปฌ๋Ÿผ ๊ทธ๋ฆฌ๋“œ๋ฅผ ๋ฌถ์–ด 1๊ฐœ์˜ ๊ทธ๋ฆฌ๋“œ ๋ชจ๋“ˆ๋กœ ์ถ”๊ฐ€ํ•ด์ค๋‹ˆ๋‹ค.



๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ 5๊ฐœ ๊ทธ๋ฃน์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ๊ทธ๋ฆฌ๋“œ ๋ชจ๋“ˆ์„ ๊ฐ๊ฐ ์ถ”๊ฐ€ํ•˜์‹œ๊ณ ์š”, ๊ฐ ๊ทธ๋ฃน์˜ ๊ธฐ๋ณธ ๊ทธ๋ฆฌ๋“œ์—์„œ ํ™•์žฅ๋œ ์ปฌ๋Ÿผ ๊ทธ๋ฆฌ๋“œ๋“ค์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ปฌ๋Ÿผ์˜ ์ˆ˜๋ฅผ ๋‹ค๋ฅด๊ฒŒ ํ•˜์—ฌ ๋””์ž์ธ ์ž‘์—…์„ ํ•  ๋•Œ ๋น ๋ฅด๊ฒŒ ๋„์›€์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์ฃ . ์ด๋•Œ ๊ธฐ๋ณธ ์ปฌ๋Ÿผ ๊ทธ๋ฆฌ๋“œ์™€ ๋งž์•„ ๋–จ์–ด์ง€๋Š” ์ปฌ๋Ÿผ ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 8 ์ปฌ๋Ÿผ ๊ทธ๋ฆฌ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ทธ๋ฃน์—์„œ๋Š” 2 ์ปฌ๋Ÿผ, 4 ์ปฌ๋Ÿผ ๊ทธ๋ฆฌ๋“œ๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, 3 ๋˜๋Š” 6 ์ปฌ๋Ÿผ์œผ๋กœ ๋‚˜๋ˆ„์—ˆ์„ ๋•Œ๋Š” ๊ธฐ๋ณธ์ด ๋˜๋Š” 8 ์ปฌ๋Ÿผ ๊ทธ๋ฆฌ๋“œ์™€ ๋งž์•„๋–จ์–ด์ง€์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ ํ•ฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.



10-2. ๋ฒ ์ด์Šค๋ผ์ธ ๊ทธ๋ฆฌ๋“œ

...


Figma์—์„œ ๊ทธ๋ฆฌ๋“œ ์‹œ์Šคํ…œ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ Figma ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์—์„œ Create layout grids with grids, columns, and rows, Our grid pro quo: Everything you need to know about layout grids in Figma ์•„ํ‹ฐํด์„ ํ™•์ธํ•˜์„ธ์š”.



References