Upgrade dependencies to latest stable versions, migrate Tailwind CSS v3 to v4
Bumped React, Supabase JS, and type packages to latest patch/minor releases. Migrated the Tailwind pipeline from the v3 JS-config format to v4's CSS-first @theme setup (@tailwindcss/postcss, @import "tailwindcss" in globals.css), removing tailwind.config.ts and autoprefixer since v4 handles both natively. All existing color/radius/font tokens were ported 1:1 so no component classes needed to change. TypeScript and ESLint were bumped and tested against their true latest majors (7.x and 10.x) but both broke the build/lint pipeline, so they're pinned to the latest working minor instead (TypeScript 5.9.3, ESLint 9.39.5).
This commit is contained in:
@@ -1,8 +1,45 @@
|
||||
@tailwind base;
|
||||
@tailwind components;
|
||||
@tailwind utilities;
|
||||
@import "tailwindcss";
|
||||
|
||||
/* Design tokens from spec §7 (ported from tailwind.config.ts for Tailwind v4) */
|
||||
@theme {
|
||||
--color-brand-50: #fdf3f8;
|
||||
--color-brand-100: #fdeaf3;
|
||||
--color-brand-200: #f6cfe2;
|
||||
--color-brand-500: #d6046e;
|
||||
--color-brand-600: #b0035a;
|
||||
--color-brand-700: #a30354;
|
||||
|
||||
--color-surface: #f9f1f5;
|
||||
|
||||
--color-border: #eedde6;
|
||||
--color-border-subtle: #f7e8ef;
|
||||
|
||||
--color-ink: #2d1c26;
|
||||
--color-ink-body: #503b47;
|
||||
--color-ink-muted: #7a636f;
|
||||
|
||||
--color-success-bg: #dff6dd;
|
||||
--color-success-text: #0e700e;
|
||||
|
||||
--color-danger-bg: #fde7e9;
|
||||
--color-danger-text: #b10e1c;
|
||||
--color-danger-solid: #c50f1f;
|
||||
|
||||
--color-warning-bg: #fff4ce;
|
||||
--color-warning-text: #835b00;
|
||||
|
||||
--color-info-bg: #d7f0f0;
|
||||
--color-info-text: #00666d;
|
||||
|
||||
--color-purple-bg: #f0ecf7;
|
||||
--color-purple-text: #5c2e91;
|
||||
|
||||
--radius: 8px;
|
||||
|
||||
--font-sans: var(--font-nunito), system-ui, sans-serif;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: theme("colors.surface");
|
||||
color: theme("colors.ink.DEFAULT");
|
||||
background-color: var(--color-surface);
|
||||
color: var(--color-ink);
|
||||
}
|
||||
|
||||
1658
package-lock.json
generated
1658
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
20
package.json
20
package.json
@@ -10,21 +10,21 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@supabase/ssr": "^0.12.1",
|
||||
"@supabase/supabase-js": "^2.110.3",
|
||||
"@supabase/supabase-js": "^2.110.5",
|
||||
"lucide-react": "^1.24.0",
|
||||
"next": "16.2.10",
|
||||
"react": "19.2.4",
|
||||
"react-dom": "19.2.4"
|
||||
"react": "19.2.7",
|
||||
"react-dom": "19.2.7"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^20",
|
||||
"@types/react": "^19",
|
||||
"@types/react-dom": "^19",
|
||||
"autoprefixer": "^10.5.2",
|
||||
"eslint": "^9",
|
||||
"@tailwindcss/postcss": "^4.3.2",
|
||||
"@types/node": "^24.13.3",
|
||||
"@types/react": "^19.2.17",
|
||||
"@types/react-dom": "^19.2.3",
|
||||
"eslint": "^9.39.5",
|
||||
"eslint-config-next": "16.2.10",
|
||||
"postcss": "^8.5.19",
|
||||
"tailwindcss": "^3.4.19",
|
||||
"typescript": "^5"
|
||||
"tailwindcss": "^4.3.2",
|
||||
"typescript": "^5.9.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
module.exports = {
|
||||
plugins: {
|
||||
tailwindcss: {},
|
||||
autoprefixer: {},
|
||||
"@tailwindcss/postcss": {},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
import type { Config } from "tailwindcss";
|
||||
|
||||
// Design tokens from spec §7
|
||||
const config: Config = {
|
||||
content: ["./app/**/*.{ts,tsx}", "./components/**/*.{ts,tsx}"],
|
||||
theme: {
|
||||
extend: {
|
||||
colors: {
|
||||
brand: {
|
||||
50: "#fdf3f8",
|
||||
100: "#fdeaf3",
|
||||
200: "#f6cfe2",
|
||||
500: "#d6046e",
|
||||
600: "#b0035a",
|
||||
700: "#a30354",
|
||||
},
|
||||
surface: "#f9f1f5",
|
||||
border: {
|
||||
DEFAULT: "#eedde6",
|
||||
subtle: "#f7e8ef",
|
||||
},
|
||||
ink: {
|
||||
DEFAULT: "#2d1c26",
|
||||
body: "#503b47",
|
||||
muted: "#7a636f",
|
||||
},
|
||||
success: { bg: "#dff6dd", text: "#0e700e" },
|
||||
danger: { bg: "#fde7e9", text: "#b10e1c", solid: "#c50f1f" },
|
||||
warning: { bg: "#fff4ce", text: "#835b00" },
|
||||
info: { bg: "#d7f0f0", text: "#00666d" },
|
||||
purple: { bg: "#f0ecf7", text: "#5c2e91" },
|
||||
},
|
||||
borderRadius: {
|
||||
DEFAULT: "8px",
|
||||
},
|
||||
fontFamily: {
|
||||
sans: ["var(--font-nunito)", "system-ui", "sans-serif"],
|
||||
},
|
||||
},
|
||||
},
|
||||
plugins: [],
|
||||
};
|
||||
|
||||
export default config;
|
||||
Reference in New Issue
Block a user