The standard shareable config for Stylelint.
It extends stylelint-config-recommended
and turns on additional rules to enforce modern conventions found in the CSS specifications.
To see the rules that this config uses, please read the config itself.
@import url("foo.css");
@import url("bar.css");
@custom-media --foo (min-width: 30em);
/**
* Multi-line comment
*/
:root {
--brand-red: hsl(5deg 10% 40%);
}
/* Single-line comment */
.class-foo:not(a, div) {
margin: 0;
top: calc(100% - 2rem);
}
/* Flush single line comment */
@media (width >= 60em) {
#id-bar {
/* Flush to parent comment */
--offset: 0px;
color: #fff;
font-family: Helvetica, "Arial Black", sans-serif;
left: calc(var(--offset) 50%);
}
/* Flush nested single line comment */
a::after {
display: block;
content: "→";
background-image: url("x.svg");
}
}
@keyframes fade-in {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
Note: the config is tested against this example, as such the example contains plenty of CSS syntax and features.
npm install stylelint-config-standard --save-dev
Set your Stylelint config to:
{
"extends": "stylelint-config-standard"
}
Add a "rules"
key to your config, then add your overrides and additions there.
You can turn off rules by setting its value to null
. For example:
{
"extends": "stylelint-config-standard",
"rules": {
"selector-class-pattern": null
}
}
Or lower the severity of a rule to a warning using the severity
secondary option. For example:
{
"extends": "stylelint-config-standard",
"rules": {
"property-no-vendor-prefix": [
true,
{
"severity": "warning"
}
]
}
}
Or to add a rule, For example, the unit-allowed-list
one:
{
"extends": "stylelint-config-standard",
"rules": {
"unit-allowed-list": ["em", "rem", "s"]
}
}
We recommend adding more of Stylelint's rules to your config as these rules need to be configured to suit your specific needs.