feat(home): Liquid Glass + Jua 폰트로 헤더·푸터·홈·뮤직 페이지 전환

- layout.tsx: Bagel/Inter/Manrope/SpaceGrotesk → Jua 단일화 + GlassFilter 마운트
- globals.css: 글래스 효과·Jua 폰트 변수
- TopNav: 알약형 글래스 헤더 (스크롤 시 max-w-3xl 축소)
- PublicShell: 푸터 정돈
- 홈 page.tsx: hero 영상 배경 + GlassButton CTA + 트윗 마퀴
- 뮤직 page.tsx: SparklesOverlay + 3D card effect

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-28 02:12:29 +09:00
parent 7ee75f1511
commit 32dce9ea1e
6 changed files with 493 additions and 457 deletions

View File

@@ -1,13 +1,16 @@
import type { Metadata } from "next";
import Script from "next/script";
import { Space_Grotesk, Inter, Manrope, Bagel_Fat_One } from "next/font/google";
import { Jua } from "next/font/google";
import "./globals.css";
import DashboardShell from "./components/DashboardShell";
import { GlassFilter } from "./components/LiquidGlass";
const spaceGrotesk = Space_Grotesk({ subsets: ["latin"], variable: "--font-kx-display", display: "swap" });
const inter = Inter({ subsets: ["latin"], variable: "--font-kx-body", display: "swap" });
const manrope = Manrope({ subsets: ["latin"], variable: "--font-kx-label", display: "swap" });
const bagel = Bagel_Fat_One({ weight: "400", subsets: ["latin"], variable: "--font-kx-hero", display: "swap" });
const jua = Jua({
weight: "400",
subsets: ["latin"],
variable: "--font-jua",
display: "swap",
});
export const metadata: Metadata = {
title: {
@@ -104,7 +107,7 @@ export default function RootLayout({
children: React.ReactNode;
}) {
return (
<html lang="ko" data-scroll-behavior="smooth" className={`${spaceGrotesk.variable} ${inter.variable} ${manrope.variable} ${bagel.variable}`}>
<html lang="ko" data-scroll-behavior="smooth" className={jua.variable}>
<head>
<script
type="application/ld+json"
@@ -127,6 +130,7 @@ export default function RootLayout({
</Script>
</head>
<body className="antialiased">
<GlassFilter />
<DashboardShell>{children}</DashboardShell>
</body>
</html>