chore(lint): migrate CSS linting to Biome v2.3 (Tailwind v4) and remove stylelint

upgrade @biomejs/biome to ^2.3.2 and migrate biome.json to v2 schema
enable css.parser.tailwindDirectives; ignore .min.css and vendor CSS
remove stylelint deps and .stylelintrc.yaml; switch lint scripts to Biome
update workspace to use Biome for CSS; drop stylelint settings
This commit is contained in:
George Cushen committed 2025-11-02 20:57:26 +00:00
1 parent 8a7ce247da
commit 6015c70b1e
7 files changed
+89 -1038

No files matched your search

@@ -15,7 +15,6 @@ on:
- "package.json"
- "pnpm-lock.yaml"
- "biome.json"
- ".stylelintrc.yaml"
- "vite.config.js"
pull_request:
types:
@@ -31,7 +30,6 @@ on:
- "package.json"
- "pnpm-lock.yaml"
- "biome.json"
- ".stylelintrc.yaml"
- "vite.config.js"
permissions:
-2
View File
@@ -11,7 +11,6 @@ on:
- "package.json"
- "pnpm-lock.yaml"
- "biome.json"
- ".stylelintrc.yaml"
- "vite.config.js"
pull_request:
branches: [main]
@@ -22,7 +21,6 @@ on:
- "package.json"
- "pnpm-lock.yaml"
- "biome.json"
- ".stylelintrc.yaml"
- "vite.config.js"
permissions:
-39
View File
@@ -1,39 +0,0 @@
extends:
- stylelint-config-standard
ignoreFiles:
- "**/pagefind/**/*.css"
rules:
at-rule-no-unknown:
- true
- ignoreAtRules:
- tailwind
- apply
- layer
- screen
- responsive
- variants
- theme
- utility
- plugin
- source
- custom-variant
no-descending-specificity: null
comment-empty-line-before: null
property-no-vendor-prefix: null
value-no-vendor-prefix: null
string-quotes: null
max-empty-lines: null
indentation: null
max-line-length: null
no-eol-whitespace: null
declaration-empty-line-before: null
declaration-colon-newline-after: null
value-list-comma-newline-after: null
alpha-value-notation: null
hue-degree-notation: null
length-zero-no-unit: null
custom-property-empty-line-before: null
at-rule-empty-line-before: null
declaration-block-no-redundant-longhand-properties: null
no-duplicate-selectors: null
color-function-notation: null
+43 -29
View File
@@ -1,30 +1,32 @@
{
"$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
"$schema": "https://biomejs.dev/schemas/2.3.2/schema.json",
"files": {
"ignore": [
"node_modules/**",
"public/**",
"resources/**",
"**/_gen/**",
"**/assets/dist/**",
"**/*.min.js",
"**/pagefind/**",
"**/_vendor/**",
"**/vendor/**",
"**/*.html",
"**/layouts/**/*.html",
"**/layouts/**/*.htm",
"**/*.webmanifest",
"**/*.backlinks.json",
"**/hugo_stats.json",
"**/*.code-workspace",
"modules/blox-tailwind/data/icons/devicon.json",
"templates/**",
"test/**",
"modules/**/package.json",
"**/assets/jsconfig.json",
"docs-local",
"backups/**"
"includes": [
"**",
"!**/node_modules/**",
"!**/public/**",
"!**/resources/**",
"!**/_gen/**",
"!**/assets/dist/**",
"!**/*.min.js",
"!**/*.min.css",
"!**/pagefind/**",
"!**/_vendor/**",
"!**/vendor/**",
"!**/*.html",
"!**/layouts/**/*.html",
"!**/layouts/**/*.htm",
"!**/*.webmanifest",
"!**/*.backlinks.json",
"!**/hugo_stats.json",
"!**/*.code-workspace",
"!**/modules/blox-tailwind/data/icons/devicon.json",
"!**/templates/**",
"!**/test/**",
"!**/modules/**/package.json",
"!**/assets/jsconfig.json",
"!**/docs-local",
"!**/backups/**"
]
},
"formatter": {
@@ -50,8 +52,8 @@
"enabled": true,
"rules": {
"recommended": true,
"style": { "all": false },
"complexity": { "all": false },
"style": {},
"complexity": {},
"suspicious": {
"noEmptyBlock": "off"
},
@@ -60,7 +62,19 @@
}
}
},
"organizeImports": {
"enabled": true
"assist": { "actions": { "source": { "organizeImports": "on" } } },
"css": {
"parser": {
"tailwindDirectives": true
},
"formatter": {
"enabled": true,
"indentStyle": "space",
"indentWidth": 2,
"lineWidth": 150
},
"linter": {
"enabled": true
}
}
}
+2 -4
View File
@@ -31,13 +31,13 @@
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.codeActionsOnSave": {
"source.fixAll.stylelint": "explicit"
"source.fixAll.biome": "explicit"
},
"[javascript]": { "editor.defaultFormatter": "biomejs.biome" },
"[typescript]": { "editor.defaultFormatter": "biomejs.biome" },
"[json]": { "editor.defaultFormatter": "biomejs.biome" },
"[css]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
"[css]": { "editor.defaultFormatter": "biomejs.biome" },
"[html]": {
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true
@@ -65,7 +65,6 @@
"typescriptreact"
],
"stylelint.validate": ["css"],
"tailwindCSS.emmetCompletions": true,
@@ -76,7 +75,6 @@
"recommendations": [
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",
"stylelint.vscode-stylelint",
"bradlc.vscode-tailwindcss",
"redhat.vscode-yaml",
"tamasfe.even-better-toml",
+7 -10
View File
@@ -27,21 +27,18 @@
"vite-plugin-static-copy": "^3.1.1"
},
"devDependencies": {
"@biomejs/biome": "^1.9.4",
"stylelint": "14.8.2",
"stylelint-config-standard": "~25.0.0",
"stylelint-scss": "~4.2.0"
"@biomejs/biome": "^2.3.2"
},
"scripts": {
"prod": "scripts/view-starter-prod.sh",
"dev": "scripts/view-starter-dev.sh",
"test": "scripts/view-test.sh",
"lint": "pnpm run lint:code && pnpm run lint:style",
"lint:code": "biome check --reporter=summary .",
"lint:code:fix": "biome check --write .",
"lint:style": "stylelint '**/*.css'",
"lint:style:fix": "stylelint '**/*.css' --fix",
"format": "pnpm run lint:code:fix && pnpm run lint:style:fix",
"lint": "biome check --reporter=summary .",
"lint:code": "biome check --reporter=summary . --linter-enabled=true --formatter-enabled=false",
"lint:code:fix": "biome check --write . --linter-enabled=true --formatter-enabled=false",
"lint:style": "biome check --reporter=summary modules/blox-tailwind/assets/css/ modules/blox-plugin-reveal/assets/css/ --linter-enabled=true --formatter-enabled=false",
"lint:style:fix": "biome check --write modules/blox-tailwind/assets/css/ modules/blox-plugin-reveal/assets/css/ --linter-enabled=true --formatter-enabled=false",
"format": "biome check --write .",
"update:starters": "poetry run python ./scripts/update.py",
"vendor:libs": "vite build --config vite.config.js",
"vendor:libs:watch": "vite build --config vite.config.js --watch",
+37 -952
View File
File diff suppressed because it is too large. Load diff