homepage: neon dual-speed ticker + emerald/cyan palette pass
- New DualSpeedTicker component (CSS keyframes, GPU-accelerated, pause on hover, 28px rows, 17s BEAT / 40s FORUM, refresh 5min) - /api/ticker/beat-news: last 7 days from bb.native_articles - /api/ticker/forum-posts: latest threads + replies interleaved - Mounted at the bottom of Header so every page gets it - Scoped .bb-neon palette on homepage root: section heads + text-shadow glow, neon-tinted card borders, emerald→cyan button gradient, cyan hover state on links, subscribe boxes neon-bordered - CSS-only — no layout changes Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1364,3 +1364,126 @@ h1, h2, h3 {
|
||||
color: #ffffff;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
/* ─── Neon homepage palette ─────────────────────────────────────────
|
||||
Scoped to the homepage via `.bb-neon` on the root <div>. CSS-only
|
||||
recolor: maps the existing blue accents (#3b82f6 / #60a5fa) to the
|
||||
ticker's emerald + cyan, with subtle glows. No layout changes. */
|
||||
.bb-neon {
|
||||
--color-accent: #00ff9f;
|
||||
--color-accent-dark: #00d4ff;
|
||||
--color-accent-muted: rgba(0, 255, 159, 0.18);
|
||||
--color-text-info: #00d4ff;
|
||||
--color-text-info-strong: #00ff9f;
|
||||
}
|
||||
|
||||
/* Section headings — emerald with subtle glow */
|
||||
.bb-neon h2,
|
||||
.bb-neon h3.font-heading,
|
||||
.bb-neon .font-heading.section-title {
|
||||
color: #00ff9f;
|
||||
text-shadow: 0 0 6px rgba(0, 255, 159, 0.35);
|
||||
letter-spacing: -0.01em;
|
||||
}
|
||||
|
||||
/* Existing blue text → cyan */
|
||||
.bb-neon .text-\[\#3b82f6\] {
|
||||
color: #00d4ff !important;
|
||||
text-shadow: 0 0 4px rgba(0, 212, 255, 0.25);
|
||||
}
|
||||
.bb-neon .text-\[\#60a5fa\] {
|
||||
color: #00d4ff !important;
|
||||
}
|
||||
.bb-neon a:not(.bbt-item):not(.bbt-label):hover {
|
||||
color: #00d4ff;
|
||||
text-shadow: 0 0 4px rgba(0, 212, 255, 0.35);
|
||||
}
|
||||
|
||||
/* Borders previously blue → neon-tinted, subtle */
|
||||
.bb-neon .border-\[\#3b82f6\],
|
||||
.bb-neon .border-\[\#3b82f6\\/30\],
|
||||
.bb-neon .border-\[\#1e3a5f\] {
|
||||
border-color: rgba(0, 255, 159, 0.35) !important;
|
||||
}
|
||||
|
||||
/* Card border softening to neon */
|
||||
.bb-neon .border-\[\#252525\],
|
||||
.bb-neon .border-\[\#2a2a2a\] {
|
||||
border-color: rgba(0, 255, 159, 0.14) !important;
|
||||
}
|
||||
|
||||
/* Hover state on cards / clickable wrappers — cyan border + faint glow */
|
||||
.bb-neon .border-\[\#252525\]:hover,
|
||||
.bb-neon .border-\[\#2a2a2a\]:hover,
|
||||
.bb-neon a:hover > .border-\[\#252525\],
|
||||
.bb-neon a:hover > .border-\[\#2a2a2a\] {
|
||||
border-color: rgba(0, 212, 255, 0.55) !important;
|
||||
box-shadow: 0 0 14px rgba(0, 212, 255, 0.18);
|
||||
}
|
||||
|
||||
/* Buttons previously blue → emerald→cyan gradient with black text */
|
||||
.bb-neon .bg-\[\#3b82f6\],
|
||||
.bb-neon button.bg-\[\#3b82f6\],
|
||||
.bb-neon a.bg-\[\#3b82f6\] {
|
||||
background: linear-gradient(90deg, #00ff9f 0%, #00d4ff 100%) !important;
|
||||
color: #000 !important;
|
||||
box-shadow: 0 0 14px rgba(0, 212, 255, 0.30);
|
||||
border: none;
|
||||
}
|
||||
.bb-neon .bg-\[\#3b82f6\]:hover,
|
||||
.bb-neon .hover\:bg-\[\#2563eb\]:hover,
|
||||
.bb-neon button.bg-\[\#3b82f6\]:hover,
|
||||
.bb-neon a.bg-\[\#3b82f6\]:hover {
|
||||
background: linear-gradient(90deg, #14ffb0 0%, #4ee0ff 100%) !important;
|
||||
box-shadow: 0 0 22px rgba(0, 255, 159, 0.45);
|
||||
}
|
||||
|
||||
/* Category pills / tags / "AI" badges — cyan */
|
||||
.bb-neon .bg-\[\#3b82f6\]\/20 {
|
||||
background: rgba(0, 212, 255, 0.12) !important;
|
||||
border-color: rgba(0, 212, 255, 0.35) !important;
|
||||
}
|
||||
|
||||
/* Subscribe / newsletter accent boxes */
|
||||
.bb-neon .bg-\[\#1a2535\],
|
||||
.bb-neon .bg-\[\#0d1f35\] {
|
||||
background-color: #050a0a !important;
|
||||
border: 1px solid rgba(0, 255, 159, 0.25);
|
||||
box-shadow: 0 0 18px rgba(0, 255, 159, 0.15);
|
||||
}
|
||||
|
||||
/* Featured / hero container — neon outline + soft inner glow */
|
||||
.bb-neon .featured-bento,
|
||||
.bb-neon [data-featured-bento],
|
||||
.bb-neon section[aria-label*="Featured"],
|
||||
.bb-neon section[aria-label*="featured"] {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/* Skeletons keep their dim look — don't recolor */
|
||||
.bb-neon .skeleton {
|
||||
background: #0d0d0d;
|
||||
}
|
||||
|
||||
/* Divider lines */
|
||||
.bb-neon hr,
|
||||
.bb-neon .h-px.bg-\[\#2a2a2a\],
|
||||
.bb-neon .bg-\[\#222\] {
|
||||
background-color: rgba(0, 255, 159, 0.15) !important;
|
||||
}
|
||||
|
||||
/* Body / paragraph copy: lean toward spec's #d1d5db where currently muted */
|
||||
.bb-neon .text-\[\#e8e8e8\],
|
||||
.bb-neon .text-\[\#e0e0e0\] {
|
||||
color: #d1d5db !important;
|
||||
}
|
||||
|
||||
/* Focus rings on interactive elements */
|
||||
.bb-neon .focus\:ring-\[\#3b82f6\]:focus,
|
||||
.bb-neon .focus-visible\:ring-\[\#3b82f6\]:focus-visible {
|
||||
--tw-ring-color: rgba(0, 212, 255, 0.6) !important;
|
||||
}
|
||||
.bb-neon .focus\:border-\[\#3b82f6\]:focus,
|
||||
.bb-neon .focus-visible\:border-\[\#3b82f6\]:focus-visible {
|
||||
border-color: #00d4ff !important;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user