κ°λ°μκ° λ§€ νλ‘μ νΈλ§λ€ μ¬μμ±νλ Dark Mode λ‘μ§μ DayniteJs λΌμ΄λΈλ¬λ¦¬λ‘ μ¬μ¬μ© κ°λ₯ν μ루μ μΌλ‘ ν΅ν©νλ€
I Built a Lightweight JavaScript Library for Dark/Light Mode β DayniteJs π
AI μμ½
Context
νλ‘ νΈμλ κ°λ°μλ νλ‘μ νΈλ§λ€ Dark/Light Mode ν κΈ λ‘μ§μ λ°λ³΅ ꡬννλ€. localStorage κΈ°λ° μ¬μ©μ μ€μ κ΄λ¦¬μ μμ€ν ν λ§ κ°μ§(prefers-color-scheme)λ₯Ό λ§€λ² μλ μ²λ¦¬νλ€. μ΄ λ°λ³΅ μμ μ λΉν¨μ¨μ±μ΄ ν΅μ¬ λ¬Έμ λ‘ λλ¬λ¬λ€.
Technical Solution
- [npm ν¨ν€μ§] β [daynitejs] μ€μΉ ν [import]λ‘ λ‘λ
- [ν λ§ μ ν] β [toggle() λ©μλ] νΈμΆλ‘ [light β dark] μ ν
- [μ€μ μ μ₯] β [localStorage]μ [μ¬μ©μ μ νΈλ] μλ μμ
- [μμ€ν κ°μ§] β [prefers-color-scheme] λ―Έλμ΄ μΏΌλ¦¬λ‘ [OS ν λ§] μλ μΈμ
- [CSS μ°λ] β [data-theme μμ±]κ³Ό [CSS λ³μ(--bg-color, --text-color)]λ‘ [ν λ§λ³ μ€νμΌ] μ μ
Impact
μμΉ κΈ°λ° μ±λ₯ λ³ν μμ
Key Takeaway
μ¬μ¬μ© κ°λ₯ν λΌμ΄λΈλ¬λ¦¬ μ€κ³ μ npm λ°°ν¬ κ³Όμ , λ²μ κ΄λ¦¬ μ λ΅, ν¬λ‘μ€ λΈλΌμ°μ νΈνμ± κ²μ¦μ΄ ν΅μ¬ μλμΌλ‘ νμνλ€.
μ€μ² ν¬μΈνΈ
νλ‘ νΈμλ νλ‘μ νΈμμ Dark Mode ꡬν μ data-theme μμ±κ³Ό CSS λ³μλ₯Ό μ‘°ν©νκ³ , DayniteJs toggle() λ©μλλ‘ localStorage κΈ°λ° μ¬μ©μ μ€μ μ μλ μ μ₯νλ©΄ λ§€λ² μ¬μμ±νλ λ‘μ§μ μ κ±°ν μ μλ€