Files
vikunja/frontend/.stylelintrc.json
kolaente a08667b669 feat(frontend): upgrade Tailwind CSS from v3 to v4
- Replace tailwindcss v3 with tailwindcss v4 + @tailwindcss/vite plugin
- Create dedicated tailwind.css entry with granular imports (skip preflight)
- Use CSS-first config with prefix(tw) instead of JS config
- Switch from PostCSS plugin to Vite plugin for better performance
- Update class prefix from tw- (dash) to tw: (colon) in all Vue files
- Remove @tailwind directives from global.scss
- Delete tailwind.config.js (replaced by CSS directives)
- Update stylelint at-rules for v4 directives
2026-03-03 11:46:18 +01:00

95 lines
2.1 KiB
JSON

{
"extends": [
"stylelint-config-standard-scss",
"stylelint-config-recommended-vue"
],
"customSyntax": "postcss-html",
"plugins": [
"stylelint-use-logical"
],
"rules": {
"alpha-value-notation": null,
"at-rule-empty-line-before": null,
"at-rule-no-unknown": [
true,
{
"ignoreAtRules": [
"apply",
"theme",
"utility",
"custom-variant",
"source",
"reference",
"variants",
"responsive",
"screen",
"use",
"forward",
"import",
"each"
]
}
],
"color-function-alias-notation": null,
"color-function-notation": null,
"color-hex-length": "long",
"csstools/use-logical": true,
"declaration-block-no-redundant-longhand-properties": null,
"declaration-empty-line-before": null,
"declaration-property-value-keyword-no-deprecated": null,
"declaration-property-value-no-unknown": null,
"hue-degree-notation": null,
"media-query-no-invalid": null,
"no-descending-specificity": null,
"no-invalid-position-declaration": null,
"property-no-deprecated": null,
"property-no-vendor-prefix": [
true,
{
"ignoreProperties": ["appearance"]
}
],
"rule-empty-line-before": null,
"scss/at-rule-no-unknown": null,
"scss/dollar-variable-colon-space-after": "always",
"scss/dollar-variable-colon-space-before": "never",
"scss/double-slash-comment-empty-line-before": null,
"scss/double-slash-comment-whitespace-inside": null,
"scss/no-global-function-names": null,
"selector-class-pattern": null,
"selector-pseudo-element-colon-notation": null,
"selector-pseudo-element-no-unknown": [
true,
{
"ignorePseudoElements": ["v-deep", "last-child"]
}
],
"value-keyword-case": null
},
"overrides": [
{
"files": ["*.vue", "**/*.vue"],
"rules": {
"selector-pseudo-class-no-unknown": [
true,
{
"ignorePseudoClasses": ["deep", "global"]
}
],
"selector-pseudo-element-no-unknown": [
true,
{
"ignorePseudoElements": ["v-deep", "v-global", "v-slotted"]
}
]
}
}
],
"ignoreFiles": [
"node_modules/**/*",
"dist/**/*",
"**/*.js",
"**/*.ts"
]
}