๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก์ „์ฒด ๊ธ€ (34)

UI Code Lab

๐Ÿ“ฑ ์ผ€์ดํŒ ๋ฐ๋ชฌ ํ—Œํ„ฐ์Šค, ์ˆํผ ์ฑŒ๋ฆฐ์ง€์˜ ํ™•์‚ฐ๋ ฅ โ‘ข

1๏ธโƒฃ ์†Œ๋‹คํŒ ์ฑŒ๋ฆฐ์ง€, ์–ด๋–ป๊ฒŒ ์‹œ์ž‘๋๋‚˜? ใ€ˆ์ผ€์ดํŒ ๋ฐ๋ชฌ ํ—Œํ„ฐ์Šคใ€‰์˜ OST ‘Soda Pop’์€ ๋‹จ์ˆœํ•œ ์Œ์•…์„ ๋„˜์–ด ์ˆํผ ์ฝ˜ํ…์ธ ์˜ ์ด‰๋งค์ œ๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทน ์ค‘ ์‚ฌ์ž๋ณด์ด์ฆˆ์˜ ์•ˆ๋ฌด๊ฐ€ SNS์—์„œ ์ปค๋ฒ„๋˜๋ฉฐ, ํŒฌ๋ค ์ค‘์‹ฌ์˜ ์ฑŒ๋ฆฐ์ง€๋กœ ํ™•์‚ฐ๋˜์—ˆ์ฃ . ์ฐจ์€์šฐ, ๋ฅด์„ธ๋ผํ•Œ, ์ œ๋กœ๋ฒ ์ด์Šค์› ๋“ฑ ์‹ค์ œ ์•„์ด๋Œ์ด ์ฑŒ๋ฆฐ์ง€ ์ฐธ์—ฌํ‹ฑํ†ก·๋ฆด์Šค์—์„œ #์†Œ๋‹คํŒ์ฑŒ๋ฆฐ์ง€ ํ•ด์‹œํƒœ๊ทธ๋กœ ์ˆ˜๋ฐฑ๋งŒ ์กฐํšŒ์ˆ˜ ๊ธฐ๋กํŒฌ๋“ค์ด ๋งŒ๋“  ์ปค๋ฒ„ ์˜์ƒ, ๋ฐˆ, ๋ฆฌ๋ฏน์Šค๊ฐ€ ์ฝ˜ํ…์ธ ๋ฅผ ๋†€์ดํ™”ํ•˜๋ฉฐ ํ™•์‚ฐ “์ด๊ฑด ๊ทธ๋ƒฅ ์ฑŒ๋ฆฐ์ง€๊ฐ€ ์•„๋‹ˆ๋ผ, ํŒฌ๋ค์˜ ์ถ•์ œ์˜€๋‹ค.” – ํŒฌ ์ปค๋ฎค๋‹ˆํ‹ฐ ๋ฐ˜์‘ 2๏ธโƒฃ ์ˆํผ ์ฝ˜ํ…์ธ ๊ฐ€ Z์„ธ๋Œ€์™€ ์—ฐ๊ฒฐ๋œ ์ด์œ  Z์„ธ๋Œ€๋Š” ์ฝ˜ํ…์ธ ๋ฅผ ์งง๊ณ  ๊ฐ•๋ ฌํ•˜๊ฒŒ ์†Œ๋น„ํ•ฉ๋‹ˆ๋‹ค. ใ€ˆ์ผ€์ดํŒ ๋ฐ๋ชฌ ํ—Œํ„ฐ์Šคใ€‰๋Š” ์ด ํ๋ฆ„์„ ์ •ํ™•ํžˆ ์ฝ๊ณ , ์ˆํผ์— ์ตœ์ ํ™”๋œ ์š”์†Œ๋“ค์„ ๋‹ด์•„๋ƒˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ” ์ˆํผ ์ฝ˜ํ…์ธ ์˜ ํŠน์ง•์š”์†Œ์„ค๋ช…โฑ ์งง์€ ๊ธธ์ด15..

