๐Ÿ–ฅ UI ๋””์ž์ธ ๊ฐ€์ด๋“œ ๋งŒ๋“ค๊ธฐ #3._Icon svgํ™”

KLleon Product Center
6 min readOct 12, 2022

--

Posting : 08.22.2022
Designer : ๊น€์„ธ์›
#designsystem #UX/UI #Icon #svg

์•„์ด์ฝ˜ svg ์ด์šฉ๊ธฐ

์•„์ด์ฝ˜์„ svgํ™” ํ•˜๋ฉด์„œ ๊ฒช์€ ์šฐ์—ฌ๊ณก์ ˆ

์•„์ด์ฝ˜์„ svg ๋กœ ์ด์šฉํ•˜๊ณ , ๊ฐœ๋ฐœ์ž์™€ ํ•จ๊ป˜ ์•„์ด์ฝ˜ ์‹œ์Šคํ…œ์„ ์ ์šฉํ•˜๋ฉด์„œ ํฌ๊ฒŒ ๋„ค์ด๋ฐ๊ณผ ์ปดํฌ๋„ŒํŠธ ์นดํ…Œ๊ณ ๋ฆฌ๊ฐ€ ํฌ๊ฒŒ ๋ฐ”๋€Œ๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด์„œ Property๊ฐ’ ์ค‘ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ˆ˜์ •๊ณผ ์‚ญ์ œ ๋˜๋Š” ๊ฒƒ๋“ค์ด ์žˆ์—ˆ๋‹ค.

svg ๋ฅผ ์ด์šฉํ•˜๊ฒŒ ๋˜๋ฉด์„œ ๊ฐ€์žฅ ํฌ๊ฒŒ ๋ฐ”๋€ ๊ฒƒ๋“ค์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

01. ๋งจ ์ฒ˜์Œ ๋ฐ”๋€ ๊ฒƒ : ๋„ค์ด๋ฐ, Property

ํ•„์ž์˜ ์•„์ด์ฝ˜ ๋„ค์ด๋ฐ ์‹œ์Šคํ…œ์€ ํ”ผ๊ทธ๋งˆ์—์„œ ์•„์ด์ฝ˜ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฐฉ์‹๊ณผ ๋™์ผํ•˜๊ฒŒ ๊ฐ€์ ธ๊ฐ„๋‹ค. ๊ทธ๋ ‡๊ธฐ์— ์•„์ด์ฝ˜์˜ Property ๊ฐ’ ๋„ค์ด๋ฐ์— ๋ฐ˜์˜์ด ๋˜์–ด ๋ณ€๊ฒฝ๋œ ๊ฒƒ์ด๋ผ๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.

AS-IS

TO-BE

direction-property โ†’ shape ์ˆ˜์ •

๊ธฐ์กด suffix ๋ถ€๋ถ„์„ ๋ณด๊ฒŒ ๋˜๋ฉด direction-property ์™€ status, color ๊ฐ€ ์กด์žฌํ•œ๋‹ค. ์•„๋ž˜์˜ To-be ์™€ ๋น„๊ต๋ฅผ ํ•ด๋ณด๋ฉด direction-property๋Š” shape ์œผ๋กœ ์›Œ๋”ฉ์„ ๋ณ€๊ฒฝํ–ˆ๋‹ค. ์ด์œ ๋Š” ํ˜•ํƒœ๊ฐ€ ๋ฐ”๋€Œ๊ฒŒ ๋œ ์ด์œ ์™€ ์—ฐ๊ฒฐ์ด ๋˜๊ธฐ๋„ ํ•œ๋‹ค. ์•„์ด์ฝ˜์—๋Š” fill ๊ฐ’์œผ๋กœ ์ฑ„์›Œ์ง„ ํ˜•ํƒœ๊ฐ€ ์žˆ๊ณ , stroke ํ˜•ํƒœ๋กœ ์ด๋ฃจ์–ด์ง„ ๊ฒŒ ์žˆ๋‹ค. ์ด๋Š” ํƒญ์ด๋‚˜ ๋ฉ”๋‰ด๋ฅผ ํด๋ฆญํ•  ์‹œ, ํด๋ฆญ์˜ interaction์— ๋”ฐ๋ผ ์‚ฌ์šฉ๋˜๋Š” ๋‹ค๋ฅธ ํ˜•ํƒœ์ด๋‹ค. ๊ธฐ์กด์˜ ์›Œ๋”ฉ์€ ์ด๋Ÿฐ ํ˜•ํƒœ๊นŒ์ง€ ๋‹ค ํฌ๊ด„ํ•˜๊ธฐ์—๋Š” ์• ๋งคํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‹จ์ˆœํžˆ arrow์˜ ๋ฐฉํ–ฅ ๋ฟ ์•„๋‹ˆ๋ผ ๋‹ค์–‘ํ•œ ์•„์ด์ฝ˜์˜ ํ˜•ํƒœ๋ฅผ ์•„์šฐ๋ฅผ ์ˆ˜ ์žˆ๋Š” shape ์œผ๋กœ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ–ˆ๋‹ค.

Property ๊ฐ’ ์ค‘ color๊ฐ’, status ๊ฐ’ ์‚ญ์ œ

svgํ™•์žฅ์ž๋ฅผ ์ด์šฉํ•˜๊ฒŒ ๋˜๋ฉด์„œ, ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ์ฝ”๋“œ ์ƒ์—์„œ currentcolor ๊ฐ’์—์„œ ์ง์ ‘ ์ƒ‰์ƒ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ตณ์ด ์ปฌ๋Ÿฌ variants ๋“ค์„ ๋งŒ๋“ค ํ•„์š”๊ฐ€ ์—†์–ด์กŒ๋‹ค.

Status ๊ฐ’ ์‚ญ์ œ์˜ ๋ถ€๋ถ„์€ ์•„๋ž˜ ํ˜•ํƒœ ๋ถ„๋ฆฌ์—์„œ ์„ค๋ช…ํ•˜๊ฒ ๋‹ค.

02. ํ˜•ํƒœ ๋ณ€๊ฒฝ (Icon๊ณผ Butcon, Controller์œผ๋กœ ๋ถ„๋ฆฌ)

ํ˜•ํƒœ ๋ณ€๊ฒฝ

์•„์ด์ฝ˜์—์„œ ๊ธฐ์กด์— background๊ฐ€ ์กด์žฌํ•˜๋Š” ํ˜•ํƒœ๊ฐ€ ์žˆ์—ˆ๋‹ค. ์ด๋Š” ์ปดํฌ๋„ŒํŠธ ์•ˆ์—์„œ ์‚ฌ์šฉ๋˜์–ด ๋ฒ„ํŠผ์ฒ˜๋Ÿผ ์“ฐ์ด๊ณ , status ๊ฐ’์ด interaction์— ๋”ฐ๋ผ ๋ณ€ํ™”๋˜๋Š” ์•„์ด์˜€๋‹ค. ๊ทธ๋Ÿฌ๋‹ค๋ณด๋‹ˆ ํฌํ•จ๋˜์–ด์žˆ๋Š” ์ปดํฌ๋„ŒํŠธ์—์„œ์˜ status ๊ฐ’๋งˆ๋‹ค ๊ณ„์†ํ•ด์„œ ์ถ”๊ฐ€ํ•ด์ค˜์•ผ ํ–ˆ๋‹ค.

Butcon ๋ถ„๋ฅ˜

์ž๋™์œผ๋กœ ์ƒํƒœ๊ฐ’์ด ๋“ค์–ด๊ฐ€๊ฒŒ๋˜๋Š” ๋ฒ„ํŠผ๋“ค์€ ๋”ฐ๋กœ Butcon์œผ๋กœ ๋ถ„๋ฅ˜ํ•˜์˜€๋‹ค.

butcon์œผ๋กœ ๋ถ„๋ฆฌ

Controller ๋ถ„๋ฆฌ

์†Œ๋ฆฌ์˜ on/off ์™€ ์ฒดํฌ ๋ชจ๋‘ ๋ช…ํ™•ํ•œ ๊ตฌ๋ถ„์ด ์—†์–ด์„œ controller ๋กœ ๋”ฐ๋กœ ๊ตฌ๋ถ„์ง“์ง€ ์•Š๊ณ  Icon ๋‚ด์—์„œ ์ฃผ๋จน๊ตฌ๊ตฌ ์‹์œผ๋กœ ๊ด€๋ฆฌ๋ฅผ ํ–ˆ์—ˆ๋‹ค. ์ด๋ฒˆ์— ๋ถ„๋ฆฌ๋ฅผ ํ•˜๋ฉด์„œ on/off ๊ฐ€ ๋ช…ํ™•ํ•œ ๊ฒƒ๋“ค์€ controller๋กœ ๊ตฌ๋ถ„์ง€์—ˆ๋‹ค.

