atomic-bomb v5.0.0
Atomic Bomb
This commandline tool creates boilerplate atomic design components for React apps.
IMPORTANT This tool is for educational purposes only.
UPDATE VERSION 5.x.x (experimental)
- Added
extensionto.atomic-bombconfig- Creates a
index.<ext>file for each atomic-dir, so you can (for example) use:import { Label, Logo } from '../atoms'UPDATE VERSION 4.x.x
- Added
scssflag to.atomic-bombconfig to control if scss files are generated.- Automatically creates a GitHub workflow file for converting TODO's to issues
- Gets valid platforms from template repository
- Writes configuration to
.atomic-bombfile in the project-root- Reads configuration from
.atomic-bombwhere you can manually setsearch,platformanddestination-directory.
Install
npm install --global atomic-bomb
# Or in your project
npm install --save-dev atomic-bomb
yarn add -D atomic-bombUsage:
atomic-bomb --platform react --type atom|molecule|organism|template|page --name [NAME](,[NAME],[NAME]) --platform can be extended.
Please head over to Templates and open a pull request if you want to
contribute to more templates. There is a list of supported platforms in the README.
Example
atomic-bomb --platform react --type atom --name Label
atomic-bomb --platform react --type molecule --name HeaderAdd multiple
atomic-bomb --platform react --type atom --name Label,Button,Inputdot-file
atomic-bomb creates a dot-file (.atomic-bomb) in the root
of your project. You can configure the defaults in this file
so you can omit the platform definition. You can also modify
the base location of your atoms, molecules etc. directories.
Default content:
{
"search": "react",
"extension": "js | jsx | ts | tsx",
"platform": "react",
"destination": "src/components",
"scss": true
}search: package to search for inpackage.jsonto determine ifatomic-bombcan be usedextension: Add the extension you want your files to have (defaults to.js)platform: shorthand for the--platformflagdestination: directory where the atomic-dirs are put.scss: if an_index.scssin each atomic-dir should be created.
Shorthand
atomic-bomb --name LabelDefaults to --platform react (platform in the .atomic-bomb-file) and --type atom
Output (React)
[PROJECT_ROOT]/src/components
├── atoms
│ ├── Label
│ │ ├── Label.js
│ │ ├── Label.stories.js
│ │ ├── Label.test.js
│ │ ├── _Label.style.scss
│ │ ├── _index.scss
│ │ └── index.js
│ └── _index.scss
└── molecules
├── Header
│ ├── Header.js
│ ├── Header.stories.js
│ ├── Header.test.js
│ ├── _Header.style.scss
│ ├── _index.scss
│ └── index.js
└── _index.scss2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago