All Projects → danilowoz → React Atomic Design

danilowoz / React Atomic Design

🔬 Boilerplate with the methodology Atomic Design using a few cool things.

Programming Languages

javascript
184084 projects - #8 most used programming language
flowtype
47 projects

Projects that are alternatives of or similar to React Atomic Design

react-module-boilerplate
Sample React presentational components package.
Stars: ✭ 16 (-98.35%)
Mutual labels:  css-modules, storybook
Express React Boilerplate
🚀🚀🚀 This is a tool that helps programmers create Express & React projects easily base on react-cool-starter.
Stars: ✭ 32 (-96.71%)
Mutual labels:  boilerplate, storybook
react-uswds
USWDS 3.0 components built in React
Stars: ✭ 108 (-88.89%)
Mutual labels:  design-patterns, storybook
React
Extremely simple boilerplate, easiest you can find, for React application including all the necessary tools: Flow | React 16 | redux | babel 6 | webpack 3 | css-modules | jest | enzyme | express + optional: sass/scss
Stars: ✭ 244 (-74.9%)
Mutual labels:  boilerplate, css-modules
Preact Boilerplate
🎸 Ready-to-rock Preact starter project, powered by Webpack.
Stars: ✭ 959 (-1.34%)
Mutual labels:  boilerplate, css-modules
Arc
React starter kit based on Atomic Design
Stars: ✭ 2,780 (+186.01%)
Mutual labels:  boilerplate, storybook
React Redux Boilerplate
Awesome React Redux Workflow Boilerplate with Webpack 4
Stars: ✭ 307 (-68.42%)
Mutual labels:  boilerplate, css-modules
Workflow Reactjs
My workflow with ReactJS + Webpack 3+
Stars: ✭ 150 (-84.57%)
Mutual labels:  boilerplate, storybook
Redux Webpack Es6 Boilerplate
A starter project for modern React apps with Redux
Stars: ✭ 566 (-41.77%)
Mutual labels:  boilerplate, css-modules
Ignite Andross
The original React Native boilerplate from Infinite Red - Redux, React Navigation, & more
Stars: ✭ 476 (-51.03%)
Mutual labels:  boilerplate, storybook
Koa Vue Notes Web
🤓 This is a simple SPA built using Koa as the backend, Vue as the first frontend, and React as the second frontend. Features MySQL integration, user authentication, CRUD note actions, and Vuex store modules.
Stars: ✭ 200 (-79.42%)
Mutual labels:  boilerplate, storybook
Next Boilerplate
A well-structured production ready Next.js boilerplate with Typescript, Redux, Jest, Enzyme, Express.js, Sass, Css, EnvConfig, Fetch, Reverse Proxy, Bundle Analyzer and Built-in Project CLI. https://pankod.github.io/next-boilerplate/
Stars: ✭ 936 (-3.7%)
Mutual labels:  boilerplate, storybook
Typescript Webpack React Redux Boilerplate
React and Redux with TypeScript
Stars: ✭ 182 (-81.28%)
Mutual labels:  boilerplate, css-modules
Awesome Design Systems
A curated list of bookmarks, resources and articles about design systems focused on developers.
Stars: ✭ 222 (-77.16%)
Mutual labels:  design-patterns, storybook
React Redux Universal Boilerplate
An Universal ReactJS/Redux Boilerplate
Stars: ✭ 165 (-83.02%)
Mutual labels:  boilerplate, css-modules
twitter-web-react
twitter-web-react.now.sh
Stars: ✭ 104 (-89.3%)
Mutual labels:  css-modules, storybook
React Starter Boilerplate Hmr
React starter boilerplate with React Fast Refresh, React 17 and Webpack 5
Stars: ✭ 137 (-85.91%)
Mutual labels:  boilerplate, css-modules
React Laravel Boilerplate
A Laravel REST API backend with React/Redux, hot module reloading in development and route-level code splitting
Stars: ✭ 146 (-84.98%)
Mutual labels:  boilerplate, storybook
Kratos Boilerplate
🔥 A simple boilerplate for creating statics PWA using Webpack, Pug, PostCSS and CSS Modules
Stars: ✭ 308 (-68.31%)
Mutual labels:  boilerplate, css-modules
React Cdk
under development - React Component Development Kit with Storybook
Stars: ✭ 583 (-40.02%)
Mutual labels:  boilerplate, storybook
atomic design

react-atomic-design

This is a boilerplate with the methodology Atomic Design using a few cool things, like Storybook, Flow and CSS Modules. Feel free to test, change e adapt everything.

Read full article

What is Atomic Design?

Popularly known within the design world, Atomic Design helps to build consistent, solid and reusable design systems. Plus, in the world of React, Vue and frameworks that stimulate the componentization, Atomic Design is used unconsciously; but when used in the right way, it becomes a powerful ally for developers.

The name Atomic Design comes from the idea of separating the components in atoms, molecules, organisms, templates and pages, like in the image above. But what are the responsibilities of each separated part?

Atoms

atoms

Atoms are the smallest possible components, such as buttons, titles, inputs or event color pallets, animations, and fonts. They can be applied on any context, globally or within other components and templates, besides having many states, such as this example of button: disabled, hover, different sizes, etc.

Molecules

molecules

They are the composition of one or more components of atoms. Here we begin to compose complex components and reuse some of those components. Molecules can have their own properties and create functionalities by using atoms, which don’t have any function or action by themselves.

Organisms

organisms

Organisms are the combination of molecules that work together or even with atoms that compose more elaborate interfaces. At this level, the components begin to have the final shape, but they are still ensured to be independent, portable and reusable enough to be reusable in any content.

Templates

templates

In this state we stop composing components and begin to set their context. Moreover, the templates create relationships between the organisms and others components through positions, placements and patterns of the pages but it doesn’t have any style, color or component rendered. That’s why it looks like a wireframe.

Pages

pages

Pages are the navigate parts of the application and it’s where the components are distributed in one specific template. The components get real content and they’re connected with the whole application. At this stage, we can test the efficiency of the design system to analyse if all the components are independent enough or if we need to split them in smaller parts.

React + Atomic Design

When we started to use Atomic Design within React we had to adjust some rules of the methodology to ensure that components were reused as much as possible, that they were stateless, without styles of positions and very specific margins so to avoid any side effects in the pages of application.

So with each new component we asked ourselves: “Are these components generic enough to avoid specificity and/or repeated code in whatever context they are used?”

So we were able to write a few rules:

  • The Atomic Design should have a file of variables and it must be imported by each component;
  • The atoms should be written without margins and positions;
  • Only the molecules and organisms can set the positions of atoms, but these stacks can’t have any styles of margins and positions;
  • Templates have only one function: to set the grid of pages but never positions of specific components;
  • Pages render the components with a template defined and it’s here that the Atomic Design will be connected to the rest of the application;

Scripts

Script Desc
$ yarn start Start a simple webpack server
$ yarn dev Create a server to development at port 5000
$ yarn storybook Start Storybook with the stories imported
$ yarn flow Validate the flow types

Libraries

  • Webpack
    • CSS Loader
    • SVG Sprite loader
    • File loader
  • Flow types
  • Storybook
    • Storybook Info
  • CSS
    • Autoprefixer
    • Import
    • Nested
    • Variables
    • Inline SVG
  • Babel
    • Loader
    • Preset ES2015
  • Project
    • Atomic Design styles folder structure
    • ESLint
    • Prettier

Contributors

@danilowoz

@dleitee

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].