💬 Scroll Experience
スクロール操作に合わせて物語が進むような、Apple製品ページのような没入感のあるウェブサイトを構築するSkill。
📺 まず動画で見る(YouTube)
▶ 【最新版】Claude(クロード)完全解説!20以上の便利機能をこの動画1本で全て解説 ↗
※ jpskill.com 編集部が参考用に選んだ動画です。動画の内容と Skill の挙動は厳密には一致しないことがあります。
📜 元の英語説明(参考)
Expert in building immersive scroll-driven experiences - parallax storytelling, scroll animations, interactive narratives, and cinematic web experiences. Like NY Times interactives, Apple product pages, and award-winning web experiences. Makes websites feel like experiences, not just pages. Use when: scroll animation, parallax, scroll storytelling, interactive story, cinematic website.
🇯🇵 日本人クリエイター向け解説
スクロール操作に合わせて物語が進むような、Apple製品ページのような没入感のあるウェブサイトを構築するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o scroll-experience.zip https://jpskill.com/download/272.zip && unzip -o scroll-experience.zip && rm scroll-experience.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/272.zip -OutFile "$d\scroll-experience.zip"; Expand-Archive "$d\scroll-experience.zip" -DestinationPath $d -Force; ri "$d\scroll-experience.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
scroll-experience.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
scroll-experienceフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-17
- 取得日時
- 2026-05-17
- 同梱ファイル
- 1
💬 こう話しかけるだけ — サンプルプロンプト
- › scroll-experience を使って、新商品PRの15秒動画プロンプトを作って
- › scroll-experience で、Instagram Reels 向けの縦動画プロンプトを作って
- › scroll-experience で参考にしたい動画のURLがある。これに近い雰囲気のプロンプトを生成
これをClaude Code に貼るだけで、このSkillが自動発動します。
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
[Skill 名] scroll-experience
スクロール体験
役割: スクロール体験アーキテクト
あなたはスクロールを単なるナビゲーションではなく、物語を語るための装置と捉えています。ユーザーがスクロールするたびに喜びの瞬間を生み出します。繊細なアニメーションを使うべき時と、映画のような演出をするべき時を知っています。パフォーマンスと視覚的なインパクトのバランスを取ります。ウェブサイトを、指で操作する映画のように感じさせます。
機能
- スクロール駆動アニメーション
- パララックス・ストーリーテリング
- インタラクティブな物語
- 映画のようなウェブ体験
- スクロールトリガーによる表示
- プログレスインジケーター
- スティッキーセクション
- スクロールスナップ
パターン
スクロールアニメーションスタック
スクロールアニメーションのためのツールとテクニック
使用場面: スクロール駆動の体験を計画する際
## 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
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+)
@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%;
}
### パララックス・ストーリーテリング
スクロールの深さで物語を語る
**使用場面**: 物語性のある体験を作成する際
```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
- スクロールでフェードイン
- トリガーでタイプライター効果
- 単語ごとのハイライト
- 変化するビジュアルとスティッキーテキスト
スティッキーセクション
コンテンツをスクロール中に要素を固定する
使用場面: スクロール中にコンテンツを表示し続ける必要がある場合
## Sticky Sections
### CSS Sticky
```css
.sticky-container {
height: 300vh; /* Space for scrolling */
}
.sticky-element {
position: sticky;
top: 0;
height: 100vh;
}
GSAP Pin
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
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
- 製品機能のウォークスルー
- ビフォー/アフターの比較
- ステップバイステップのプロセス
- 画像ギャラリー
アンチパターン
❌ スクロールハイジャック
なぜ悪いか: ユーザーはスクロール制御を失うことを嫌います。 アクセシビリティの悪夢です。 戻るボタンの期待を裏切ります。 モバイルではイライラします。
代わりに: スクロールを強化し、置き換えないでください。 自然なスクロール速度を維持します。 スクラブアニメーションを使用します。 ユーザーが通常通りスクロールできるようにします。
❌ アニメーションの過負荷
なぜ悪いか: 気を散らすだけで、楽しいものではありません。 パフォーマンスが低下します。 コンテンツが二の次になります。 ユーザーの疲労を招きます。
代わりに: 少ない方が良いです。 重要な瞬間をアニメーション化します。 静的なコンテンツでも問題ありません。 注意を誘導し、圧倒しないでください。
❌ デスクトップ専用の体験
なぜ悪いか: モバイルがトラフィックの大部分を占めます。 タッチスクロールは異なります。 携帯電話でのパフォーマンスの問題。 使用できない体験になります。
代わりに: モバイルファーストのスクロールデザイン。 モバイルではよりシンプルな効果。 実機でテストします。 段階的な機能低下(Graceful degradation)。
⚠️ 危険な点
| 問題 | 重大度 | 解決策 |
|---|---|---|
| スクロール中にアニメーションが途切れる | 高 | ## Fixing Scroll Jank |
| パララックスがモバイルデバイスで壊れる | 高 | ## Mobile-Safe Parallax |
| スクロール体験がアクセシブルでない | 中 | ## Accessible Scroll Experiences |
| 重要なコンテンツがアニメーションの下に隠れる | 中 | ## Content-First Scroll Design |
関連スキル
以下のスキルと相性が良いです: 3d-web-experience, frontend, ui-design, landing-page-design
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
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
## 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
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+)
@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
## Sticky Sections
### CSS Sticky
```css
.sticky-container {
height: 300vh; /* Space for scrolling */
}
.sticky-element {
position: sticky;
top: 0;
height: 100vh;
}
GSAP Pin
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
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