From d48094ff6861b0ca28ec92cbc2c021f7550de6be Mon Sep 17 00:00:00 2001 From: mkfain Date: Mon, 1 Jun 2026 21:41:01 +0200 Subject: [PATCH] home: recolor whyDifferent section to brand orange band Background was cream-on-light / dark-navy-on-dark. Swap to a brand-orange band (`bg-primary`) with dark slate type on top: - Section heading: `text-slate-900` for ~9:1 contrast on orange - Eyebrow: `text-white/90` (label-on-orange feel, AA on hsl(24 100% 50%)) - Lede: `text-slate-800/90` - Cards: solid white in light mode (was `bg-white`-on-cream, now reads as crisp surfaces lifted off the orange) and dark slate in dark mode; copy is slate-700/-600 - Card shadows bumped to `shadow-md` so cards sit proud of the saturated orange instead of disappearing into it - Block 3 accent changed from indigo to neutral slate so the third card doesn't compete chromatically with the orange band - Read-the-full-breakdown CTA is now a solid dark-slate pill with white text (instead of an outline button that disappeared on the new background) --- src/pages/CampaignsPage.tsx | 72 +++++++++++++++++++------------------ 1 file changed, 38 insertions(+), 34 deletions(-) diff --git a/src/pages/CampaignsPage.tsx b/src/pages/CampaignsPage.tsx index e11d5fc9..e469b2e4 100644 --- a/src/pages/CampaignsPage.tsx +++ b/src/pages/CampaignsPage.tsx @@ -482,10 +482,13 @@ function EmptyState() { * summaries and a link to the long-form breakdown at * `/about#how-it-works`. * - * Visual idiom matches `AboutPage`'s sections: cream `#faf8f4` in - * light mode, near-black `#0a0c14` in dark, `py-20 md:py-28`, - * brand-orange eyebrow + Inter Bold heading. Lives at module scope - * so the home page's main component stays focused on data wiring. + * Visual idiom: a full-bleed brand-orange band (`bg-primary`) at + * the bottom of the home page. Section type is dark slate gray for + * AA contrast against orange (`text-slate-900`), with the eyebrow + * lifted to white for the "label" feel. Cards sit on the orange as + * crisp white surfaces with dark-gray copy, so they read as cards, + * not stripes of the same color. The "Read the full breakdown" + * CTA is a dark-slate pill that anchors the section. */ function WhyDifferentSection() { const { t } = useTranslation(); @@ -495,20 +498,20 @@ function WhyDifferentSection() { return (
-

+

{t('campaigns.home.whyDifferent.eyebrow', { appName })}

{t('campaigns.home.whyDifferent.title')}

-

+

{t('campaigns.home.whyDifferent.lede')}

@@ -542,12 +545,12 @@ function WhyDifferentSection() { {/* Block 3 — public vs private receiving */} } heading={t('campaigns.home.whyDifferent.block3.heading')} body={t('campaigns.home.whyDifferent.block3.body')} > -
    +