Offizielles @tailwindcss/upgrade-Tool durchgelaufen: tailwind.config.ts entfernt, Theme nach globals.css als @theme-Block (CSS-first-Config), PostCSS auf @tailwindcss/postcss umgestellt. tailwind-merge im selben Schritt auf v3 (Pflicht-Kopplung an Tailwind v4). Codemod-Bug korrigiert: variant="outline" (Prop-Wert) wurde faelschlich als CSS-Klasse zu "outline-solid" umbenannt in 4 Call-Sites - zurueckgesetzt. Neue Lint-Regel (no-restricted-syntax) gegen *-opacity-* Utilities, die in v4 nicht mehr existieren und von tailwind-merge v3 lautlos verschluckt wuerden statt einen Fehler zu werfen. tsc/lint/build gruen. Visueller Regressionstest offen (kein Browser-Tool in dieser Session) - folgt auf 132 vor 131-Deploy.
35 lines
1.0 KiB
JavaScript
35 lines
1.0 KiB
JavaScript
import nextCoreWebVitals from "eslint-config-next/core-web-vitals";
|
|
|
|
// Flat Config (ESLint 10 unterstützt das alte .eslintrc-Format nicht mehr).
|
|
// Entspricht dem bisherigen `{ "extends": "next/core-web-vitals" }`.
|
|
const eslintConfig = [
|
|
{
|
|
ignores: [
|
|
".next/**",
|
|
"out/**",
|
|
"build/**",
|
|
"next-env.d.ts",
|
|
],
|
|
},
|
|
...nextCoreWebVitals,
|
|
{
|
|
rules: {
|
|
// Tailwind v3 *-opacity-* Utilities existieren in v4 nicht mehr und
|
|
// werden von tailwind-merge v3 lautlos verschluckt statt einen Fehler
|
|
// zu werfen (siehe PROJ-79). Klassen wie bg-opacity-50 durch die
|
|
// v4-Slash-Syntax (bg-black/50) ersetzen.
|
|
"no-restricted-syntax": [
|
|
"error",
|
|
{
|
|
selector:
|
|
"Literal[value=/(^|\\s)(bg|text|border|ring|divide|placeholder)-opacity-\\d+(\\s|$)/]",
|
|
message:
|
|
"Tailwind-v3-*-opacity-*-Utility gefunden. In v4 durch Slash-Syntax ersetzen (z.B. bg-black/50 statt bg-opacity-50).",
|
|
},
|
|
],
|
|
},
|
|
},
|
|
];
|
|
|
|
export default eslintConfig;
|