From 3f6821181c88beaebd67acb4486e3d5451812c10 Mon Sep 17 00:00:00 2001 From: ReaJason Date: Fri, 14 Feb 2025 23:12:55 +0800 Subject: [PATCH] chore: upgrade to Tailwind CSS v4 --- web/bun.lockb | Bin 164668 -> 186588 bytes web/package.json | 54 +++++++-------- web/postcss.config.js | 6 -- web/src/index.css | 154 ++++++++++++++++++++++++++---------------- web/vite.config.ts | 3 +- 5 files changed, 123 insertions(+), 94 deletions(-) delete mode 100644 web/postcss.config.js diff --git a/web/bun.lockb b/web/bun.lockb index 024eb02cb1def700bf31804f0843690b810a9215..5c04916ccfed459a1811b8929dff8a30a95e1c09 100755 GIT binary patch delta 49172 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 JE5$Dt{2wjK3@ZQt diff --git a/web/package.json b/web/package.json index da7d8562..fb63ce00 100644 --- a/web/package.json +++ b/web/package.json @@ -13,50 +13,48 @@ }, "devDependencies": { "@biomejs/biome": "1.9.4", - "@tanstack/router-plugin": "^1.97.8", - "@types/node": "^22.10.7", - "@types/react": "^19.0.7", + "@tanstack/router-plugin": "^1.104.1", + "@types/node": "^22.13.4", + "@types/react": "^19.0.8", "@types/react-dom": "^19.0.3", "@vitejs/plugin-react": "^4.3.4", "@types/react-copy-to-clipboard": "^5.0.7", "@types/react-syntax-highlighter": "^15.5.13", - "autoprefixer": "^10.4.20", - "postcss": "^8.5.1", - "tailwindcss": "^3.4.17", + "tailwindcss": "^4.0.6", "typescript": "^5.7.3", - "vite": "^6.0.11" + "vite": "^6.1.0" }, "dependencies": { - "@hookform/resolvers": "^3.10.0", - "@radix-ui/react-alert-dialog": "^1.1.4", - "@radix-ui/react-checkbox": "^1.1.3", - "@radix-ui/react-dropdown-menu": "^2.1.4", - "@radix-ui/react-label": "^2.1.1", - "@radix-ui/react-radio-group": "^1.2.2", - "@radix-ui/react-select": "^2.1.4", - "@radix-ui/react-separator": "^1.1.1", - "@radix-ui/react-slot": "^1.1.1", - "@radix-ui/react-switch": "^1.1.2", - "@radix-ui/react-tabs": "^1.1.2", - "@radix-ui/react-tooltip": "^1.1.6", - "@tanstack/react-query": "^5.64.2", - "@tanstack/react-router": "^1.97.8", - "@tanstack/router-devtools": "^1.97.8", + "@hookform/resolvers": "^4.0.0", + "@radix-ui/react-alert-dialog": "^1.1.6", + "@radix-ui/react-checkbox": "^1.1.4", + "@radix-ui/react-dropdown-menu": "^2.1.6", + "@radix-ui/react-label": "^2.1.2", + "@radix-ui/react-radio-group": "^1.2.3", + "@radix-ui/react-select": "^2.1.6", + "@radix-ui/react-separator": "^1.1.2", + "@radix-ui/react-slot": "^1.1.2", + "@radix-ui/react-switch": "^1.1.3", + "@radix-ui/react-tabs": "^1.1.3", + "@radix-ui/react-tooltip": "^1.1.8", + "@tailwindcss/vite": "^4.0.6", + "@tanstack/react-query": "^5.66.0", + "@tanstack/react-router": "^1.104.1", + "@tanstack/router-devtools": "^1.104.3", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", - "i18next": "^24.2.1", - "lucide-react": "^0.473.0", - "next-themes": "^0.4.4", + "i18next": "^24.2.2", + "lucide-react": "^0.475.0", "react": "^19.0.0", "react-copy-to-clipboard": "^5.1.0", "react-dom": "^19.0.0", "react-hook-form": "^7.54.2", "react-i18next": "^15.4.0", "react-syntax-highlighter": "^15.6.1", - "sonner": "^1.7.2", - "tailwind-merge": "^2.6.0", + "sonner": "^1.7.4", + "tailwind-merge": "^3.0.1", "tailwindcss-animate": "^1.0.7", - "zod": "^3.24.1" + "zod": "^3.24.2" }, "trustedDependencies": ["@biomejs/biome"] } diff --git a/web/postcss.config.js b/web/postcss.config.js deleted file mode 100644 index 2aa7205d..00000000 --- a/web/postcss.config.js +++ /dev/null @@ -1,6 +0,0 @@ -export default { - plugins: { - tailwindcss: {}, - autoprefixer: {}, - }, -}; diff --git a/web/src/index.css b/web/src/index.css index 9aea1b5e..a4b116f9 100644 --- a/web/src/index.css +++ b/web/src/index.css @@ -1,68 +1,104 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; -@layer base { - :root { - --background: 0 0% 100%; - --foreground: 240 10% 3.9%; - --card: 0 0% 100%; - --card-foreground: 240 10% 3.9%; - --popover: 0 0% 100%; - --popover-foreground: 240 10% 3.9%; - --primary: 240 5.9% 10%; - --primary-foreground: 0 0% 98%; - --secondary: 240 4.8% 95.9%; - --secondary-foreground: 240 5.9% 10%; - --muted: 240 4.8% 95.9%; - --muted-foreground: 240 3.8% 46.1%; - --accent: 240 4.8% 95.9%; - --accent-foreground: 240 5.9% 10%; - --destructive: 0 84.2% 60.2%; - --destructive-foreground: 0 0% 98%; - --border: 240 5.9% 90%; - --input: 240 5.9% 90%; - --ring: 240 10% 3.9%; - --chart-1: 12 76% 61%; - --chart-2: 173 58% 39%; - --chart-3: 197 37% 24%; - --chart-4: 43 74% 66%; - --chart-5: 27 87% 67%; - --radius: 0.3rem; - } +@import "tailwindcss"; - .dark { - --background: 240 10% 3.9%; - --foreground: 0 0% 98%; - --card: 240 10% 3.9%; - --card-foreground: 0 0% 98%; - --popover: 240 10% 3.9%; - --popover-foreground: 0 0% 98%; - --primary: 0 0% 98%; - --primary-foreground: 240 5.9% 10%; - --secondary: 240 3.7% 15.9%; - --secondary-foreground: 0 0% 98%; - --muted: 240 3.7% 15.9%; - --muted-foreground: 240 5% 64.9%; - --accent: 240 3.7% 15.9%; - --accent-foreground: 0 0% 98%; - --destructive: 0 62.8% 30.6%; - --destructive-foreground: 0 0% 98%; - --border: 240 3.7% 15.9%; - --input: 240 3.7% 15.9%; - --ring: 240 4.9% 83.9%; - --chart-1: 220 70% 50%; - --chart-2: 160 60% 45%; - --chart-3: 30 80% 55%; - --chart-4: 280 65% 60%; - --chart-5: 340 75% 55%; - } +@plugin "tailwindcss-animate"; + +@custom-variant dark (&:is(.dark *)); + +@theme { + --font-sans: var(--font-geist-sans); + --font-mono: var(--font-geist-mono); +} + +:root { + --background: hsl(0 0% 100%); + --foreground: hsl(240 10% 3.9%); + --card: hsl(0 0% 100%); + --card-foreground: hsl(240 10% 3.9%); + --popover: hsl(0 0% 100%); + --popover-foreground: hsl(240 10% 3.9%); + --primary: hsl(240 5.9% 10%); + --primary-foreground: hsl(0 0% 98%); + --secondary: hsl(240 4.8% 95.9%); + --secondary-foreground: hsl(240 5.9% 10%); + --muted: hsl(240 4.8% 95.9%); + --muted-foreground: hsl(240 3.8% 46.1%); + --accent: hsl(240 4.8% 95.9%); + --accent-foreground: hsl(240 5.9% 10%); + --destructive: hsl(0 84.2% 60.2%); + --destructive-foreground: hsl(0 0% 98%); + --border: hsl(240 5.9% 90%); + --input: hsl(240 5.9% 90%); + --ring: hsl(240 10% 3.9%); + --chart-1: hsl(12 76% 61%); + --chart-2: hsl(173 58% 39%); + --chart-3: hsl(197 37% 24%); + --chart-4: hsl(43 74% 66%); + --chart-5: hsl(27 87% 67%); + --radius: 0.3rem; +} + +.dark { + --background: hsl(240 10% 3.9%); + --foreground: hsl(0 0% 98%); + --card: hsl(240 10% 3.9%); + --card-foreground: hsl(0 0% 98%); + --popover: hsl(240 10% 3.9%); + --popover-foreground: hsl(0 0% 98%); + --primary: hsl(0 0% 98%); + --primary-foreground: hsl(240 5.9% 10%); + --secondary: hsl(240 3.7% 15.9%); + --secondary-foreground: hsl(0 0% 98%); + --muted: hsl(240 3.7% 15.9%); + --muted-foreground: hsl(240 5% 64.9%); + --accent: hsl(240 3.7% 15.9%); + --accent-foreground: hsl(0 0% 98%); + --destructive: hsl(0 62.8% 30.6%); + --destructive-foreground: hsl(0 0% 98%); + --border: hsl(240 3.7% 15.9%); + --input: hsl(240 3.7% 15.9%); + --ring: hsl(240 4.9% 83.9%); + --chart-1: hsl(220 70% 50%); + --chart-2: hsl(160 60% 45%); + --chart-3: hsl(30 80% 55%); + --chart-4: hsl(280 65% 60%); + --chart-5: hsl(340 75% 55%); +} + +@theme inline { + --color-background: var(--background); + --color-foreground: var(--foreground); + --color-card: var(--card); + --color-card-foreground: var(--card-foreground); + --color-popover: var(--popover); + --color-popover-foreground: var(--popover-foreground); + --color-primary: var(--primary); + --color-primary-foreground: var(--primary-foreground); + --color-secondary: var(--secondary); + --color-secondary-foreground: var(--secondary-foreground); + --color-muted: var(--muted); + --color-muted-foreground: var(--muted-foreground); + --color-accent: var(--accent); + --color-accent-foreground: var(--accent-foreground); + --color-destructive: var(--destructive); + --color-destructive-foreground: var(--destructive-foreground); + --color-border: var(--border); + --color-input: var(--input); + --color-ring: var(--ring); + --color-chart-1: var(--chart-1); + --color-chart-2: var(--chart-2); + --color-chart-3: var(--chart-3); + --color-chart-4: var(--chart-4); + --color-chart-5: var(--chart-5); + --radius-sm: calc(var(--radius) - 4px); + --radius-md: calc(var(--radius) - 2px); + --radius-lg: var(--radius); + --radius-xl: calc(var(--radius) + 4px); } @layer base { * { - @apply border-border; + @apply border-border outline-ring/50; } - body { @apply bg-background text-foreground; } diff --git a/web/vite.config.ts b/web/vite.config.ts index 9b61b5e2..a8690dd3 100644 --- a/web/vite.config.ts +++ b/web/vite.config.ts @@ -1,11 +1,12 @@ import path from "node:path"; +import tailwindcss from "@tailwindcss/vite"; import { TanStackRouterVite } from "@tanstack/router-plugin/vite"; import react from "@vitejs/plugin-react"; import { defineConfig } from "vite"; // https://vitejs.dev/config/ export default defineConfig({ - plugins: [TanStackRouterVite({}), react()], + plugins: [TanStackRouterVite({}), react(), tailwindcss()], resolve: { alias: { "@": path.resolve(__dirname, "./src"),