feat(brand): AV BEAT 2026 rebrand — blue/navy/white identity
- New AvBeatLogo inline-SVG component (rounded-square emblem with forward-leaning AV monogram + horizontal beam detail) at src/components/AvBeatLogo.tsx, three variants (full/wordmark/icon). - Header.tsx now uses the responsive AV BEAT logo lockup in the top-left, links to /, full lockup on desktop (emblem+wordmark+tagline), emblem+wordmark on tablet, emblem-only on mobile. - Removed DualSpeedTicker (the 'RECENT FORUM POSTS' ticker strip); the news ticker / glow chrome does not match the new aesthetic and the forum row was the explicit removal target. - Tailwind theme + globals.css now expose the AV BEAT 2026 palette as semantic tokens: --brand-blue (#1D4ED8), --brand-blue-bright (#38BDF8), --brand-navy (#0F172A), --brand-bg (#F8FAFC), --brand-surface, --brand-border, --brand-text, --brand-text-muted. Legacy --color-* aliases re-point to the new tokens so any inline-styled component re-themes for free. - Site-wide hex sweep migrates 2,769 hardcoded color literals across 144 files from the old dark-broadcast palette to the new tokens (orange -> blue, dark-brown -> white surface / navy text, cream -> navy). - Layout body class flipped from 'bb-neon' to 'bg-brand-bg text-brand-text' so the dark glow chrome no longer leaks through the new light theme.
This commit is contained in:
@@ -8,57 +8,64 @@ module.exports = {
|
||||
theme: {
|
||||
extend: {
|
||||
colors: {
|
||||
primary: '#1c1815',
|
||||
secondary: '#231d18',
|
||||
accent: '#F0A623',
|
||||
'accent-dark': '#BA7517',
|
||||
'accent-muted': '#412402',
|
||||
'accent-red': '#D85A30',
|
||||
'accent-red-dark': '#E24B4A',
|
||||
background: '#1c1815',
|
||||
card: '#231d18',
|
||||
foreground: '#FBEFE0',
|
||||
muted: '#C9BBA8',
|
||||
border: '#3a322b',
|
||||
'navy-mid': '#1e1e1e',
|
||||
'navy-light': '#3a322b',
|
||||
'ice-blue': '#231d18',
|
||||
'top-bar': '#231d18',
|
||||
'sub-nav': '#26201a',
|
||||
// AV BEAT 2026 brand palette — semantic tokens.
|
||||
// Use the `brand-*` classes in new code. The legacy aliases below
|
||||
// (primary/secondary/accent/etc.) remap onto the same tokens so
|
||||
// existing markup re-themes without a 2k-line find/replace.
|
||||
'brand-blue': '#1D4ED8',
|
||||
'brand-blue-bright': '#38BDF8',
|
||||
'brand-navy': '#0F172A',
|
||||
'brand-white': '#FFFFFF',
|
||||
'brand-bg': '#F8FAFC',
|
||||
'brand-surface': '#FFFFFF',
|
||||
'brand-border': '#DCE6F2',
|
||||
'brand-text': '#0F172A',
|
||||
'brand-text-muted': '#475569',
|
||||
|
||||
// Legacy aliases → remap to new tokens.
|
||||
primary: '#0F172A',
|
||||
secondary: '#FFFFFF',
|
||||
accent: '#1D4ED8',
|
||||
'accent-dark': '#1E3A8A',
|
||||
'accent-muted': '#DCE6F2',
|
||||
'accent-red': '#1D4ED8',
|
||||
'accent-red-dark': '#1E3A8A',
|
||||
background: '#F8FAFC',
|
||||
card: '#FFFFFF',
|
||||
foreground: '#0F172A',
|
||||
muted: '#475569',
|
||||
border: '#DCE6F2',
|
||||
'navy-mid': '#0F172A',
|
||||
'navy-light': '#DCE6F2',
|
||||
'ice-blue': '#F8FAFC',
|
||||
'top-bar': '#FFFFFF',
|
||||
'sub-nav': '#F8FAFC',
|
||||
},
|
||||
fontFamily: {
|
||||
heading: ['Georgia', 'serif'],
|
||||
body: ['Arial', 'Helvetica', 'sans-serif'],
|
||||
mono: ['Courier New', 'monospace'],
|
||||
heading: ['var(--font-sans)', '-apple-system', 'BlinkMacSystemFont', 'Segoe UI', 'Helvetica', 'Arial', 'sans-serif'],
|
||||
body: ['var(--font-sans)', '-apple-system', 'BlinkMacSystemFont', 'Segoe UI', 'Helvetica', 'Arial', 'sans-serif'],
|
||||
serif: ['var(--font-serif)', 'Georgia', 'serif'],
|
||||
mono: ['ui-monospace', 'SF Mono', 'Menlo', 'Consolas', 'Courier New', 'monospace'],
|
||||
},
|
||||
maxWidth: {
|
||||
container: '1200px',
|
||||
},
|
||||
boxShadow: {
|
||||
card: '0 1px 4px rgba(0, 0, 0, 0.5)',
|
||||
'card-hover': '0 4px 16px rgba(0, 0, 0, 0.6)',
|
||||
nav: '0 2px 8px rgba(0, 0, 0, 0.5)',
|
||||
card: '0 1px 2px rgba(15, 23, 42, 0.06), 0 1px 3px rgba(15, 23, 42, 0.04)',
|
||||
'card-hover': '0 4px 12px rgba(15, 23, 42, 0.08), 0 2px 4px rgba(15, 23, 42, 0.04)',
|
||||
nav: '0 1px 0 rgba(15, 23, 42, 0.06)',
|
||||
},
|
||||
keyframes: {
|
||||
'fade-in': {
|
||||
'0%': { opacity: '0', transform: 'translateY(8px)' },
|
||||
'100%': { opacity: '1', transform: 'translateY(0)' },
|
||||
},
|
||||
'page-enter': {
|
||||
'0%': { opacity: '0', transform: 'translateY(6px)' },
|
||||
'100%': { opacity: '1', transform: 'translateY(0)' },
|
||||
},
|
||||
shimmer: {
|
||||
'0%': { backgroundPosition: '-200% 0' },
|
||||
'100%': { backgroundPosition: '200% 0' },
|
||||
},
|
||||
'fade-in': { '0%': { opacity: '0', transform: 'translateY(8px)' }, '100%': { opacity: '1', transform: 'translateY(0)' } },
|
||||
'page-enter': { '0%': { opacity: '0', transform: 'translateY(6px)' }, '100%': { opacity: '1', transform: 'translateY(0)' } },
|
||||
shimmer: { '0%': { backgroundPosition: '-200% 0' }, '100%': { backgroundPosition: '200% 0' } },
|
||||
},
|
||||
animation: {
|
||||
'fade-in': 'fade-in 0.35s ease forwards',
|
||||
'fade-in': 'fade-in 0.35s ease forwards',
|
||||
'page-enter': 'page-enter 0.4s ease forwards',
|
||||
shimmer: 'shimmer 1.6s infinite linear',
|
||||
shimmer: 'shimmer 1.6s infinite linear',
|
||||
},
|
||||
},
|
||||
},
|
||||
plugins: [],
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user