아토믹 디자인
Atoms
Atom은 더 이상 쪼갤 수 없는 단위에 해당하는 요소에 해당한다. 혹은 애니메이션, 폰트, 색상 등과 같이 요소가 아닌 속성도 Atom에 해당된다. 가장 작은 단위인 만큼 가장 많이 재사용된다고 볼 수 있다.
- 폰트 크기, 색상, 미디어 쿼리
- Text
- SliderBar
- Icon
- Prev
- Next
- Like
- Close
- Back
- home
- Coumunity
- Anaysis
- Edit
- Remove
- Add
- List
- Image
<Button>
- NavButton
- IconButton
- PlayButton
- RoutineUpdateButton
- AddButton
- CloseButton
- UserButton
- TextButton
- CategoryButton
<Input>
- TextInput
<기능>
- Spacer
- Grid
- Spinner
Molecules
Molecule은 여러 개의 Atom이 모여 목적성이 있는 하나의 컴포넌트가 된다. 가급적 많은 곳에서 재사용되도록 컴포넌트를 구성하되 "한 가지 일을 한다"라는 원칙을 지키며 만드는 것이 좋다.
- NavBar
- TabBar
- Routine
- Mission
- RoutineAddComboButton
- ColorPalette
- DaySelector
- CategorySelector
- RoutineInfo
Organisms
Organism은 사용자에게 의미 있는 정보를 제공하거나 인터렉션 할 수 있는 UI를 제공하는 등 서비스로서 의미를 가지는 인터페이스라고 볼 수 있다. 이 단계부터 재사용성이 크게 줄어든다.
- RoutineProgressModal
- TimePicker
- EmojiPicker
- MissionCounter
- UserImageUploader
- Comment
Molecule와 Organism의 구분 Molecule은 데이터를 표시하고 이벤트를 받을 수 있지만 "하나의 역할"만을 가진다. Organism은 사용자에게 의미를 가지는 기능적 요구사항에 포함되는 경우에 해당되는 컴포넌트다.
Templates
실제 콘텐츠가 입혀지기 전 UI 요소, 레이아웃, 기능이 어떻게 배치될지 정하는 와이어 프레임이라고 볼 수 있다. 따라서 자주 재사용되는 컴포넌트가 된다.
Pages
Page는 사용자가 볼 수 있는 최종 콘텐츠가 보이는 화면이다. 사용자와 인터렉션이 발생하거나 API 호출 등을 통해 사이드 이펙트가 발생 할 수 밖에 없는 컴포넌트기도 하다. 일반적으론 하나의 URI 당 하나의 Page 컴포넌트만 존재한다.
<나의 루틴>
- MyRoutinePage
- RoutimeCreatePage: 루틴 생성 및 수정 페이지
- RoutineDetailPage
- MissionCreatePage
- RoutineProgressPage
- RoutineFinishPage
<루틴 커뮤니티>
- RoutineCommunityPage
- RoutinePostPage: 루틴을 포스트 하는 페이지ㅑㅜ
- RoutinePostDetailPage
<분석>
- AnalysisPage
<유저>
- SignInPage
- SignUpPage
- UserPage
- UserEditPage
<기타>
- NotFoundPage