๐Ÿ“UI ์ŠคํŽ˜์ด์‹ฑ ์‹œ์Šคํ…œ ๊ณ„์‚ฐ๊ธฐ

๋ฒ ์ด์Šค ๋‹จ์œ„๋ฅผ ์„ค์ •ํ•˜๋ฉด UI ์ŠคํŽ˜์ด์‹ฑ ์Šค์ผ€์ผ๊ณผ CSS ๋ณ€์ˆ˜๋ฅผ ์ž๋™ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

px

๊ด€๋ จ๋œ ๋„๊ตฌ

UI ์ŠคํŽ˜์ด์‹ฑ ์‹œ์Šคํ…œ์ด๋ž€?

UI ์ŠคํŽ˜์ด์‹ฑ ์‹œ์Šคํ…œ์€ ๋””์ž์ธ ์ „๋ฐ˜์˜ ์—ฌ๋ฐฑ, ํŒจ๋”ฉ, ๋งˆ์ง„์„ ์ผ์ •ํ•œ ๋‹จ์œ„๋กœ ํ‘œ์ค€ํ™”ํ•œ ๊ฐ„๊ฒฉ ์ฒด๊ณ„์ž…๋‹ˆ๋‹ค. ๋ฒ ์ด์Šค ๋‹จ์œ„(๋ณดํ†ต 4px ๋˜๋Š” 8px)๋ฅผ ์ •ํ•˜๊ณ , ์ด๋ฅผ ๋ฐฐ์ˆ˜๋กœ ํ™•์žฅํ•ด xs, sm, md, lg, xl ๋“ฑ์˜ ์ŠคํŽ˜์ด์‹ฑ ํ† ํฐ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋””์ž์ธ๊ณผ ๊ฐœ๋ฐœ ๊ฐ„์˜ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๊ณ  ํ˜‘์—… ํšจ์œจ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

8pt ๊ทธ๋ฆฌ๋“œ ์‹œ์Šคํ…œ ์žฅ์ 

8px๋ฅผ ๋ฒ ์ด์Šค๋กœ ์“ฐ๋Š” ์ด์œ ๋Š” ๋Œ€๋ถ€๋ถ„์˜ ํ™”๋ฉด ํ•ด์ƒ๋„(1x, 2x, 3x DPR)์—์„œ 8์˜ ๋ฐฐ์ˆ˜๊ฐ€ ์ •์ˆ˜ ํ”ฝ์…€๋กœ ๋–จ์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ํ”ฝ์…€ ์™„๋ฒฝ์„ฑ(Pixel Perfect)์„ ์ถ”๊ตฌํ•˜๋Š” ๋””์ž์ธ์—์„œ ์„œ๋ธŒํ”ฝ์…€ ๋ Œ๋”๋ง ๋ฌธ์ œ๋ฅผ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Google Material Design, Apple Human Interface Guidelines ๋ชจ๋‘ 4~8dp ๊ธฐ์ค€์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

CSS ๋ณ€์ˆ˜๋กœ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

:root { --space-1: 4px; --space-2: 8px; --space-3: 16px; } ํ˜•์‹์œผ๋กœ CSS ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•˜๋ฉด, ์ปดํฌ๋„ŒํŠธ์—์„œ padding: var(--space-2)์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋””์ž์ธ ์‹œ์Šคํ…œ ํˆด(Figma, Tokens Studio ๋“ฑ)์—์„œ๋„ ๊ฐ™์€ ํ† ํฐ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๋ฉด ๋””์ž์ธ-๊ฐœ๋ฐœ ํ•ธ๋“œ์˜คํ”„๊ฐ€ ๋งค์šฐ ๊ฐ„ํŽธํ•ด์ง‘๋‹ˆ๋‹ค.

์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

Tailwind CSS ์ŠคํŽ˜์ด์‹ฑ๊ณผ ํ˜ธํ™˜๋˜๊ฒŒ ์“ธ ์ˆ˜ ์žˆ๋‚˜์š”?

๋„ค, Tailwind ํ˜ธํ™˜ ์Šค์ผ€์ผ ํƒ€์ž…์„ ์„ ํƒํ•˜๋ฉด Tailwind์˜ ๊ธฐ๋ณธ ์ŠคํŽ˜์ด์‹ฑ ๋ฐฐ์ˆ˜(1, 2, 4, 6, 8...)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์Šค์ผ€์ผ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. Tailwind์˜ ๊ธฐ๋ณธ ๋ฒ ์ด์Šค๋Š” 4px์ž…๋‹ˆ๋‹ค.

4pt์™€ 8pt ์ค‘ ์–ด๋–ค ๊ฒƒ์„ ์„ ํƒํ•ด์•ผ ํ•˜๋‚˜์š”?

๋ณต์žกํ•œ ๋Œ€์‹œ๋ณด๋“œ๋‚˜ ๋ฐ์ดํ„ฐ ๋ฐ€๋„๊ฐ€ ๋†’์€ UI๋ผ๋ฉด 4pt๊ฐ€ ์„ธ๋ฐ€ํ•œ ์กฐ์ •์— ์œ ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ ์›น/์•ฑ UI๋ผ๋ฉด 8pt๊ฐ€ ๋” ๋‹จ์ˆœํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. ์‹œ์ž‘์€ 8pt๋ฅผ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.