6.Global Style & Theme

Reset CSS

CSS ์žฌ์„ค์ • ๋˜๋Š” CSS ์ •๊ทœํ™”๋ผ๊ณ ๋„ ํ•˜๋Š” CSS ์žฌ์„ค์ •์€ ์—ฌ๋Ÿฌ ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ HTML ์š”์†Œ์˜ ์Šคํƒ€์ผ์„ ์ง€์ •ํ•˜๊ธฐ ์œ„ํ•œ ์ผ๊ด€๋œ ๊ธฐ์ค€์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•˜๋Š” CSS ๊ทœ์น™ ๋˜๋Š” ์Šคํƒ€์ผ์‹œํŠธ ์ง‘ํ•ฉ์ด๋‹ค. ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ ์šฉ๋˜๋Š” ๊ธฐ๋ณธ ์Šคํƒ€์ผ์˜ ๋ถˆ์ผ์น˜ ๋ฐ ์ฐจ์ด๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ์›น ๋””์ž์ธ์„ ๊ตฌ์ถ•ํ•  ๋•Œ ๋ณด๋‹ค ์ผ๊ด€๋œ ์‹œ์ž‘์ ์„ ๋ณด์žฅํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋œ๋‹ค.

  1. ๋ชฉ์ (Purpose): CSS ์žฌ์„ค์ •์˜ ์ฃผ์š” ๋ชฉ์ ์€ ๋ธŒ๋ผ์šฐ์ €์—์„œ HTML ์š”์†Œ์— ์ ์šฉํ•œ ๊ธฐ๋ณธ ์Šคํƒ€์ผ์„ ์žฌ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ๋ฌด๋ ฅํ™”ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์›น ๋ธŒ๋ผ์šฐ์ €๋งˆ๋‹ค ๊ธ€๊ผด ํฌ๊ธฐ, ์—ฌ๋ฐฑ, ํŒจ๋”ฉ, ์ค„ ๋†’์ด ๋ฐ ๊ธฐํƒ€ ์‹œ๊ฐ์  ์†์„ฑ์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋Š” ๊ณ ์œ ํ•œ ๊ธฐ๋ณธ ์Šคํƒ€์ผ์ด ์žˆ๋‹ค. CSS ์žฌ์„ค์ •์„ ์‚ฌ์šฉํ•˜๋ฉด ๊นจ๋—ํ•œ ์Šฌ๋ ˆ์ดํŠธ์—์„œ ์‹œ์ž‘ํ•˜์—ฌ HTML ์š”์†Œ์˜ ๋ชจ์–‘์— ์˜ˆ๊ธฐ์น˜ ์•Š์€ ๋ถˆ์ผ์น˜๋ฅผ ํ”ผํ•˜๊ณ  ๊ณตํ‰ํ•œ ๊ฒฝ์Ÿ์˜ ์žฅ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

  2. ์žฌ์„ค์ • ๋Œ€ ์ •๊ทœํ™”(Resets vs. Normalizes): CSS๋ฅผ ์žฌ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ์žฌ์„ค์ •๊ณผ ์ •๊ทœํ™”๋ผ๋Š” ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ์ ‘๊ทผ ๋ฐฉ์‹์ด ์žˆ๋‹ค.

  • ์žฌ์„ค์ •(Resets): CSS ์žฌ์„ค์ •์€ HTML ์š”์†Œ์—์„œ ๋ชจ๋“  ๊ธฐ๋ณธ ์Šคํƒ€์ผ์„ ์ œ๊ฑฐํ•˜์—ฌ ๊ณตํ†ต ๊ธฐ๋ณธ ์Šคํƒ€์ผ๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•œ๋‹ค. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ๋นˆ ์บ”๋ฒ„์Šค์—์„œ ์‹œ์ž‘ํ•˜๋ฉฐ ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐ ์š”์†Œ์˜ ๋ชจ๋“  ์Šคํƒ€์ผ์„ ๋ช…์‹œ์ ์œผ๋กœ ์ •์˜ํ•ด์•ผ ํ•œ๋‹ค. ๋ชจ์–‘์„ ์™„๋ฒฝํ•˜๊ฒŒ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์š”์†Œ์˜ ์Šคํƒ€์ผ์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ์ง€์ •ํ•˜๋ ค๋ฉด ๋” ๋งŽ์€ ์ž‘์—…์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ์ •๊ทœํ™”(Normalizes): CSS ์ •๊ทœํ™”๋Š” ๋ธŒ๋ผ์šฐ์ €์˜ ๋ถˆ์ผ์น˜๋ฅผ ํ•ด๊ฒฐํ•˜๋ฉด์„œ ์œ ์šฉํ•œ ๊ธฐ๋ณธ ์Šคํƒ€์ผ์„ ๋ณด์กดํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•œ๋‹ค. ๊ธฐ๋ณธ ์Šคํƒ€์ผ์„ ์™„์ „ํžˆ ์ œ๊ฑฐํ•˜๋Š” ๋Œ€์‹  ์—ฌ๋Ÿฌ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๋„๋ก ์กฐ์ •ํ•œ๋‹ค. ์ •๊ทœํ™”๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ผ๋ถ€ ์š”์†Œ์— ๋Œ€ํ•œ ๋ช…์‹œ์ ์ธ ์Šคํƒ€์ผ ์ง€์ •์˜ ํ•„์š”์„ฑ์„ ์ค„์—ฌ์ฃผ์–ด ๋ณด๋‹ค ํ™•์‹คํ•œ ์‹œ์ž‘์ ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค.

  1. ์ผ๋ฐ˜์ ์ธ ์žฌ์„ค์ • ๊ธฐ๋ฒ•(Common Reset Techniques)

  • ์—ฌ๋ฐฑ๊ณผ ํŒจ๋”ฉ์„ 0์œผ๋กœ ์„ค์ •ํ•œ๋‹ค: ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ ์šฉ๋˜๋Š” ๊ธฐ๋ณธ ์—ฌ๋ฐฑ์ด๋‚˜ ํŒจ๋”ฉ์„ ์ œ๊ฑฐํ•˜์—ฌ ์š”์†Œ ๊ฐ„์˜ ๊ฐ„๊ฒฉ์„ ์ผ๊ด€๋˜๊ฒŒ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ๊ธ€๊ผด ์Šคํƒ€์ผ ์žฌ์„ค์ •: ํฌ๊ธฐ, ๊ตต๊ธฐ, ์ค„ ๋†’์ด์™€ ๊ฐ™์€ ๊ธ€๊ผด ์†์„ฑ์„ ์ผ๊ด€๋˜๊ฒŒ ์„ค์ •ํ•˜์—ฌ ์—ฌ๋Ÿฌ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ผ๊ด€๋œ ํƒ€์ดํฌ๊ทธ๋ž˜ํ”ผ๋ฅผ ๋ณด์žฅํ•œ๋‹ค.

  • ์ƒ์ž ํฌ๊ธฐ ์ •๊ทœํ™”: ์ง€์ •๋œ ๋„ˆ๋น„์™€ ๋†’์ด ๋‚ด์—์„œ ํŒจ๋”ฉ๊ณผ ํ…Œ๋‘๋ฆฌ๋ฅผ ํฌํ•จํ•˜๋Š” ์ƒ์ž ํฌ๊ธฐ: ํ…Œ๋‘๋ฆฌ ์ƒ์ž; ์†์„ฑ์„ ์ ์šฉํ•˜์—ฌ ์ผ๊ด€๋œ ์ƒ์ž ๋ชจ๋ธ์„ ๋ณด์žฅํ•œ๋‹ค.

  • ๋ชฉ๋ก ์Šคํƒ€์ผ ์žฌ์„ค์ •: ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋ชฉ๋ก์˜ ๊ธ€๋จธ๋ฆฌ ๊ธฐํ˜ธ ๋ฐ ์ •๋ ฌ๋œ ๋ชฉ๋ก์˜ ๋ฒˆํ˜ธ ๋งค๊ธฐ๊ธฐ์™€ ๊ฐ™์€ ๊ธฐ๋ณธ ๋ชฉ๋ก ์Šคํƒ€์ผ์„ ์ œ๊ฑฐํ•˜์—ฌ ์ผ๊ด€๋œ ๋ชจ์–‘์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

  • ํ…์ŠคํŠธ ์žฅ์‹ ์ œ๊ฑฐํ•˜๊ธฐ: ๋งํฌ ๋ฐ ๊ธฐํƒ€ ์š”์†Œ์—์„œ ๋ฐ‘์ค„ ๋ฐ ๊ธฐํƒ€ ํ…์ŠคํŠธ ์žฅ์‹์„ ์ œ๊ฑฐํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ์Šคํƒ€์ผ์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

  1. ์‚ฌ์šฉ์ž ์ง€์ • ๋ฐ ์‚ฌ์šฉ(Customization and Usage) ํ”„๋กœ์ ํŠธ์˜ ํŠน์ • ์š”๊ตฌ ์‚ฌํ•ญ์— ๋”ฐ๋ผ CSS ์žฌ์„ค์ •์„ ์‚ฌ์šฉ์ž ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ์š”๊ตฌ ์‚ฌํ•ญ์— ๋”ฐ๋ผ ํŠน์ • ์Šคํƒ€์ผ์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐœ๋ฐœ์ž๋Š” ์žฌ์„ค์ • ๋˜๋Š” ์ •๊ทœํ™” ์Šคํƒ€์ผ์‹œํŠธ๋ฅผ ํ”„๋กœ์ ํŠธ์˜ ์ฒซ ๋ฒˆ์งธ CSS ํŒŒ์ผ๋กœ ํฌํ•จ์‹œ์ผœ ๋‹ค๋ฅธ ์Šคํƒ€์ผ์‹œํŠธ๋ณด๋‹ค ์šฐ์„ ์ ์œผ๋กœ ์ ์šฉ๋˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ด๋‹ค. Normalize.css ๋ฐ Meyer's CSS Reset๊ณผ ๊ฐ™์ด ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” CSS ์žฌ์„ค์ • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์›น ํ”„๋กœ์ ํŠธ์— ์‰ฝ๊ฒŒ ํฌํ•จํ•  ์ˆ˜ ์žˆ๋Š” ๋ฏธ๋ฆฌ ๋นŒ๋“œ๋œ ์žฌ์„ค์ • ๋˜๋Š” ์ •๊ทœํ™” ์Šคํƒ€์ผ์‹œํŠธ๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์ถฉ๋ถ„ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑฐ์ณค์œผ๋ฉฐ ๋ธŒ๋ผ์šฐ์ € ๊ฐ„ ์ผ๊ด€์„ฑ์„ ์œ„ํ•œ ํƒ„ํƒ„ํ•œ ๊ธฐ๋ฐ˜์„ ์ œ๊ณตํ•œ๋‹ค.

  2. ๊ณ ๋ ค ์‚ฌํ•ญ(Considerations)

  • ๊ตฌ์ฒด์„ฑ ์ฆ๊ฐ€(Increased specificity): CSS ์žฌ์„ค์ •์€ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์„ค์ •ํ•œ ๊ธฐ๋ณธ ์Šคํƒ€์ผ์„ ์žฌ์ •์˜ํ•˜๊ธฐ ์œ„ํ•ด ๋ณด๋‹ค ๊ตฌ์ฒด์ ์ธ ์„ ํƒ๊ธฐ๋ฅผ ํ•„์š”๋กœ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ์Šคํƒ€์ผ์„ ์ ์šฉํ•  ๋•Œ ์„ ํƒ๊ธฐ์˜ ํŠน์ด์„ฑ์„ ์—ผ๋‘์— ๋‘์–ด์•ผ ํ•œ๋‹ค.

  • ์„ฑ๋Šฅ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ(Performance impact): HTML ์š”์†Œ์˜ ๋ชจ๋“  ๊ธฐ๋ณธ ์Šคํƒ€์ผ์„ ์žฌ์„ค์ •ํ•˜๋ฉด ํŒŒ์ผ ํฌ๊ธฐ๊ฐ€ ์ฆ๊ฐ€ํ•˜๊ณ  ์Šคํƒ€์ผ ์ฒ˜๋ฆฌ๊ฐ€ ์ถ”๊ฐ€๋  ์ˆ˜ ์žˆ๋‹ค. ์ผ๊ด€์„ฑ์˜ ์ด์ ๊ณผ ์„ฑ๋Šฅ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์˜ ๊ท ํ˜•์„ ๋งž์ถ”๊ณ  ํ”„๋กœ์ ํŠธ์˜ ํŠน์ • ์š”๊ตฌ ์‚ฌํ•ญ์„ ๊ณ ๋ คํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•œ๋‹ค.

