From d51752d60075e816ba02749eddb4d4c8d405e35b Mon Sep 17 00:00:00 2001 From: Richie Date: Mon, 30 Mar 2026 18:05:22 +1100 Subject: [PATCH] HomePage: initial build with hero, FuneralFinder, features, reviews, FAQ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Hero section with display3 serif heading, warm bg, 50/50 split with image slot - FuneralFinderV3 widget integrated as overlapping card (negative margin pattern) - Partner logos carousel with CSS-only infinite scroll, prefers-reduced-motion - 4 feature cards (outlined, compact padding, warm circular icon backgrounds) - Reviews section (dark bg, Google aggregate rating, 3 testimonial cards) - CTA banner with displaySm serif heading ("We Are Here When You Need Us") - FAQ accordion (reuses SummaryStep pattern) - Full a11y: section landmarks, aria-labelledby, heading hierarchy h1→h2→h3 - Grief-sensitive copy throughout (no urgency language, warm tone) - Chromatic added as devDependency, build script updated - 4 stories: Default, WithoutReviews, Minimal, Mobile Co-Authored-By: Claude Opus 4.6 (1M context) --- package-lock.json | 2 +- package.json | 4 +- .../pages/HomePage/HomePage.stories.tsx | 266 +++++++ src/components/pages/HomePage/HomePage.tsx | 648 ++++++++++++++++++ src/components/pages/HomePage/index.ts | 2 + 5 files changed, 919 insertions(+), 3 deletions(-) create mode 100644 src/components/pages/HomePage/HomePage.stories.tsx create mode 100644 src/components/pages/HomePage/HomePage.tsx create mode 100644 src/components/pages/HomePage/index.ts diff --git a/package-lock.json b/package-lock.json index 9d067a1..ca24ffa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31,7 +31,7 @@ "@types/react": "^18.3.0", "@types/react-dom": "^18.3.0", "@vitejs/plugin-react": "^4.3.0", - "chromatic": "^11.0.0", + "chromatic": "^11.29.0", "eslint": "^9.39.4", "eslint-config-prettier": "^10.1.8", "eslint-plugin-jsx-a11y": "^6.10.2", diff --git a/package.json b/package.json index c42ba45..6ce879e 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "format:check": "prettier --check 'src/**/*.{ts,tsx}'", "test": "vitest run --passWithNoTests", "test:watch": "vitest", - "chromatic": "chromatic --exit-zero-on-changes", + "chromatic": "chromatic --exit-zero-on-changes --build-script-name=build:storybook", "prepare": "husky" }, "dependencies": { @@ -45,7 +45,7 @@ "@types/react": "^18.3.0", "@types/react-dom": "^18.3.0", "@vitejs/plugin-react": "^4.3.0", - "chromatic": "^11.0.0", + "chromatic": "^11.29.0", "eslint": "^9.39.4", "eslint-config-prettier": "^10.1.8", "eslint-plugin-jsx-a11y": "^6.10.2", diff --git a/src/components/pages/HomePage/HomePage.stories.tsx b/src/components/pages/HomePage/HomePage.stories.tsx new file mode 100644 index 0000000..54947ab --- /dev/null +++ b/src/components/pages/HomePage/HomePage.stories.tsx @@ -0,0 +1,266 @@ +import type { Meta, StoryObj } from '@storybook/react'; +import Box from '@mui/material/Box'; +import VerifiedOutlinedIcon from '@mui/icons-material/VerifiedOutlined'; +import AccessTimeIcon from '@mui/icons-material/AccessTime'; +import SearchIcon from '@mui/icons-material/Search'; +import SupportAgentOutlinedIcon from '@mui/icons-material/SupportAgentOutlined'; +import { HomePage } from './HomePage'; +import { Navigation } from '../../organisms/Navigation'; +import { Footer } from '../../organisms/Footer'; + +// ─── Shared helpers ────────────────────────────────────────────────────────── + +const FALogo = () => ( + + + + +); + +const FALogoInverse = () => ( + +); + +const nav = ( + } + items={[ + { label: 'FAQ', href: '/faq' }, + { label: 'Contact Us', href: '/contact' }, + { label: 'Log in', href: '/login' }, + ]} + /> +); + +const footer = ( +