Files
jaengseung-made/app/music/page.tsx
gahusb 6a67a9d812 @
chore(music): /music 카피 무료 스토리→음악 포지셔닝으로 정리 — 구 유료 팩 카피·packs 카드 제거

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AAtcmKKtqDUe4NyVgy1aLQ
@
2026-07-04 01:26:09 +09:00

66 lines
2.4 KiB
TypeScript

import Link from 'next/link';
import type { Metadata } from 'next';
export const metadata: Metadata = {
title: '음악 — 나의 이야기를 음악으로',
};
const CARDS = [
{
href: '/music/studio',
label: 'AI 스튜디오',
desc: '스토리를 입력하면 가사·음악을 자동 생성 — 로그인 무료',
key: 'studio',
},
{
href: '/music/samples',
label: '샘플 갤러리',
desc: '실제 결과물 — 장르별 데모와 가사',
key: 'samples',
},
];
export default function MusicHub() {
return (
<div className="min-h-screen bg-[var(--jsm-bg)]">
<section className="relative w-full min-h-[60vh] flex items-center justify-center px-6 bg-[var(--jsm-navy)]">
<div className="relative z-10 max-w-3xl mx-auto text-center">
<p className="font-mono text-[11px] tracking-widest uppercase text-[var(--jsm-accent-soft)] mb-4">
Music
</p>
<h1
className="kx-display text-4xl md:text-6xl font-bold mb-5 text-white"
style={{ wordBreak: 'keep-all', letterSpacing: '-0.02em' }}
>
</h1>
<p className="text-base md:text-lg text-white/70 max-w-2xl mx-auto leading-relaxed">
AI가 . .
</p>
</div>
</section>
<section className="py-20 px-6">
<div className="max-w-4xl mx-auto grid grid-cols-1 md:grid-cols-2 gap-5">
{CARDS.map((c) => (
<Link
key={c.key}
href={c.href}
className="rounded-2xl border border-[var(--jsm-line)] bg-[var(--jsm-surface)] p-7 transition-colors hover:border-[var(--jsm-accent)] hover:bg-[var(--jsm-surface-alt)] flex flex-col"
style={{ textDecoration: 'none' }}
>
<h2 className="kx-display text-xl md:text-2xl font-bold text-[var(--jsm-ink)] mb-3">
{c.label}
</h2>
<p className="text-sm md:text-base text-[var(--jsm-ink-soft)] leading-relaxed flex-1">
{c.desc}
</p>
<span aria-hidden="true" className="mt-4 text-[var(--jsm-ink-faint)] text-xs"></span>
</Link>
))}
</div>
</section>
</div>
);
}