๐ŸŽต ์ผ€์ดํŒ ๋ฐ๋ชฌ ํ—Œํ„ฐ์Šค, OST๊ฐ€ ๋งŒ๋“  ๊ธ€๋กœ๋ฒŒ ํŒฌ๋ค โ‘ก

1๏ธโƒฃ ์Œ์•…์ด ์ฝ˜ํ…์ธ ์˜ ์ค‘์‹ฌ์ด ๋˜๋‹ค ใ€ˆ์ผ€์ดํŒ ๋ฐ๋ชฌ ํ—Œํ„ฐ์Šคใ€‰๋Š” ๋‹จ์ˆœํ•œ ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ด ์ž‘ํ’ˆ์˜ OST๋Š” ์Šคํ† ๋ฆฌ์™€ ์บ๋ฆญํ„ฐ ๊ฐ์ •์„ ์„ ์ด๋„๋Š” ํ•ต์‹ฌ ์š”์†Œ๋กœ ์ž‘๋™ํ•˜๋ฉฐ, ์ฝ˜ํ…์ธ  ๋งˆ์ผ€ํŒ…์˜ ์ค‘์‹ฌ์ถ•์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทน ์ค‘ ๊ฑธ๊ทธ๋ฃน ํ—ŒํŠธ๋ฆญ์Šค(HUNTR/X)๊ฐ€ ๋ถ€๋ฅธ ‘Golden’์€ ๋นŒ๋ณด๋“œ ํ•ซ100 2์œ„๊นŒ์ง€ ์ƒ์ŠนOST 8๊ณก์ด ๋™์‹œ ์ฐจํŠธ ์ง„์ž…ํ•˜๋ฉฐ ๋นŒ๋ณด๋“œ ์—ญ์‚ฌ์ƒ ์ด๋ก€์ ์ธ ๊ธฐ๋ก‘Golden’์€ ์ŠคํŠธ๋ฆฌ๋ฐ ์†ก ์ฐจํŠธ 4์ฃผ ์—ฐ์† 1์œ„, ์—ฌ์„ฑ ๊ทธ๋ฃน ์ตœ์ดˆ ๊ธฐ๋ก ์Œ์•…์ด ๋‹จ์ˆœํ•œ ๋ฐฐ๊ฒฝ์ด ์•„๋‹Œ, ์„œ์‚ฌ๋ฅผ ์ด๋„๋Š” ์ฃผ์ฒด๋กœ ์ž‘๋™ํ•œ ์‚ฌ๋ก€์ž…๋‹ˆ๋‹ค. 2๏ธโƒฃ ๊ฐ€์ƒ์˜ ์•„์ด๋Œ์ด ํ˜„์‹ค์„ ๋„˜๋‹ค ํ—ŒํŠธ๋ฆญ์Šค์™€ ์‚ฌ์ž๋ณด์ด์ฆˆ๋Š” ๊ฐ€์ƒ ์บ๋ฆญํ„ฐ์ง€๋งŒ, ์‹ค์ œ ์•„์ด๋Œ ๋ชป์ง€์•Š์€ ํŒฌ๋ค์„ ํ˜•์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.ํŠธ์™€์ด์Šค, ๋ธ”๋ž™ํ•‘ํฌ ๋“ฑ๊ณผ์˜ ํ˜‘์—…์œผ๋กœ ํ˜„์‹ค๊ณผ ๊ฐ€์ƒ์˜ ๊ฒฝ๊ณ„ ํ—ˆ๋ฌผ๊ธฐํŒฌ๋“ค์ด ๋งŒ๋“  ์ปค๋ฒ„ ์˜์ƒ, ์ฑŒ๋ฆฐ..

๐ŸŽฌ ์ผ€์ดํŒ ๋ฐ๋ชฌ ํ—Œํ„ฐ์Šค, ์ฝ˜ํ…์ธ  ๋งˆ์ผ€ํŒ…์˜ ๊ต๊ณผ์„œ๊ฐ€ ๋˜๋‹ค โ‘ 

