Skip to content

feat(home): rebuild the homepage visual system - #539

Open
mohanadft wants to merge 2 commits into
mainfrom
redesign/homepage-refined-green
Open

feat(home): rebuild the homepage visual system#539
mohanadft wants to merge 2 commits into
mainfrom
redesign/homepage-refined-green

Conversation

@mohanadft

Copy link
Copy Markdown
Collaborator

Rebuilds the visual execution of the live homepage (/) while keeping the original copy and section layout intact. No content was rewritten and no section was reordered, merged, or converted to a different shape.

Everything below was verified with astro check (0 errors) and a full astro build.

Why

The homepage was running two visual languages at once. It loaded no web font at all (system default), used four different greens plus 71 hardcoded hex values, and shipped a 585 KB unoptimised hero with no dimensions. The card grids were white cards on a white ground held together by a 7%-alpha ring — a 1.06:1 step, so 18 cards on the page were effectively unbounded.

Design system

  • One accent. Four competing greens (#268024, green-800/700/600) collapse to a single accent. Hardcoded hex on the page: 71 → 0. New tokens: paper, accent.tint/tile/panel/panel2.
  • Borderless and shadowless. A card is defined purely by its fill against the section ground. paper was tuned to #E6DBC8 so a white card is a 1.37:1 step; hover deepens the fill rather than changing a border.
  • Section rhythm. white → pale green → sand → white → white → brand green → white, so every card contrasts its own ground and the green threads through the page.
  • One type scale (1.25 ratio). The four section h2s and the CTA h2 are now the same object — previously the CTA h2 was an undeclared fifth size with no tracking at all. Fraunces for display, Outfit for UI, self-hosted via @fontsource and moved into Layout.astro so the shared nav and footer match on every page.
  • Containers share the hero's horizontal inset instead of sitting in a narrower centred column, with measure capped inside cards so lines stay readable on wide screens.
  • Removes the dead theme.extend.red / theme.extend.green blocks. They sat as siblings of colors rather than inside it, so Tailwind ignored them — verified no page depended on those shades.

Images

Before After
Hero (mobile) 585 KB JPEG 117 KB WebP
Hero (desktop) 585 KB JPEG 339 KB WebP at full 2048px source
Press thumbs up to 347 KB originals 800×500 crops
og:image 2048×1365 (3:2), 585 KB 1200×630, 142 KB

sizes is computed for the full-height cover crop rather than the box width — a landscape photo in a taller container scales by height, so the naive 50vw was under-serving and the hero rendered soft. All images have explicit dimensions.

Accessibility

Every text and boundary pair was computed against WCAG 2.2 AA — 38 pairs, 0 failures.

  • Skip-to-content link with a z-index that clears the sticky navbar.
  • Focus-ring offset colours matched per ground (the default white offset was drawing a halo on tinted sections).
  • Footer legal links went from ~20px tall to 44px targets.
  • motion-safe: on transform hovers, sr-only new-tab hints, aria-hidden on decorative art.
  • Boundary colours meet the 3:1 non-text floor where a boundary is the only cue.

SEO

  • Organization JSON-LD now ships on all Layout.astro pages via a shared src/utils/organizationSchema.ts, plus an ItemList of the portfolio on the homepage. Previously only the unlaunched -new pages had structured data.
  • llms.txt gains a homepage entry, the scale figures and the portfolio outcomes.

Test plan

  • / on desktop, tablet and mobile (40% of traffic is mobile)
  • Full-viewport hero; confirm no jump on iOS Safari when the toolbar retracts (dvh)
  • Hero photo sharpness on a retina display
  • Card grids read as distinct cards on a dim screen (fill-only separation)
  • Keyboard tab through the page; skip link, focus rings, all CTAs
  • Confirm nav/footer render in Outfit on pages other than /
  • Rich Results Test on / for Organization + ItemList

Notes for review

  • The hero section was left untouched by request, so it keeps its border-l-2 accent rule — the only border left on the page.
  • One copy change was unavoidable: removing em dashes required repunctuating the Volunteer Network sentence to an appositive.
  • Two mockup-driven inconsistencies remain by design: icon tiles are rounded-squares in "How we help" but circles in the CTA.

Keeps the original copy and section layout intact, and raises the
execution: type scale, colour system, imagery and accessibility.

Design system
- One green accent replaces four competing greens; the page had 71
  hardcoded hex values and now has none. Adds `paper` and
  `accent.tint/tile/panel/panel2` tokens.
- Borderless and shadowless: a card is defined purely by its fill against
  the section ground (1.37:1). Sections alternate white / sand / pale
  green / brand green so every card contrasts its own ground.
- One declared 1.25 type scale; the four section h2s and the CTA h2 are
  now the same object. Fraunces for display, Outfit for UI, self-hosted
  and moved into the layout so shared nav and footer match.
- Section containers share the hero's horizontal inset rather than a
  narrower centred column, with measure capped inside the cards.
- Drops the dead `theme.extend.red`/`green` blocks, which sat outside
  `colors` and were therefore never applied.

Images
- Hero served as WebP/JPEG at 960/1200/1600/2048 from the full-resolution
  source, with `sizes` corrected for the full-height cover crop; press
  thumbnails cropped to 800x500. Explicit dimensions throughout.
- Proper 1200x630 og:image, replacing a 3:2 585 KB crop that social
  platforms were mis-cropping.

Accessibility
- Skip-to-content link that clears the sticky navbar; focus-ring offset
  colours matched per ground; 44px targets on the footer legal links;
  motion-safe on transform hovers; sr-only new-tab hints; aria-hidden on
  decorative art.
- Every text and boundary pair verified against WCAG 2.2 AA.

SEO
- Organization JSON-LD now ships on every Layout.astro page via a shared
  module, alongside an ItemList of the portfolio on the homepage.
- llms.txt gains a homepage entry, the scale figures and portfolio
  outcomes.
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Sep 7, 2026

Copy link
Copy Markdown

Deploying website with  Cloudflare Pages  Cloudflare Pages

Latest commit: 48c63ab
Status: ✅  Deploy successful!
Preview URL: https://2d6fc17c.website-aun.pages.dev
Branch Preview URL: https://redesign-homepage-refined-gr.website-aun.pages.dev

View logs

Removes "Your support helps us grow this work and create more
opportunities for a free and brighter Palestine." The CTA heading now
leads straight into the two action cards.

This line was new copy introduced from a design mockup rather than
existing page content. The original "We provide the support needed to
ship, scale, and make an impact:" in the support section is retained.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant