Skip to content

๐Ÿค” Palette ๋ฉ”๋‰ด ์œก๊ฐํ˜• ๊ตฌํ˜„์ฒด์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ๊ณ ๋ฏผ

CatyJazzy edited this page Dec 4, 2024 · 4 revisions

๐Ÿย Palette UI ๊ตฌํ˜„์ฒด ๊ณ ๋ฏผ



Palette๋Š” ๋…ธ๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์ „์—, ๋…ธ๋“œ์˜ ํƒ€์ž…์„ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด ํ‘œ์‹œ๋˜๋Š” ๋ฉ”๋‰ด๋ฅผ ์˜๋ฏธํ•œ๋‹ค. Palette์— ๋Œ€ํ•œ ์š”๊ตฌ์‚ฌํ•ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • ์บ”๋ฒ„์Šค๋กœ ๊ทธ๋ฆฐ ๋…ธ๋“œ๊ฐ€ โ€œ๋“œ๋กญโ€ํ–ˆ์„ ๋•Œ ํ‘œ์‹œ๋˜์–ด์•ผ ํ•จ.
  • ํŽผ์ณ์ง€๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ.
  • ์˜ต์…˜๋“ค์ด ๋งค๋ฒˆ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Œ. (๊ฐœ์ˆ˜๊ฐ€ ๋ณ€ํ•ด๋„ ์˜ต์…˜๋“ค์˜ ์œ„์น˜๊ฐ€ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋ฐฐ์น˜๋  ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ)


์ผ๋‹จ ์œก๊ฐํ˜• ๋ชจ์–‘์— ๋Œ€ํ•ด 3๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ๋– ์˜ฌ๋ ธ๋‹ค.

  • CSS๋กœ ์Šคํƒ€์ผ๋ง
  • SVG
  • Canvas๋กœ ๊ทธ๋ฆฌ๊ธฐ

โ†’ Canvas๊ฐ€ ํ•„์š”ํ• ๊นŒ? ์˜ค๋ฒ„์—”์ง€๋‹ˆ์–ด๋ง์ด ๋  ์ˆ˜๋„ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค.

  • ์œก๊ฐํ˜•์„ ๊ทธ๋ฆฌ๋Š” ๋กœ์ง์ด ํ•„์š” ์ด์ƒ์œผ๋กœ ๋ณต์žกํ•˜๊ฒŒ ๋Š๊ปด์กŒ๋‹ค.
  • Lucide React icon์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด svg๋ฅผ data url๋กœ ๋ณ€ํ™˜ํ•˜๊ฑฐ๋‚˜ ์ด๋ฏธ์ง€์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. ๋˜๋Š” Canvas ์œ„๊ฐ€ ์•„๋‹ˆ๋ผ ์ ˆ๋Œ€ ์œ„์น˜๋กœ ๊ณ„์‚ฐํ•˜์—ฌ ๋ฐฐ์น˜ํ•ด์•ผ ํ•˜๋Š”๋ฐ (์•„์ด์ฝ˜์ด) ์ดํ›„ ์œก๊ฐํ˜• (ํ‹€)๊ณผ ๊ฒฐํ•ฉ๋œ ํ˜•ํƒœ๋กœ์˜ ์กฐ์ž‘์ด ๋ฒˆ๊ฑฐ๋กœ์šธ ๊ฒƒ ๊ฐ™๋‹ค.
  • Canvas์˜ ์„ฑ๋Šฅ์€ ๋งŽ์€ ์ˆ˜์˜ ์š”์†Œ๋ฅผ ๊ทธ๋ ค์•ผ ํ•  ๋•Œ ๊ณ ๋ คํ•ด๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ, ๋‹จ์ˆœํ•œ ์œก๊ฐํ˜• ๋ฒ„ํŠผ 6๊ฐœ๋‹ˆ๊นŒ ๋ถ€๋‹ด์ด ์—†์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.
  • ์ด๋ฒคํŠธ ํ•ธ๋“ค๋ง์ด ์–ด๋ ค์›Œ์ง„๋‹ค. (๋ฒ„ํŠผ์„ ๊ฐ๊ฐ ๊ทธ๋ ค์ฃผ๊ณ , ํด๋ฆญํ–ˆ์„ ๋•Œ์˜ ์œ„์น˜๊ฐ€ ์–ด๋–ค ๋ฒ„ํŠผ ์•ˆ์— ์žˆ๋Š”์ง€ ์‹๋ณ„ํ•ด์•ผ ํ•จ, ํƒ€์ž…์— ๋”ฐ๋ฅธ ๋™์ ์ธ ์•„์ด์ฝ˜ ์ฒ˜๋ฆฌ๊ฐ€ ์–ด๋ ค์›€)