box-sizing ์†์„ฑ

box-sizing์€ CSS ์†์„ฑ ์ค‘ ํ•˜๋‚˜๋กœ, ์š”์†Œ์˜ ํฌ๊ธฐ ๊ณ„์‚ฐ ๋ฐฉ์‹์„ ์ง€์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ์ด ์†์„ฑ์€ ์ฃผ๋กœ ๋ฐ•์Šค ๋ชจ๋ธ์— ์ ์šฉ๋˜๋ฉฐ, ๋ฐ•์Šค์˜ ์ „์ฒด ํฌ๊ธฐ ๊ณ„์‚ฐ์— padding๊ณผ border๋ฅผ ํฌํ•จํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค.

box-sizing ์†์„ฑ์€ ๋‹ค์Œ ๋‘ ๊ฐ€์ง€ ๊ฐ’ ์ค‘ ํ•˜๋‚˜๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค:

  1. content-box (๊ธฐ๋ณธ๊ฐ’): ์ด ๊ฐ’์€ ์š”์†Œ์˜ ํฌ๊ธฐ ๊ณ„์‚ฐ์— padding๊ณผ border๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š๋‹ค. ์ฆ‰, ์š”์†Œ์˜ ํฌ๊ธฐ๋Š” content ์˜์—ญ๋งŒ์„ ๊ธฐ์ค€์œผ๋กœ ๊ณ„์‚ฐ๋œ๋‹ค. padding๊ณผ border๋Š” ์š”์†Œ์˜ ํฌ๊ธฐ์— ์ถ”๊ฐ€์ ์œผ๋กœ ๋”ํ•ด์ง€์ง€ ์•Š์œผ๋ฉฐ, ๋ฐ•์Šค์˜ ํฌ๊ธฐ๋Š” content ์˜์—ญ์˜ ํฌ๊ธฐ์™€ ๋™์ผํ•˜๋‹ค.

.box {
  box-sizing: content-box;
}
  1. border-box: ์ด ๊ฐ’์€ ์š”์†Œ์˜ ํฌ๊ธฐ ๊ณ„์‚ฐ์— padding๊ณผ border๋ฅผ ํฌํ•จํ•œ๋‹ค. ์ฆ‰, ์š”์†Œ์˜ ํฌ๊ธฐ๋Š” content ์˜์—ญ์— padding๊ณผ border๋ฅผ ๋”ํ•œ ์ „์ฒด ๋ฐ•์Šค์˜ ํฌ๊ธฐ๋กœ ๊ณ„์‚ฐ๋œ๋‹ค. padding๊ณผ border๋Š” ์š”์†Œ์˜ ํฌ๊ธฐ์— ์ด๋ฏธ ํฌํ•จ๋˜๋ฏ€๋กœ, content ์˜์—ญ์˜ ํฌ๊ธฐ๋Š” ์š”์†Œ์˜ ํฌ๊ธฐ์™€ ๋™์ผํ•˜๋‹ค.

.box {
  box-sizing: border-box;
}

๊ธฐ๋ณธ์ ์œผ๋กœ ๋Œ€๋ถ€๋ถ„์˜ ์š”์†Œ๋Š” box-sizing๊ฐ€ content-box๋กœ ์„ค์ •๋˜์–ด ์žˆ์ง€๋งŒ CSS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ „์—ญ์ ์œผ๋กœ ๋˜๋Š” ํŠน์ • ์š”์†Œ์— ๋Œ€ํ•ด ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋ฒ”์šฉ ์„ ํƒ๊ธฐ *๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ์š”์†Œ์— box-sizing: border-box๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค

* {
  box-sizing: border-box;
}

word-break ์†์„ฑ

word-break ์†์„ฑ์€ CSS์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์†์„ฑ ์ค‘ ํ•˜๋‚˜๋กœ, ํ…์ŠคํŠธ ์ค„ ๋‚ด์—์„œ ๋‹จ์–ด์˜ ์ค„ ๋ฐ”๊ฟˆ์„ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ• ์ง€๋ฅผ ์ง€์ •ํ•œ๋‹ค. ์ด ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ธด ๋‹จ์–ด๊ฐ€ ํ…์ŠคํŠธ ์˜์—ญ์„ ๋ฒ—์–ด๋‚˜์ง€ ์•Š๋„๋ก ์ œ์–ดํ•˜๊ฑฐ๋‚˜, ๋‹ค๊ตญ์–ด ํ…์ŠคํŠธ์˜ ์ค„ ๋ฐ”๊ฟˆ์„ ์ ์ ˆํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

word-break ์†์„ฑ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฐ’๋“ค์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค

  1. normal (๊ธฐ๋ณธ๊ฐ’): ์ด ๊ฐ’์€ ๋‹จ์–ด์˜ ์ค„ ๋ฐ”๊ฟˆ์„ ๊ธฐ๋ณธ์ ์ธ ๋™์ž‘์— ๋”ฐ๋ผ ์ฒ˜๋ฆฌํ•œ๋‹ค. ๊ธด ๋‹จ์–ด๋Š” ํ•„์š”ํ•œ ๊ฒฝ์šฐ ํ…์ŠคํŠธ ์˜์—ญ์„ ๋ฒ—์–ด๋‚˜๊ฑฐ๋‚˜ ์ค„์„ ๋‚˜๋ˆ„์–ด ํ‘œ์‹œ๋  ์ˆ˜ ์žˆ๋‹ค.

