3.1 KiB
3.1 KiB
Changelog
All notable changes to the Apex Turf landing page.
[1.0.0] — 2026-08-24
Added
- Initial build of the
dist/landing page (index.html,css/styles.css,js/main.js) from the three reference mockups inwebsite-ideas/and the copy/structure inpdfs/. - Full-bleed diagonal split hero: fixed Residential/Landscaping pane (lion) + auto-rotating Sport Turf pane cycling Pádel (shark) → Football (panther) → Golf (eagle), with manual tabs and pause-on-hover/focus.
- Sticky header with scroll-spy nav highlighting and mobile hamburger menu.
- Value pillars section, 4-card specialties quick-nav grid, and four alternating-layout detail sections (Landscaping / Pádel / Football / Golf).
- About/trust section (Installers First, Apex Guarantee cards).
- Visual gallery/showcase strip.
- Front-end-only quote request form with client-side validation and success state.
- Footer with contact info, quick links, and social icons.
- Scroll-reveal animations, smooth-scroll-with-offset, back-to-top button.
- Copied and web-optimized image assets from
animals/andlogos/intodist/assets/images/(JPEG re-compression + logo resizing to cut total image weight roughly in half).
Fixed (found via automated visual/interaction testing during the build)
- Hero right pane not filling its full height. The rotating Pádel/Football/Golf pane was sized to its
text content instead of the full pane (an absolutely-positioned image nested inside a flex-aligned
container without an explicit fill), so the background photo appeared as a small floating box instead of
full-bleed like the reference mockups. Fixed by making the scene layers fill the pane via
inset: 0and moving the pane's padding onto the scene layer itself. - Scroll-reveal content could get stuck invisible. The fade-in-on-scroll effect relied solely on
IntersectionObserverfiring; if it didn't (or fired late), content stayed atopacity: 0forever. Added a try/catch fallback, a 2.5s force-reveal safety timeout, and a<noscript>rule so content is never permanently hidden regardless of JS timing or availability. - Horizontal overflow on narrow viewports (CSS Grid "blowout"). Every
grid-template-columnstrack in the stylesheet used bareNfrvalues. A barefrtrack's implicitautominimum can grow past the container's padded content box, which caused the contact section (and, latently, every other grid on the page) to overflow its container and clip text at narrow widths. Fixed by wrapping every fractional track inminmax(0, …fr)across the whole stylesheet (hero split, pillar/specialty/showcase/footer grids, detail/about/contact grids, the quote form's two-column row) rather than patching only the section where it was first observed.
Known placeholders (see README.md → "What still needs wiring up before going live")
- Contact form has no backend/submission endpoint yet.
- Phone, email, address, and social links are placeholders (none were supplied).
- Gallery section reuses the four specialty photos in lieu of real installation photography.