UNPKG

@bitfactory/stylelint-config

Version:
166 lines (122 loc) 3.35 kB
# Configuration > [!IMPORTANT] > **v6.3.0+**: Supports both ES modules (ESM) and CommonJS. > > Use `.mjs` config files for ESM or traditional `.js`/`.cjs` files for CommonJS. ## Configuration Examples ### Base CSS ```js // stylelint.config.mjs export default { extends: ['@bitfactory/stylelint-config'], }; ``` ### PostCSS (includes Vue support) ```js // stylelint.config.mjs export default { extends: ['@bitfactory/stylelint-config/postcss'], }; ``` ### SCSS (includes Vue support) ```js // stylelint.config.mjs export default { extends: ['@bitfactory/stylelint-config/scss'], }; ``` ### SASS ```js // stylelint.config.mjs export default { extends: ['@bitfactory/stylelint-config/sass'], }; ``` ### Tailwind CSS (includes Vue support) **For Tailwind CSS v3:** ```js // stylelint.config.mjs export default { extends: ['@bitfactory/stylelint-config/tailwind'], }; ``` **For Tailwind CSS v4:** ```js // stylelint.config.mjs export default { extends: ['@bitfactory/stylelint-config/tailwindcss'], }; ``` ## Vue 3 Enhanced Features For Vue 3 enhanced features (`:deep()`, `v-bind()`, etc.) with CSS Modules / style tag usage, add `stylelint-config-recommended-vue` to your configuration: ```js // stylelint.config.mjs export default { extends: [ '@bitfactory/stylelint-config/postcss', // or '/scss' or '/tailwind' or '/tailwindcss' 'stylelint-config-recommended-vue', ], }; ``` ## Custom Configuration ### Overriding Rules ```js // stylelint.config.mjs export default { extends: ['@bitfactory/stylelint-config'], rules: { 'color-hex-length': 'long', 'selector-max-id': 2, }, }; ``` ### Turning Off Rules ```js // stylelint.config.mjs export default { extends: ['@bitfactory/stylelint-config'], rules: { 'declaration-no-important': null, }, }; ``` ### Disabling Rules Inline ```css .selector { color: #fff !important; /* stylelint-disable-line declaration-no-important */ } ``` More about disabling rules: [Stylelint documentation](https://stylelint.io/user-guide/ignore-code/) ## Module Format Support This package supports both **ES Modules (ESM)** and **CommonJS** formats: ### ESM (Recommended) Use `.mjs` or `.js` files with `"type": "module"` in your `package.json`: ```js // stylelint.config.mjs or .stylelintrc.mjs export default { extends: ['@bitfactory/stylelint-config'], }; ``` ### CommonJS (Legacy) Use `.cjs` or `.js` files (without `"type": "module"`): ```js // .stylelintrc.cjs or .stylelintrc.js module.exports = { extends: ['@bitfactory/stylelint-config'], }; ``` ## SCSS vs SASS Naming Patterns The `scss` and `sass` configs use **different naming pattern strategies**: ### SCSS Config (Strict) Uses **strict kebab-case** patterns from `stylelint-config-standard-scss`: - Functions: `^(-?[a-z][a-z0-9]*)(-[a-z0-9]+)*$` - Examples: `get-color`, `calculate-width` - Variables: Must be kebab-case - Examples: `$primary-color`, `$font-size` ### SASS Config (Permissive) Uses **permissive patterns** allowing numbers at the end: - Functions: `^[a-z]+([a-z0-9-]+[a-z0-9]+)?$` - Examples: `get-color2`, `calculate-width3` - Variables: Allows leading underscore - Examples: `$_private-var`, `$font-size2` Choose based on your project's naming conventions. Both are valid approaches.