Rangle.io: React Training
gitbook
gitbook
  • Introduction
  • Setup
  • Functional JavaScript
  • ES6 constructs
    • Default Params
    • Template Literals
    • Destructuring
    • Arrow Functions
    • Promises
    • let and const
    • Modules
  • Thinking in Components
    • Atomic Design
    • Atomic Component Principles
    • Benefits of This Approach
    • The Process
    • Task #1
  • React Components
    • Stateless Components
    • Stateful Components
    • Stateful vs Stateless Components
    • Composition
    • Task #2
    • Task #3
    • Task #4
    • Task #5
  • Immutable
    • What Is Immutability?
    • The Case for Immutability
    • JavaScript Solutions
      • Object.assign
      • Object.freeze
    • Immutable.js Basics
      • Immutable.Map
        • Map.merge
      • Nested Objects
        • Deleting Keys
        • Maps are Iterable
      • Immutable.List
      • Performance
      • Persistent and Transient Data Structures
      • Official Documentation
    • Exercises
      • Task #1
      • Task #2
      • Task #3
      • Task #4
      • Task #5
      • Task #6
      • Task #7
  • Redux
    • Review of Reducers and Pure Functions
    • Redux Reducers
    • Redux Actions
    • Configuring your Application to use Redux
    • Using Redux with Components
    • Redux and Component Architecture
  • Routing
    • React Router
    • Router Redux
  • Forms
    • Redux Form
  • Testing
    • Setup
    • Components
    • Reducers
    • Actions
Powered by GitBook
On this page
  • Atomic Component Principles
  • Atoms
  • Molecules
  • Organisms
  • Ecosystem
  • Environment

Was this helpful?

  1. Thinking in Components

Atomic Component Principles

PreviousAtomic DesignNextBenefits of This Approach

Last updated 6 years ago

Was this helpful?

Atomic Component Principles

Atoms

  • The simplest building block

  • HTML tags

  • Not very useful on their own

  • Easily styled

  • Very reusable

  • Foundation of building a brand

<Form>
  <Label>Search</Label>
  <Input />
</Form>

Molecules

  • Groups of Atoms bonded together

  • Serve as backbone of design system

  • For example, a Search Form

  • Do one thing, do it well

<Form onSubmit={ onSubmit }>
  <Label>Search</Label>
  <Input type="text" value={ search } />

  <Button type="submit">Search</Button>
</Form>

Organisms

  • Groups of molecules

  • Distinct section of an interface

  • Portable, easily modified

<Header>
  <Navigator>
    <Brand />
    <NavItem to="home">Home</NavItem>
    <NavItem to="about">About</NavItem>
    <NavItem to="blog">Blog</NavItem>
  </Navigator>
  <SearchForm />
</Header>

Ecosystem

  • What the client will see

  • Connected containers

  • Many components that make up a view

Environment

  • Root Component

  • Typically the <App /> component

  • Represents everything packaged together as an application

Images from:

Brad Frosts's article,

Joey Di Nardo's article, .

Atomic Design
Atomic Components: Managing Dynamic React Components using Atomic Design — Part 1