feat: implement dark mode support with theme provider and toggle component

This commit is contained in:
암냥 2026-04-21 22:26:20 +09:00
commit cf70aa4a67
No known key found for this signature in database
12 changed files with 248 additions and 31 deletions

View file

@ -190,7 +190,7 @@ export default async function DetailPage({ params }: { params: Promise<{ id: str
post = await postPromise;
} catch (loadError) {
return (
<div className="min-h-screen bg-[radial-gradient(circle_at_top,rgba(255,255,255,0.9),rgba(247,229,236,0.85)_45%,rgba(244,240,243,1)_100%)] text-foreground">
<div className="min-h-screen bg-main-gradient text-foreground transition-colors duration-500">
<Header />
<main className="mx-auto w-full max-w-6xl px-4 py-8 sm:px-6 lg:px-8">
<section className="border-b border-border/70 pb-6">
@ -226,7 +226,7 @@ export default async function DetailPage({ params }: { params: Promise<{ id: str
const tags = post.tags ?? [];
return (
<div className="min-h-screen bg-[radial-gradient(circle_at_top,rgba(255,255,255,0.9),rgba(247,229,236,0.85)_45%,rgba(244,240,243,1)_100%)] text-foreground">
<div className="min-h-screen bg-main-gradient text-foreground transition-colors duration-500">
<Header />
<main className="mx-auto w-full max-w-6xl px-4 py-8 sm:px-6 lg:px-8">
@ -249,10 +249,10 @@ export default async function DetailPage({ params }: { params: Promise<{ id: str
alt={post.author ?? post._id}
loading="eager"
decoding="async"
className="w-full border border-border bg-white object-contain image-scale"
className="w-full border border-border bg-card object-contain image-scale"
/>
) : (
<div className="aspect-4/5 w-full border border-border bg-black/5" />
<div className="aspect-4/5 w-full border border-border bg-muted/30" />
)}
</div>
@ -294,7 +294,7 @@ export default async function DetailPage({ params }: { params: Promise<{ id: str
href={post.url}
target="_blank"
rel="noopener noreferrer"
className="border border-border px-4 py-2 text-sm text-foreground/80 transition hover:bg-black/5"
className="border border-border px-4 py-2 text-sm text-foreground/80 transition hover:bg-accent"
>
</a>
@ -302,7 +302,7 @@ export default async function DetailPage({ params }: { params: Promise<{ id: str
<div className="flex flex-row gap-2">
<Link
href="/"
className="border border-border px-4 py-2 text-sm text-foreground/70 transition hover:bg-black/5 w-full"
className="border border-border px-4 py-2 text-sm text-foreground/70 transition hover:bg-accent w-full"
>
</Link>