@acme-skunkworks/stylelint-config
v1.0.0
Published
Shared Tailwind-friendly Stylelint config (standard + Tailwind CSS + alphabetical property order).
Maintainers
Readme
@acme-skunkworks/stylelint-config
Shared, Tailwind-friendly Stylelint config for Acme Skunkworks projects — stylelint-config-standard + stylelint-config-tailwindcss, with alphabetical property ordering via stylelint-order.
📦 Installation
stylelint is a peer dependency; the extended configs and the order plugin are bundled, so you only install this package plus Stylelint itself:
pnpm add -D @acme-skunkworks/stylelint-config stylelint
# or
npm install --save-dev @acme-skunkworks/stylelint-config stylelint🚀 Usage
Create a stylelint.config.mjs (or .stylelintrc.json) in your project root and extend the preset:
/** @type {import('stylelint').Config} */
export default {
extends: ["@acme-skunkworks/stylelint-config"],
};// .stylelintrc.json
{
"extends": "@acme-skunkworks/stylelint-config",
}Add a script to package.json and run it:
{
"scripts": {
"lint:css": "stylelint \"**/*.css\""
}
}🎯 What you get
The preset composes three layers, in order:
stylelint-config-standard— the community baseline of modern, sensible CSS conventions.stylelint-config-tailwindcss— layered on top so Tailwind's at-rules and functions lint cleanly. This is what stopsat-rule-no-unknown/function-no-unknownfrom flagging@tailwind,@import "tailwindcss",@theme,@apply,theme(),screen()and friends. The preset assumes you're using Tailwind — that's the house default across our stack.stylelint-orderwithorder/properties-alphabetical-order— declarations within a rule are ordered alphabetically, so diffs stay small and property placement is never a debate.
🛠️ Overriding rules
Everything is a normal Stylelint config, so override or disable any rule after extending:
/** @type {import('stylelint').Config} */
export default {
extends: ["@acme-skunkworks/stylelint-config"],
rules: {
// Turn off alphabetical property ordering for this project.
"order/properties-alphabetical-order": null,
},
};Use a .stylelintignore file (or the ignoreFiles config option) to scope which files are linted — the preset intentionally does not ship ignore globs, leaving that to the consumer.
📁 Package structure
.
├── src/index.ts # the config (source)
├── dist/ # published artifact (compiled from src/)
├── fixtures/tailwind.css # self-test fixture
├── stylelint.config.mjs # repo self-test — extends the built preset
├── package.json
└── README.md🤝 Contributing
Decisions for this package are recorded as Linear issues, not in-repo ADRs. Found an issue or want to suggest a rule change? Open an issue in the repository.
📄 License
MIT License — see LICENSE. Provided "as is", without warranty of any kind.
