Files
Agent-n8n/n8n-n8n-1.109.2/packages/@n8n/stylelint-config/src/configs/base.ts
2025-09-08 04:48:28 +08:00

94 lines
2.5 KiB
TypeScript
Executable File

import type { Config } from 'stylelint';
export const baseConfig: Config = {
// TODO: Extending with standard config requires a lot of manual fixes but would be great to have
// extends: 'stylelint-config-standard-scss',
// Basic SCSS support with essential rules
plugins: ['stylelint-scss'],
rules: {
'no-empty-source': true,
// Basic syntax and consistency rules
'color-hex-length': 'short',
'comment-no-empty': true,
// 'declaration-block-no-duplicate-properties': disabled due to vendor prefixes
'no-duplicate-selectors': true,
'no-invalid-double-slash-comments': true,
// Quality rules (keep only the working ones)
'length-zero-no-unit': true,
// 'no-descending-specificity': disabled - too many existing issues (would require major refactoring) but this would be a must have
'no-duplicate-at-import-rules': true,
'shorthand-property-no-redundant-values': true,
// 'declaration-block-no-shorthand-property-overrides': disabled - conflicts with intentional CSS patterns
'at-rule-no-unknown': [
true,
{
ignoreAtRules: [
'tailwind',
'apply',
'variants',
'responsive',
'screen',
'use',
'forward',
'include',
'mixin',
'function',
'return',
'if',
'else',
'for',
'each',
'while',
'extend',
'at-root',
'warn',
'error',
],
},
],
'at-rule-disallowed-list': [
['import'],
{
message:
'@import is deprecated! Use @use for local SCSS files. For third-party libraries that need scoping: use @use "sass:meta"; and @include meta.load-css("library") inside a CSS selector.',
},
],
// SCSS specific rules
'scss/dollar-variable-colon-space-after': 'always-single-line',
'scss/dollar-variable-colon-space-before': 'never',
'scss/dollar-variable-no-missing-interpolation': true,
'scss/double-slash-comment-whitespace-inside': 'always',
'scss/operator-no-unspaced': true,
'scss/property-no-unknown': [
true,
{
ignoreProperties: ['composes'],
},
],
'scss/at-import-partial-extension-disallowed-list': ['scss'],
// 'scss/selector-no-redundant-nesting-selector': disabled - would require manual fixes across many files
},
ignoreFiles: [
'**/node_modules/**/*',
'**/dist/**/*',
'**/build/**/*',
'**/.turbo/**/*',
'**/coverage/**/*',
],
overrides: [
{
files: ['**/*.vue'],
customSyntax: 'postcss-html',
},
{
files: ['**/*.scss', '**/*.sass'],
customSyntax: 'postcss-scss',
},
],
};
export default baseConfig;