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:
@@ -19,7 +19,7 @@ export async function POST(request: NextRequest) {
|
||||
html: `
|
||||
<div style="font-family:Arial,sans-serif;max-width:600px;background:#0a0a0a;color:#e5e5e5;padding:32px;border-radius:8px;">
|
||||
<div style="margin-bottom:24px;">
|
||||
<h1 style="color:#3b82f6;font-size:20px;margin:0 0 4px;">Relevant Media Properties</h1>
|
||||
<h1 style="color:#5B7C8D;font-size:20px;margin:0 0 4px;">Relevant Media Properties</h1>
|
||||
<p style="color:#555;font-size:12px;margin:0;">Broadcast Beat · AV Beat — Company Story Engine</p>
|
||||
</div>
|
||||
<h2 style="font-size:18px;color:#fff;margin:0 0 12px;">New Company Stories Queued for Review</h2>
|
||||
@@ -32,11 +32,11 @@ export async function POST(request: NextRequest) {
|
||||
${moreText}
|
||||
</div>
|
||||
<a href="${process.env.NEXT_PUBLIC_SITE_URL || 'https://broadcastb5322.builtwithrocket.new'}/admin/company-tracker"
|
||||
style="display:inline-block;background:#3b82f6;color:#fff;text-decoration:none;padding:10px 20px;border-radius:6px;font-size:14px;font-weight:bold;">
|
||||
style="display:inline-block;background:#5B7C8D;color:#fff;text-decoration:none;padding:10px 20px;border-radius:6px;font-size:14px;font-weight:bold;">
|
||||
Review Story Queue →
|
||||
</a>
|
||||
<p style="color:#444;font-size:12px;margin-top:24px;">
|
||||
Manage settings at <a href="${process.env.NEXT_PUBLIC_SITE_URL || 'https://broadcastb5322.builtwithrocket.new'}/admin/company-tracker" style="color:#3b82f6;">Company Tracker</a>
|
||||
Manage settings at <a href="${process.env.NEXT_PUBLIC_SITE_URL || 'https://broadcastb5322.builtwithrocket.new'}/admin/company-tracker" style="color:#5B7C8D;">Company Tracker</a>
|
||||
</p>
|
||||
</div>
|
||||
`,
|
||||
|
||||
@@ -25,7 +25,7 @@ export async function POST(req: NextRequest) {
|
||||
});
|
||||
|
||||
const noteHtml = note
|
||||
? `<div style="background:#1a1a1a;border-left:3px solid #3b82f6;padding:12px 16px;margin-bottom:20px;border-radius:2px;">
|
||||
? `<div style="background:#1a1a1a;border-left:3px solid #5B7C8D;padding:12px 16px;margin-bottom:20px;border-radius:2px;">
|
||||
<p style="margin:0;color:#aaa;font-size:14px;font-style:italic;">"${note}"</p>
|
||||
</div>`
|
||||
: "";
|
||||
@@ -45,7 +45,7 @@ export async function POST(req: NextRequest) {
|
||||
<!-- Header -->
|
||||
<tr>
|
||||
<td style="background:#0a0a0a;border-bottom:1px solid #1a1a1a;padding:20px 28px;">
|
||||
<p style="margin:0;color:#3b82f6;font-size:11px;font-weight:700;letter-spacing:3px;text-transform:uppercase;">BroadcastBeat</p>
|
||||
<p style="margin:0;color:#5B7C8D;font-size:11px;font-weight:700;letter-spacing:3px;text-transform:uppercase;">BroadcastBeat</p>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- Body -->
|
||||
@@ -53,10 +53,10 @@ export async function POST(req: NextRequest) {
|
||||
<td style="padding:28px;">
|
||||
<p style="margin:0 0 8px;color:#555;font-size:11px;text-transform:uppercase;letter-spacing:2px;">Someone shared an article with you</p>
|
||||
${noteHtml}
|
||||
<p style="margin:0 0 6px;color:#3b82f6;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:2px;">NEWS</p>
|
||||
<p style="margin:0 0 6px;color:#5B7C8D;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:2px;">NEWS</p>
|
||||
<h1 style="margin:0 0 12px;color:#f0f0f0;font-size:22px;font-weight:700;line-height:1.3;">${articleTitle}</h1>
|
||||
<p style="margin:0 0 24px;color:#999;font-size:14px;line-height:1.6;">${articleExcerpt}</p>
|
||||
<a href="${articleUrl}" style="display:inline-block;background:#3b82f6;color:#fff;text-decoration:none;font-size:13px;font-weight:700;padding:12px 24px;border-radius:2px;letter-spacing:1px;text-transform:uppercase;">Read Article</a>
|
||||
<a href="${articleUrl}" style="display:inline-block;background:#5B7C8D;color:#fff;text-decoration:none;font-size:13px;font-weight:700;padding:12px 24px;border-radius:2px;letter-spacing:1px;text-transform:uppercase;">Read Article</a>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- Footer -->
|
||||
|
||||
@@ -48,7 +48,7 @@ export async function POST(req: NextRequest) {
|
||||
});
|
||||
|
||||
const topicsList = topics && topics.length > 0
|
||||
? `<p style="color:#aaa;font-size:14px;">You'll receive updates on: <strong style="color:#3b82f6;">${topics.join(', ')}</strong></p>`
|
||||
? `<p style="color:#aaa;font-size:14px;">You'll receive updates on: <strong style="color:#5B7C8D;">${topics.join(', ')}</strong></p>`
|
||||
: '';
|
||||
|
||||
await transporter.sendMail({
|
||||
@@ -57,12 +57,12 @@ export async function POST(req: NextRequest) {
|
||||
subject: `Welcome to BroadcastBeat — You're subscribed!`,
|
||||
html: `
|
||||
<div style="background:#0d1520;padding:40px 20px;font-family:sans-serif;max-width:600px;margin:0 auto;">
|
||||
<h1 style="color:#3b82f6;font-size:24px;margin-bottom:8px;">You're in!</h1>
|
||||
<h1 style="color:#5B7C8D;font-size:24px;margin-bottom:8px;">You're in!</h1>
|
||||
<p style="color:#e0e0e0;font-size:16px;">Thanks for subscribing to <strong>BroadcastBeat</strong> — the digital platform for broadcast engineering.</p>
|
||||
${topicsList}
|
||||
<p style="color:#aaa;font-size:14px;margin-top:24px;">You'll be the first to know about the latest news, product launches, and industry insights.</p>
|
||||
<hr style="border:none;border-top:1px solid #1e3a5f;margin:32px 0;" />
|
||||
<p style="color:#555;font-size:12px;">You're receiving this because you signed up at broadcastbeat.com. <a href="${process.env.NEXT_PUBLIC_SITE_URL}/unsubscribe?email=${encodeURIComponent(email)}" style="color:#3b82f6;">Unsubscribe</a></p>
|
||||
<hr style="border:none;border-top:1px solid #2F4F5F;margin:32px 0;" />
|
||||
<p style="color:#555;font-size:12px;">You're receiving this because you signed up at broadcastbeat.com. <a href="${process.env.NEXT_PUBLIC_SITE_URL}/unsubscribe?email=${encodeURIComponent(email)}" style="color:#5B7C8D;">Unsubscribe</a></p>
|
||||
</div>
|
||||
`,
|
||||
});
|
||||
|
||||
@@ -124,13 +124,13 @@ export async function POST(req: NextRequest) {
|
||||
const articlesHtml = articles
|
||||
.map(
|
||||
(a: { title: string; excerpt?: string; url?: string; image?: string; category?: string }) => `
|
||||
<div style="border-bottom:1px solid #1e3a5f;padding:20px 0;">
|
||||
${a.category ? `<span style="color:#3b82f6;font-size:11px;font-weight:bold;text-transform:uppercase;letter-spacing:1px;">${a.category}</span>` : ''}
|
||||
<div style="border-bottom:1px solid #2F4F5F;padding:20px 0;">
|
||||
${a.category ? `<span style="color:#5B7C8D;font-size:11px;font-weight:bold;text-transform:uppercase;letter-spacing:1px;">${a.category}</span>` : ''}
|
||||
<h2 style="color:#e0e0e0;font-size:18px;margin:8px 0 6px;">
|
||||
${a.url ? `<a href="${siteUrl}${a.url}" style="color:#e0e0e0;text-decoration:none;">${a.title}</a>` : a.title}
|
||||
</h2>
|
||||
${a.excerpt ? `<p style="color:#888;font-size:14px;margin:0 0 10px;">${a.excerpt}</p>` : ''}
|
||||
${a.url ? `<a href="${siteUrl}${a.url}" style="color:#3b82f6;font-size:13px;text-decoration:none;">Read more →</a>` : ''}
|
||||
${a.url ? `<a href="${siteUrl}${a.url}" style="color:#5B7C8D;font-size:13px;text-decoration:none;">Read more →</a>` : ''}
|
||||
</div>
|
||||
`
|
||||
)
|
||||
@@ -139,22 +139,22 @@ export async function POST(req: NextRequest) {
|
||||
const emailHtml = `
|
||||
<div style="background:#0d1520;padding:0;font-family:sans-serif;max-width:600px;margin:0 auto;">
|
||||
<!-- Header -->
|
||||
<div style="background:#111;border-bottom:2px solid #3b82f6;padding:24px 32px;">
|
||||
<h1 style="color:#3b82f6;font-size:22px;margin:0;font-weight:bold;">BroadcastBeat</h1>
|
||||
<div style="background:#111;border-bottom:2px solid #5B7C8D;padding:24px 32px;">
|
||||
<h1 style="color:#5B7C8D;font-size:22px;margin:0;font-weight:bold;">BroadcastBeat</h1>
|
||||
<p style="color:#555;font-size:12px;margin:4px 0 0;">News & Intelligence for Broadcast, Post-Production & Streaming Technology</p>
|
||||
</div>
|
||||
<!-- Body -->
|
||||
<div style="padding:32px;">
|
||||
${previewText ? `<p style="color:#aaa;font-size:15px;margin:0 0 24px;">${previewText}</p>` : ''}
|
||||
${customMessage ? `<div style="background:#1a2535;border-left:3px solid #3b82f6;padding:16px;margin-bottom:24px;"><p style="color:#e0e0e0;font-size:14px;margin:0;">${customMessage}</p></div>` : ''}
|
||||
${customMessage ? `<div style="background:#1a2535;border-left:3px solid #5B7C8D;padding:16px;margin-bottom:24px;"><p style="color:#e0e0e0;font-size:14px;margin:0;">${customMessage}</p></div>` : ''}
|
||||
${articlesHtml}
|
||||
</div>
|
||||
<!-- Footer -->
|
||||
<div style="background:#0a0f1a;padding:24px 32px;border-top:1px solid #1e3a5f;">
|
||||
<div style="background:#0a0f1a;padding:24px 32px;border-top:1px solid #2F4F5F;">
|
||||
<p style="color:#555;font-size:12px;margin:0;">You're receiving this because you subscribed at broadcastbeat.com.</p>
|
||||
<p style="color:#555;font-size:12px;margin:8px 0 0;">
|
||||
<a href="${siteUrl}" style="color:#3b82f6;">Visit BroadcastBeat</a> ·
|
||||
<a href="${siteUrl}/unsubscribe?email={{email}}" style="color:#3b82f6;">Unsubscribe</a>
|
||||
<a href="${siteUrl}" style="color:#5B7C8D;">Visit BroadcastBeat</a> ·
|
||||
<a href="${siteUrl}/unsubscribe?email={{email}}" style="color:#5B7C8D;">Unsubscribe</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -38,7 +38,7 @@ export async function POST(req: NextRequest) {
|
||||
subject_prefix: subject_prefix || '',
|
||||
header_text: header_text || '',
|
||||
footer_text: footer_text || '',
|
||||
accent_color: accent_color || '#3b82f6',
|
||||
accent_color: accent_color || '#5B7C8D',
|
||||
article_blocks: article_blocks || [],
|
||||
is_preset: false,
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user