add AI-generated landing page photography (Gemini 3 Pro)

20 images generated via gemini-3-pro-image-preview (Nano Banana Pro):
- Documentary street photography style, British-diverse subjects
- 12 square (1:1), 8 landscape (16:9) matching placeholder aspect ratios
- Replaced all ImagePlaceholder components with LandingImage + next/image
- Images in public/images/landing/, served statically

Pages updated: /, /for/charities, /for/fundraisers, /for/volunteers, /for/organisations
New component: LandingImage (next/image with fill + object-cover)
This commit is contained in:
2026-03-03 19:27:36 +08:00
parent 581f1e5f14
commit f4ad6df45a
27 changed files with 182 additions and 29 deletions

View File

@@ -1,5 +1,5 @@
import Link from "next/link"
import { Nav, Footer, BottomCta, ImagePlaceholder } from "../_components"
import { Nav, Footer, BottomCta, LandingImage } from "../_components"
export default function ForOrganisationsPage() {
return (
@@ -26,7 +26,7 @@ export default function ForOrganisationsPage() {
</Link>
</div>
</div>
<ImagePlaceholder aspect="square" label="Multi-org pledge pipeline — boardroom view" />
<LandingImage src="/images/landing/17-orgs-hero-boardroom.jpg" alt="Three people in charity office meeting room discussing pledge pipeline" aspect="square" />
</div>
</section>
@@ -74,8 +74,8 @@ export default function ForOrganisationsPage() {
</div>
</div>
<div className="space-y-6">
<ImagePlaceholder aspect="square" label="Pipeline view — pledges by organisation" />
<ImagePlaceholder aspect="video" label="Instalment schedule — multi-month commitment" />
<LandingImage src="/images/landing/18-orgs-pipeline.jpg" alt="Laptop showing Kanban-style pledge pipeline view by organisation" aspect="square" />
<LandingImage src="/images/landing/19-orgs-instalment-schedule.jpg" alt="Laptop showing instalment schedule with monthly progress bars" aspect="video" />
</div>
</div>
</section>
@@ -83,7 +83,7 @@ export default function ForOrganisationsPage() {
{/* ── Why this works ── */}
<section className="py-24 bg-gray-50 px-6">
<div className="max-w-5xl mx-auto grid md:grid-cols-2 gap-12 items-center">
<ImagePlaceholder aspect="square" label="Organisation dashboard — commitment tracking" />
<LandingImage src="/images/landing/20-orgs-laptop-desk.jpg" alt="Laptop on charity office desk showing commitment tracking dashboard" aspect="square" />
<div>
<h2 className="text-3xl font-black text-gray-900 tracking-tight mb-8">Spreadsheets don&apos;t send reminders</h2>
<div className="space-y-5">