Compare commits

...

4 Commits

Author SHA1 Message Date
valknar 2b22f504cf fix: pass DB_PASSWORD to postgres client in sync script
The sync script created its own postgres client and only read DATABASE_URL,
bypassing the DB_PASSWORD override that lib/db/index.ts already applied.
Since DATABASE_URL has no password embedded, auth always failed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-14 16:43:50 +02:00
valknar 9a87e9dde3 fix: proper Tailwind v4 CSS structure in globals.css
- @theme inline → @theme so tokens generate utility classes (bg-bg,
  text-text, font-display etc.) rather than being inlined as vars only
- Wrap base resets, keyframes and custom classes in @layer base for
  correct Tailwind cascade ordering
- Remove broken @source directives (Tailwind v4 auto-detects sources
  from the project root when using @tailwindcss/postcss with Next.js)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-14 16:37:59 +02:00
valknar ea7f0551f0 fix: replace recursive ** globs in @source with explicit per-directory paths
Tailwind v4 @source does not support ** recursive globs — each
directory level must be listed explicitly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-14 16:26:25 +02:00
valknar 30d30f68fb fix: add @source directives so Tailwind v4 scans all component files
Without explicit @source paths, Tailwind v4 auto-detection can miss
app/, components/, and lib/ directories in production builds, causing
utility classes to be stripped from the output CSS.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-14 16:22:13 +02:00
2 changed files with 42 additions and 37 deletions
+38 -36
View File
@@ -1,7 +1,7 @@
@import "tailwindcss";
@import "flag-icons/css/flag-icons.min.css";
@theme inline {
@theme {
--color-bg: #040d08;
--color-card: #0a1810;
--color-hero: #0d2416;
@@ -17,41 +17,43 @@
--font-body: "Space Grotesk", system-ui, sans-serif;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
@layer base {
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
html { scroll-behavior: smooth; }
body {
background: #040d08;
color: #dff5e8;
font-family: "Space Grotesk", system-ui, sans-serif;
min-height: 100vh;
overflow-x: hidden;
}
::-webkit-scrollbar { width: 5px; }
::-webkit-scrollbar-track { background: #020a04; }
::-webkit-scrollbar-thumb { background: rgba(34,197,94,0.25); border-radius: 4px; }
@keyframes livePulse {
0%, 100% { opacity: 1; transform: scale(1); }
50% { opacity: 0.2; transform: scale(0.6); }
}
@keyframes fadeIn {
from { opacity: 0; transform: translateY(8px); }
to { opacity: 1; transform: translateY(0); }
}
.animate-live { animation: livePulse 2s ease-in-out infinite; }
.animate-fade-in { animation: fadeIn 0.3s ease-out; }
.pitch-grid {
background-image: repeating-linear-gradient(
0deg,
transparent,
transparent 44px,
rgba(34,197,94,0.018) 44px,
rgba(34,197,94,0.018) 88px
);
body {
background: #040d08;
color: #dff5e8;
font-family: "Space Grotesk", system-ui, sans-serif;
min-height: 100vh;
overflow-x: hidden;
}
::-webkit-scrollbar { width: 5px; }
::-webkit-scrollbar-track { background: #020a04; }
::-webkit-scrollbar-thumb { background: rgba(34,197,94,0.25); border-radius: 4px; }
@keyframes livePulse {
0%, 100% { opacity: 1; transform: scale(1); }
50% { opacity: 0.2; transform: scale(0.6); }
}
@keyframes fadeIn {
from { opacity: 0; transform: translateY(8px); }
to { opacity: 1; transform: translateY(0); }
}
.animate-live { animation: livePulse 2s ease-in-out infinite; }
.animate-fade-in { animation: fadeIn 0.3s ease-out; }
.pitch-grid {
background-image: repeating-linear-gradient(
0deg,
transparent,
transparent 44px,
rgba(34,197,94,0.018) 44px,
rgba(34,197,94,0.018) 88px
);
}
}
+4 -1
View File
@@ -73,7 +73,10 @@ function parseScore(score: RawScore | undefined) {
}
async function run() {
const client = postgres(DATABASE_URL, { max: 5 })
const client = postgres(DATABASE_URL, {
max: 5,
...(process.env.DB_PASSWORD ? { password: process.env.DB_PASSWORD } : {}),
})
const db = drizzle(client)
console.log('Creating tables...')