Code Style¶
UI¶
We use Prettier for JS/JSX formatting and the Airbnb guide for non-style related best practices. Both are validated using ESlint (see Validating Javascript in the Installation section).
Prettier is also used to format JSON/CSS/HTML/Markdown/YAML. However these are not supported
by ESLint, so instead are validated using Prettier's CLI. To manually check their formatting
(as well as that of JS/JSX) using Prettier, run yarn format:check
, or to apply formatting
fixes run yarn format
.
However we recommend that you instead add Prettier to your editor/IDE and enable "format on save" for the most seamless development workflow.
Imports in JS/JSX must be ordered like so (with newlines between each group):
- external modules (eg
'react'
) - modules from a parent directory (eg
'../foo'
) - "sibling" modules from the same or a sibling's directory (eg
'./bar'
or './bar/baz')
For CSS, we use reactstrap and Bootstrap's utility classes as
much as possible before adding custom CSS to a style sheet. Any custom style that can be made
reusable should be named generically and stored in the ui/css/treeherder-custom-styles.css
file.