--- category: Unified tags: [auto-consolidated, technical-documentation] title: [[Styled Components|Styled Components]] last_updated: 2026-05-02 --- # [[Styled Components|Styled Components]] ## π Brief Summary Styled Componentsλ React λ° [[Next.js|Next.js]] νκ²½μμ μ¬μ©λλ λνμ μΈ CSS-in-JS λΌμ΄λΈλ¬λ¦¬λ‘, μλ°μ€ν¬λ¦½νΈ νμΌ λ΄μμ νκ·Έλ ν νλ¦Ώ 리ν°λ΄(tagged template literals)μ μ¬μ©νμ¬ CSSλ₯Ό μ§μ μμ±ν μ μκ² ν΄μ€λλ€ [1, 2]. μ΄ λ°©μμ μ»΄ν¬λνΈμ μ€νμΌ μ½λλ₯Ό κ°μ κ³³μ μμΉ(co-location)μν€κ³ μλμΌλ‘ κ³ μ ν ν΄λμ€λͺ μ μμ±νμ¬ μ€νμΌμ μ μ μΆ©λμ λ°©μ§ν©λλ€ [3, 4]. νλ‘μ€(props)μ μν(State)λ₯Ό κΈ°λ°μΌλ‘ ν λμ μ€νμΌλ§μ λ§€μ° κ°λ ₯νμ§λ§, λ°νμ CSS μμ±μΌλ‘ μΈν μ±λ₯ μ€λ²ν€λμ μ΅κ·Όμ [[React Server Components|React Server Components]](RSC) νκ²½μμμ νΈνμ± μ²λ¦¬λΌλ κ³Όμ λ₯Ό μκ³ μμ΅λλ€ [4-6]. --- styled-componentsλ [[JavaScript|JavaScript]] νμΌ λ΄μμ νκ·Έλ ν νλ¦Ώ 리ν°λ΄(Tagged Template Literals)μ μ¬μ©νμ¬ React μ»΄ν¬λνΈμ μ€νμΌμ μ§μ νλ λνμ μΈ CSS-in-JS λΌμ΄λΈλ¬λ¦¬μ΄λ€ [1-3]. μ€νμΌμ κ°λ³ μ»΄ν¬λνΈμ μ§μμ μΌλ‘ μΊ‘μννμ¬ μ μ λ€μμ€νμ΄μ€ μΆ©λμ΄λ μ€νμΌ λμ νμμ λ°©μ§νλ€ [3-5]. Propsλ μν([[State|State]]), ν λ§λ₯Ό νμ©ν λμ μ€νμΌλ§ μΈ‘λ©΄μμ λ°μ΄λ κ°λ°μ κ²½νμ μ 곡νμ§λ§, λ°νμμ CSSλ₯Ό μμ±νκ³ μ£Όμ νλ λ°©μ λλ¬Έμ μ±λ₯ μ€λ²ν€λμ λ²λ€ ν¬κΈ° μ¦κ°λΌλ νΈλ μ΄λμ€νκ° μ‘΄μ¬νλ€ [6, 7]. ## π Core Content * **λμ μ€νμΌλ§ λ° ν λ§ μμ€ν **: Styled Componentsλ νλ‘μ€μ μν, κ·Έλ¦¬κ³ ν λ§λ₯Ό νμ©ν΄ μμ°μ€λ¬μ΄ λμ μ€νμΌλ§μ κ°λ₯νκ² ν©λλ€ [4, 6]. λΌμ΄λΈλ¬λ¦¬μ λ΄μ₯λ `ThemeProvider`λ [[Context API|Context API]]λ₯Ό ν΅ν΄ μ± νμμ λͺ¨λ μ»΄ν¬λνΈμ ν λ§λ₯Ό μ£Όμ ν μ μμ΄ λ€ν¬ λͺ¨λλ λ€μ€ λΈλλ ν λ§λ₯Ό ꡬμΆνλ λ° μ μ©ν©λλ€ [4, 7]. * **μ£Όμ μ»΄ν¬λνΈ API**: * **`as` νλ‘μ€**: μ»΄ν¬λνΈμ μ μ©λ μ€νμΌμ κ·Έλλ‘ μ μ§νλ©΄μ, λ°νμμ λ λλ§λλ μ€μ HTML νκ·Έλ React μ»΄ν¬λνΈλ₯Ό λ³κ²½ν μ μλ λ€νμ±(polymorphism)μ μ 곡ν©λλ€ [8]. * **νΈλμ§μΈνΈ νλ‘μ€ (Transient props)**: μ€νμΌλ§ μ»΄ν¬λνΈ μ μ©μΌλ‘ μ¬μ©λλ©° μ€μ DOM λ Έλμλ μ λ¬λμ§ μκΈ°λ₯Ό μνλ νλ‘μ€μ κ²½μ°, μ΄λ¦ μμ λ¬λ¬ κΈ°νΈ(`$`)λ₯Ό λΆμ¬ νν°λ§ν μ μμ΅λλ€ [9, 10]. * **μ±λ₯ λ° λ²λ€ μ¬μ΄μ¦μ νκ³**: λ°νμμ CSS λ¬Έμμ΄μ μμ±νκ³ λΈλΌμ°μ μ μ£Όμ ν΄μΌ νκΈ° λλ¬Έμ CPU λ° [[JavaScript|JavaScript]] μ€ν λΉμ©(λ°νμ ν μ€)μ΄ λ°μν©λλ€ [4, 6]. λΌμ΄λΈλ¬λ¦¬ μΆκ°λ‘ μΈν΄ λ²λ€ μ¬μ΄μ¦κ° μ½ 30kb(gzipped) μ¦κ°νλ©°, λκ·λͺ¨ λ λλ§(μ: 10,000κ° λ¦¬μ€νΈ μμ΄ν ) μ λΉλ νμ κΈ°λ°μ [[Tailwind CSS|Tailwind CSS]](85ms)λ³΄λ€ λ λλ§ μκ°(148ms)μ΄ λ μ€λ 걸리λ λ± μ±λ₯ μ΅μ ν λ©΄μμ νκ³λ₯Ό 보μ λλ€ [5, 6, 11]. * **[[React Server Components (RSC)|React Server Components (RSC]] νΈνμ±κ³Ό Next.js ν΅ν©**: Styled Componentsμ ν λ§ κΈ°λ₯μ React Contextμ μμ‘΄νλ―λ‘, Contextκ° μλ μλ² μ»΄ν¬λνΈ(RSC) νκ²½μμλ κΈ°λ³Έμ μΌλ‘ μλνμ§ μμ΅λλ€ [12, 13]. Next.js 15μ App Routerμμ μ¬μ©νκΈ° μν΄μλ λ λλ§ μ€ CSS κ·μΉμ μμ§νμ¬ `
`μ μ£Όμ νλ 'μ€νμΌ λ μ§μ€νΈλ¦¬([[Style Registry|Style Registry]]) ν¨ν΄'μ μ μ©ν΄μΌ ν©λλ€ [14]. λν μλ²μ ν΄λΌμ΄μΈνΈ κ°μ νμ΄λλ μ΄μ ([[Hydration|Hydration]]) λΆμΌμΉλ₯Ό λ§κΈ° μν΄ μ»΄νμΌλ¬ μ€μ (`styledComponents`)μ νμ±νν΄μΌ ν©λλ€ [15]. μ΅μ λ²μ (v6.3.0 μ΄μ)μμλ RSC νκ²½μμ μλμΌλ‘ μΈλΌμΈ `