ðââï¸ã¨ã³ã¸ãã¢ã®@dachi_023ã§ããç´4ã¶æã¶ãã«è¨äºãæ¸ãã¾ããããã°ãã¾ãã
ãã®è¨äºã«ã¤ãã¦
ã³ã³ãã¼ãã³ããAtomic Designã«ã¤ãã¦æ¸ãã¦ãã¾ããããã§ã¯UIãã¶ã¤ã³ã®ããã¼ã«é¢ããAtomic Designã®å®è·µã§ã¯ãªããéçº(å®è£ )ã®ããã¼ã«ã¯ãè¾¼ãã å ´åã«ã©ããã¹ããªã®ããã¨ããã話ããã¦ãã¾ãã
ã³ã³ãã¼ãã³ãã¨Atomic Design
ReactãVueãã¯ããã¨ããã©ã¤ãã©ãªã®ãé°ã§ããã³ãã¨ã³ãéçºã«ãã³ã³ãã¼ãã³ããã¨ããèãæ¹ã浸éããä»æ¥ãã®é ã§ããããããªã³ã³ãã¼ãã³ãã®è¨è¨ã«ã¤ãã¦ã®è©±ãªããããã¦ããã¨ããç¾ããã®ãä»åã®ä¸»é¡ã«æãã¦ãããAtomic Designãã§ããAtomic Designã¯ãã¶ã¤ã³ã·ã¹ãã ãå¹çããä½æããããã®æ段ã®ã²ã¨ã¤ã§ããããã®ä¸ã«ç»å ´ããã³ã³ãã¼ãã³ãã5é層(Atoms, Molecules, Organisms, Templates, Pages)ã«åé¡ããã¨ããææ³ãã³ã³ãã¼ãã³ãæåãªã©ã¤ãã©ãªã¨ç¸æ§ãè¯ããè¨è¨ãå®è£ ã«åãè¾¼ããã¨ã§ä»ã¾ã§ãããã¨ã³ã¸ãã¢ã¨ãã¶ã¤ãã¼ã®èªèãæãããããã ããããã¨ãã£ãçç±ãªã©ã«ãã次第ã«ã¡ã¸ã£ã¼ãªææ³ã¨ãªã£ã¦ããã¾ããã*1
ã¡ãªã¿ã«ãAtomic Designã«é¢ãã解説ãªã©ã¯ããªãã®ã§ããããããªããã©æ°ã«ãªããªã¨ããæ¹ã¯ä¸è¨ã®webæ¸ç±ããããã¯ãAtomic Designãã§æ¤ç´¢ãã¦åºã¦ãã解説è¨äºãªã©ãèªãã§ããã ããã¨ããªã¹ã¹ã¡ãã¾ãã atomicdesign.bradfrost.com
ç´è¿1å¹´ãããã¯ç¹ã«ãAtomic Designãåèã«è¨è¨ã»å®è£ ãã¾ãããç³»ã®è¨äºãã¹ã©ã¤ããè¦ãæ©ä¼ãå¢ãã¦ããã®ã§ãããçµæ§ãããã©ããã¨ãä¼¼ã¦ãããããªãããªï¼ã¨æã£ãã®ã§æºã¾ã£ãå¦ã³ãæ¬è¨äºã«ã¾ã¨ãããã¨ã§èª°ãã®å½¹ã«ç«ã¦ãã°è¯ããªã¨æã£ã¦ãã¾ãã
Atomic Designã«ãã£ã¦å¾ãããæ©æµ
ãå ±éè¨èªããæã«å ¥ãããã¨ã«ãã£ã¦ã³ãã¥ãã±ã¼ã·ã§ã³ã®è³ªãä¸ããã¾ãããä¾ãã°ãå°å ¥åã¯åé¡ããããã®ææ¨ããªãã®ã§ã³ã³ãã¼ãã³ãã®ç²åº¦ãå人ã®å¤æä»»ãã«ãªã£ã¦ãã¦ãã¬ãã¥ã¼ãããéããäºãã«ä½ãæ£è§£ãªã®ããåãããã§ä¸å¥å ¨ãªç¶æ ãç¶ãã¦ãã¾ãããããã«æ¯ã¹å°å ¥å¾ã¯ããã®UIãAtomsã¨ãã¦1ã¤ã®ã³ã³ãã¼ãã³ãã«åãåºãã¦ãã ãããã¨ãã£ãã³ãã¥ãã±ã¼ã·ã§ã³ãã§ããããã«ãªã£ãã®ã§ã¬ãã¥ã¼ããããããªãã¾ããã
å®è·µãå§ããå½åã¯ã¨ã³ã¸ãã¢1å(ç§ã ã)ã®ããã¸ã§ã¯ãã§éçºãã¦ããã¨ããã£ã¦ãUIãåã«ã¯ãã¦åé¡ã§ããããã«ãªã£ããã¨ããã¡ããã¡ã便å©ãï¼ã¨æã£ã¦ãããã§ãããããããããã¼ã ã¡ã³ãã¼ã«ã¨ã³ã¸ãã¢ã»ãã¶ã¤ãã¼ãããç°å¢ã§ãã¼ã å ã§åãèªèãæã¤ããã®éå ·ã¨ãã¦ã®æ¹ãåããæ©æµã大ãããªã¨æãã¾ãããã³ãã¥ãã±ã¼ã·ã§ã³å¤§äºã
Atomic Design Methodology | Atomic Design by Brad Frost
ãããã©ããã¨ããããã©ã解決ããã
Atomic Designã£ã¦ããã¨ããããã£ã±ãï¼ãã£ã¦ããï¼ã¨æãããã§ãããéçºææ³ã«ããããã¹ããã©ã¯ãã£ã¹ãã¿ãããªè©±ã§ããªãã®ã§éçºã«ãã®ã¾ã¾å½ã¦ã¯ããã¨çãç®ãè¦ã¾ããã¨ããããã§ãããã£ããã¤ã³ããè¤æ°ããã®ã§ããããæ¸ãã¦ããã¾ãã
5é層ã§ãããã¨ã¯éè¦ã§ã¯ãªã
5é層ããããï¼ããããªåãããï¼ã¨ãªãããããã¾ããããå¥ã«ãããªããã°ä½¿ããªããã°ããã§ãããéã«ãããã層ã欲ãããªããã£ã¦ããã®ãããã°è¶³ãã¦ãããã¨æãã¾ããAtomic Designã¯ããã¾ã§ãã³ã³ãã¼ãã³ããå解ããæã«ããããèãæ¹ãããã¨ããããã¨ããã¢ããã¤ã¹çãªãã®(ã ã¨ç§ã¯è§£éãã¦ãã¾ã)ãªã®ã§ãã©ãããå½¢ã§å®è£ ããããã¯å®è·µããã¨ã³ã¸ãã¢ã»ãã¶ã¤ãã¼æ¬¡ç¬¬ã§ããä¾ãã°å®è£ æã«ãã¡ã®ãããã¯ãã§ã¯Templatesã¯ä½¿ããªããããªã®ã§4é層ã§ããã¾ããã¨ãããããæãã§ãããã¼ã ããããã¯ãã«åãããæ§æã§ãã£ã¦ããã®ã1çªã ã¨æãã¾ãã
Atomsããä½ã£ã¦ããã®ãé£ãã
ä¾ãã°ãã¿ã³ã¨ãã©ãã«ã®ãããªUIçã«ãåãããããããã以ä¸å解ã§ããªãããã®ã¯ç°¡åã ã¨æãã®ã§ãããä½ã£ã¦ãããªãã¨æ°ã¥ããªããã®ããã®æç¹ã§ã¯æ¬å½ã«å¿ è¦ãªã®ããåãããªããã®ãããã¯ãã§ããããããæã¯OrganismsãPagesãä½ã£ã¦ããããå解ãã¦ããã®ãè¯ãã¨æãã¾ããã©ãããä½ãããã«ãã ããéãããã¼ã ã¨ãã¦å¹ççã«éçºã»ãã¶ã¤ã³ã§ããé çªã§è¯ãããã§ãã
Moleculesãªã®ãOrganismsãªã®ã
ãã®åé¡ã¯ããè¦ãããæ°ããããã§ãããMoleculesã«æ±ãããã®ããOrganismsã«æ±ãããã®ããå®ç¾©ã§ãã¦ããã°ããã ãã ã¨æã£ã¦ãã¾ããä»ã®é層ã«ã¤ãã¦ãåãã§ãããããã©ããªæ¡ä»¶ãæºããã¦ããæã«ãã®é層ã«ãªãã®ããã§ããã°ããã¨æãã¾ãããã¼ã å ã§åé層ã®ã³ã³ãã¼ãã³ãã«ã¤ãã¦ã®å®ç¾©ãã§ãã¦ãã¦ãã¡ããã¨å ±éèªèã¨ãªã£ã¦ããã°å¤æã«è¿·ããªãã¯ãã§ãã
ã¡ãªã¿ã«ãç§ã¯ãOrganismsã¯ããåä½ã§ç»é¢ä¸ã«åå¨ããããã®ãã¨èãã¦ãã¦ãããã«æºããªããã®ã§è¤æ°ã®Atomsã«ãã£ã¦æ§æããã¦ãããã°å ¨ã¦Moleculesã¨ãã¦ãã¾ããAtomic Design Methodology ã«åºã¦ããUIãä¾ã«æããã¨ããããã¼ã¯åä½ã§ç»é¢ã«è¡¨ç¤ºããã¦ãã¦ã1ã¤ã®UIã¨ãã¦æ©è½ããã®ã§Organismsãããã«æ¯ã¹ã¦æ¤ç´¢ãã©ã¼ã ã¯æ¤ç´¢ãã対象ã(= ä½ãæ¤ç´¢ããã®ããUIã¨ãã¦æ示çã§)ãªããã°åå¨ãã¦ããæå³ãããã¾ããããã¤ããã©ã¼ã (Atoms)ã¨ãã¿ã³(Atoms)ã®ã»ãããªã®ã§Moleculesãã¨ãã風ã«èãã¦ãã¾ãã
Atomic Design Methodology | Atomic Design by Brad Frost
Organisms以éã®ã³ã³ãã¼ãã³ããFatã«ãªããã¡
(ããã ãèãæ¹ã§ã¯ãªãã¦å ·ä½çãªå®è£ ã®è©±ããã¦ãã¾ã)
çµã¿åãããã³ã³ãã¼ãã³ãã®æ°ãå¢ããã«ãããã£ã¦ã³ã¼ãéãå¢ããã¡ã§ãããã£ã¬ã¯ããªæ§é ãä¸è¨ã®ããã«ãªã£ã¦ããã¨Organismså ã®ã¿ã§ä½¿ç¨ãããã³ã¼ããéããå ´æããªãã1ã³ã³ãã¼ãã³ãå ã«å¤§éã®ã³ã¼ããè©°ãè¾¼ã¾ãããã¨ã«ãªããããã§ãã
# Before src â atoms â â Button.jsx â â Input.jsx â molecules â â SearchForm.jsx â organisms ã â Header.jsx
ãªã®ã§ãä¸è¨ã®ããã«ãã£ã¬ã¯ããªã1ã¤æãä¸ãã¦ãOrganismså ã§éããã¦ãããããåå²ããæ¹ãå¯èªæ§ãä¸ãããããªã³ã¼ããç½®ãå ´æãä½ã£ã¦ãããã¨å®è£ ããããã§ããå®éã®å®è£ ã§ã¯ãåå²ã¯ã§ãããåå©ç¨æ§ããªããã®ããèæ ®ããªãã¨çµæ§è¾ãã·ã¼ã³ãå¤ãã®ã§ãã®è¾ºã¯æè»ã«å®è£ å´ã§ã«ãã¼ã§ããããã«ãã¦ããã¨è¯ãã¨æãã¾ãã
#After src â atoms â â Button.jsx â â Input.jsx â molecules â â SearchForm.jsx â organisms ã â Header ã ã â index.jsx ã ã â Logo.jsx ã ã â Menu.jsx
ã¨ã³ã¸ãã¢ãAtomic Designããå¾ããã®
ãã³ã³ãã¼ãã³ããã©ãåé¡ããããã«å°½ããã¨æãã¾ãããããããã³ãã¨ã³ãã®è¨è¨ã«å½ã¦ã¯ããæã«ãã¡ããã¡ã使ãããããªãããããå¤ãã®ã¨ã³ã¸ãã¢ã«ã¦ã±ãããå®éãã£ã¦ã¿ã¦è¯ãã£ããã¨ãå¤ãã£ãããã ã¨æãã¾ãããã ããã®ã¾ã¾ã§ã¯ä½¿ãã¥ããé¨åãå¤ããããã¨ãã話ã§ããå ·ä½çãªå®è£ ã®è©±ãæã¡åºããAtomic Componentsã¨ãããã®ãåºã¦ããã¿ãã*2ã§ãã
ææ
è¨è¨ã«é¢ããé¨åãªã®ã§ãããããªæ¹ãããããªæè¦ãæã£ã¦ããããªæ°ã¯ãã¦ãã¾ãããçµå±ã¯ãã¼ã ã¨ãã¦ã®éçºå¹çãã©ãã¾ã§ä¸ããããããã ã¨æãã®ã§Atomic Designã®ååã«ç¸ãããããã«ãã¼ã ã«ãã£ãããããããªããæ¹ã常ã«æ¨¡ç´¢ãã¦ããããã§ããã
åèãªã³ã¯
- Atomic Design by Brad Frost
- Atomic Design を実案件に導入 - UI コンポーネントの粒度を明確化した結果と副産物 | ygoto3.com
- A brief look at Atomic Components[和訳] - Qiita
PR
ã³ãããã§ã¯ã¨ã³ã¸ãã¢ãåéãã¦ãã¾ããããã³ãã¨ã³ãå¨ãã®è¨è¨ãå®è£ ã«èå³ãããæ¹ã¯ãã¡ãããããã¯ã¨ã³ã/ã¤ã³ãã©/Android/iOSã®ã¨ã³ã¸ãã¢ã®æ¹ãåéãã¦ãã¾ãã®ã§èå³ããã£ãããã²è©±ãèãã«ãã¦ãã ããããã¤ã§ããå¾ ã¡ãã¦ãã¾ãï¼ www.wantedly.com
*1:æ¥æ¬ã ã¨AbamaTVããã®Atomic Design powered by React @ AbemaTVããAtomic Designãæµè¡ã£ã¦ãã£ãã®ããªï¼ã¨æã£ã¦ãã¾ã
*2:ãã¨ãã¨Mediumã«è¨äºããã£ãããã§ããåé¤ããã¦ããã®ã§åèãªã³ã¯ã®æ¬ã«ç¿»è¨³è¨äºã¸ã®URLãè²¼ããã¦ãããã¾ãã