1๏ธโƒฃ ์ฝ˜ํ…์ธ ๊ฐ€ ํŒฌ๋ค์„ ๋งŒ๋“ค๊ณ , ํŒฌ๋ค์ด ์ฝ˜ํ…์ธ ๋ฅผ ํ‚ค์šด๋‹ค ๋„ทํ”Œ๋ฆญ์Šค ์• ๋‹ˆ๋ฉ”์ด์…˜ ใ€ˆ์ผ€์ดํŒ ๋ฐ๋ชฌ ํ—Œํ„ฐ์Šคใ€‰๋Š” ๋‹จ์ˆœํ•œ K-POP ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ์•„๋‹™๋‹ˆ๋‹ค. OST, ์บ๋ฆญํ„ฐ, ์„ธ๊ณ„๊ด€, ์ฑŒ๋ฆฐ์ง€ ์˜์ƒ๊นŒ์ง€ ์ฝ˜ํ…์ธ  ์ „๋ฐ˜์ด ํŒฌ๋ค์„ ํ˜•์„ฑํ•˜๊ณ  ํ™•์‚ฐ์‹œํ‚ค๋Š” ๋ฐ”์ด๋Ÿด ๋งˆ์ผ€ํŒ…์˜ ์ •์„์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. OST 8๊ณก์ด ๋นŒ๋ณด๋“œ ํ•ซ100์— ๋™์‹œ ์ง„์ž…์Šคํฌํ‹ฐํŒŒ์ด ๋ฏธ๊ตญ ์ฐจํŠธ 1·2์œ„ ์„๊ถŒ๊ตญ๋ฆฝ์ค‘์•™๋ฐ•๋ฌผ๊ด€ ๊ตฟ์ฆˆ ํ’ˆ์ ˆ ์‚ฌํƒœ ์ฝ˜ํ…์ธ ๊ฐ€ ๊ณง ๋ธŒ๋žœ๋“œ๊ฐ€ ๋˜๊ณ , ๋ธŒ๋žœ๋“œ๊ฐ€ ๊ณง ํŒฌ๋ค์ด ๋˜๋Š” ๊ตฌ์กฐ๋ฅผ ์™„์„ฑํ•œ ์‚ฌ๋ก€์ž…๋‹ˆ๋‹ค. 2๏ธโƒฃ ์ˆํผ ์ฑŒ๋ฆฐ์ง€๋กœ Z์„ธ๋Œ€์™€ ์—ฐ๊ฒฐ๋œ ์ด์œ  ๐Ÿ”ฅ ์†Œ๋‹คํŒ ์ฑŒ๋ฆฐ์ง€์˜ ํญ๋ฐœ๋ ฅ์‚ฌ์ž๋ณด์ด์ฆˆ ์•ˆ๋ฌด → ์ธํ”Œ๋ฃจ์–ธ์„œ·์•„์ด๋Œ์ด ๋ฆด์Šค·ํ‹ฑํ†ก์—์„œ ์ปค๋ฒ„์ฐจ์€์šฐ, ๋ฅด์„ธ๋ผํ•Œ, ์ œ๋กœ๋ฒ ์ด์Šค์› ๋“ฑ ์ฐธ์—ฌ๋กœ ํ™•์‚ฐ ๐Ÿ“ˆ ์ˆํผ ์ฝ˜ํ…์ธ ๊ฐ€ ์œ ํ–‰ํ•œ ๋ฐฐ๊ฒฝ์งง๊ณ  ์ค‘๋…์ ์ธ ๋ฉœ๋กœ๋”” + ์‹œ๊ฐ์  ํผํฌ๋จผ์Šค๊ฐ€ ์ˆํผ์— ์ตœ์ ํ™”ํŒฌ..

๐ŸŒ‡ ๋‹คํฌ ๋ชจ๋“œ ์ „ํ™˜ ์‹œ, ๋ถ€๋“œ๋Ÿฝ๊ณ  ์™„์„ฑ๋„ ๋†’์€ ์›น UI ๋งŒ๋“ค๊ธฐ

์ตœ๊ทผ ์›น์‚ฌ์ดํŠธ์—์„œ ๋‹คํฌ ๋ชจ๋“œ ์ „ํ™˜ ๊ธฐ๋Šฅ์€ ๋‹จ์ˆœํ•œ ํŠธ๋ Œ๋“œ๋ฅผ ๋„˜์–ด ์‚ฌ์šฉ์ž ๊ฒฝํ—˜(UX)์˜ ํ•ต์‹ฌ ์š”์†Œ๋กœ ์ž๋ฆฌ ์žก๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณธ ๊ธ€์—์„œ๋Š” CSS์™€ JavaScript๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํ…Œ๋งˆ ๋ณ€๊ฒฝ ์‹œ ๋ถ€๋“œ๋Ÿฝ๊ณ  ๋งค๋„๋Ÿฌ์šด ์ „ํ™˜์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‹ฌ๋„ ์žˆ๊ฒŒ ๋‹ค๋ค„๋ด…๋‹ˆ๋‹ค. ํ”„๋ŸฐํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž๋Š” ๋ฌผ๋ก , UX/UI ๋””์ž์ด๋„ˆ์—๊ฒŒ๋„ ๋„์›€์ด ๋˜๋Š” ์‹ค์ „ ํŒ์„ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. โœจ ์™œ ๋ถ€๋“œ๋Ÿฌ์šด ํ…Œ๋งˆ ์ „ํ™˜์ด ์ค‘์š”ํ•œ๊ฐ€?๊ฐ‘์ž‘์Šค๋Ÿฌ์šด ํ™”๋ฉด ์ „ํ™˜์€ ์‹œ๊ฐ์  ํ”ผ๋กœ๋ฅผ ์œ ๋ฐœํ•  ์ˆ˜ ์žˆ์Œ์ „ํ™˜ ๋ฐฉ์‹์ด ์„ธ๋ จ๋ ์ˆ˜๋ก ์„œ๋น„์Šค ํ’ˆ์งˆ์— ๋Œ€ํ•œ ์ธ์‹์ด ์ƒ์ŠนํŠนํžˆ ๋‹คํฌ ๋ชจ๋“œ๋Š” ๋ฐ๊ธฐ ๋Œ€๋น„๊ฐ€ ํฌ๊ธฐ ๋•Œ๋ฌธ์—, ์ „ํ™˜ ์™„๊ธ‰ ์กฐ์ ˆ์ด ์ค‘์š” ๐ŸŽจ CSS Transition์œผ๋กœ ๋ถ€๋“œ๋Ÿฌ์šด ์Šคํƒ€์ผ ์ „ํ™˜ CSS ๋ณ€์ˆ˜ ๊ธฐ๋ฐ˜ ํ…Œ๋งˆ ์‹œ์Šคํ…œ์„ ํ™œ์šฉํ•˜๋ฉด, transition ์†์„ฑ๋งŒ์œผ๋กœ๋„ ๋ถ€๋“œ๋Ÿฌ์šด ์‹œ๊ฐ ํšจ๊ณผ๋ฅผ ๋‚ผ ์ˆ˜ ..

๐ŸŒ— ์šด์˜์ฒด์ œ ํ…Œ๋งˆ์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ๋ณ€ํ•˜๋Š” ์›น UI – prefers-color-scheme ํ™œ์šฉ ๊ฐ€์ด๋“œ

