From 6f575d6a23a9c289189a5871d79182d37dc6d839 Mon Sep 17 00:00:00 2001 From: yohlo Date: Sun, 23 Aug 2026 17:17:04 -0700 Subject: [PATCH 1/2] themes lol --- package.json | 6 +- src/app/routes/__root.tsx | 12 +- src/app/routes/_authed/settings.tsx | 2 + src/components/avatar.tsx | 36 +- src/components/sheet/drawer.tsx | 18 +- src/components/sheet/styles.module.css | 2 +- src/components/swipeable-tabs.tsx | 48 +- src/components/team-avatar.tsx | 6 +- src/contexts/auth-context.tsx | 1 + .../badges/components/badge-showcase.tsx | 8 +- .../bracket/components/bracket-pending.tsx | 2 +- .../bracket/components/bracket-view.tsx | 2 +- .../bracket/components/match-card.tsx | 6 +- .../bracket/components/match-slot.tsx | 4 +- .../matches/components/match-card.tsx | 7 +- .../components/team-head-to-head-sheet.tsx | 2 +- .../components/player-head-to-head-sheet.tsx | 2 +- .../players/components/profile/index.tsx | 11 +- .../components/prediction-leaderboard.tsx | 2 +- .../components/winner-selector.tsx | 4 +- .../settings/components/theme-picker.tsx | 111 ++ .../settings/components/theme-preview.tsx | 179 ++++ src/features/settings/server.ts | 45 + .../tournaments/components/podium.tsx | 27 +- .../components/setup-group-stage.tsx | 2 +- .../started-tournament/carousel.module.css | 3 + .../started-tournament/sections/nav-grid.tsx | 8 +- src/lib/mantine/base-theme.ts | 48 + src/lib/mantine/color-scheme-provider.tsx | 36 +- src/lib/mantine/mantine-provider.tsx | 70 +- src/lib/mantine/theme-colors.ts | 18 + src/lib/sonner/index.tsx | 4 +- src/locales/de/messages.po | 139 ++- src/locales/en/messages.po | 139 ++- src/locales/es/messages.po | 139 ++- src/locales/ja/messages.po | 139 ++- src/themes/README.md | 280 ++++++ src/themes/aero/manifest.ts | 137 +++ src/themes/aero/theme.css | 607 +++++++++++ src/themes/base.css | 60 ++ src/themes/bauhaus/manifest.ts | 17 + src/themes/bauhaus/theme.css | 725 ++++++++++++++ src/themes/brutal/manifest.ts | 30 + src/themes/brutal/theme.css | 645 ++++++++++++ src/themes/cassette/manifest.ts | 165 +++ src/themes/cassette/theme.css | 550 ++++++++++ src/themes/chrome.ts | 11 + src/themes/circus/manifest.ts | 158 +++ src/themes/circus/theme.css | 608 +++++++++++ src/themes/clay/manifest.ts | 165 +++ src/themes/clay/theme.css | 620 ++++++++++++ src/themes/deco/manifest.ts | 20 + src/themes/deco/theme.css | 619 ++++++++++++ src/themes/default/manifest.ts | 11 + src/themes/default/theme.css | 24 + src/themes/gothic/manifest.ts | 18 + src/themes/gothic/theme.css | 641 ++++++++++++ src/themes/hooks.css | 69 ++ src/themes/neumorph/manifest.ts | 17 + src/themes/neumorph/theme.css | 632 ++++++++++++ src/themes/ocean/manifest.ts | 137 +++ src/themes/ocean/theme.css | 423 ++++++++ src/themes/quest/manifest.ts | 18 + src/themes/quest/theme.css | 762 ++++++++++++++ src/themes/registry.ts | 37 + src/themes/seventies/manifest.ts | 24 + src/themes/seventies/theme.css | 728 ++++++++++++++ src/themes/sketch/manifest.ts | 17 + src/themes/sketch/theme.css | 749 ++++++++++++++ src/themes/skeuo/manifest.ts | 17 + src/themes/skeuo/theme.css | 947 ++++++++++++++++++ src/themes/styles.ts | 7 + src/themes/terminal/manifest.ts | 19 + src/themes/terminal/theme.css | 599 +++++++++++ src/themes/theme-provider.tsx | 72 ++ src/themes/theme-styles.ts | 6 + src/themes/types.ts | 26 + src/themes/wireframe/manifest.ts | 136 +++ src/themes/wireframe/theme.css | 545 ++++++++++ 79 files changed, 13108 insertions(+), 278 deletions(-) create mode 100644 src/features/settings/components/theme-picker.tsx create mode 100644 src/features/settings/components/theme-preview.tsx create mode 100644 src/lib/mantine/base-theme.ts create mode 100644 src/themes/README.md create mode 100644 src/themes/aero/manifest.ts create mode 100644 src/themes/aero/theme.css create mode 100644 src/themes/base.css create mode 100644 src/themes/bauhaus/manifest.ts create mode 100644 src/themes/bauhaus/theme.css create mode 100644 src/themes/brutal/manifest.ts create mode 100644 src/themes/brutal/theme.css create mode 100644 src/themes/cassette/manifest.ts create mode 100644 src/themes/cassette/theme.css create mode 100644 src/themes/chrome.ts create mode 100644 src/themes/circus/manifest.ts create mode 100644 src/themes/circus/theme.css create mode 100644 src/themes/clay/manifest.ts create mode 100644 src/themes/clay/theme.css create mode 100644 src/themes/deco/manifest.ts create mode 100644 src/themes/deco/theme.css create mode 100644 src/themes/default/manifest.ts create mode 100644 src/themes/default/theme.css create mode 100644 src/themes/gothic/manifest.ts create mode 100644 src/themes/gothic/theme.css create mode 100644 src/themes/hooks.css create mode 100644 src/themes/neumorph/manifest.ts create mode 100644 src/themes/neumorph/theme.css create mode 100644 src/themes/ocean/manifest.ts create mode 100644 src/themes/ocean/theme.css create mode 100644 src/themes/quest/manifest.ts create mode 100644 src/themes/quest/theme.css create mode 100644 src/themes/registry.ts create mode 100644 src/themes/seventies/manifest.ts create mode 100644 src/themes/seventies/theme.css create mode 100644 src/themes/sketch/manifest.ts create mode 100644 src/themes/sketch/theme.css create mode 100644 src/themes/skeuo/manifest.ts create mode 100644 src/themes/skeuo/theme.css create mode 100644 src/themes/styles.ts create mode 100644 src/themes/terminal/manifest.ts create mode 100644 src/themes/terminal/theme.css create mode 100644 src/themes/theme-provider.tsx create mode 100644 src/themes/theme-styles.ts create mode 100644 src/themes/types.ts create mode 100644 src/themes/wireframe/manifest.ts create mode 100644 src/themes/wireframe/theme.css diff --git a/package.json b/package.json index cc84311..8b8ae3a 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,11 @@ { "name": "tanstack-start-example-basic-react-query", "private": true, - "sideEffects": false, + "sideEffects": [ + "**/*.css", + "**/themes/styles.ts", + "**/themes/theme-styles.ts" + ], "type": "module", "scripts": { "dev": "vite dev --host 0.0.0.0", diff --git a/src/app/routes/__root.tsx b/src/app/routes/__root.tsx index 217155c..b9eb8f0 100644 --- a/src/app/routes/__root.tsx +++ b/src/app/routes/__root.tsx @@ -203,7 +203,17 @@ function RootDocument({ children }: { children: React.ReactNode }) { media="(prefers-color-scheme: dark)" content={CHROME_COLORS.dark.base} /> - + + {/* Pre-hydration theme restore from ThemeProvider's localStorage + mirrors: data-theme (so exotic themes don't flash default), + forced color scheme (dark-only themes must not paint light), + and the theme's font stylesheets (avoid FOUT until hydration). */} +