โ†’ CSS VS SVG?

  • CSS๋ฅผ ํ™œ์šฉํ•  ๊ฒฝ์šฐ, clip-path๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”๋ฐ ์ผ๋ถ€ ๋ธŒ๋ผ์šฐ์ € ๋ฒ„์ „์—์„œ ์ œํ•œ์ ์ผ ์ˆ˜ ์žˆ๋‹ค. (tailwind๋กœ๋Š” ๋ฐ”๋กœ ์ ์šฉ์„ ๋ชปํ•˜๊ณ  ๋ณ„๋„์˜ ํด๋ž˜์Šค ์ •์˜๊ฐ€ ํ•„์š”ํ•จ)

  • ๋น„์œจ ์œ ์ง€์˜ ๋ฐฉ์‹์ด ๋‹ค๋ฅธ๋ฐ, SVG๋Š” viewbox๋ฅผ ํ†ตํ•œ ๊ฐ€์ƒ ์ขŒํ‘œ ์‹œ์Šคํ…œ์œผ๋กœ ์กฐ์ •์ด ๋˜๋ฉฐ, CSS๋Š” ์œ ์ง€๊ฐ€ ์•ˆ๋  ์ˆ˜๋„ ์žˆ๋‹ค (๋˜๋Š” ์œก๊ฐํ˜• ํฌ๊ธฐ๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ ๊ฐ’๋“ค์„ ๋‹ค์‹œ ๊ณ„์‚ฐํ•ด์ค˜์•ผ ํ•˜๊ฑฐ๋‚˜)




๋”ฐ๋ผ์„œ SVG๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํŽธ๋ฆฌํ•˜๊ฒŒ ๊ตฌํ˜„ํ•˜์˜€๋‹ค!

<svg viewBox="0 0 100 100">
    <polygon
      points="50 0, 93.3 25, 93.3 75, 50 100, 6.7 75, 6.7 25"
      className={color}
    />
</svg>


๐Ÿย ๋Œ์•„๋ณด๊ธฐ

  • ํŒ”๋ ˆํŠธ UI ๋“ฑ์žฅ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ๋„ฃ์„ ๋•Œ, ์šฐ๋ฆฌ๋Š” [๋“œ๋ž˜๊ทธํ•˜์—ฌ ๋ณต์‚ฌ๋œ ๋…ธ๋“œ โ†’ ํ๋ฆฌ๋ฉํ……ํ•œ(?) ์œก๊ฐํ˜• โ†’ ์™„์„ฑ๋œ ๋ฒŒ์ง‘ ์œก๊ฐํ˜•]๋กœ ๊ฐ€์ ธ๊ฐ€๊ธฐ๋กœ ํ–ˆ์—ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋…ธ๋“œ๋Š” Canvas์—์„œ ๊ทธ๋ ค์ง„ ๊ฒƒ์ด๊ณ , ํŒ”๋ ˆํŠธ๋Š” ๋” ์—˜๋ฆฌ๋จผํŠธ์—ฌ์„œ ๊ทธ ์‚ฌ์ด์˜ ์ „ํ™˜์„ ๋งค๋„๋Ÿฝ๊ฒŒ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์–ด๋ ค์›Œ์กŒ๋‹ค.
  • ๊ทธ๋Ÿผ Canvas๋กœ ๊ตฌํ˜„ํ•ด์•ผ ํ–ˆ์„๊นŒ? ๋‹ค์‹œ ๋Œ์•„๋ด๋„ ํŒ”๋ ˆํŠธ ๋“ฑ์žฅ โ€œ์• ๋‹ˆ๋ฉ”์ด์…˜โ€๋ณด๋‹ค๋Š”, ํŒ”๋ ˆํŠธ์—์„œ ๋…ธ๋“œ์˜ ํƒ€์ž…์„ ํด๋ฆญํ•˜์—ฌ ๋…ธ๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ํ•ต์‹ฌ ๋กœ์ง์ด๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋ง๊ณผ ๊ตฌํ˜„ ๋ณต์žก๋„๊ฐ€ ๋‚ฎ์•„์ง€๋Š” svg ์„ ํƒ์ด ๋” ์ ์ ˆํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

TEAM

DOCS

DEV-NOTES

PRESENTATION

Clone this wiki locally