@snowball-tech/stylelint-config
v2.3.2
Published
Stylelint ruleset by Snowball supporting JSX, CSS in JS and more.
Downloads
267
Readme
Snowball Stylelint Config
This package provides a composable and opinionated Stylelint configuration based on Snowball engineering standards.
This configuration supports:
- HTML files;
- CSS files;
- TypeScript
- JSX/TSX;
- CSS-in-JS (like JSS, Styled Components, Emotion, Stitches, Vanilla Extract or Panda CSS).
- TailwindCSS
It uses PostCSS (and in particular the
HTML parser) and is based on
stylelint-config-standard
and
stylelint-config-html
.
Checkout all the js
files to learn more about the configurations.
Installation
Using Yarn:
yarn add --dev @snowball-tech/stylelint-config stylelint
Or using NPM:
npm install --save-dev @snowball-tech/stylelint-config stylelint
Note that depending on the configuration you use, you might need to install additional dependencies like
postcss
orpostcss-styled-syntax
Usage
Default configuration
The package offers a default Stylelint configuration containing only the base rules.
To use this default configuration, simply extend it in you own Stylelint
configuration using JavaScript configuration file stylelint.config.js
:
module.exports = {
extends: '@snowball-tech/stylelint-config',
}
Ignored files
Ignored files are defined in the ignoreFiles
config of the
base
configuration.
Complete configuration
You also have the possibility to use the full configuration, including:
- base rules (including promise & unicorn)
- CSS-in-JS
- TailwindCSS
module.exports = {
extends: ['@snowball-tech/stylelint-config/full'],
}
Make your own configuration
Finally, you can also compose you own configuration using each set of configuration exposed by the config.
To do so, simply extend the configuration you want to use in your own Stylelint and pick whichever you want in the list below:
It's recommended to always include the
base
configuration in the first position.Note that the
base
configuration also contains the defaultignoreFiles
.
{
"extends": [
"@snowball-tech/eslint-config/base",
"@snowball-tech/eslint-config/styled",
"@snowball-tech/eslint-config/tailwind"
]
}
⚠️ Important notes: when composing your own configuration, try to keep the configurations files in the order above to ensure the proper behavior of the linter.
Of course, you can also extend any other configuration coming from any other config or plugin and add you own rules and overrides to your configuration.
Development
If you want to contribute, update or edit this Stylelint configuration:
- First, install the needed dependencies:
yarn
Or (if you use NPM):
npm install
- Make the modifications you want
- Test your updates
All your modification should be immediately picked up by the linter in your IDE or using the CLI scripts, so you can check that everything works as expected.
- Commit and push your changes and open a Pull Request.
- When your changes are approved and merged in the
main
branch, a new release will be automatically created and published to NPM.
Useful Commands
yarn run format-fix
to format the code according to our formatting guidelines (using Prettier);yarn run lint-fix
: to check that the code matches our coding guidelines and automatically fix what can be fixed (using ESLint);yarn run test
: run all the unit tests;yarn run test-dev
: run the tests for modified components and re-trigger runs everytime something is modified;
Linting & Formatting
See the dedicated CONVENTIONS.md
and
TOOLING.md
documentations.
Dependencies
Always remember to add dependency if you really need it to avoid cluttering the packages and degrading the performance both in the developers and users side.
It is your duty as a member of the Snowball's engineering team to help mainting the dependencies up to date. This means that you are expected and should help reviewing, testing and merging dependencies updates PRs on a regular basis.
The best way to do so is to regularly check the Renovate dashboard and the list of Pull Requests, for example every morning at the beginning of your day.
Also, see the dedicated TOOLING.md
documentation for
more information.
Tooling
See the dedicated TOOLING.md
documentation.
Contributing
See the dedicated CONTRIBUTING.md
documentation.
Conventions
See the dedicated CONVENTIONS.md
documentation.
Help and feedback
If you have any questions or feedback, feel free to reach out to us using this repository issues or discussions.
You can also use the internal #engineering Slack channel if you are a member of the Snowball tech team.