.text {
  word-break: normal;
}
  1. break-all: ์ด ๊ฐ’์€ ๋‹จ์–ด๋ฅผ ์ค„ ๋ฐ”๊ฟˆ์˜ ๋Œ€์ƒ์œผ๋กœ ๊ฐ„์ฃผํ•˜๋ฉฐ, ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋‹จ์–ด ๋‚ด์—์„œ ์ค„ ๋ฐ”๊ฟˆ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ๊ธด ๋‹จ์–ด๊ฐ€ ํ…์ŠคํŠธ ์˜์—ญ์„ ๋ฒ—์–ด๋‚˜์ง€ ์•Š๋„๋ก ํ•œ๋‹ค.

.text {
  word-break: break-all;
}
  1. keep-all: ์ด ๊ฐ’์€ ์–ธ์–ด์˜ ์˜๋ฏธ ๋‹จ์œ„๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ค„ ๋ฐ”๊ฟˆ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ํ•œ๊ธ€, ์ค‘๊ตญ์–ด, ์ผ๋ณธ์–ด ๋“ฑ์—์„œ๋Š” ๋‹จ์–ด ์‚ฌ์ด์—์„œ ์ค„ ๋ฐ”๊ฟˆ์„ ํ•˜์ง€ ์•Š๊ณ  ๋‹จ์–ด ์ „์ฒด๋ฅผ ์œ ์ง€ํ•œ๋‹ค. ์ด ๊ฐ’์€ ๋‹ค๊ตญ์–ด ํ…์ŠคํŠธ์—์„œ ์ž์—ฐ์Šค๋Ÿฌ์šด ์ค„ ๋ฐ”๊ฟˆ์„ ์œ„ํ•ด ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค.

