slice 4: accent palette refinement — blue → teal

Replace the four accent-family hex codes site-wide with the teal palette
(keeps the dark theme; only swaps the accent family, not the dark base):

  #3b82f6 (accent primary CTA)   → #5B7C8D  (teal)        [839×]
  #2563eb (accent-dark / hover)  → #4A6473  (darker teal) [44×]
  #60a5fa (info link, lighter)   → #8FB0C3  (mid teal)    [68×]
  #1e3a5f (accent-muted bg)      → #2F4F5F  (navy)        [44×]

tailwind.config.js tokens updated to match (accent/accent-dark/accent-muted).
Sweep also covers tailwind.css. 108 files touched. The dark base (#0d0d0d,
#111, #161616, #1a1a1a etc.) is intentionally untouched.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-15 23:33:04 +00:00
parent f6fa7570c4
commit 52fe7bceb6
109 changed files with 937 additions and 937 deletions

View File

@@ -90,7 +90,7 @@ function StatCard({
label,
value,
sub,
accent = '#3b82f6',
accent = '#5B7C8D',
icon,
trend,
}: {
@@ -252,7 +252,7 @@ export default function EmailAnalyticsDashboard() {
return (
<div className="min-h-screen bg-[#0a0a0a] flex items-center justify-center">
<div className="flex flex-col items-center gap-3">
<div className="w-8 h-8 border-2 border-[#3b82f6] border-t-transparent rounded-full animate-spin" />
<div className="w-8 h-8 border-2 border-[#5B7C8D] border-t-transparent rounded-full animate-spin" />
<p className="text-[#555] text-sm font-body">Loading analytics</p>
</div>
</div>
@@ -280,7 +280,7 @@ export default function EmailAnalyticsDashboard() {
onClick={() => setTimeRange(r)}
className={`px-3 py-1.5 text-xs font-semibold font-body rounded-lg transition-colors ${
timeRange === r
? 'bg-[#3b82f6] text-white'
? 'bg-[#5B7C8D] text-white'
: 'text-[#555] hover:text-white border border-[#252525] hover:border-[#444]'
}`}
>
@@ -317,7 +317,7 @@ export default function EmailAnalyticsDashboard() {
label="Active Subscribers"
value={fmt(stats.activeSubscribers)}
sub={`${fmt(stats.unsubscribed)} unsubscribed`}
accent="#3b82f6"
accent="#5B7C8D"
trend={{ value: 12, label: 'vs last month' }}
icon={
<svg className="w-5 h-5" fill="none" stroke="currentColor" strokeWidth="2" viewBox="0 0 24 24">
@@ -378,7 +378,7 @@ export default function EmailAnalyticsDashboard() {
<YAxis tick={{ fill: '#555', fontSize: 10 }} tickLine={false} axisLine={false} tickFormatter={(v) => fmt(v)} />
<Tooltip content={<ChartTooltip />} />
<Legend wrapperStyle={{ fontSize: 11, color: '#888', paddingTop: 12 }} />
<Bar dataKey="sent" name="Sent" fill="#3b82f620" stroke="#3b82f6" strokeWidth={1} radius={[3, 3, 0, 0]} />
<Bar dataKey="sent" name="Sent" fill="#5B7C8D20" stroke="#5B7C8D" strokeWidth={1} radius={[3, 3, 0, 0]} />
<Bar dataKey="opens" name="Opens" fill="#10b98120" stroke="#10b981" strokeWidth={1} radius={[3, 3, 0, 0]} />
<Bar dataKey="clicks" name="Clicks" fill="#f59e0b20" stroke="#f59e0b" strokeWidth={1} radius={[3, 3, 0, 0]} />
</ComposedChart>
@@ -397,8 +397,8 @@ export default function EmailAnalyticsDashboard() {
<AreaChart data={filteredRates} margin={{ top: 4, right: 8, left: -10, bottom: 0 }}>
<defs>
<linearGradient id="openGrad" x1="0" y1="0" x2="0" y2="1">
<stop offset="5%" stopColor="#3b82f6" stopOpacity={0.2} />
<stop offset="95%" stopColor="#3b82f6" stopOpacity={0} />
<stop offset="5%" stopColor="#5B7C8D" stopOpacity={0.2} />
<stop offset="95%" stopColor="#5B7C8D" stopOpacity={0} />
</linearGradient>
<linearGradient id="clickGrad" x1="0" y1="0" x2="0" y2="1">
<stop offset="5%" stopColor="#10b981" stopOpacity={0.2} />
@@ -418,10 +418,10 @@ export default function EmailAnalyticsDashboard() {
<Area
type="monotone"
dataKey="Open Rate"
stroke="#3b82f6"
stroke="#5B7C8D"
strokeWidth={2}
fill="url(#openGrad)"
dot={{ r: 3, fill: '#3b82f6' }}
dot={{ r: 3, fill: '#5B7C8D' }}
activeDot={{ r: 5 }}
/>
<Area
@@ -463,7 +463,7 @@ export default function EmailAnalyticsDashboard() {
fill="#8b5cf618"
dot={false}
/>
<Bar dataKey="net" name="Net New" fill="#3b82f6" radius={[3, 3, 0, 0]} />
<Bar dataKey="net" name="Net New" fill="#5B7C8D" radius={[3, 3, 0, 0]} />
</ComposedChart>
</ResponsiveContainer>
</div>
@@ -503,7 +503,7 @@ export default function EmailAnalyticsDashboard() {
label: 'Open Rate',
yours: stats.avgOpenRate,
benchmark: 21.5,
color: '#3b82f6',
color: '#5B7C8D',
unit: '%',
},
{