6.Global Style & Theme
Reset CSS
CSS μ¬μ€μ λλ CSS μ κ·νλΌκ³ λ νλ CSS μ¬μ€μ μ μ¬λ¬ μΉ λΈλΌμ°μ μμ HTML μμμ μ€νμΌμ μ§μ νκΈ° μν μΌκ΄λ κΈ°μ€μ μ 곡νλ κ²μ λͺ©νλ‘ νλ CSS κ·μΉ λλ μ€νμΌμνΈ μ§ν©μ΄λ€. λΈλΌμ°μ μμ μ μ©λλ κΈ°λ³Έ μ€νμΌμ λΆμΌμΉ λ° μ°¨μ΄λ₯Ό μ κ±°νμ¬ μΉ λμμΈμ ꡬμΆν λ λ³΄λ€ μΌκ΄λ μμμ μ 보μ₯νλ λ° λμμ΄ λλ€.
λͺ©μ (Purpose): CSS μ¬μ€μ μ μ£Όμ λͺ©μ μ λΈλΌμ°μ μμ HTML μμμ μ μ©ν κΈ°λ³Έ μ€νμΌμ μ¬μ€μ νκ±°λ 무λ ₯ννλ κ²μ΄λ€. μΉ λΈλΌμ°μ λ§λ€ κΈκΌ΄ ν¬κΈ°, μ¬λ°±, ν¨λ©, μ€ λμ΄ λ° κΈ°ν μκ°μ μμ±μ΄ λ€λ₯Ό μ μλ κ³ μ ν κΈ°λ³Έ μ€νμΌμ΄ μλ€. CSS μ¬μ€μ μ μ¬μ©νλ©΄ κΉ¨λν μ¬λ μ΄νΈμμ μμνμ¬ HTML μμμ λͺ¨μμ μκΈ°μΉ μμ λΆμΌμΉλ₯Ό νΌνκ³ κ³΅νν κ²½μμ μ₯μ λ§λ€ μ μλ€.
μ¬μ€μ λ μ κ·ν(Resets vs. Normalizes): CSSλ₯Ό μ¬μ€μ νλ λ°©λ²μλ μ¬μ€μ κ³Ό μ κ·νλΌλ λ κ°μ§ μ£Όμ μ κ·Ό λ°©μμ΄ μλ€.
μ¬μ€μ (Resets): CSS μ¬μ€μ μ HTML μμμμ λͺ¨λ κΈ°λ³Έ μ€νμΌμ μ κ±°νμ¬ κ³΅ν΅ κΈ°λ³Έ μ€νμΌλ‘ μ€μ νλ κ²μ λͺ©νλ‘ νλ€. μ΄ μ κ·Ό λ°©μμ λΉ μΊλ²μ€μμ μμνλ©° κ°λ°μκ° κ° μμμ λͺ¨λ μ€νμΌμ λͺ μμ μΌλ‘ μ μν΄μΌ νλ€. λͺ¨μμ μλ²½νκ² μ μ΄ν μ μμ§λ§ μμμ μ€νμΌμ μ²μλΆν° λ€μ μ§μ νλ €λ©΄ λ λ§μ μμ μ΄ νμν μ μλ€.
μ κ·ν(Normalizes): CSS μ κ·νλ λΈλΌμ°μ μ λΆμΌμΉλ₯Ό ν΄κ²°νλ©΄μ μ μ©ν κΈ°λ³Έ μ€νμΌμ 보쑴νλ κ²μ λͺ©νλ‘ νλ€. κΈ°λ³Έ μ€νμΌμ μμ ν μ κ±°νλ λμ μ¬λ¬ λΈλΌμ°μ μμ μΌκ΄μ±μ μ μ§νλλ‘ μ‘°μ νλ€. μ κ·νλ₯Ό μ¬μ©νλ©΄ μΌλΆ μμμ λν λͺ μμ μΈ μ€νμΌ μ§μ μ νμμ±μ μ€μ¬μ£Όμ΄ λ³΄λ€ νμ€ν μμμ μ μ 곡ν μ μλ€.
μΌλ°μ μΈ μ¬μ€μ κΈ°λ²(Common Reset Techniques)
μ¬λ°±κ³Ό ν¨λ©μ 0μΌλ‘ μ€μ νλ€: μ΄λ κ² νλ©΄ λΈλΌμ°μ μμ μ μ©λλ κΈ°λ³Έ μ¬λ°±μ΄λ ν¨λ©μ μ κ±°νμ¬ μμ κ°μ κ°κ²©μ μΌκ΄λκ² μ μ§ν μ μλ€.
κΈκΌ΄ μ€νμΌ μ¬μ€μ : ν¬κΈ°, κ΅΅κΈ°, μ€ λμ΄μ κ°μ κΈκΌ΄ μμ±μ μΌκ΄λκ² μ€μ νμ¬ μ¬λ¬ λΈλΌμ°μ μμ μΌκ΄λ νμ΄ν¬κ·ΈλνΌλ₯Ό 보μ₯νλ€.
μμ ν¬κΈ° μ κ·ν: μ§μ λ λλΉμ λμ΄ λ΄μμ ν¨λ©κ³Ό ν λ리λ₯Ό ν¬ν¨νλ μμ ν¬κΈ°: ν λ리 μμ; μμ±μ μ μ©νμ¬ μΌκ΄λ μμ λͺ¨λΈμ 보μ₯νλ€.
λͺ©λ‘ μ€νμΌ μ¬μ€μ : μ λ ¬λμ§ μμ λͺ©λ‘μ κΈλ¨Έλ¦¬ κΈ°νΈ λ° μ λ ¬λ λͺ©λ‘μ λ²νΈ 맀기기μ κ°μ κΈ°λ³Έ λͺ©λ‘ μ€νμΌμ μ κ±°νμ¬ μΌκ΄λ λͺ¨μμ λ§λλλ€.
ν μ€νΈ μ₯μ μ κ±°νκΈ°: λ§ν¬ λ° κΈ°ν μμμμ λ°μ€ λ° κΈ°ν ν μ€νΈ μ₯μμ μ κ±°νμ¬ κ°λ°μκ° μ€νμΌμ μ²μλΆν° λ€μ μ§μ ν μ μλ€.
μ¬μ©μ μ§μ λ° μ¬μ©(Customization and Usage) νλ‘μ νΈμ νΉμ μꡬ μ¬νμ λ°λΌ CSS μ¬μ€μ μ μ¬μ©μ μ§μ ν μ μλ€. κ°λ°μλ μꡬ μ¬νμ λ°λΌ νΉμ μ€νμΌμ μΆκ°νκ±°λ μ κ±°ν μ μλ€. μΌλ°μ μΌλ‘ κ°λ°μλ μ¬μ€μ λλ μ κ·ν μ€νμΌμνΈλ₯Ό νλ‘μ νΈμ 첫 λ²μ§Έ CSS νμΌλ‘ ν¬ν¨μμΌ λ€λ₯Έ μ€νμΌμνΈλ³΄λ€ μ°μ μ μΌλ‘ μ μ©λλλ‘ νλ κ²μ΄ μΌλ°μ μ΄λ€. Normalize.css λ° Meyer's CSS Resetκ³Ό κ°μ΄ λ리 μ¬μ©λλ CSS μ¬μ€μ λΌμ΄λΈλ¬λ¦¬ λλ νλ μμν¬λ μΉ νλ‘μ νΈμ μ½κ² ν¬ν¨ν μ μλ 미리 λΉλλ μ¬μ€μ λλ μ κ·ν μ€νμΌμνΈλ₯Ό μ 곡νλ€. μ΄λ¬ν λΌμ΄λΈλ¬λ¦¬λ μΆ©λΆν ν μ€νΈλ₯Ό κ±°μ³€μΌλ©° λΈλΌμ°μ κ° μΌκ΄μ±μ μν ννν κΈ°λ°μ μ 곡νλ€.
κ³ λ € μ¬ν(Considerations)
κ΅¬μ²΄μ± μ¦κ°(Increased specificity): CSS μ¬μ€μ μ λΈλΌμ°μ μμ μ€μ ν κΈ°λ³Έ μ€νμΌμ μ¬μ μνκΈ° μν΄ λ³΄λ€ κ΅¬μ²΄μ μΈ μ νκΈ°λ₯Ό νμλ‘ νλ κ²½μ°κ° λ§λ€. κ°λ°μλ μ¬μ©μ μ μ μ€νμΌμ μ μ©ν λ μ νκΈ°μ νΉμ΄μ±μ μΌλμ λμ΄μΌ νλ€.
μ±λ₯μ λ―ΈμΉλ μν₯(Performance impact): HTML μμμ λͺ¨λ κΈ°λ³Έ μ€νμΌμ μ¬μ€μ νλ©΄ νμΌ ν¬κΈ°κ° μ¦κ°νκ³ μ€νμΌ μ²λ¦¬κ° μΆκ°λ μ μλ€. μΌκ΄μ±μ μ΄μ κ³Ό μ±λ₯μ λ―ΈμΉλ μν₯μ κ· νμ λ§μΆκ³ νλ‘μ νΈμ νΉμ μꡬ μ¬νμ κ³ λ €νλ κ²μ΄ μ€μνλ€.
box-sizing
μμ±
box-sizing
μμ±box-sizing
μ CSS μμ± μ€ νλλ‘, μμμ ν¬κΈ° κ³μ° λ°©μμ μ§μ νλ λ° μ¬μ©λλ€. μ΄ μμ±μ μ£Όλ‘ λ°μ€ λͺ¨λΈμ μ μ©λλ©°, λ°μ€μ μ 체 ν¬κΈ° κ³μ°μ paddingκ³Ό borderλ₯Ό ν¬ν¨ν μ§ μ¬λΆλ₯Ό κ²°μ νλ€.
box-sizing
μμ±μ λ€μ λ κ°μ§ κ° μ€ νλλ₯Ό κ°μ§ μ μλ€:
content-box
(κΈ°λ³Έκ°): μ΄ κ°μ μμμ ν¬κΈ° κ³μ°μ paddingκ³Ό borderλ₯Ό ν¬ν¨νμ§ μλ€. μ¦, μμμ ν¬κΈ°λ content μμλ§μ κΈ°μ€μΌλ‘ κ³μ°λλ€. paddingκ³Ό borderλ μμμ ν¬κΈ°μ μΆκ°μ μΌλ‘ λν΄μ§μ§ μμΌλ©°, λ°μ€μ ν¬κΈ°λ content μμμ ν¬κΈ°μ λμΌνλ€.
border-box
: μ΄ κ°μ μμμ ν¬κΈ° κ³μ°μ paddingκ³Ό borderλ₯Ό ν¬ν¨νλ€. μ¦, μμμ ν¬κΈ°λ content μμμ paddingκ³Ό borderλ₯Ό λν μ 체 λ°μ€μ ν¬κΈ°λ‘ κ³μ°λλ€. paddingκ³Ό borderλ μμμ ν¬κΈ°μ μ΄λ―Έ ν¬ν¨λλ―λ‘, content μμμ ν¬κΈ°λ μμμ ν¬κΈ°μ λμΌνλ€.
κΈ°λ³Έμ μΌλ‘ λλΆλΆμ μμλ box-sizing
κ° content-box
λ‘ μ€μ λμ΄ μμ§λ§ CSSλ₯Ό μ¬μ©νμ¬ μ μμ μΌλ‘ λλ νΉμ μμμ λν΄ λ³κ²½ν μ μλ€. μλ₯Ό λ€μ΄ λ²μ© μ νκΈ° *λ₯Ό μ¬μ©νμ¬ λͺ¨λ μμμ box-sizing: border-box
λ₯Ό μ€μ ν μ μλ€
word-break
μμ±
word-break
μμ±word-break μμ±μ CSSμμ μ¬μ©λλ μμ± μ€ νλλ‘, ν μ€νΈ μ€ λ΄μμ λ¨μ΄μ μ€ λ°κΏμ μ΄λ»κ² μ²λ¦¬ν μ§λ₯Ό μ§μ νλ€. μ΄ μμ±μ μ¬μ©νμ¬ κΈ΄ λ¨μ΄κ° ν μ€νΈ μμμ λ²μ΄λμ§ μλλ‘ μ μ΄νκ±°λ, λ€κ΅μ΄ ν μ€νΈμ μ€ λ°κΏμ μ μ νκ² μ²λ¦¬ν μ μλ€.
word-break μμ±μ λ€μκ³Ό κ°μ κ°λ€μ κ°μ§ μ μλ€
normal
(κΈ°λ³Έκ°): μ΄ κ°μ λ¨μ΄μ μ€ λ°κΏμ κΈ°λ³Έμ μΈ λμμ λ°λΌ μ²λ¦¬νλ€. κΈ΄ λ¨μ΄λ νμν κ²½μ° ν μ€νΈ μμμ λ²μ΄λκ±°λ μ€μ λλμ΄ νμλ μ μλ€.
break-all
: μ΄ κ°μ λ¨μ΄λ₯Ό μ€ λ°κΏμ λμμΌλ‘ κ°μ£Όνλ©°, νμν κ²½μ° λ¨μ΄ λ΄μμ μ€ λ°κΏμ μννλ€. λ°λΌμ κΈ΄ λ¨μ΄κ° ν μ€νΈ μμμ λ²μ΄λμ§ μλλ‘ νλ€.
keep-all
: μ΄ κ°μ μΈμ΄μ μλ―Έ λ¨μλ₯Ό κΈ°μ€μΌλ‘ μ€ λ°κΏμ μννλ€. νκΈ, μ€κ΅μ΄, μΌλ³Έμ΄ λ±μμλ λ¨μ΄ μ¬μ΄μμ μ€ λ°κΏμ νμ§ μκ³ λ¨μ΄ μ 체λ₯Ό μ μ§νλ€. μ΄ κ°μ λ€κ΅μ΄ ν μ€νΈμμ μμ°μ€λ¬μ΄ μ€ λ°κΏμ μν΄ μ¬μ©λ μ μλ€.
break-word
: μ΄ κ°μ break-allκ³Ό μ μ¬νκ² λμνμ§λ§, κΈ΄ λ¨μ΄λ₯Ό μ€ λ°κΏν λ λ¨μ΄ λ΄μ νμ΄ν(-)μ μ¬μ©νμ¬ λ¨μ΄λ₯Ό λΆν νλ€. μ΄λ₯Ό ν΅ν΄ λ¨μ΄μ μλ―Έκ° μ μ§λλ©΄μλ νμν κ²½μ° λ¨μ΄λ₯Ό ν μ€νΈ μμμ λ§μΆ° μ€ λ°κΏν μ μλ€.
Theme
μ€νμΌ μ»΄ν¬λνΈμμ "ν λ§"λ μΉ μ ν리μΌμ΄μ μ λμμΈ μμ€ν κ³Ό μκ°μ μ€νμΌμ μ μνλ λ³μ λ° κ°μ μ§ν©μ μλ―Ένλ€. ν λ§λ μ¬μ¬μ© κ°λ₯ν μ€νμΌ, μμ, νμ΄ν¬κ·ΈλνΌ λ° κΈ°ν λμμΈ κ΄λ ¨ μμ±μ μ€μμμ κ΄λ¦¬ν μ μλ λ°©λ²μ μ 곡νλ€.
μ€νμΌ μ»΄ν¬λνΈμ ν λ§λ μΌλ°μ μΌλ‘ ν€-κ° μμ ν¬ν¨νλ κ°μ²΄λ‘ μ μλλ€. κ° ν€λ νΉμ μ€νμΌ μμ±μ λνλ΄λ©°, ν΄λΉ κ°μ ν΄λΉ μμ±μ κ°μ λνλ λλ€.
μμ μμμ ν λ§ κ°μ²΄μλ μμκ³Ό νμ΄ν¬κ·ΈλνΌλΌλ λ κ°μ§ μ£Όμ μΉμ μ΄ ν¬ν¨λμ΄ μλ€. μμ μΉμ μ κΈ°λ³Έ, 보쑰 λ° λ°°κ²½ μμμ μ μνκ³ νμ΄ν¬κ·ΈλνΌ μΉμ μ fontFamily, fontSize λ° fontWeightμ κ°μ κΈκΌ΄ κ΄λ ¨ μμ±μ μ μνλ€.
μ€νμΌ μ»΄ν¬λνΈμμ ν λ§λ₯Ό μ¬μ©ν μ μλλ‘ νλ €λ©΄ μ€νμΌ μ»΄ν¬λνΈμμ μ 곡νλ ThemeProvider μ»΄ν¬λνΈλ₯Ό ν΅ν΄ μ λ¬ν μ μλ€. μ΄ μ»΄ν¬λνΈλ μ 체 μ ν리μΌμ΄μ λλ μ ν리μΌμ΄μ νΈλ¦¬μ νΉμ λΆλΆμ λννμ¬ ν΄λΉ νΈλ¦¬ λ΄μ λͺ¨λ μ€νμΌ μ»΄ν¬λνΈκ° ν λ§μ μ‘μΈμ€ν μ μλλ‘ νλ€.
ThemeProvider
μ΄ μμ μμ λ²νΌ μ»΄ν¬λνΈλ ν λ§μ μμ λ° νμ΄ν¬κ·ΈλνΌ μμ±μ μ¬μ©νμ¬ μ€νμΌμ΄ μ§μ λμλ€. κ°μ μ€νμΌμ΄ μ§μ λ μ»΄ν¬λνΈμ ν νλ¦Ώ 리ν°λ΄ ꡬ문 λ΄μμ props.theme ꡬ문μ μ¬μ©νμ¬ μ‘μΈμ€νλ€.
μ€νμΌ μ»΄ν¬λνΈμμ ν λ§λ₯Ό νμ©νλ©΄ μ ν리μΌμ΄μ μ μΌκ΄λκ³ μ¬μ¬μ© κ°λ₯ν λμμΈ μμ€ν μ λ§λ€ μ μλ€. ν λ§λ₯Ό μ¬μ©νλ©΄ ν λ§μ λν λ³κ²½ μ¬νμ΄ ν΄λΉ ν λ§ μμ±μ μ¬μ©νλ λͺ¨λ μ€νμΌ μ»΄ν¬λνΈμ μλμΌλ‘ μ νλλ―λ‘ μ€νμΌμ μ½κ² μ¬μ©μ μ μνκ³ μ μ§ κ΄λ¦¬ν μ μλ€.
μ λ°μ μΌλ‘ μ€νμΌ μ»΄ν¬λνΈμ ν λ§λ μ ν리μΌμ΄μ μ 체μ μΌκ΄λ μ€νμΌμ κ΄λ¦¬νκ³ μ μ©ν μ μλ κ°λ ₯ν λ°©λ²μ μ 곡νμ¬ λμμΈ μμ€ν μ μ μ§ κ΄λ¦¬ λ° μ¬μ¬μ© κ°λ₯μ±μ λμ¬μ€λλ€.
Last updated