.text {
  word-break: keep-all;
}
  1. break-word: ์ด ๊ฐ’์€ break-all๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ๋™์ž‘ํ•˜์ง€๋งŒ, ๊ธด ๋‹จ์–ด๋ฅผ ์ค„ ๋ฐ”๊ฟˆํ•  ๋•Œ ๋‹จ์–ด ๋‚ด์˜ ํ•˜์ดํ”ˆ(-)์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹จ์–ด๋ฅผ ๋ถ„ํ• ํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋‹จ์–ด์˜ ์˜๋ฏธ๊ฐ€ ์œ ์ง€๋˜๋ฉด์„œ๋„ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋‹จ์–ด๋ฅผ ํ…์ŠคํŠธ ์˜์—ญ์— ๋งž์ถฐ ์ค„ ๋ฐ”๊ฟˆํ•  ์ˆ˜ ์žˆ๋‹ค.

.text {
  word-break: break-word;
}

Theme

์Šคํƒ€์ผ ์ปดํฌ๋„ŒํŠธ์—์„œ "ํ…Œ๋งˆ"๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋””์ž์ธ ์‹œ์Šคํ…œ๊ณผ ์‹œ๊ฐ์  ์Šคํƒ€์ผ์„ ์ •์˜ํ•˜๋Š” ๋ณ€์ˆ˜ ๋ฐ ๊ฐ’์˜ ์ง‘ํ•ฉ์„ ์˜๋ฏธํ•œ๋‹ค. ํ…Œ๋งˆ๋Š” ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์Šคํƒ€์ผ, ์ƒ‰์ƒ, ํƒ€์ดํฌ๊ทธ๋ž˜ํ”ผ ๋ฐ ๊ธฐํƒ€ ๋””์ž์ธ ๊ด€๋ จ ์†์„ฑ์„ ์ค‘์•™์—์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•œ๋‹ค.

์Šคํƒ€์ผ ์ปดํฌ๋„ŒํŠธ์˜ ํ…Œ๋งˆ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํ‚ค-๊ฐ’ ์Œ์„ ํฌํ•จํ•˜๋Š” ๊ฐ์ฒด๋กœ ์ •์˜๋œ๋‹ค. ๊ฐ ํ‚ค๋Š” ํŠน์ • ์Šคํƒ€์ผ ์†์„ฑ์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ํ•ด๋‹น ๊ฐ’์€ ํ•ด๋‹น ์†์„ฑ์˜ ๊ฐ’์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

const theme = {
  colors: {
    primary: "#FF0000",
    secondary: "#00FF00",
    background: "#FFFFFF",
  },
  typography: {
    fontFamily: "Arial, sans-serif",
    fontSize: "16px",
    fontWeight: "normal",
  },
};

์œ„์˜ ์˜ˆ์—์„œ ํ…Œ๋งˆ ๊ฐ์ฒด์—๋Š” ์ƒ‰์ƒ๊ณผ ํƒ€์ดํฌ๊ทธ๋ž˜ํ”ผ๋ผ๋Š” ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ์„น์…˜์ด ํฌํ•จ๋˜์–ด ์žˆ๋‹ค. ์ƒ‰์ƒ ์„น์…˜์€ ๊ธฐ๋ณธ, ๋ณด์กฐ ๋ฐ ๋ฐฐ๊ฒฝ ์ƒ‰์ƒ์„ ์ •์˜ํ•˜๊ณ  ํƒ€์ดํฌ๊ทธ๋ž˜ํ”ผ ์„น์…˜์€ fontFamily, fontSize ๋ฐ fontWeight์™€ ๊ฐ™์€ ๊ธ€๊ผด ๊ด€๋ จ ์†์„ฑ์„ ์ •์˜ํ•œ๋‹ค.

์Šคํƒ€์ผ ์ปดํฌ๋„ŒํŠธ์—์„œ ํ…Œ๋งˆ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋ ค๋ฉด ์Šคํƒ€์ผ ์ปดํฌ๋„ŒํŠธ์—์„œ ์ œ๊ณตํ•˜๋Š” ThemeProvider ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ†ตํ•ด ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ์ปดํฌ๋„ŒํŠธ๋Š” ์ „์ฒด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํŠธ๋ฆฌ์˜ ํŠน์ • ๋ถ€๋ถ„์„ ๋ž˜ํ•‘ํ•˜์—ฌ ํ•ด๋‹น ํŠธ๋ฆฌ ๋‚ด์˜ ๋ชจ๋“  ์Šคํƒ€์ผ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ํ…Œ๋งˆ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

ThemeProvider

import React from "react";
import styled, { ThemeProvider } from "styled-components";

const Button = styled.button`
  background-color: ${props => props.theme.colors.primary};
  color: ${props => props.theme.colors.background};
  font-family: ${props => props.theme.typography.fontFamily};
  font-size: ${props => props.theme.typography.fontSize};
  font-weight: ${props => props.theme.typography.fontWeight};
`;

const App = () => {
  return (
    <ThemeProvider theme={theme}>
      <Button>Hello, styled-components!</Button>
    </ThemeProvider>
  );
};

export default App;

์ด ์˜ˆ์ œ์—์„œ ๋ฒ„ํŠผ ์ปดํฌ๋„ŒํŠธ๋Š” ํ…Œ๋งˆ์˜ ์ƒ‰์ƒ ๋ฐ ํƒ€์ดํฌ๊ทธ๋ž˜ํ”ผ ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์Šคํƒ€์ผ์ด ์ง€์ •๋˜์—ˆ๋‹ค. ๊ฐ’์€ ์Šคํƒ€์ผ์ด ์ง€์ •๋œ ์ปดํฌ๋„ŒํŠธ์˜ ํ…œํ”Œ๋ฆฟ ๋ฆฌํ„ฐ๋Ÿด ๊ตฌ๋ฌธ ๋‚ด์—์„œ props.theme ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์•ก์„ธ์Šคํ•œ๋‹ค.

์Šคํƒ€์ผ ์ปดํฌ๋„ŒํŠธ์—์„œ ํ…Œ๋งˆ๋ฅผ ํ™œ์šฉํ•˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ผ๊ด€๋˜๊ณ  ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋””์ž์ธ ์‹œ์Šคํ…œ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ํ…Œ๋งˆ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ…Œ๋งˆ์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ํ•ด๋‹น ํ…Œ๋งˆ ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ์Šคํƒ€์ผ ์ปดํฌ๋„ŒํŠธ์— ์ž๋™์œผ๋กœ ์ „ํŒŒ๋˜๋ฏ€๋กœ ์Šคํƒ€์ผ์„ ์‰ฝ๊ฒŒ ์‚ฌ์šฉ์ž ์ •์˜ํ•˜๊ณ  ์œ ์ง€ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

์ „๋ฐ˜์ ์œผ๋กœ ์Šคํƒ€์ผ ์ปดํฌ๋„ŒํŠธ์˜ ํ…Œ๋งˆ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „์ฒด์— ์ผ๊ด€๋œ ์Šคํƒ€์ผ์„ ๊ด€๋ฆฌํ•˜๊ณ  ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜์—ฌ ๋””์ž์ธ ์‹œ์Šคํ…œ์˜ ์œ ์ง€ ๊ด€๋ฆฌ ๋ฐ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅ์„ฑ์„ ๋†’์—ฌ์ค๋‹ˆ๋‹ค.

Last updated