- Maintainable OOCSS components
- Scalable code
- BEM - Block-element--modifier
- PascaleCase for component name
- camelCase for component childs
- Lowercase for modifiers
- Use
is-*andhas-*modifiers when needed
<divclass="Component Component--modifier is-state"><divclass="Component-child"></div><divclass="Component-otherChild"></div></div>- Two spaces indent
- Space after
:property declaration - Space before
{rule declaration - Closing braces on a new line
.Component{display: inline-block}- Never use IDs
- No magic number
- Only use
!importanton utility classes - Max nesting level: 3
npm install npm install -g gulp pug-cli backstopjs gulp// starts server and watch files, available on localhost:3000gulpicons// builds iconsPre-commit hook ensures code has been linted.
npm run pre-commitTo bypass the pre-commit, just add -n option.
git ci -n git ci -nm "My commit message" npmrunrelease// builds, commits, push, tags, publishes to Bower and NPM and deploys to GitHub PagesIt can be run manually:
npmrundeployTests are run with Travis and have to be updated before branch merges. They can be run locally with these following commands.
npmrunlint// linterbackstopreference// visual tests: builds referencesbackstoptest// visual tests: compares references with actual HEAD