๋‹คํฌ ๋ชจ๋“œ ํ† ๊ธ€ ๊ธฐ๋Šฅ์€ ์‚ฌ์šฉ์ž ๋งž์ถค UX์˜ ์‹œ์ž‘์ ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์‚ฌ์šฉ์ž๊ฐ€ ๋ณ„๋„์˜ ์„ค์ • ์—†์ด๋„ ์šด์˜์ฒด์ œ์˜ ํ…Œ๋งˆ์— ๋งž์ถฐ ์›น์‚ฌ์ดํŠธ๊ฐ€ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋ฐ˜์‘ํ•œ๋‹ค๋ฉด ํ›จ์”ฌ ๋” ์ง๊ด€์ ์ธ ๊ฒฝํ—˜์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์—ฌ๊ธฐ์„œ ์‹œ์Šคํ…œ ํ…Œ๋งˆ ๊ฐ์ง€ ๊ธฐ๋Šฅ์ด ๋“ฑ์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ๋Š” prefers-color-scheme ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์šด์˜์ฒด์ œ์˜ ๋ผ์ดํŠธ/๋‹คํฌ ์„ค์ •์„ ์ž๋™์œผ๋กœ ๊ฐ์ง€ํ•˜๊ณ , ์ด๋ฅผ ์‚ฌ์šฉ์ž ์„ค์ •๊ณผ ์กฐํ•ฉํ•ด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ „ํ™˜ํ•˜๋Š” ๋กœ์ง์„ ๊ตฌํ˜„ํ•ด๋ณผ ๊ฑฐ์˜ˆ์š”. โœ… ๊ตฌํ˜„ ๋ชฉํ‘œOS์˜ ๋ผ์ดํŠธ/๋‹คํฌ ๋ชจ๋“œ ์ƒํƒœ ๊ฐ์ง€์‚ฌ์šฉ์ž ์„ค์ •๊ณผ ์‹œ์Šคํ…œ ์„ค์ •์˜ ์šฐ์„ ์ˆœ์œ„ ์ฒ˜๋ฆฌCSS ๋ณ€์ˆ˜์™€ data-theme ์†์„ฑ์„ ํ™œ์šฉํ•œ ์Šคํƒ€์ผ ๋ณ€๊ฒฝ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€ ์ €์žฅ์„ ํ†ตํ•œ ์‚ฌ์šฉ์ž ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ๐Ÿง  CSS์—์„œ ์‹œ์Šคํ…œ ํ…Œ๋งˆ ๊ฐ์ง€ํ•˜๊ธฐ ์šด์˜์ฒด์ œ๊ฐ€ ๋‹คํฌ ๋ชจ๋“œ๋กœ ์„ค์ •๋˜์–ด ..

๐ŸŒ™ ๋‹คํฌ ๋ชจ๋“œ ํ† ๊ธ€ ๊ธฐ๋Šฅ ๋งŒ๋“ค๊ธฐ – ๋ฐ”๋‹๋ผ JS๋กœ UX ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ

์š”์ฆ˜ ์›น์‚ฌ์ดํŠธ๋ฅผ ๋ณด๋ฉด ๋‹คํฌ ๋ชจ๋“œ ๊ธฐ๋Šฅ์ด ๊ธฐ๋ณธ์ฒ˜๋Ÿผ ํƒ‘์žฌ๋˜์–ด ์žˆ์ฃ . ๋ˆˆ์˜ ํ”ผ๋กœ๋ฅผ ์ค„์ด๊ณ , ์‚ฌ์šฉ์ž์˜ ํ™˜๊ฒฝ์— ๋งž์ถฐ ํ…Œ๋งˆ๋ฅผ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋Š” ๋‹คํฌ ๋ชจ๋“œ ํ† ๊ธ€ ๊ธฐ๋Šฅ์€ UX๋ฅผ ๋†’์ด๋Š” ๋ฐ ๋งค์šฐ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์—†์ด ๋ฐ”๋‹๋ผ JavaScript์™€ CSS ๋ณ€์ˆ˜๋งŒ์œผ๋กœ ๋‹คํฌ ๋ชจ๋“œ ํ† ๊ธ€ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. โœ… ๊ตฌํ˜„ ๋ชฉํ‘œ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ๋ผ์ดํŠธ ↔ ๋‹คํฌ ๋ชจ๋“œ ์ „ํ™˜CSS ๋ณ€์ˆ˜(--color, --bg)๋ฅผ ํ™œ์šฉํ•œ ํ…Œ๋งˆ ์Šคํƒ€์ผ๋งJavaScript๋กœ data-theme ์†์„ฑ ์ œ์–ด๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€์— ์‚ฌ์šฉ์ž ํ…Œ๋งˆ ์ €์žฅ ๐Ÿงฑ HTML ๊ตฌ์กฐ input[type="checkbox"]๋กœ ํ† ๊ธ€ ๊ธฐ๋Šฅ ๊ตฌํ˜„label๊ณผ span.slider๋กœ ์Šคํƒ€์ผ๋ง ๐ŸŽจ CSS ์Šคํƒ€์ผ :root { --bg-color: #ffff..