ui: add shadcn-svelte foundation and theming

Set up shadcn-svelte components and adopt its design-token system as the
base for modernizing the UI. Switch dark mode from the data-theme attribute
to the .dark class so shadcn primitives theme correctly.

- add components.json, $lib alias (tsconfig + vite), cn() util
- install shadcn primitives under src/lib/components/ui
- rewrite index.css with shadcn tokens (zinc + brand teal accent)
- keep legacy utility/class aliases as a transitional shim
- toggle .dark class from theme store in App.svelte

Co-Authored-By: Claude Opus 4.8 <[email protected]>
Claude-Session: https://claude.ai/code/session_01UmuGqwNBJNEAMaWsdCDqUC
This commit is contained in:
Claude
2026-06-27 11:42:43 +00:00
parent 32bc781326
commit f0144a2361
142 changed files with 3842 additions and 103 deletions
+6
View File
@@ -2,6 +2,7 @@ import { defineConfig } from "vite";
import { svelte } from "@sveltejs/vite-plugin-svelte";
import tailwindcss from "@tailwindcss/vite";
import { compression } from "vite-plugin-compression2";
import path from "node:path";
// https://vite.dev/config/
export default defineConfig({
@@ -21,6 +22,11 @@ export default defineConfig({
}),
],
base: "/ui/",
resolve: {
alias: {
$lib: path.resolve(__dirname, "./src/lib"),
},
},
build: {
outDir: "../internal/server/ui_dist",
assetsDir: "assets",