fix(contrast,brand): secondary-page H1/subtitle white-on-white + rename 'The Crew Lounge' → 'The Integration Room'
CONTRAST (white-on-white on light surfaces, mirrors the prior article-body pass): - show-coverage/page.tsx:72 <main> wrapper text-[#e5e7eb] → text-[#0F172A] - show-coverage/page.tsx:76 '0 upcoming / 0 past / 0 total' subtitle text-[#9ca3af] → text-[#475569] - manufacturers/page.tsx:79 H1 'AV Integration Manufacturers' text-[#e0e0e0] → text-[#0F172A] - manufacturers/page.tsx:82 '… manufacturers' subtitle text-[#e0e0e0]/70 → text-[#475569] - forum/page.tsx:294 hero H1 text-white → text-[#0F172A] - forum/page.tsx:296 hero intro 'Connect with pro AV integrators…' text-[#aab4c4] → text-[#475569] - forum/page.tsx:116 'Top Performing Threads' H2 text-white → text-[#0F172A] - forum/page.tsx:581 'Browse Categories' H2 text-white → text-[#0F172A] Skipped per direct exclusion: forum/page.tsx:591 (per-category card titles). Homepage featured grid checked, no edit needed: FeaturedBento 2x2 h3 is already text-[#0F172A] on bg-#FFFFFF; FeaturedBentoFromDb hero is white on a dark image gradient (correct overlay pattern). BRAND RENAME: forum is renamed everywhere user-visible. - forum/page.tsx hero img alt + H1 text 'The Crew Lounge' → 'The Integration Room' - forum/layout.tsx — all 7 occurrences (title, description, openGraph, twitter, JSON-LD WebPage name, breadcrumb item) - components/crew-lounge/CrewLoungeLogo.tsx — img alt - forum/user/[username]/page.tsx — '← Back to The Crew Lounge' link Logo SVG filename (/logos/crew-lounge-logo.svg) and React component name (CrewLoungeLogo) intentionally NOT renamed — they're internal asset paths and would cascade through unrelated imports; only user-visible brand strings touched.
This commit is contained in:
@@ -1,19 +1,19 @@
|
||||
import type { Metadata } from 'next';
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: 'The Crew Lounge — AV Beat',
|
||||
description: 'The Crew Lounge: connect with pro AV integrators, live production engineers, and display tech specialists worldwide. Discuss AV-over-IP, control systems, projection & display, audio engineering, conferencing, AI automation, and more.',
|
||||
title: 'The Integration Room — AV Beat',
|
||||
description: 'The Integration Room: connect with pro AV integrators, live production engineers, and display tech specialists worldwide. Discuss AV-over-IP, control systems, projection & display, audio engineering, conferencing, AI automation, and more.',
|
||||
alternates: { canonical: '/forum' },
|
||||
openGraph: {
|
||||
title: 'The Crew Lounge — AV Beat',
|
||||
description: 'The Crew Lounge: connect with pro AV integrators, live production engineers, and display tech specialists worldwide. Ask questions, share expertise, and discuss AV technology.',
|
||||
title: 'The Integration Room — AV Beat',
|
||||
description: 'The Integration Room: connect with pro AV integrators, live production engineers, and display tech specialists worldwide. Ask questions, share expertise, and discuss AV technology.',
|
||||
url: '/forum',
|
||||
type: 'website',
|
||||
},
|
||||
twitter: {
|
||||
card: 'summary',
|
||||
title: 'The Crew Lounge — AV Beat',
|
||||
description: 'The Crew Lounge: connect with pro AV integrators, live production engineers, and display tech specialists worldwide on AV Beat.',
|
||||
title: 'The Integration Room — AV Beat',
|
||||
description: 'The Integration Room: connect with pro AV integrators, live production engineers, and display tech specialists worldwide on AV Beat.',
|
||||
},
|
||||
};
|
||||
|
||||
@@ -21,8 +21,8 @@ export default function ForumLayout({ children }: { children: React.ReactNode })
|
||||
const schema = {
|
||||
'@context': 'https://schema.org',
|
||||
'@type': 'WebPage',
|
||||
name: 'AV Beat — The Crew Lounge',
|
||||
description: 'The Crew Lounge: an industry community for pro AV integrators, live production engineers, and display tech professionals worldwide.',
|
||||
name: 'AV Beat — The Integration Room',
|
||||
description: 'The Integration Room: an industry community for pro AV integrators, live production engineers, and display tech professionals worldwide.',
|
||||
url: 'https://avbeat.com/forum',
|
||||
isPartOf: {
|
||||
'@type': 'WebSite',
|
||||
@@ -33,7 +33,7 @@ export default function ForumLayout({ children }: { children: React.ReactNode })
|
||||
'@type': 'BreadcrumbList',
|
||||
itemListElement: [
|
||||
{ '@type': 'ListItem', position: 1, name: 'Home', item: 'https://avbeat.com' },
|
||||
{ '@type': 'ListItem', position: 2, name: 'The Crew Lounge', item: 'https://avbeat.com/forum' },
|
||||
{ '@type': 'ListItem', position: 2, name: 'The Integration Room', item: 'https://avbeat.com/forum' },
|
||||
],
|
||||
},
|
||||
};
|
||||
|
||||
@@ -113,7 +113,7 @@ function TopThreadsWidget({ categoryId }: { categoryId?: string }) {
|
||||
<div className="flex items-center justify-between px-5 py-4 border-b border-[#DCE6F2]">
|
||||
<div className="flex items-center gap-2">
|
||||
<span className="text-lg">🏆</span>
|
||||
<h2 className="text-white font-heading font-bold text-base">Top Performing Threads</h2>
|
||||
<h2 className="text-[#0F172A] font-heading font-bold text-base">Top Performing Threads</h2>
|
||||
</div>
|
||||
{/* Metric Tabs */}
|
||||
<div className="flex gap-1 bg-[#111] border border-[#DCE6F2] rounded-lg p-1">
|
||||
@@ -290,10 +290,10 @@ export default function ForumIndexPage() {
|
||||
<div className="flex items-start justify-between gap-4 flex-wrap">
|
||||
<div className="flex-1 min-w-0">
|
||||
<div className="flex items-center gap-3 mb-1">
|
||||
<img src="/logos/crew-lounge-logo.svg" alt="The Crew Lounge" className="w-8 h-8" />
|
||||
<h1 className="text-3xl font-heading font-bold text-white">The Crew Lounge</h1>
|
||||
<img src="/logos/crew-lounge-logo.svg" alt="The Integration Room" className="w-8 h-8" />
|
||||
<h1 className="text-3xl font-heading font-bold text-[#0F172A]">The Integration Room</h1>
|
||||
</div>
|
||||
<p className="text-[#aab4c4] font-body text-sm max-w-2xl">
|
||||
<p className="text-[#475569] font-body text-sm max-w-2xl">
|
||||
Connect with pro AV integrators, live production engineers, and display tech specialists worldwide.
|
||||
</p>
|
||||
</div>
|
||||
@@ -578,7 +578,7 @@ export default function ForumIndexPage() {
|
||||
|
||||
{!loading && !error && (
|
||||
<>
|
||||
<h2 className="text-white font-heading font-bold text-base mb-3">Browse Categories</h2>
|
||||
<h2 className="text-[#0F172A] font-heading font-bold text-base mb-3">Browse Categories</h2>
|
||||
<div className="space-y-2">
|
||||
{categories.map(cat => (
|
||||
<Link
|
||||
|
||||
@@ -124,7 +124,7 @@ export default function ForumUserPage() {
|
||||
<div className="max-w-container mx-auto px-4 py-12">
|
||||
<h1 className="font-heading text-2xl font-bold text-[#0F172A] mb-2">User not found</h1>
|
||||
<p className="font-body text-sm text-[#888]">No forum member with username "{username}".</p>
|
||||
<Link href="/forum" className="font-body text-sm text-[#1D4ED8] hover:underline mt-4 inline-block">← Back to The Crew Lounge</Link>
|
||||
<Link href="/forum" className="font-body text-sm text-[#1D4ED8] hover:underline mt-4 inline-block">← Back to The Integration Room</Link>
|
||||
</div>
|
||||
</main>
|
||||
<Footer />
|
||||
|
||||
@@ -76,10 +76,10 @@ export default async function ManufacturersIndex() {
|
||||
<Header />
|
||||
<div className="max-w-6xl mx-auto px-4 py-10">
|
||||
<header className="mb-8">
|
||||
<h1 className="text-3xl md:text-4xl font-display font-bold text-[#e0e0e0] mb-2">
|
||||
<h1 className="text-3xl md:text-4xl font-display font-bold text-[#0F172A] mb-2">
|
||||
AV Integration Manufacturers
|
||||
</h1>
|
||||
<p className="text-[#e0e0e0]/70 text-base max-w-3xl">
|
||||
<p className="text-[#475569] text-base max-w-3xl">
|
||||
{list.length.toLocaleString()} broadcast, post-production, and live-production
|
||||
manufacturers
|
||||
{nabCount > 0 && <> · {nabCount.toLocaleString()} exhibiting at NAB Show 2026</>}
|
||||
|
||||
@@ -69,11 +69,11 @@ export default async function ShowCoverageIndex() {
|
||||
return (
|
||||
<div className="min-h-screen bg-background">
|
||||
<Header />
|
||||
<main className="mx-auto max-w-6xl px-6 py-10 text-[#e5e7eb]">
|
||||
<main className="mx-auto max-w-6xl px-6 py-10 text-[#0F172A]">
|
||||
<aside className="float-right ml-6 mb-6 hidden lg:block max-w-[300px]"><SidebarAdStack /></aside>
|
||||
<header className="mb-8">
|
||||
<h1 className="font-serif text-4xl font-bold tracking-tight">Industry Show Coverage</h1>
|
||||
<p className="text-sm text-[#9ca3af] mt-2 font-mono">
|
||||
<p className="text-sm text-[#475569] mt-2 font-mono">
|
||||
{upcoming.length} upcoming · {past.length} past · {events.length} total
|
||||
</p>
|
||||
</header>
|
||||
|
||||
@@ -2,7 +2,7 @@ export default function CrewLoungeLogo({ size = 40 }: { size?: number }) {
|
||||
return (
|
||||
<img
|
||||
src="/logos/crew-lounge-logo.svg"
|
||||
alt="The Crew Lounge"
|
||||
alt="The Integration Room"
|
||||
style={{ width: size, height: size }}
|
||||
className="inline-block"
|
||||
/>
|
||||
|
||||
Reference in New Issue
Block a user