HTML Data Attribute κΈ°λ° CSS Variable λκΈ°νλ‘ Zero-JS λ°μν UI ꡬν
π State.js - Build Reactive, Interactive UIs Using Only HTML + CSS
AI μμ½
Context
νλ νλ‘ νΈμλ κ°λ°μ 볡μ‘ν Build Pipelineκ³Ό Virtual DOM κΈ°λ°μ μν κ΄λ¦¬ μ€λ²ν€λ λ°μ. λ¨μν μμΉ μ λ°μ΄νΈμ‘°μ°¨ νλ μμν¬ νμ΅κ³Ό μ»΄ν¬λνΈ μ€κ³κ° κ°μ λλ λΉν¨μ¨μ ꡬ쑰μ νκ³ λ ΈμΆ.
Technical Solution
- HTML Data Attributeλ₯Ό Single Source of Truthλ‘ μ μνλ μ μΈμ μν κ΄λ¦¬ ꡬ쑰 μ€κ³
- Attribute λ³κ²½ μ¬νμ μ€μκ° κ°μνμ¬ CSS Variableλ‘ μλ λ§€ννλ Reactive Engine ꡬν
data-state-triggerλ°data-state-bindλ₯Ό ν΅ν JS λ‘μ§ μλ μν μ μ΄ λ° μ λ°μ΄νΈ λ©μ»€λμ¦ κ΅¬μΆ- Template String Interpolationκ³Ό Conditional Classλ₯Ό ν΅ν λ°μ΄ν° κΈ°λ° UI λ λλ§ μ΅μ ν
- LocalStorage μ°λ λ° Interval Trigger λμ μ ν΅ν μν μ§μμ± λ° μκ° κΈ°λ° μλν λ‘μ§ ν΅ν©
- HTML Include λ°©μμ ν΅ν Build Step μλ μ»΄ν¬λνΈ μ¬μ¬μ©μ± ν보
μ€μ² ν¬μΈνΈ
- λ¨μ μμΉ νμ λ° κ²μ΄μ§ λ°μ κ°μ μ λ°λ μν μ λ°μ΄νΈ UIμ μ μ© κ²ν - λμμ΄λ-κ°λ°μ κ° νμ μ CSS Variable κΈ°λ°μ μΈν°νμ΄μ€ νμ€ν κ°λ₯μ± νμΈ - Backend-First νλ μμν¬(HTMX, Rails λ±) νκ²½μμ ν΄λΌμ΄μΈνΈ μ¬μ΄λ λ°μμ± μΆκ° μ κ³ λ € - Virtual DOM μμ΄ HTML νμ€ μμ±λ§μΌλ‘ μν μ μ΄ μ μ΄κ° κ°λ₯νμ§ μν€ν μ² κ²μ¦