Controller component

๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋ณด๋‚ผ ๋•Œ ์œ ์˜ํ•  ์ 

svg์•„์ด์ฝ˜์€ ๋ ˆ์ด์–ด ์••์ถ•์ด ์•„๋‹Œ ์ฝ”๋“œ๋กœ ์•„์ด์ฝ˜์˜ ์‹œ๊ฐ์ ์ธ ์ •๋ณด๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๋ณต์žกํ•˜๋ฉฐ ๋ณต์žกํ•  ์ˆ˜๋ก ์•„์ด์ฝ˜์ด ๊นจ์ง€๊ฑฐ๋‚˜ ์ƒ‰์ƒ ๋ณ€๊ฒฝ์ด ๋˜์ง€ ์•Š๊ฑฐ๋‚˜ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ตœ๋Œ€ํ•œ stroke๋ฅผ outline strokeํ™”์™€ flatten์ฒ˜๋ฆฌ ํ•˜์—ฌ ๊นจ์งˆ ์—ผ๋ ค๊ฐ€ ์—†๋„๋ก ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ฐœ๋ฐœ์ž๊ฐ€ fill ์ด๋ผ๋Š” ์†์„ฑ์—์„œ ํ•œ ๋ฒˆ์— ์ƒ‰์ƒ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์–ด ์ข‹๋‹ค.

ํ•„์ž๋Š” ๋””์ž์ด๋„ˆ ๊ด€๋ฆฌ์šฉ page ์™€ ๊ฐœ๋ฐœ์ž export ์šฉ ํŽ˜์ด์ง€๋ฅผ figma๋‚ด์—์„œ ๋”ฐ๋กœ ๋ถ„๋ฆฌํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋””์ž์ด๋„ˆ๋“ค๋„ ์•„์ด์ฝ˜ ์ˆ˜์ •๊ด€๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๊ณ , ๊ฐœ๋ฐœ์ž๋„ ๊ด€๋ฆฌํ•˜๊ธฐ ์‰ฝ๋„๋ก ํ•˜์˜€๋‹ค.

[๋””์ž์ด๋„ˆ ๊ด€๋ฆฌ์šฉ]

[๊ฐœ๋ฐœ์ž์˜ export์šฉ]

์•„์‰ฌ์› ๋˜ ์ 

์•„์ด์ฝ˜์ด ์• ์ดˆ์— ์ž‘์€ ์‚ฌ์ด์ฆˆ์—์„œ ์ž์œ ์ž์žฌ์˜ ์‚ฌ์ด์ฆˆ์— ๋‹ค ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ฌ์„ธํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ง€์ง€ ๋ชปํ•ด์„œ ์‚ฌ์ด์ฆˆ๋ณ„๋กœ ๋”ฐ๋กœ ์•„์ด์ฝ˜๋“ค์„ ๊ด€๋ฆฌํ•ด์•ผ๋œ๋‹ค๋Š” ์ ์ด ์•„์‰ฌ์› ๋‹ค. ์ด๋ ‡๊ฒŒ ๋  ๊ฒฝ์šฐ ๊ด€๋ฆฌํ•ด์•ผ๋  ๋ฆฌ์†Œ์Šค์™€ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋งŽ์ด ๋“ค์–ด๊ฐ€๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.๋‹ค์Œ์— ์•„์ด์ฝ˜์„ ์ „๋ฐ˜์ ์œผ๋กœ ํ”„๋กœ๋•ํŠธ์˜ ๋ธŒ๋žœ๋“œ ์ผ๊ด€์„ฑ์— ๋งž๋„๋ก ์ผ๊ด„์ ์œผ๋กœ ์ž‘์—…ํ•ด๋ด์•ผ๊ฒ ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ๋  ๊ฒฝ์šฐ, ์•„์ด์ฝ˜์˜ ๋„ค์ด๋ฐ Property ๊ฐ€ ๋”์šฑ ๋ช…ํ™•ํ•ด์งˆ ์ˆ˜ ์žˆ๊ณ , ๊ด€๋ฆฌํ•ด์•ผ๋  ๋ฆฌ์†Œ์Šค๋„ ์ ์–ด์งˆ ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค.

์ฐธ๊ณ ์ž๋ฃŒ

--

--