+
diff --git a/src/app/globals.css b/src/app/globals.css
index f2b246a..e679054 100644
--- a/src/app/globals.css
+++ b/src/app/globals.css
@@ -48,119 +48,33 @@
--color-hover-foreground: var(--hover-foreground);
}
-/* :root {
- --radius: 0.625rem;
- --background: oklch(1 0 0);
- --foreground: oklch(0.145 0 0);
- --card: oklch(1 0 0);
- --card-foreground: oklch(0.145 0 0);
- --popover: oklch(1 0 0);
- --popover-foreground: oklch(0.145 0 0);
- --primary: oklch(0.205 0 0);
- --primary-foreground: oklch(0.985 0 0);
- --secondary: oklch(0.97 0 0);
- --secondary-foreground: oklch(0.205 0 0);
- --muted: oklch(0.97 0 0);
- --muted-foreground: oklch(0.556 0 0);
- --accent: oklch(0.97 0 0);
- --accent-foreground: oklch(0.205 0 0);
- --destructive: oklch(0.577 0.245 27.325);
- --border: oklch(0.922 0 0);
- --input: oklch(0.922 0 0);
- --ring: oklch(0.708 0 0);
- --chart-1: oklch(0.646 0.222 41.116);
- --chart-2: oklch(0.6 0.118 184.704);
- --chart-3: oklch(0.398 0.07 227.392);
- --chart-4: oklch(0.828 0.189 84.429);
- --chart-5: oklch(0.769 0.188 70.08);
- --sidebar: oklch(0.985 0 0);
- --sidebar-foreground: oklch(0.145 0 0);
- --sidebar-primary: oklch(0.205 0 0);
- --sidebar-primary-foreground: oklch(0.985 0 0);
- --sidebar-accent: oklch(0.97 0 0);
- --sidebar-accent-foreground: oklch(0.205 0 0);
- --sidebar-border: oklch(0.922 0 0);
- --sidebar-ring: oklch(0.708 0 0);
-}
-
-.dark {
- --background: oklch(0.145 0 0);
- --foreground: oklch(0.985 0 0);
- --card: oklch(0.205 0 0);
- --card-foreground: oklch(0.985 0 0);
- --popover: oklch(0.205 0 0);
- --popover-foreground: oklch(0.985 0 0);
- --primary: oklch(0.922 0 0);
- --primary-foreground: oklch(0.205 0 0);
- --secondary: oklch(0.269 0 0);
- --secondary-foreground: oklch(0.985 0 0);
- --muted: oklch(0.269 0 0);
- --muted-foreground: oklch(0.708 0 0);
- --accent: oklch(0.269 0 0);
- --accent-foreground: oklch(0.985 0 0);
- --destructive: oklch(0.704 0.191 22.216);
- --border: oklch(1 0 0 / 10%);
- --input: oklch(1 0 0 / 15%);
- --ring: oklch(0.556 0 0);
- --chart-1: oklch(0.488 0.243 264.376);
- --chart-2: oklch(0.696 0.17 162.48);
- --chart-3: oklch(0.769 0.188 70.08);
- --chart-4: oklch(0.627 0.265 303.9);
- --chart-5: oklch(0.645 0.246 16.439);
- --sidebar: oklch(0.205 0 0);
- --sidebar-foreground: oklch(0.985 0 0);
- --sidebar-primary: oklch(0.488 0.243 264.376);
- --sidebar-primary-foreground: oklch(0.985 0 0);
- --sidebar-accent: oklch(0.269 0 0);
- --sidebar-accent-foreground: oklch(0.985 0 0);
- --sidebar-border: oklch(1 0 0 / 10%);
- --sidebar-ring: oklch(0.556 0 0);
-} */
-
:root {
--radius: 0.625rem;
-
- /* Light: warm paper + graphite */
- --background: oklch(0.985 0.012 85); /* warm off-white */
- --foreground: oklch(0.18 0.02 35); /* graphite */
-
- --card: oklch(0.992 0.008 85); /* slightly lifted paper */
+ --background: oklch(0.985 0.012 85);
+ --foreground: oklch(0.18 0.02 35);
+ --card: oklch(0.992 0.008 85);
--card-foreground: var(--foreground);
-
--popover: oklch(0.992 0.008 85);
--popover-foreground: var(--foreground);
-
- /* Primary: deep ink / indigo (artist-y but still neutral enough) */
--primary: oklch(0.32 0.06 260);
--primary-foreground: oklch(0.985 0.012 85);
-
- /* Secondary/muted/accent: warm washes */
--secondary: oklch(0.96 0.015 85);
--secondary-foreground: oklch(0.22 0.02 35);
-
--muted: oklch(0.955 0.012 85);
--muted-foreground: oklch(0.46 0.02 35);
-
- --accent: oklch(0.95 0.02 110); /* subtle “wash” */
+ --accent: oklch(0.95 0.02 110);
--accent-foreground: oklch(0.22 0.02 35);
-
--destructive: oklch(0.58 0.22 27.325);
-
- --border: oklch(0.90 0.02 85); /* warm border */
+ --border: oklch(0.90 0.02 85);
--input: oklch(0.90 0.02 85);
- --ring: oklch(0.55 0.07 260); /* ties to primary */
-
- --hover: oklch(0.94 0.015 255); /* subtle cool lift */
+ --ring: oklch(0.55 0.07 260);
+ --hover: oklch(0.94 0.015 255);
--hover-foreground: var(--foreground);
-
- /* charts can stay, or we can harmonize later */
--chart-1: oklch(0.646 0.222 41.116);
--chart-2: oklch(0.6 0.118 184.704);
--chart-3: oklch(0.398 0.07 227.392);
--chart-4: oklch(0.828 0.189 84.429);
--chart-5: oklch(0.769 0.188 70.08);
-
- /* sidebar inherits the same “paper” idea */
--sidebar: oklch(0.975 0.012 85);
--sidebar-foreground: var(--foreground);
--sidebar-primary: var(--primary);
@@ -172,36 +86,38 @@
}
.dark {
- /* Inky navy background (clearly not neutral) */
- --background: oklch(15.774% 0.03835 263.588);
- --foreground: oklch(0.95 0.012 85);
-
- /* Surfaces */
- --card: oklch(0.155 0.03 255);
- --card-foreground: var(--foreground);
-
- --popover: oklch(0.155 0.03 255);
- --popover-foreground: var(--foreground);
-
- /* Primary accent stays “artist ink” */
- --primary: oklch(0.78 0.11 255);
- --primary-foreground: oklch(0.13 0.03 255);
-
- --secondary: oklch(0.19 0.025 255);
- --secondary-foreground: var(--foreground);
-
- --muted: oklch(0.19 0.025 255);
- --muted-foreground: oklch(0.74 0.02 85);
-
- --accent: oklch(0.22 0.03 110);
- --accent-foreground: var(--foreground);
-
- --border: oklch(0.40 0.03 255 / 55%);
- --input: oklch(0.40 0.03 255 / 65%);
- --ring: oklch(0.65 0.10 255);
-
- --hover: oklch(28.783% 0.03139 250.817);
- --hover-foreground: var(--foreground);
+ --background: oklch(0.2223 0.0060 271.1393);
+ --foreground: oklch(0.9551 0 0);
+ --card: oklch(0.2568 0.0076 274.6528);
+ --card-foreground: oklch(0.9551 0 0);
+ --popover: oklch(0.2568 0.0076 274.6528);
+ --popover-foreground: oklch(0.9551 0 0);
+ --primary: oklch(0.6132 0.2294 291.7437);
+ --primary-foreground: oklch(1.0000 0 0);
+ --secondary: oklch(0.2940 0.0130 272.9312);
+ --secondary-foreground: oklch(0.9551 0 0);
+ --muted: oklch(0.2940 0.0130 272.9312);
+ --muted-foreground: oklch(0.7058 0 0);
+ --accent: oklch(0.2795 0.0368 260.0310);
+ --accent-foreground: oklch(0.7857 0.1153 246.6596);
+ --destructive: oklch(0.7106 0.1661 22.2162);
+ --destructive-foreground: oklch(1.0000 0 0);
+ --border: oklch(0.3289 0.0092 268.3843);
+ --input: oklch(0.3289 0.0092 268.3843);
+ --ring: oklch(0.6132 0.2294 291.7437);
+ --chart-1: oklch(0.8003 0.1821 151.7110);
+ --chart-2: oklch(0.6132 0.2294 291.7437);
+ --chart-3: oklch(0.8077 0.1035 19.5706);
+ --chart-4: oklch(0.6691 0.1569 260.1063);
+ --chart-5: oklch(0.7058 0 0);
+ --sidebar: oklch(0.2011 0.0039 286.0396);
+ --sidebar-foreground: oklch(0.9551 0 0);
+ --sidebar-primary: oklch(0.6132 0.2294 291.7437);
+ --sidebar-primary-foreground: oklch(1.0000 0 0);
+ --sidebar-accent: oklch(0.2940 0.0130 272.9312);
+ --sidebar-accent-foreground: oklch(0.6132 0.2294 291.7437);
+ --sidebar-border: oklch(0.3289 0.0092 268.3843);
+ --sidebar-ring: oklch(0.6132 0.2294 291.7437);
}
.markdown {
@@ -260,10 +176,6 @@
@apply line-through text-muted-foreground;
}
-/* div:hover {
- border-color: var(--hover-border-color);
-} */
-
@layer base {
* {
@apply border-border outline-ring/50;
@@ -276,7 +188,7 @@
}
.dark body {
background-image:
- radial-gradient(1200px 700px at 15% -10%, oklch(0.55 0.14 255 / 16%), transparent 60%),
- radial-gradient(900px 600px at 85% 0%, oklch(0.50 0.12 110 / 10%), transparent 55%);
+ radial-gradient(1200px 700px at 15% -10%, oklch(0.35 0.06 35 / 10%), transparent 60%),
+ radial-gradient(900px 600px at 85% 0%, oklch(0.30 0.05 255 / 6%), transparent 55%);
}
}
diff --git a/src/components/artworks/ArtworkTimelapseViewer.tsx b/src/components/artworks/ArtworkTimelapseViewer.tsx
index 3a58fda..13bdd0c 100644
--- a/src/components/artworks/ArtworkTimelapseViewer.tsx
+++ b/src/components/artworks/ArtworkTimelapseViewer.tsx
@@ -27,9 +27,6 @@ export default function ArtworkTimelapseViewer({
}) {
const [open, setOpen] = useState(false);
- // IMPORTANT:
- // This assumes your existing `/api/image/[...key]` can stream arbitrary S3 keys.
- // If your route expects a different format, adjust this in one place.
const src = `/api/image/${encodeURI(timelapse.s3Key)}`;
// Minimal empty captions track (satisfies jsx-a11y/media-has-caption)
@@ -46,7 +43,6 @@ export default function ArtworkTimelapseViewer({
{title}
- {/* Only render video when open (prevents unnecessary network / CPU). */}
{open ? (
) : null}
diff --git a/src/components/ui/button.tsx b/src/components/ui/button.tsx
index 37a7d4b..b54c96c 100644
--- a/src/components/ui/button.tsx
+++ b/src/components/ui/button.tsx
@@ -13,7 +13,7 @@ const buttonVariants = cva(
destructive:
"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
outline:
- "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
+ "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input dark:border-input dark:hover:bg-input/60",
secondary:
"bg-secondary text-secondary-foreground hover:bg-secondary/80",
ghost:
diff --git a/src/components/ui/checkbox.tsx b/src/components/ui/checkbox.tsx
index cb0b07b..99c8b8b 100644
--- a/src/components/ui/checkbox.tsx
+++ b/src/components/ui/checkbox.tsx
@@ -14,7 +14,7 @@ function Checkbox({
) {
type={type}
data-slot="input"
className={cn(
- "file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
+ "file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
className
diff --git a/src/components/ui/textarea.tsx b/src/components/ui/textarea.tsx
index 7f21b5e..f979c9b 100644
--- a/src/components/ui/textarea.tsx
+++ b/src/components/ui/textarea.tsx
@@ -7,7 +7,7 @@ function Textarea({ className, ...props }: React.ComponentProps<"textarea">) {