π λμμΈ μμ€ν μ ꡬμνκΈ°λ‘ λ§μλ¨Ήμλ€
κ·Έλμ κ°λ°νλ μλΉμ€λ§λ€ λμμΈμ΄ μ¬κ°κ°μ΄μλ€. λ²νΌ μμ λͺ¨λ λ¬λκ³ λ΄λΉκ²μ΄μ λ° λμμΈμ νμ΄μ§λ§λ€ λ¬λλ€. μλ‘μ΄ μλΉμ€λ₯Ό λ§λ€κ±°λ κ°μ ν λλ§λ€ μ΄μ λμμΈμ μ°Έκ³ ν΄μ μλ‘ λ§λ€μ΄μΌ νκ³ νμ€ μμ΄ λ§λ€λ€ 보λ 걸리λ μκ°μ λ°°λ‘ λμ΄λ¬λ€. μ΄ν λ‘ ν΅μΌλμ§ μλ λμμΈ μμλ€μ κ°λ° ν¨μ¨μ μν΄ λμμΈ μμ€ν μΌλ‘ λ¬Άμ νμκ° μκ²Όλ€.
λμμΈ μμ€ν μ΄λ λμμΈ μμΉ, μ»΄ν¬λνΈ, UI ν¨ν΄ λ±μ ν¬ν¨ν λμμΈ μΈνΈλΌκ³ 보면 λλ€. λμμΈ μμ€ν μ μ₯μ μΌλ‘λ κ°κ°μ μλΉμ€λ§λ€ λμμΈμ ν΅μΌμμΌμ£Όλ©° μλΉμ€μ μ 체μ±μ νκ³ νκ² ν μ μλ€. λμμ λμμΈ μ½λμ λ°λ³΅μ μ€μ¬μ£Όκ³ λΉ λ₯Έ νλ‘ νΈμλ κ°λ°μ΄ κ°λ₯νκ²λ νλ€. μ¦, λμμΈ μμ€ν μ μ μ©νλ€λ©΄ λΉ λ₯΄κ³ , νμ₯μ± μκ³ , ν¨μ¨μ μΈ κ°λ°μ κ°λ₯νκ² ν μ μλ€.
μ§κΈκΉμ§ μμ±λ νκ³ λ‘μ 보면 λͺ¨λ ν¨μ¨μ±μ κ°μ‘°νκ³ μλ€. λ컀 μλ λ°°ν¬λ λλ§ν νμλ μμ΄ ν¨μ¨μ κ°μ‘°νκ³ NodeJS ν νλ¦Ώ λν λ§μ°¬κ°μ§λ€. λ€λ§ μ΄λκΉμ§λ§ ν΄λ λμμΈμ λͺ¨λ μλ§μ΄μλ€. λ κ·Έλ λ―μ΄ λΆνΈμ€νΈλ© 4 κΈ°λ°μ λ¬΄κ±°μ΄ ShardUIλ₯Ό μΉμ΄ μ¬μ΄νΈ λ‘λ© μλλ₯Ό μ§μ°μμΌ°κ³ λΆλΆμ μΌλ‘ μ μ΄μΏΌλ¦¬λ₯Ό λλ°νμ¬ λͺ¨λ¬ μ°½μ λμμΌλ§ νμλ€. μ΄μ²λΌ λμμΈ μμ€ν μ ν΅ν΄ μμΌλ‘ λ§λ€μ΄μ§ μλΉμ€μ νμ§μ κ°μ ν νμκ° μμλ€.
β¨οΈ κΈ°μ μ€ν
리μνΈλ₯Ό μ¬μ©νμ§ μκΈ°λ‘ νκΈ°μ, μΉ μ»΄ν¬λνΈλ₯Ό μ¬μ©νλ€. κΈ°λ³Έ νμ λΆνΈμ€νΈλ© 5λ₯Ό μ¬μ©νκ³ μμ CSSλ₯Ό λ²λ¦¬κ³ SASSλ₯Ό μ²μμΌλ‘ μ¬μ©νκ² λμλ€. λν ES6 λ¬Έλ² JSμλ€κ° HTML custom element ν΄λμ€λ₯Ό λ²λ€λ‘ λ¬ΆκΈ° μν μΉν©λ μ²μμΌλ‘ μ μ©ν΄λ³΄μλ€. κ·Έλμ μ μ©ν΄λ³΄κΈ°λ‘ λ§μλ¨Ήμλ κΈ°μ μ λμμΈ μμ€ν μ ν΅ν΄ μ€ννκ³ μ νλ μ·¨μ§μμμλ€. μ¬κΈ° μ¬μ©λ κΈ°μ μ μ΄λ ΅μ§ μκ² μ μ©ν μ μμλ€. μΉν©μ κ²½μ° κ³΅μ λ¬Έμκ° μ λμ΄ μκ³ μΉ μ»΄ν¬λνΈλ JSλ¬Έλ²λ§ λΉ μνλ©΄ μΆ©λΆν ꡬνν μ μλ λμ΄λμλ€.
μ¬μ€μ κΈ°μ μ€ν보λ€λ λμμΈ μμ€ν κ·Έ μ체μ μ κ²½ μΌλ€. Tossμ TDS, Lineμ LINE Design System, Appleμ Human Interface Guidelines λ±μ μ°Έκ³ νλ€. μ΄μ€μμλ ν μ€μ μν₯μ κ°μ₯ λ§μ΄ λ°μλ€. νΉν https://www.youtube.com/watch?v=LmLchZ4tCXc&ab_channel=FEConfKorea μ΄ μμμ΄ λμμ΄ λμλ€.
π λΆνΈμ€νΈλ©5 κΈ°λ°, κ°μν
λμμΈ μμ€ν μ ꡬμ±νκ² λ κ°μ₯ ν° μ΄μ λ ν¨μ¨μ±μ΄λ€. μ¬μ©μΈμμ λ¨ ν λͺ . μ΄λ€ νμ λ λ Όμλ νμνμ§ μλ€. κ·Έλ κΈ°μ μ€μ§ κ°λ°μ μμ΄μ μκ°μ λ¨μΆνκ³ λΆνμν μμ μ μ€μ΄λ λ°μλ§ μ§μ€νλ€. λν νμ₯μ± μλ κΈ°λ₯μ λͺ¨λ°μΌκΉμ§ μ§μν΄μΌ νκ³ μ΄ λͺ¨λ κΈ°λ₯μ κ°μΆλ €λ©΄ μκ°μ΄ λ무λλ μ€λ κ±Έλ¦΄κ² λ»νλ€. κ·Έλμ λΆνΈμ€νΈλ©μ νμ λΉλ¦¬κΈ°λ‘ νλ€.
λΆνΈμ€νΈλ©μ μ¨λ³Έ μ¬λλ€μ 곡κ°νκ² μ§λ§ μΈλ°μμ΄ λ³΅μ‘νλ€. divλ₯Ό λ¨λ°νλ 건 λ¬Όλ‘ μ΄κ³ λμμΈ μΉνμ μ΄μ§ μμ λ€μ΄λ°μΌλ‘ ꡬμ±λμ΄ μλ€. μλ₯Ό λ€μ΄ λ²νΌ μμ μ§μ νλλ° btn btn-primaryλ₯Ό μ¬μ©ν΄μΌ νλ μΌμ²λΌ λ§μ΄λ€. λν tintμ fillμ ꡬλΆνμ§ μμ μ ννμ μμ΄μλ νκ³κ° μμλ€.
λ¨Όμ μ΄κ°μ νκ³λ₯Ό 극볡νκΈ° μν΄μλ μ½λλ₯Ό κ°μνν΄μΌ νλ€. μλλ λͺ¨λ λͺ¨λ¬μ ꡬμ±νλ κΈ°λ₯μ΄λ€. λΆνμν ꡬ문μ μμ κ³ κΉλνκ² νμν κΈ°λ₯λ§ λ ΈμΆμν€λ©΄μ ν¨κ³Όμ μΌλ‘ κ°μ νλ€.
π λμμΈ
λμμΈ μμ€ν μ λμμΈμ΄ ν΅μ¬μ΄λ€. μ무리 μμΉμ΄ νλ₯νκ³ μ½λκ° λΉνμ΄ μμ΄λ λμμΈμ΄ μ΄λ₯Ό λ·λ°μΉ¨ν΄μ£Όμ§ λͺ»νλ©΄ λΉμ λ°νμ§ λͺ»νλ€. λ¨μνκ²λ UI ꡬμ±λΆν°, λ λμκ°μ UXκΉμ§ κ³ λ €ν΄μΌ νμ₯μ± μλ μμ€ν μ ꡬμΆν μ μλ€. κΈ°κ» λ§λ€μ΄λμλλ° μ°μ§ λͺ»νλ©΄ λ¬΄μ¨ μλ―Έκ° μμκΉ. λμμΈ μμ€ν μ μ νμ©νκΈ° μν΄μλ μμ€ν λ μ€μνμ§λ§, λμμΈμλ μ§μ€ν΄μΌ νλ€.
μ§κ΄μ μΈ DXλ₯Ό κ³ λ €νλ€. μ°μ λΆνΈμ€νΈλ©μ κΈ°λ³Έ λ²νΌ μ ν΄λμ€μΈ 'btn btn-primary'μ κ°μ 문ꡬλ₯Ό μ§κ΄μ μΌλ‘ λ°κΏ νμκ° μμλ€. μ΄μ btn-blueλΌλ μ§κ΄μ μΌλ‘ μ΄ν΄ν μ μλ λ¨μ΄λ₯Ό μ νν¨μΌλ‘μ¨ ν΄λμ€ λͺ λ§ λ³΄κ³ λ μ΄λ€ λ²νΌμΈμ§λ₯Ό λΉ λ₯΄κ² μ μ μμλ€.
ν΅μΌκ°μ λΆμ¬νλ€. μ 체μ μΌλ‘ border-radiusλ 10pxμ κΈ°λ³Έ λ¨μλ‘ νκ³ λ²νΌ padding μ 0.7rem 1.55remμ κΈ°μ€μΌλ‘ ꡬμ±νλ€. μ΄λ₯Ό ν΅ν΄ λμμΈμ μμ΄λ΄ν°ν°λ₯Ό κ°νν μ μκ³ , λ€λ₯Έ μλΉμ€μλ λμμΈ μμ€ν μ μ μ©νλ€λ©΄ λΈλλμ μΌκ΄μ±μ μ μ§ν μ μλ€. λμμ μμ λΆλ¬Έμ, λΌμ΄νΈ λͺ¨λμμλ tintλ₯Ό κΈ°λ³ΈμΌλ‘, λ€ν¬ λͺ¨λμμλ fillμ κΈ°λ³ΈμΌλ‘ νλ€.
νλλ₯Ό λ°κΎΈλ©΄ μ μ²΄κ° λ°λλ€. μ¬μ€μ λμμΈ μμ€ν μ ꡬμ±νκ² λ κ°μ₯ ν° λͺ©μ μ΄λ€. λμμΈ μμ€ν μ μ½λλ₯Ό λ°κΎΈλ©΄ μ 체 μλΉμ€μλ λμΌνκ² μ μ©λλ€. μλ₯Όλ€μ΄ λ΄λΉκ²μ΄μ λ°μ paddingκ°μ΄ μ΄μΈλ¦¬μ§ μλ€κ³ μκ°νλ©΄ λμμΈ μμ€ν μ μ½λ ν μ€λ§ λ°κΎΈλ©΄ μ 체 μλΉμ€μμλ ν λ²μ μ μ©λλ€. λ§μ½ λμμΈ μμ€ν μ΄ μλ€λ©΄ νλνλ λ€ λ°κΏμ£Όμ΄μΌ ν ν λ° λ§μ΄λ€. μ΄λ μλΉμ€μ μκ° λ§μμ§λ©΄ λ§μμ§μλ‘ μ₯μ μΌλ‘ λ€κ°μ€λ ν¨κ³Όκ° μλ€.
π μ μ©
νλ‘ν νμ κ°λ°μ΄ λλ νμλ κ°λ°μ€μΈ μλΉμ€λ€μ μ μ©νλ€. λΈλ‘κ·Έ μλΉμ€, devent-frame κΈ°λ°μ μ€νμμ€ νλ‘μ νΈ λ± μ΄νλ‘λ κ°μΈμ μΌλ‘ κ°λ°νλ νλ‘μ νΈμλ λμμΈ μμ€ν μ μ μ©ν μμ μ΄λ€. νλ‘ νΈμλ κ°λ°μ μμ΄ λλ΅ 4λ°°μ μκ°μ μ€μ¬μ€ λμμΈ μμ€ν μ΄κΈ°μ λμκ² μμ΄μλ μ°μ§ μμ μ΄μ κ° μλ€.
λμμΈ μμ€ν μ νμ©νλ©΄ κ°λ° κ³Όμ μμλΆν° λ°°ν¬ λ¨κ³κΉμ§ μ΅μ νλ₯Ό ν μ μλ€. κ°λ° λ¨κ³μμλ κΈ°μ‘΄λλΉ 20%μ μ½λλ§ μ μ΄λ κΈ°λ₯μ ꡬννλ λ°μ μμ΄ λ¬Έμ λμ§ μλλ€. μ΄λ νλ‘ νΈμλ ꡬμ±μ μμ μκ°μ μ μ½νλ©°, κΈ°λ₯μ΄λ UXμ μΈ μΈ‘λ©΄μ μ°μ μ μΌλ‘ κ³ λ €ν μ μκ² λλ€. λν ν λ² λ°°ν¬ν μ΄νμ μμν λμμΈμ λ°κΎΈμ§ μμλ λλ λ°°ν¬ ν μ΅μ νμλ μ©μ΄νλ€.
νΉμλ μ½λλ₯Ό λ³΄κ³ μΆμΌμ λΆλ€μ μ€νμμ€λ‘ 곡κ°λμ΄ μμΌλ μ°Έκ³ νμκΈ°λ₯Ό λ°λλ€.
https://github.com/Team-DeVent/devent-designsystem
π μΆκ° λ§ν¬
[TDS λ Έμ ] https://www.notion.so/toss-design-system-959822692bec4f879450e361c623cf2a
[APPLE Human Interface Guidelines] https://developer.apple.com/design/human-interface-guidelines/guidelines/overview
'π€νκ³ > νλ‘μ νΈ νκ³ ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
κΈ°μ λΈλ‘κ·Έ κ°λ° νκ³ (0) | 2022.04.07 |
---|---|
Docker μλ λ°°ν¬ μμ€ν μ ꡬμΆνλ©°. (0) | 2022.03.18 |
NodeJS ν νλ¦Ώμ λ§λ€μ΄λ³΄λ©° (0) | 2022.03.17 |