Files
silma-bone-lord-bob/pages/world/music.tsx
T
jacob-mathison 193816f5ec feat: SiteLayout template, World nav dropdown, lore/world/characters/music/gallery pages
- Fix SiteLayout WORLD_LINKS to correct /world/* paths
- Add Spotify frame-src to CSP (next.config.ts)
- pages/world/characters.tsx: full character roster page (6 cards, Aaron Pressey credit)
- pages/world/gallery.tsx: tabbed Official/Fan Art gallery with coming-soon states
- pages/world/music.tsx: soundtrack page with Spotify album embed + YouTube CTA
- pages/world/lore.tsx: atmospheric lore with Bone Kingdom, Ledger, Origins/Prophecy placeholders
- pages/world/world.tsx: 3 region cards (Bone Kingdom, Bonefield, Pyre Gates)
- pages/{lore,world,characters,music,gallery}.tsx: 301 redirects to /world/* routes
- All world pages use SiteLayout, dark themed, proper SEO keywords
2026-04-11 10:49:34 -05:00

159 lines
4.4 KiB
TypeScript

import SiteLayout from "@/pages/components/SiteLayout";
const s = {
page: {
maxWidth: "860px",
margin: "0 auto",
padding: "64px 32px 96px",
} as React.CSSProperties,
hero: {
marginBottom: "56px",
textAlign: "center" as const,
} as React.CSSProperties,
eyebrow: {
display: "block",
fontSize: "0.75rem",
fontWeight: 700,
letterSpacing: "0.18em",
textTransform: "uppercase" as const,
color: "#c0392b",
marginBottom: "16px",
} as React.CSSProperties,
h1: {
fontFamily: "'Georgia', 'Times New Roman', serif",
fontSize: "clamp(2.4rem, 6vw, 4rem)",
fontWeight: 700,
color: "#e8dcc8",
lineHeight: 1.1,
marginBottom: "20px",
} as React.CSSProperties,
heroSub: {
fontSize: "1.05rem",
color: "#9e9080",
maxWidth: "540px",
margin: "0 auto",
lineHeight: 1.7,
} as React.CSSProperties,
introPara: {
fontSize: "1rem",
color: "#c8bfae",
lineHeight: 1.8,
marginBottom: "40px",
textAlign: "center" as const,
} as React.CSSProperties,
embedWrapper: {
marginBottom: "48px",
borderRadius: "12px",
overflow: "hidden",
border: "1px solid rgba(232,220,200,0.12)",
} as React.CSSProperties,
sectionLabel: {
display: "block",
fontSize: "0.72rem",
fontWeight: 700,
letterSpacing: "0.14em",
textTransform: "uppercase" as const,
color: "#c0392b",
marginBottom: "16px",
} as React.CSSProperties,
comingSoon: {
background: "#1a1510",
border: "1px solid rgba(232,220,200,0.1)",
borderRadius: "8px",
padding: "40px 32px",
textAlign: "center" as const,
marginBottom: "48px",
} as React.CSSProperties,
comingSoonIcon: {
fontSize: "2rem",
marginBottom: "12px",
display: "block",
opacity: 0.4,
} as React.CSSProperties,
comingSoonText: {
fontSize: "0.88rem",
color: "#9e9080",
letterSpacing: "0.08em",
textTransform: "uppercase" as const,
fontWeight: 600,
} as React.CSSProperties,
ytLink: {
display: "inline-flex",
alignItems: "center",
gap: "8px",
padding: "12px 24px",
background: "rgba(255, 0, 0, 0.08)",
border: "1px solid rgba(255,0,0,0.25)",
borderRadius: "6px",
color: "#e8dcc8",
textDecoration: "none",
fontSize: "0.9rem",
fontWeight: 600,
transition: "background 0.2s, border-color 0.2s",
} as React.CSSProperties,
ytSection: {
textAlign: "center" as const,
marginTop: "24px",
} as React.CSSProperties,
};
export default function Music() {
return (
<SiteLayout
title="Music"
description="The official soundtrack of Bone Lord Bob — dark, original, American Anime music."
keywords="Bone Lord Bob, music, soundtrack, American Anime, dark fantasy music, Spotify, original soundtrack"
>
<div style={s.page}>
{/* Hero */}
<div style={s.hero}>
<span style={s.eyebrow}>Official Soundtrack</span>
<h1 style={s.h1}>The Music</h1>
<p style={s.heroSub}>
The world of Bone Lord Bob has a sound. Dark, brutal, and alive.
</p>
</div>
<p style={s.introPara}>
These are the tracks that define it. From the Bone Kingdom to the
Pyre Gates every territory has its own score. This is what it sounds
like when death has a melody.
</p>
{/* Spotify embed */}
<div style={s.embedWrapper}>
<iframe
src="https://open.spotify.com/embed/album/6yfZ5Hu7YQMxZRonCpROtv?utm_source=generator&theme=0"
width="100%"
height="352"
frameBorder="0"
allow="autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture"
loading="lazy"
title="Bone Lord Bob — Official Soundtrack on Spotify"
style={{ display: "block" }}
/>
</div>
{/* Tracklist */}
<span style={s.sectionLabel}>Tracklist</span>
<div style={s.comingSoon}>
<span style={s.comingSoonIcon}>🎵</span>
<p style={s.comingSoonText}>Tracklist coming soon</p>
</div>
{/* YouTube */}
<div style={s.ytSection}>
<a
href="https://www.youtube.com/@bonelordbob"
target="_blank"
rel="noopener noreferrer"
style={s.ytLink}
>
<span></span> Watch on YouTube
</a>
</div>
</div>
</SiteLayout>
);
}