feat: dashboard, Convex auth, UI components, and LemonSpace branding

- Add dashboard shell with auth integration
- Wire Better Auth / Convex (client, server, HTTP routes)
- Add shadcn-style UI primitives and logo assets
- Update global styles and landing page
- Add internal docs (.docs)

Made-with: Cursor
This commit is contained in:
Matthias
2026-03-25 10:15:42 +01:00
parent 2cead5e87b
commit cd857a01f5
42 changed files with 24599 additions and 118 deletions

View File

@@ -49,72 +49,72 @@
}
:root {
--background: oklch(1 0 0);
--foreground: oklch(0.147 0.004 49.25);
--card: oklch(1 0 0);
--card-foreground: oklch(0.147 0.004 49.25);
--popover: oklch(1 0 0);
--popover-foreground: oklch(0.147 0.004 49.25);
--primary: oklch(0.511 0.096 186.391);
--primary-foreground: oklch(0.984 0.014 180.72);
--secondary: oklch(0.967 0.001 286.375);
--secondary-foreground: oklch(0.21 0.006 285.885);
--muted: oklch(0.97 0.001 106.424);
--muted-foreground: oklch(0.553 0.013 58.071);
--accent: oklch(0.97 0.001 106.424);
--accent-foreground: oklch(0.216 0.006 56.043);
--background: oklch(0.985 0.005 80);
--foreground: oklch(0.18 0.012 60);
--card: oklch(0.993 0.003 80);
--card-foreground: oklch(0.18 0.012 60);
--popover: oklch(0.993 0.003 80);
--popover-foreground: oklch(0.18 0.012 60);
--primary: oklch(0.52 0.09 178);
--primary-foreground: oklch(0.985 0.01 178);
--secondary: oklch(0.955 0.01 82);
--secondary-foreground: oklch(0.25 0.012 60);
--muted: oklch(0.96 0.008 80);
--muted-foreground: oklch(0.52 0.015 60);
--accent: oklch(0.92 0.1 95);
--accent-foreground: oklch(0.3 0.04 80);
--destructive: oklch(0.577 0.245 27.325);
--border: oklch(0.923 0.003 48.717);
--input: oklch(0.923 0.003 48.717);
--ring: oklch(0.709 0.01 56.259);
--border: oklch(0.91 0.01 75);
--input: oklch(0.91 0.01 75);
--ring: oklch(0.52 0.09 178);
--chart-1: oklch(0.845 0.143 164.978);
--chart-2: oklch(0.696 0.17 162.48);
--chart-3: oklch(0.596 0.145 163.225);
--chart-4: oklch(0.508 0.118 165.612);
--chart-5: oklch(0.432 0.095 166.913);
--radius: 0.625rem;
--sidebar: oklch(0.985 0.001 106.423);
--sidebar-foreground: oklch(0.147 0.004 49.25);
--sidebar-primary: oklch(0.6 0.118 184.704);
--sidebar-primary-foreground: oklch(0.984 0.014 180.72);
--sidebar-accent: oklch(0.97 0.001 106.424);
--sidebar-accent-foreground: oklch(0.216 0.006 56.043);
--sidebar-border: oklch(0.923 0.003 48.717);
--sidebar-ring: oklch(0.709 0.01 56.259);
--radius: 0.75rem;
--sidebar: oklch(0.975 0.006 80);
--sidebar-foreground: oklch(0.18 0.012 60);
--sidebar-primary: oklch(0.52 0.09 178);
--sidebar-primary-foreground: oklch(0.985 0.01 178);
--sidebar-accent: oklch(0.96 0.008 80);
--sidebar-accent-foreground: oklch(0.25 0.012 60);
--sidebar-border: oklch(0.91 0.01 75);
--sidebar-ring: oklch(0.52 0.09 178);
}
.dark {
--background: oklch(0.147 0.004 49.25);
--foreground: oklch(0.985 0.001 106.423);
--card: oklch(0.216 0.006 56.043);
--card-foreground: oklch(0.985 0.001 106.423);
--popover: oklch(0.216 0.006 56.043);
--popover-foreground: oklch(0.985 0.001 106.423);
--primary: oklch(0.437 0.078 188.216);
--primary-foreground: oklch(0.984 0.014 180.72);
--secondary: oklch(0.274 0.006 286.033);
--secondary-foreground: oklch(0.985 0 0);
--muted: oklch(0.268 0.007 34.298);
--muted-foreground: oklch(0.709 0.01 56.259);
--accent: oklch(0.268 0.007 34.298);
--accent-foreground: oklch(0.985 0.001 106.423);
--background: oklch(0.16 0.01 65);
--foreground: oklch(0.93 0.008 80);
--card: oklch(0.21 0.012 65);
--card-foreground: oklch(0.93 0.008 80);
--popover: oklch(0.21 0.012 65);
--popover-foreground: oklch(0.93 0.008 80);
--primary: oklch(0.62 0.1 178);
--primary-foreground: oklch(0.15 0.03 178);
--secondary: oklch(0.26 0.01 65);
--secondary-foreground: oklch(0.92 0.006 80);
--muted: oklch(0.24 0.01 65);
--muted-foreground: oklch(0.65 0.012 70);
--accent: oklch(0.35 0.06 90);
--accent-foreground: oklch(0.93 0.008 80);
--destructive: oklch(0.704 0.191 22.216);
--border: oklch(1 0 0 / 10%);
--input: oklch(1 0 0 / 15%);
--ring: oklch(0.553 0.013 58.071);
--border: oklch(1 0 0 / 8%);
--input: oklch(1 0 0 / 12%);
--ring: oklch(0.62 0.1 178);
--chart-1: oklch(0.845 0.143 164.978);
--chart-2: oklch(0.696 0.17 162.48);
--chart-3: oklch(0.596 0.145 163.225);
--chart-4: oklch(0.508 0.118 165.612);
--chart-5: oklch(0.432 0.095 166.913);
--sidebar: oklch(0.216 0.006 56.043);
--sidebar-foreground: oklch(0.985 0.001 106.423);
--sidebar-primary: oklch(0.704 0.14 182.503);
--sidebar-primary-foreground: oklch(0.277 0.046 192.524);
--sidebar-accent: oklch(0.268 0.007 34.298);
--sidebar-accent-foreground: oklch(0.985 0.001 106.423);
--sidebar-border: oklch(1 0 0 / 10%);
--sidebar-ring: oklch(0.553 0.013 58.071);
--sidebar: oklch(0.19 0.01 65);
--sidebar-foreground: oklch(0.93 0.008 80);
--sidebar-primary: oklch(0.62 0.1 178);
--sidebar-primary-foreground: oklch(0.15 0.03 178);
--sidebar-accent: oklch(0.24 0.01 65);
--sidebar-accent-foreground: oklch(0.93 0.008 80);
--sidebar-border: oklch(1 0 0 / 8%);
--sidebar-ring: oklch(0.62 0.1 178);
}
@layer base {