Parent Epic
Part of #124 — Landing Page Polish, CTA/Form/Event Tracked Flows & Backend Integration Gaps
Depends on: #97 (HeroSection) being merged. Design tokens from #95 must be available.
🎯 Objective
Implement the AboutSection ("What is func(kode)?") and HowItWorks sections of the landing page, matching the Figma design. These are the two sections directly below the Hero and are the highest-priority content sections for communicating value to new visitors.
🛠️ Scope
components/landing/about-section.tsx
components/landing/how-it-works-section.tsx
app/page.tsx wiring
Responsive QA
🚨 Design Rules (non-negotiable)
- Use design tokens from
#95 for ALL font sizes, spacing, and colours
- No hardcoded hex colours or pixel sizes outside of design tokens
- No icon-in-coloured-circle decoration for step/feature items
- No centered text for body copy (left-align body — only headings can center)
- Section anchor IDs must match exactly the
href values in NAV_ITEMS in components/navbar.tsx
✅ Acceptance Criteria
Parent Epic
Part of #124 — Landing Page Polish, CTA/Form/Event Tracked Flows & Backend Integration Gaps
Depends on: #97 (HeroSection) being merged. Design tokens from #95 must be available.
🎯 Objective
Implement the
AboutSection("What is func(kode)?") andHowItWorkssections of the landing page, matching the Figma design. These are the two sections directly below the Hero and are the highest-priority content sections for communicating value to new visitors.🛠️ Scope
components/landing/about-section.tsxid="func-kode"(anchored by Navbar link/#func-kode)landing-displayorlanding-herotoken from [Landing] Design tokens — Tailwind config extensions for landing page typography & spacing #95LandingBackgroundaesthetic (grain texture / subtle gradient — no decorative blobs or icon circles)--space-*tokens for all padding — no arbitrary pixel valuesaria-labelledbypointing to the section headingcomponents/landing/how-it-works-section.tsxid="how-it-works"(anchored by Navbar link/#how-it-works)--text-base(16px) body copyaria-labelledbyon sectionapp/page.tsxwiringHeroSection→AboutSection→HowItWorksSection"use client"at root)min-h-[4727px]or hardcoded canvas heightsResponsive QA
🚨 Design Rules (non-negotiable)
#95for ALL font sizes, spacing, and colourshrefvalues inNAV_ITEMSincomponents/navbar.tsx✅ Acceptance Criteria
AboutSectionrenders at all 5 breakpoints with correct copy and layoutHowItWorksSectionrenders at all 5 breakpoints/#func-kodeand/#how-it-worksscroll to the correct sectionsIntersectionObserverin [analytics] Instrument landing page — pageview, CTA clicks, section visibility, announcement popup #111 can detect these sections (correctidattributes)npm run buildpasses, no type errors