A scroll-pinned, 4-slide animated landing page inspired by timothyfinancial.com, reskinned with Gandy-Draper content and brand colours.
Built as a quick demo for Elle Draper. Vanilla HTML + CSS + JS, zero dependencies, drops cleanly into Themify, Elementor, or any other WordPress builder via a custom code block.
# from this folder
python3 -m http.server 8765
# then open http://localhost:8765/ in a browser
Stop the server with Ctrl+C. Use a real desktop window (>980px wide) to see the full animation - mobile gets a clean static fallback.
mockup/
- index.html structure (4 slides, 3 circles, header, scroll hints)
- style.css all keyframes, sticky-scroll mechanics, circle positions
- script.js scroll listener, slide switcher, pop animation
- README.md this file
Three techniques layered together:
#home-slides is 400vh tall; every direct child is position: sticky; top: 0; height: 100vh. As the user scrolls, all four slides plus the three circles stay pinned in the viewport - they don't actually move with the page.scrollTo()s the target, runs the slide transition, then unlocks. This produces the discrete, deliberate slide-snap feel.Everything else is plain CSS keyframes and class toggles.
| Original (Timothy Financial) | This demo (Gandy-Draper) |
|---|---|
Deep navy #030048 |
Deep navy #0a1f3d |
Mint accent #78e6c2 |
Gold accent #caa544 |
Indigo circle #6873f8 |
Slate-blue circle |
| Cream/white circle | Cream #f5efe2 circle |
| Albra serif + Acumin Pro sans | Cormorant Garamond + Inter |
Colours pulled from gandy-draper.com's own palette. Fonts swapped to free Google Fonts that hit the same "high-end services" register.
Tested behaviour:
style.css into the theme's custom CSS or a Code block.script.js into a Code block (or theme footer.php with wp_enqueue_script).index.html (everything inside <body>) into a Code block in the page editor.Watermark in the bottom-left corner can be removed by deleting the <a class="watermark"> line in the HTML.