Skip to content

feat: Add animated hero scene with parallax and scroll reveals - #405

Merged
AdamJ merged 3 commits into
mainfrom
claude/portfolio-animations-3wum82
Oct 7, 2026
Merged

AdamJ merged 3 commits into
mainfrom
claude/portfolio-animations-3wum82

Conversation

@AdamJ

@AdamJ AdamJ commented Oct 7, 2026

Copy link
Copy Markdown
Owner

Summary

Introduces an immersive landing page experience with an animated topographic background, parallax hero scene with trail-following hiker, and scroll-triggered content reveals. All motion is wrapped in prefers-reduced-motion queries for accessibility.

Key Changes

  • Hero Scene Animation (src/sass/_landing.scss, src/_includes/hero-scene.njk)

    • Multi-layer SVG ridgeline scene with parallax depth scaling
    • Animated trail drawing with hiker that follows the path tip
    • Sun rise, cloud drift, and flag plant animations
    • Scroll-linked parallax using CSS custom properties (--parallax, --depth)
  • Topographic Background (scripts/generate-topo.js, src/assets/img/topo.svg)

    • Procedural SVG texture generator using seeded noise and marching squares algorithm
    • Generates contour lines at multiple levels with smoothed quadratic curves
    • Fixed background that drifts with scroll progress via --topo-shift variable
  • Motion & Interactivity (src/js/landing.js)

    • Scroll-linked parallax updates for hero layers and background drift
    • Hiker figure positioning along trail path using getPointAtLength()
    • Pause/play control for looping animations (clouds, flag) with WCAG 2.2.2 compliance
    • Intersection Observer-based scroll reveals with staggered animation delays
    • Progressive enhancement: all features degrade gracefully without JS or with reduced motion
  • Page Integration (src/index.md, src/_includes/base.njk)

    • Updated landing page with new hero structure and reveal attributes
    • Added bodyClass and pageScripts support to base template
    • Integrated reveal animations on About and Featured Work sections

Implementation Details

  • Motion is exclusively within @media (prefers-reduced-motion: no-preference) blocks; users with reduced motion preferences see the finished static scene
  • Hiker uses transform-origin and scale() to face direction of travel
  • Trail reveal uses SVG stroke-dashoffset animation with JS polling to sync hiker position
  • Scroll reveals use --reveal-index CSS variable for staggered timing
  • All animations use cubic-bezier easing for smooth, natural motion
  • Scene uses will-change: transform and transform: translate3d() for GPU acceleration

https://claude.ai/code/session_01WDaEGxp3QbscPHqVTPXw8E

claude added 2 commits October 7, 2026 12:32
Layered SVG mountain scene with scroll parallax, a trail that draws to a
summit flag, drifting clouds, and staggered scroll reveals for homepage
sections. All motion respects prefers-reduced-motion, degrades to a static
scene without JS, and includes a pause control for looping scenery.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WDaEGxp3QbscPHqVTPXw8E
A small hiker walks the hero trail in sync with the draw animation and
stops beside the summit flag. A generated topographic contour texture sits
behind the homepage and drifts slightly with scroll progress. Includes
scripts/generate-topo.js to regenerate the contour SVG from a seed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WDaEGxp3QbscPHqVTPXw8E
@github-actions github-actions Bot added the minor Minor release tag label Oct 7, 2026
@AdamJ AdamJ changed the title Add animated hero scene with parallax and scroll reveals feat: Add animated hero scene with parallax and scroll reveals Oct 7, 2026
@AdamJ AdamJ self-assigned this Oct 7, 2026
…ortfolio, and Resume

Move the topographic texture to every page, with its scroll drift in a
small sitewide script. Rename landing.js to motion.js and make it opt-in
via 'motion: true' front matter: page headers fade in and top-level
content sections reveal on scroll, with card grids staggering card by
card. Enabled on the homepage, About, Portfolio, and Resume.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WDaEGxp3QbscPHqVTPXw8E
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

Deploying adamj-github-io with  Cloudflare Pages  Cloudflare Pages

Latest commit: 6aff395
Status: ✅  Deploy successful!
Preview URL: https://13ff16b6.adamj-github-io.pages.dev
Branch Preview URL: https://claude-portfolio-animations.adamj-github-io.pages.dev

View logs

@AdamJ
AdamJ merged commit 43eb91d into main Oct 7, 2026
4 checks passed
@AdamJ
AdamJ deleted the claude/portfolio-animations-3wum82 branch October 7, 2026 14:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

minor Minor release tag

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants