Back to UI/UX Design

Scroll Experience Architect

animationparallaxui-designweb-performancescroll-driven
β˜… 4.6 (199)⭐ 28.1kπŸ“„ MITπŸ•’ 2026-06-16Source β†—

Install this skill

npx skills add davila7/claude-code-templates

Works across Claude Code, Cursor, Codex, Copilot & Antigravity

What this skill does

  • β€’Coordinate scroll-triggered reveal animations
  • β€’Implement multi-layer parallax depth effects
  • β€’Develop sticky pin-to-scroll container layouts
  • β€’Create synchronized horizontal scrolling sections
  • β€’Optimize animation performance for mobile touch interfaces

When to use it

  • βœ“Building product landing pages with interactive walkthroughs
  • βœ“Constructing long-form journalistic or educational narratives
  • βœ“Creating comparative visual sliders or before-and-after sections
  • βœ“Designing cinematic portfolio sites that emphasize visual storytelling

When not to use it

  • βœ•Standard documentation or text-heavy utility websites
  • βœ•Applications where accessibility and rapid content consumption are prioritized over visual flair
  • βœ•Projects requiring strict, static page-load speed optimization for low-bandwidth environments

How to invoke it

Example prompts that trigger this skill:

  • β€œHelp me build a parallax scrolling section for my product page.”
  • β€œShow me how to pin this container to the viewport while content scrolls.”
  • β€œWhat is the best way to trigger fade-in animations as the user scrolls down?”
  • β€œCreate a horizontal scroll carousel for my featured projects using GSAP.”
  • β€œRefactor my scroll interactions to ensure they work smoothly on mobile.”

Example workflow

  1. Define the scroll-based narrative arc and visual touchpoints.
  2. Select an animation library based on the current tech stack (e.g., Framer Motion for React).
  3. Implement the base sticky containers for content pinning.
  4. Apply parallax offsets to background and foreground layers.
  5. Add scroll-triggered reveals for text and images.
  6. Test on mobile devices to ensure touch events do not conflict with animations.

Prerequisites

  • –Basic knowledge of CSS positioning
  • –Familiarity with JS animation libraries like GSAP or Framer Motion
  • –Understanding of viewport units and scroll-triggered events

Pitfalls & limitations

  • !Scroll hijacking which prevents natural browser navigation
  • !Over-animating components that leads to layout thrashing or lag
  • !Neglecting touch-based scroll behaviors on mobile devices
  • !Creating experiences that are difficult to scan for accessibility tools

FAQ

Should I use GSAP or CSS for scroll animations?
Use CSS scroll-timeline for simple, lightweight reveal effects. Use GSAP for complex animations, pinning, or multi-element synchronization.
How do I prevent mobile performance issues?
Use hardware-accelerated transforms, reduce the number of simultaneous animations, and implement simpler versions of effects for mobile viewports.
Does this skill support horizontal scrolling?
Yes, it covers techniques to convert vertical scroll movement into horizontal movement for immersive galleries or walkthroughs.

How it compares

Generic prompts often suggest basic fade-in effects, whereas this skill provides a structural architecture for maintaining state, managing pin timing, and avoiding common performance bottlenecks.

Source & trust

⭐ 28k starsπŸ“„ MITπŸ•’ Updated 2026-06-16πŸ›‘ no risky patterns found

From the source: β€œ# Scroll Experience **Role**: Scroll Experience Architect You see scrolling as a narrative device, not just navigation. You create moments of delight as users scroll. You know when to use subtle animations and when to go cinematic. You balance performance with visual impact. You make websites feel l…”

View the full SKILL.md source

# Scroll Experience

**Role**: Scroll Experience Architect

You see scrolling as a narrative device, not just navigation. You create
moments of delight as users scroll. You know when to use subtle animations
and when to go cinematic. You balance performance with visual impact. You
make websites feel like movies you control with your thumb.

## Capabilities

- Scroll-driven animations
- Parallax storytelling
- Interactive narratives
- Cinematic web experiences
- Scroll-triggered reveals
- Progress indicators
- Sticky sections
- Scroll snapping

## Patterns

### Scroll Animation Stack

Tools and techniques for scroll animations

**When to use**: When planning scroll-driven experiences

```python
## Scroll Animation Stack

### Library Options
| Library | Best For | Learning Curve |
|---------|----------|----------------|
| GSAP ScrollTrigger | Complex animations | Medium |
| Framer Motion | React projects | Low |
| Locomotive Scroll | Smooth scroll + parallax | Medium |
| Lenis | Smooth scroll only | Low |
| CSS scroll-timeline | Simple, native | Low |

### GSAP ScrollTrigger Setup
```javascript
import { gsap } from 'gsap';
import { ScrollTrigger } from 'gsap/ScrollTrigger';

gsap.registerPlugin(ScrollTrigger);

// Basic scroll animation
gsap.to('.element', {
  scrollTrigger: {
    trigger: '.element',
    start: 'top center',
    end: 'bottom center',
    scrub: true, // Links animation to scroll position
  },
  y: -100,
  opacity: 1,
});
```

### Framer Motion Scroll
```jsx
import { motion, useScroll, useTransform } from 'framer-motion';

function ParallaxSection() {
  const { scrollYProgress } = useScroll();
  const y = useTransform(scrollYProgress, [0, 1], [0, -200]);

  return (
    <motion.div style={{ y }}>
      Content moves with scroll
    </motion.div>
  );
}
```

### CSS Native (2024+)
```css
@keyframes reveal {
  from { opacity: 0; transform: translateY(50px); }
  to { opacity: 1; transform: translateY(0); }
}

.animate-on-scroll {
  animation: reveal linear;
  animation-timeline: view();
  animation-range: entry 0% cover 40%;
}
```
```

### Parallax Storytelling

Tell stories through scroll depth

**When to use**: When creating narrative experiences

```javascript
## Parallax Storytelling

### Layer Speeds
| Layer | Speed | Effect |
|-------|-------|--------|
| Background | 0.2x | Far away, slow |
| Midground | 0.5x | Middle depth |
| Foreground | 1.0x | Normal scroll |
| Content | 1.0x | Readable |
| Floating elements | 1.2x | Pop forward |

### Creating Depth
```javascript
// GSAP parallax layers
gsap.to('.background', {
  scrollTrigger: {
    scrub: true
  },
  y: '-20%', // Moves slower
});

gsap.to('.foreground', {
  scrollTrigger: {
    scrub: true
  },
  y: '-50%', // Moves faster
});
```

### Story Beats
```
Section 1: Hook (full viewport, striking visual)
    ↓ scroll
Section 2: Context (text + supporting visuals)
    ↓ scroll
Section 3: Journey (parallax storytelling)
    ↓ scroll
Section 4: Climax (dramatic reveal)
    ↓ scroll
Section 5: Resolution (CTA or conclusion)
```

### Text Reveals
- Fade in on scroll
- Typewriter effect on trigger
- Word-by-word highlight
- Sticky text with changing visuals
```

### Sticky Sections

Pin elements while scrolling through content

**When to use**: When content should stay visible during scroll

```javascript
## Sticky Sections

### CSS Sticky
```css
.sticky-container {
  height: 300vh; /* Space for scrolling */
}

.sticky-element {
  position: sticky;
  top: 0;
  height: 100vh;
}
```

### GSAP Pin
```javascript
gsap.to('.content', {
  scrollTrigger: {
    trigger: '.section',
    pin: true, // Pins the section
    start: 'top top',
    end: '+=1000', // Pin for 1000px of scroll
    scrub: true,
  },
  // Animate while pinned
  x: '-100vw',
});
```

### Horizontal Scroll Section
```javascript
const sections = gsap.utils.toArray('.panel');

gsap.to(sections, {
  xPercent: -100 * (sections.length - 1),
  ease: 'none',
  scrollTrigger: {
    trigger: '.horizontal-container',
    pin: true,
    scrub: 1,
    end: () => '+=' + document.querySelector('.horizontal-container').offsetWidth,
  },
});
```

### Use Cases
- Product feature walkthrough
- Before/after comparisons
- Step-by-step processes
- Image galleries
```

## Anti-Patterns

### ❌ Scroll Hijacking

**Why bad**: Users hate losing scroll control.
Accessibility nightmare.
Breaks back button expectations.
Frustrating on mobile.

**Instead**: Enhance scroll, don't replace it.
Keep natural scroll speed.
Use scrub animations.
Allow users to scroll normally.

### ❌ Animation Overload

**Why bad**: Distracting, not delightful.
Performance tanks.
Content becomes secondary.
User fatigue.

**Instead**: Less is more.
Animate key moments.
Static content is okay.
Guide attention, don't overwhelm.

### ❌ Desktop-Only Experience

**Why bad**: Mobile is majority of traffic.
Touch scroll is different.
Performance issues on phones.
Unusable experience.

**Instead**: Mobile-first scroll design.
Simpler effects on mobile.
Test on real devices.
Graceful degradation.

## ⚠️ Sharp Edges

| Issue | Severity | Solution |
|-------|----------|----------|
| Animations stutter during scroll | high | ## Fixing Scroll Jank |
| Parallax breaks on mobile devices | high | ## Mobile-Safe Parallax |
| Scroll experience is inaccessible | medium | ## Accessible Scroll Experiences |
| Critical content hidden below animations | medium | ## Content-First Scroll Design |

## Related Skills

Works well with: `3d-web-experience`, `frontend`, `ui-design`, `landing-page-design`

Quoted from davila7/claude-code-templates for reference β€” see the original for the authoritative, latest version.

πŸ“„ Full skill instructions β€” original source: davila7/claude-code-templates
The Scroll Experience Architect skill turns standard web scrolling into a deliberate narrative engine. It shifts focus from simple navigation to creating timed, scroll-triggered visual responses that guide users through interactive stories or product features. This skill provides structural guidance for implementing complex animations, parallax effects, and sticky layout behaviors that stay performant across devices. It helps developers move beyond static content by mapping animation timing to scroll position using modern standards like CSS scroll-timeline or libraries such as GSAP and Framer Motion. By prioritizing the user's control over the viewport, this approach ensures that visual flair never sacrifices accessibility or navigation reliability. It is for developers aiming to build high-end interactive websites that respond naturally to user movement.

How to Use This Skill Unit

Option A: Project-Specific (Recommended)

  1. Click "Download" above
  2. In your project, create the directory: .agent/skills/scroll-experience/
  3. Save the file as SKILL.md
  4. The agent will automatically discover the skill based on its description.

Option B: Global Installation (All Agents)

Save the file to these locations to make it available across all projects:

  • Claude Code: ~/.claude/skills/davila7/claude-code-templates/scroll-experience/SKILL.md
  • Cursor: ~/.cursor/skills/davila7/claude-code-templates/scroll-experience/SKILL.md
  • Antigravity: ~/.gemini/antigravity/skills/davila7/claude-code-templates/scroll-experience/SKILL.md

πŸš€ Install with CLI:
npx skills add davila7/claude-code-templates

Read the Master Guide: Mastering Agent Skills β†’

Recommended Rules

View more rules β†’

Recommended Workflows

View more workflows β†’

Recommended MCP Servers

View more MCP servers β†’

Take It Further

Maximize your productivity with these powerful resources

πŸ“‹

Define Your Standards

Set up coding standards to ensure this workflow produces consistent, high-quality results.

Browse Rules Library
πŸ“–

Master Workflows

Learn how to create custom workflows, use Turbo Mode, and build your automation library.

Complete Guide

How to use this Skill in Claude Code & Cursor

For Claude Code (CLI)

To use this skill in Claude Code, copy the rule content into your project's custom instructions or follow our Add-Skill CLI guide. This ensures Claude follows your standards during every code generation.

For Cursor & Windsurf

For Cursor or Windsurf, individual skills are best used in the "Rules for AI" section. This specific unit helps the agent avoid ui/ux design issues, leading to cleaner, more efficient code.

Why the skill format matters: the standardized Agent Skills format lets your AI agent load detailed instructions only when they are relevant, keeping your prompt clean while improving results.

Source & attribution

This skill is categorized under UI/UX Design and is published by davila7, maintained in davila7/claude-code-templates.

← Browse All Agent Skills
Sponsored AI assistant. Recommendations may be paid.