cinematic-scroll-skill 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/COMPATIBILITY.md +244 -0
  2. package/LICENSE +21 -0
  3. package/MODELS.md +92 -0
  4. package/README.md +250 -0
  5. package/SKILL.md +1003 -0
  6. package/audit-mode.md +497 -0
  7. package/bin/install.mjs +91 -0
  8. package/compile-choreography.mjs +296 -0
  9. package/decision-log.md +241 -0
  10. package/examples/GETTING_STARTED.md +279 -0
  11. package/examples/KNOWN_ISSUES.md +50 -0
  12. package/examples/PROMPTS.md +166 -0
  13. package/examples/luxe/README.md +88 -0
  14. package/examples/luxe/index.html +662 -0
  15. package/examples/noir/README.md +72 -0
  16. package/examples/noir/index.html +634 -0
  17. package/examples/pop/README.md +81 -0
  18. package/examples/pop/index.html +711 -0
  19. package/examples/renaissance/README.md +39 -0
  20. package/examples/renaissance/index.html +648 -0
  21. package/examples/studio/README.md +77 -0
  22. package/examples/studio/chapters.js +105 -0
  23. package/examples/studio/index.html +520 -0
  24. package/manifest.json +92 -0
  25. package/manifest.md +136 -0
  26. package/package.json +56 -0
  27. package/references/film-archetypes.md +211 -0
  28. package/references/performance-budget.md +499 -0
  29. package/references/scroll-patterns.md +693 -0
  30. package/scroll-choreography-compilation.md +543 -0
  31. package/scroll-choreography.json +1512 -0
  32. package/taste-guardrails.md +164 -0
  33. package/templates/nextjs/.env.example +41 -0
  34. package/templates/nextjs/app/api/fal/proxy/route.ts +33 -0
  35. package/templates/nextjs/app/api/fal/webhook/route.ts +132 -0
  36. package/templates/nextjs/app/api/generate-edition-asset/route.ts +66 -0
  37. package/templates/nextjs/app/globals.css +80 -0
  38. package/templates/nextjs/app/layout.tsx +21 -0
  39. package/templates/nextjs/app/page.tsx +10 -0
  40. package/templates/nextjs/components/ChapterDemoVisual.tsx +212 -0
  41. package/templates/nextjs/components/ChapterScene.tsx +373 -0
  42. package/templates/nextjs/components/EditionsPage.tsx +116 -0
  43. package/templates/nextjs/components/SmoothScrollProvider.tsx +8 -0
  44. package/templates/nextjs/lib/api-guard.ts +110 -0
  45. package/templates/nextjs/lib/editions-manifest.ts +224 -0
  46. package/templates/nextjs/lib/fal-client.ts +12 -0
  47. package/templates/nextjs/lib/fal-generate.ts +86 -0
  48. package/templates/nextjs/lib/fal-models.ts +213 -0
  49. package/templates/nextjs/lib/prompt-contract.ts +97 -0
  50. package/templates/nextjs/lib/use-device.ts +42 -0
  51. package/templates/nextjs/lib/use-lenis.ts +35 -0
  52. package/templates/nextjs/next.config.ts +29 -0
  53. package/templates/nextjs/package-lock.json +6455 -0
  54. package/templates/nextjs/package.json +41 -0
  55. package/templates/nextjs/package.patch.json +28 -0
  56. package/templates/nextjs/postcss.config.js +6 -0
  57. package/templates/nextjs/scripts/generate-chapter-assets.mjs +243 -0
  58. package/templates/nextjs/scripts/setup.mjs +170 -0
  59. package/templates/nextjs/tailwind.config.ts +37 -0
  60. package/templates/nextjs/tsconfig.json +23 -0
  61. package/troubleshooting.md +1284 -0
@@ -0,0 +1,244 @@
1
+ # Platform Compatibility & Installation
2
+
3
+ This document provides documented installation paths for each platform, with evidence included where terminal transcripts have been recorded.
4
+
5
+ ## Supported Platforms
6
+
7
+ | Platform | Status | Install Method | Notes |
8
+ |----------|--------|-----------------|-------|
9
+ | Claude Desktop | ✅ Verified | Upload skill folder | Settings → Capabilities → Skills → Upload |
10
+ | Cursor | ✅ Verified | Drop into `.cursor/skills/` | Auto-discovery, no reload required |
11
+ | Hermes Agent | ✅ Verified | `git clone` to `~/.hermes/skills/` | Fully compatible; tested June 1, 2026 |
12
+ | OpenClaw | ✅ Verified | `git clone` to `~/.openclaw/workspace/skills/` | Fully compatible; tested June 1, 2026 |
13
+ | skills.sh | 🚀 Target | Registry submission | Primary distribution channel |
14
+
15
+ ---
16
+
17
+ ## Installation Instructions by Platform
18
+
19
+ ### Claude Desktop
20
+
21
+ **Prerequisites:** Claude Desktop app (latest version)
22
+
23
+ **Steps:**
24
+ 1. Download this repository as a ZIP file (or clone it)
25
+ 2. Open Claude Desktop → Settings → Capabilities → Skills
26
+ 3. Click **"Upload skill"**
27
+ 4. Drag the `cinematic-scroll-skill` folder into the upload dialog
28
+ 5. Confirm
29
+
30
+ **Verification:**
31
+ Open a new chat and try:
32
+ ```
33
+ /describe a boutique hotel website using the Warm Scrapbook aesthetic with pinned chapters, 220vh pins, and title reveals via letter-spacing scrub
34
+ ```
35
+
36
+ You should get back a multi-phase response (audit → storyboard → spec → build).
37
+
38
+ ---
39
+
40
+ ### Cursor
41
+
42
+ **Prerequisites:** Cursor (latest version)
43
+
44
+ **Steps:**
45
+ 1. Clone or download this repository to your local machine
46
+ 2. Locate your Cursor skills directory:
47
+ ```bash
48
+ # On macOS:
49
+ ~/.cursor/skills/
50
+
51
+ # On Linux:
52
+ ~/.cursor/skills/
53
+
54
+ # On Windows:
55
+ %APPDATA%\Cursor\skills\
56
+ ```
57
+ 3. Copy the entire `cinematic-scroll-skill` folder into `.cursor/skills/`
58
+ 4. Restart Cursor (or reload with Cmd+Shift+P → Reload Window)
59
+
60
+ **Verification:**
61
+ Open a new file in Cursor and try:
62
+ ```
63
+ Generate a cinematic scroll site for a luxury real estate brand. Use the Symmetric Monument system. 5 chapters. References: David Chipperfield, minimalism, Italian countryside.
64
+ ```
65
+
66
+ Cursor will auto-discover the skill and activate it.
67
+
68
+ ---
69
+
70
+ ---
71
+
72
+ ### Hermes Agent
73
+
74
+ **Prerequisites:** Hermes Agent CLI (v0.15.1+)
75
+ **Install Hermes:** See [hermes-agent.nousresearch.com](https://hermes-agent.nousresearch.com)
76
+
77
+ **Installation (correct method):**
78
+ ```bash
79
+ # Clone the full repository into Hermes skills directory
80
+ git clone https://github.com/MustBeSimo/cinematic-scroll-skill ~/.hermes/skills/cinematic-scroll
81
+ ```
82
+
83
+ **Verify installation:**
84
+ ```bash
85
+ hermes chat
86
+ # Type: /cinematic-scroll --help
87
+ ```
88
+
89
+ **Usage (slash command syntax):**
90
+ ```bash
91
+ hermes chat
92
+ # Then in the chat prompt:
93
+ /cinematic-scroll Build a minimalist architecture portfolio. Use Symmetric Monument system.
94
+ ```
95
+
96
+ **Key findings:**
97
+ - ✅ Full repository installs correctly via git clone
98
+ - ✅ Skill manifest (SKILL.md) matches Hermes frontmatter spec
99
+ - ✅ Skill is discoverable and enabled in skill list
100
+ - ✅ Invocation via slash commands (`/cinematic-scroll`) per Hermes spec
101
+ - ⚠️ Tested on Hermes v0.15.1 (2026-05-29) via Tailscale VPS
102
+
103
+ **Integration:** Compatible with Hermes' skill system using standard YAML frontmatter + markdown format.
104
+
105
+ ---
106
+
107
+ ### OpenClaw
108
+
109
+ **Prerequisites:** OpenClaw (latest version)
110
+ **Install OpenClaw:** See [github.com/openclaw/openclaw](https://github.com/openclaw/openclaw)
111
+
112
+ **Installation (official Git method):**
113
+ ```bash
114
+ openclaw skills install git:MustBeSimo/cinematic-scroll-skill@v0.1.2
115
+ ```
116
+
117
+ **Or manual clone:**
118
+ ```bash
119
+ git clone https://github.com/MustBeSimo/cinematic-scroll-skill ~/.openclaw/workspace/skills/cinematic-scroll-skill/
120
+ ```
121
+
122
+ **Verify installation:**
123
+ ```bash
124
+ ls -la ~/.openclaw/workspace/skills/cinematic-scroll-skill/
125
+ # Should show: SKILL.md, examples/, templates/, references/, .git/
126
+ ```
127
+
128
+ **Usage:**
129
+ OpenClaw automatically discovers the skill from the workspace directory.
130
+
131
+ **Key findings:**
132
+ - ✅ Full repository installs correctly via git clone
133
+ - ✅ SKILL.md (42KB) properly structured for OpenClaw agent contract
134
+ - ✅ All reference files and examples included (43 commits)
135
+ - ✅ MIT license verified
136
+ - ✅ Skill discoverable and ready for invocation
137
+
138
+ **Tested on:** OpenClaw (June 1, 2026)
139
+
140
+ **Integration:** Compatible with OpenClaw's skill system using standard YAML frontmatter + markdown format, same as Hermes.
141
+
142
+ ---
143
+
144
+ ## Known Limitations
145
+
146
+ ### Platform-Specific
147
+
148
+ | Issue | Platform | Workaround |
149
+ |-------|----------|-----------|
150
+ | Large file uploads may timeout | Claude Desktop | Use web version (claude.ai) or Cursor instead |
151
+ | Asset paths require relative URLs | All | Ensure generated files use `./assets/` not `/assets/` |
152
+ | Mode B requires Node.js 18+ | Hermes/OpenClaw | Update Node version or use Mode A (vanilla HTML) |
153
+ | IMAGE-SPEC.md requires fal.ai key | All | Optional; use CSS-only visuals without it |
154
+
155
+ ### Feature Availability
156
+
157
+ | Feature | Status | Notes |
158
+ |---------|--------|-------|
159
+ | Mode A (vanilla HTML) | ✅ All platforms | Self-contained, no build required |
160
+ | Mode B (Next.js template) | ✅ All platforms | Requires Node.js locally |
161
+ | AI image generation | ⚠️ Opt-in | Requires fal.ai account and API key |
162
+ | 7 visual systems | ✅ All platforms | See `references/film-archetypes.md` |
163
+ | 5 live examples | ✅ Reference only | Cannot be directly modified via skill invocation |
164
+ | Custom CSS-only render | ✅ All platforms | Default fallback if no images provided |
165
+
166
+ ---
167
+
168
+ ## Troubleshooting
169
+
170
+ ### "Skill not found" error
171
+
172
+ **Hermes:**
173
+ ```bash
174
+ # Clear the skill cache
175
+ hermes skills clear-cache
176
+
177
+ # Reinstall
178
+ hermes skills install https://github.com/MustBeSimo/cinematic-scroll-skill
179
+ ```
180
+
181
+ **OpenClaw:**
182
+ ```bash
183
+ # Check Git connectivity
184
+ git clone https://github.com/MustBeSimo/cinematic-scroll-skill /tmp/test-clone
185
+
186
+ # Then reinstall
187
+ openclaw skills install git:MustBeSimo/cinematic-scroll-skill@main
188
+ ```
189
+
190
+ ### "SKILL.md not found" error
191
+
192
+ Ensure the skill folder includes all of these files:
193
+ - `SKILL.md` ← main contract
194
+ - `manifest.json` ← platform metadata
195
+ - `README.md` ← user documentation
196
+ - `references/` ← visual system library
197
+ - `examples/` ← 5 live demo sites
198
+
199
+ If any are missing, the platform will reject the skill.
200
+
201
+ ### Agent produces broken HTML
202
+
203
+ This usually means `references/scroll-patterns.md` or `references/taste-guardrails.md` isn't accessible. Verify:
204
+ ```bash
205
+ ls -la ./references/
206
+ # Should show:
207
+ # film-archetypes.md
208
+ # scroll-patterns.md
209
+ # taste-guardrails.md
210
+ # performance-budget.md
211
+ ```
212
+
213
+ ### Generated images don't load
214
+
215
+ This is normal if you haven't provided an `fal.ai` API key. The system falls back to CSS-only rendering. To use generated images:
216
+
217
+ 1. Get a key at [fal.ai](https://fal.ai)
218
+ 2. Set it in the agent environment: `FAL_KEY=your_key_here`
219
+ 3. Re-trigger the generation
220
+
221
+ ---
222
+
223
+ ## Version Compatibility
224
+
225
+ | Skill version | Release | Notes |
226
+ |---|---|---|
227
+ | **2.0.0 (internal)** | Ongoing | Contract version; includes 5-phase pipeline, taste constraints, visual systems |
228
+ | **v0.1.1 (public)** | 2026-06-01 | Initial open-source release; 5 live examples, all platforms supported |
229
+ | **v0.1.2 (current)** | 2026-06-01 | Corrected README GSAP documentation and softened platform verification claims |
230
+ | **v2.0.0 (legacy tag)** | N/A | Historical tag; do not use |
231
+
232
+ **Current recommendation:** Use v0.1.2 for all new installations.
233
+
234
+ ---
235
+
236
+ ## What's Next
237
+
238
+ After installation, see:
239
+ - **`README.md`** for quickstart examples
240
+ - **`examples/PROMPTS.md`** for 20+ copy-paste prompts
241
+ - **`references/film-archetypes.md`** for visual system deep-dives
242
+ - **`SKILL.md`** for the full agent contract (if you're integrating programmatically)
243
+
244
+ For help, open an issue on [GitHub](https://github.com/MustBeSimo/cinematic-scroll-skill).
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Simone Leonelli
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/MODELS.md ADDED
@@ -0,0 +1,92 @@
1
+ # Image models — pick one, swap any time
2
+
3
+ The skill ships with **`fal-ai/flux-2-pro`** as default. It's the best balance of editorial quality, photorealism, speed, and cost for this style of release page.
4
+
5
+ **You only need to read this if you want to swap models.** The default works for 90% of projects.
6
+
7
+ To swap: change `FAL_IMAGE_MODEL` in `.env.local`. **No code change needed** — the adapter in `lib/fal-models.ts` handles each model's different parameter names automatically.
8
+
9
+ ```bash
10
+ # Example: switch to Nano Banana Pro for text-heavy chapter visuals
11
+ FAL_IMAGE_MODEL="fal-ai/gemini-3-pro-image-preview"
12
+ ```
13
+
14
+ Restart `npm run dev` after editing `.env.local`. Re-run `npm run generate` to regenerate chapter images with the new model.
15
+
16
+ ---
17
+
18
+ ## FLUX family — best for editorial, materials, atmospheric depth
19
+
20
+ | Model ID | Cost/img | Speed | When to use |
21
+ |---|---|---|---|
22
+ | **`fal-ai/flux-2-pro`** | $0.06 | ~4s | **Default.** Editorial portraits, fabric, materials, classical compositions. |
23
+ | `fal-ai/flux-2-max` | $0.08 | ~5s | Final hero renders when you want absolute max quality. |
24
+ | `fal-ai/flux-2/turbo` | $0.02 | ~2s | Fast draft rounds — iterate on prompts cheaply. |
25
+ | `fal-ai/flux-pro/v1.1/ultra` | $0.06 | ~10s | Previous-gen 4MP alternative. Slower than FLUX.2 Pro at same cost. |
26
+ | `fal-ai/flux-pro/v1.1` | $0.05 | ~4.5s | High-volume batches where cost matters. |
27
+
28
+ **Avoid `fal-ai/flux/dev`** — it's licensed for non-commercial use only.
29
+
30
+ ---
31
+
32
+ ## Google "Nano Banana" family — best for text-in-image, conversational editing
33
+
34
+ (Yes, "Nano Banana" is the real Google/fal.ai nickname.)
35
+
36
+ | Model ID | Nickname | Cost/img | Speed | When to use |
37
+ |---|---|---|---|---|
38
+ | `fal-ai/gemini-3-pro-image-preview` | Nano Banana Pro | $0.15 | ~8s | Complex prompts, baked-in typography, web-search grounding. |
39
+ | `fal-ai/gemini-3.1-flash-image-preview` | Nano Banana 2 | $0.07 | ~2s | Newest Flash — fast + accurate text in image. |
40
+ | `fal-ai/gemini-2.5-flash-image` | Nano Banana | $0.04 | ~2s | Cheapest Google option. |
41
+
42
+ ---
43
+
44
+ ## Imagen
45
+
46
+ | Model ID | Cost/img | Speed | When to use |
47
+ |---|---|---|---|
48
+ | `fal-ai/imagen3` | $0.04 | ~3s | Solid photorealism at low cost. |
49
+
50
+ ---
51
+
52
+ ## When to use FLUX vs Nano Banana
53
+
54
+ | Need | Use |
55
+ |---|---|
56
+ | Editorial depth, painterly atmosphere, material texture | **FLUX.2 Pro** (default) |
57
+ | Text/labels baked into the image | **Nano Banana Pro** |
58
+ | Iterative editing ("darken the background, add fog") | **Nano Banana 2** |
59
+ | Fast cheap drafts to validate prompts | **FLUX.2 Turbo** |
60
+ | Lowest cost per image | **Gemini 2.5 Flash** or **Imagen 3** |
61
+ | Real-world references via web search | **Nano Banana Pro** |
62
+
63
+ ---
64
+
65
+ ## Cost for a full 8-chapter release page
66
+
67
+ | Model | 8 images cost |
68
+ |---|---|
69
+ | FLUX.2 Pro (default) | ~$0.48 |
70
+ | FLUX.2 Turbo | ~$0.16 |
71
+ | Nano Banana 2 | ~$0.56 |
72
+ | Nano Banana Pro | ~$1.20 |
73
+ | Gemini 2.5 Flash | ~$0.32 |
74
+ | Imagen 3 | ~$0.32 |
75
+
76
+ You only pay when you actually run `npm run generate`. The demo-mode page (CSS-only chapter visuals) costs $0.
77
+
78
+ ---
79
+
80
+ ## Per-model parameter differences (for the curious)
81
+
82
+ You don't need to know this — the adapter handles it. But if you're debugging:
83
+
84
+ | Param | FLUX.2 | Nano Banana | Imagen 3 |
85
+ |---|---|---|---|
86
+ | Orientation | `image_size: 'landscape_16_9'` | `aspect_ratio: '16:9'` | `aspect_ratio: '16:9'` |
87
+ | Multiple images | not supported (always 1) | `num_images: 1..4` | `num_images: 1..4` |
88
+ | Negative prompt | not supported (inline in prompt) | not supported (inline in prompt) | not supported |
89
+ | Resolution | fixed 4MP | `resolution: '1K' \| '2K' \| '4K'` | fixed |
90
+ | Output formats | `'jpeg' \| 'png'` | `'jpeg' \| 'png' \| 'webp'` | `'png'` |
91
+
92
+ Source: `lib/fal-models.ts` — single source of truth, verified against fal.ai docs.
package/README.md ADDED
@@ -0,0 +1,250 @@
1
+ # Cinematic Scroll
2
+
3
+ [![Install via skills.sh](https://img.shields.io/badge/Install%20via-skills.sh-blue?style=for-the-badge)](https://skills.sh/search?q=cinematic-scroll)
4
+
5
+ <a href="https://mustbesimo.github.io/cinematic-scroll-skill/">
6
+ <picture>
7
+ <source media="(prefers-color-scheme: dark)" srcset="assets/banner-dark_v2.png">
8
+ <source media="(prefers-color-scheme: light)" srcset="assets/banner-light_v2.png">
9
+ <img src="assets/banner-dark_v2.png" alt="Cinematic Scroll — a free Agent Skill for scroll-driven websites. Two finishes: Petroleum Editorial (dark) and Swiss Museum (light)." width="100%">
10
+ </picture>
11
+ </a>
12
+
13
+ 👉 **[Visit the live landing page](https://mustbesimo.github.io/cinematic-scroll-skill/)** — it adapts to your GitHub theme. Dark mode → **Petroleum Editorial**. Light mode → **Swiss Museum**. Toggle either finish on the site.
14
+
15
+ <a href="https://mustbesimo.github.io/cinematic-scroll-skill/examples/renaissance/">
16
+ <img src="assets/scroll-demo.gif" alt="The scroll grammar in motion — pinned chapters, multi-depth parallax, and a tracking index rail" width="100%">
17
+ </a>
18
+
19
+ <sub>↑ The <b>motion</b> is the skill — pinned chapters, multi-depth parallax, mask/stagger title reveals, a tracking index rail. The <b>look</b> is whatever you ask for. This clip happens to be a Renaissance editorial; the same grammar drives a brutalist drop, a neon Gen-Z launch, a noir game page, or your brand. <a href="https://mustbesimo.github.io/cinematic-scroll-skill/examples/renaissance/">Scroll it live →</a></sub>
20
+
21
+ **A free, open-source Agent Skill (Claude · Cursor · Hermes · OpenClaw) for building cinematic, scroll-driven websites from a brief to deployment.** Describe the aesthetic — palette, mood, references — and get a visual system, motion storyboard, pinned chapters, multi-depth parallax, 3D tilt, and full release pages art-directed to match. The cinematic *motion* is the constant; the *look* is yours.
22
+
23
+ > **License:** MIT — free for any use, personal or commercial.
24
+ > **Status:** Developed from working demos and production-informed patterns, then released as open source. Provided as-is; no active maintenance commitment. Issues and PRs welcome.
25
+
26
+ Built by [Simone Leonelli](https://w230.net) · [simone@w230.net](mailto:simone@w230.net)
27
+
28
+ ---
29
+
30
+ ## Get started — two paths
31
+
32
+ Pick how you want to build:
33
+
34
+ **Mode A: Single scroll section** — one runnable `.html` file, no build step, no keys. Perfect for a hero chapter or one-off section.
35
+ **Mode B: Full release site** — complete Next.js project, tested templates, optional AI image generation pipeline. Best for product launches and multi-chapter stories.
36
+
37
+ ---
38
+
39
+ ## Install
40
+
41
+ Pick whichever channel fits your client. All four install the same skill.
42
+
43
+ ### Claude Code — plugin marketplace (recommended for Claude Code)
44
+ ```bash
45
+ /plugin marketplace add MustBeSimo/cinematic-scroll-skill
46
+ /plugin install cinematic-scroll@mustbesimo
47
+ ```
48
+ Installs as a namespaced plugin and stays updatable with `/plugin marketplace update mustbesimo`.
49
+
50
+ ### Any client — npx installer
51
+ ```bash
52
+ npx cinematic-scroll-skill # copies the skill into ~/.claude/skills/cinematic-scroll
53
+ npx cinematic-scroll-skill --dir .cursor/skills # or a custom skills directory
54
+ ```
55
+
56
+ ### Any client — git clone
57
+ ```bash
58
+ git clone https://github.com/MustBeSimo/cinematic-scroll-skill ~/.claude/skills/cinematic-scroll
59
+ ```
60
+
61
+ ### Registries
62
+ ```bash
63
+ npx skills add MustBeSimo/cinematic-scroll-skill # skills.sh
64
+ ```
65
+ Also listed on **[agentskills.io](https://agentskills.io)** (search "cinematic-scroll").
66
+
67
+ ### Platform-specific
68
+ Paths vary by client — see [`COMPATIBILITY.md`](./COMPATIBILITY.md) for step-by-step instructions:
69
+ - **Claude Desktop** — Settings → Capabilities → Skills → Upload
70
+ - **Cursor** — drop into `.cursor/skills/` (or `npx cinematic-scroll-skill --dir .cursor/skills`)
71
+ - **Hermes Agent** — `git clone` to `~/.hermes/skills/`
72
+ - **OpenClaw** — `openclaw skills install git:MustBeSimo/cinematic-scroll-skill@v2.0.0`
73
+
74
+ ### Quick start
75
+ After installing, describe what you want to build in chat — see [`examples/PROMPTS.md`](./examples/PROMPTS.md) for 20+ copy-paste examples across aesthetic worlds.
76
+
77
+ ---
78
+
79
+ ## Live examples — five scrollable worlds, one grammar
80
+
81
+ Same engine, deliberately clashing aesthetics — five **single, build-free `index.html` files** (GitHub-Pages-native) running the skill's **Mode A** grammar: vanilla JS on `requestAnimationFrame` with optional GSAP/ScrollTrigger enhancements. All five retain a dependency-free core; Noir, Luxe, and Pop progressively enhance one showcase beat with deferred GSAP + ScrollTrigger (loaded from CDN with vanilla fallback). All five render fully with **zero image files** (CSS-only placeholders that upgrade when you add stills). Proof the look is a variable, not a default.
82
+
83
+ <table>
84
+ <tr>
85
+ <td width="50%" valign="top">
86
+ <a href="https://mustbesimo.github.io/cinematic-scroll-skill/examples/renaissance/"><img src="assets/scroll-demo.gif" alt="Renaissance editorial example — warm classical scroll loop" width="100%"></a>
87
+ </td>
88
+ <td width="50%" valign="top">
89
+ <a href="https://mustbesimo.github.io/cinematic-scroll-skill/examples/studio/"><img src="assets/studio-scroll-demo_v2.gif" alt="Brutalist creative-director example — monochrome scroll loop with 3D motion" width="100%"></a>
90
+ </td>
91
+ </tr>
92
+ <tr>
93
+ <td width="50%" valign="top">
94
+ <a href="https://mustbesimo.github.io/cinematic-scroll-skill/examples/renaissance/"><b>① Renaissance editorial →</b></a><br>
95
+ <sub>Warm, classical, ornate. Oil-painting heroes, gold↔oxblood morph, serif display. Mirrors the production edition at <a href="https://www.w230.net/reinassence">w230.net/reinassence</a>. <a href="./examples/renaissance/">Source</a>.</sub>
96
+ </td>
97
+ <td width="50%" valign="top">
98
+ <a href="https://mustbesimo.github.io/cinematic-scroll-skill/examples/studio/"><b>② Brutalist creative-director →</b></a><br>
99
+ <sub>Cold, modern, severe. Giant grotesk type, monochrome + electric-blue accent, grey↔ink morph, scroll-driven 3D camera. A fictional CD portfolio in the spirit of spare Swiss-editorial sites. <a href="./examples/studio/">Source</a>.</sub>
100
+ </td>
101
+ </tr>
102
+ </table>
103
+
104
+ <table>
105
+ <tr>
106
+ <td width="33%" valign="top">
107
+ <a href="https://mustbesimo.github.io/cinematic-scroll-skill/examples/noir/"><img src="assets/noir-scroll-demo.gif" alt="Sci-fi noir example — teal fog and crimson edge-light loop" width="100%"></a>
108
+ </td>
109
+ <td width="33%" valign="top">
110
+ <a href="https://mustbesimo.github.io/cinematic-scroll-skill/examples/luxe/"><img src="assets/luxe-scroll-demo.gif" alt="Quiet luxury example — ivory and sand still-life loop" width="100%"></a>
111
+ </td>
112
+ <td width="33%" valign="top">
113
+ <a href="https://mustbesimo.github.io/cinematic-scroll-skill/examples/pop/"><img src="assets/pop-scroll-demo.gif" alt="Gen-Z pop example — neon gradient and glassy UI loop" width="100%"></a>
114
+ </td>
115
+ </tr>
116
+ <tr>
117
+ <td width="33%" valign="top">
118
+ <a href="https://mustbesimo.github.io/cinematic-scroll-skill/examples/noir/"><b>③ Sci-fi noir →</b></a><br>
119
+ <sub>Studio <b>VANTASCOPE</b>, title <b>HOLLOW STAR</b>. Near-black void, deep-teal fog, crimson edge-light, film grain. 4 chapters, scroll-linked 3D camera, vertical mask-wipe title reveals. <a href="./examples/noir/">Source</a>.</sub>
120
+ </td>
121
+ <td width="33%" valign="top">
122
+ <a href="https://mustbesimo.github.io/cinematic-scroll-skill/examples/luxe/"><b>④ Quiet luxury →</b></a><br>
123
+ <sub>Maison <b>SOLENNE</b>. Warm ivory + sand, muted cognac accent, thin-serif display, vast negative space. 220vh pins, ~3% background drift, letter-spacing-scrub reveals. <a href="./examples/luxe/">Source</a>.</sub>
124
+ </td>
125
+ <td width="33%" valign="top">
126
+ <a href="https://mustbesimo.github.io/cinematic-scroll-skill/examples/pop/"><b>⑤ Gen-Z pop →</b></a><br>
127
+ <sub>App <b>BLOOM</b>. Candy-pink + electric-lime gradients, bold rounded type, fast parallax, floating CSS phone-UI. <a href="./examples/pop/">Source</a>.</sub>
128
+ </td>
129
+ </tr>
130
+ </table>
131
+
132
+ **Same motion grammar; any aesthetic.** These five show different visual directions the skill can art-direct — change the copy, palette, and references, and the same engine produces any world you describe. This isn't an exhaustive list of *styles* (the styling is infinite). It's a proof that the cinematic *motion* is the constant, and the *look* is whatever you ask for.
133
+
134
+ ### Aesthetic directions
135
+
136
+ Beyond these five live examples, the skill can art-direct itself into any visual world. Below are six concept *style directions* to illustrate the range:
137
+
138
+ <table>
139
+ <tr>
140
+ <td width="33%"><img src="assets/01_v2.png" alt="Brutalist editorial website interface — 'BUILD. BREAK. BIND.' oversized headline over exposed grid lines and raw concrete"><br><sub><b>Brutalist</b> — stark, grid-driven</sub></td>
141
+ <td width="33%"><img src="assets/02_v2.png" alt="Quiet luxury website interface — 'MOMENTS OF CALM' serif hero over warm dunes with restrained gold"><br><sub><b>Quiet luxury</b> — earth palette, space</sub></td>
142
+ <td width="33%"><img src="assets/03_v2.png" alt="Gen-Z pop website interface — 'POP WORLD ENERGY' headline on neon gradient with glassy cards"><br><sub><b>Pop</b> — neon, playful</sub></td>
143
+ </tr>
144
+ <tr>
145
+ <td width="33%"><img src="assets/04_v2.png" alt="Sci-fi noir website interface — 'NEON PROTOCOL' headline with lone figure in neon rain-lit city"><br><sub><b>Sci-fi noir</b> — teal, edge-lit</sub></td>
146
+ <td width="33%"><img src="assets/05_v2.png" alt="Organic wellness website interface — 'NATURALLY ROOTED' serif hero over soft watercolour botanical"><br><sub><b>Wellness</b> — blush, painterly</sub></td>
147
+ <td width="33%"><img src="assets/06_v2.png" alt="Retro archive website interface — 'DIGITAL ARCHIVE' headline over amber scan-lines and terminals"><br><sub><b>Retro archive</b> — amber, analogue</sub></td>
148
+ </tr>
149
+ </table>
150
+
151
+ <sub>Six style directions generated by the skill's own [fal.ai](https://fal.ai) pipeline (or bring your own images / go CSS-only at $0). These are concept stills that show possible aesthetic ranges — the five live examples above are the scrollable proofs.</sub>
152
+
153
+ ### Running locally
154
+
155
+ ```bash
156
+ python3 -m http.server 8099 # then open /examples/renaissance/ · /studio/ · /noir/ · /luxe/ · /pop/
157
+ ```
158
+
159
+ **Under the motion, every chapter ships with:**
160
+
161
+ | | |
162
+ |---|---|
163
+ | **Cinematic depth** | 5–7 parallax layers per chapter, perspective camera, dolly-back transitions |
164
+ | **Editorial type** | Oversized titles with word-stagger / clip-path mask / letter-spacing-scrub reveals |
165
+ | **Atmosphere morphs** | Backgrounds crossfade between chapter color-worlds as you scroll |
166
+ | **Image pipeline** | Optional: fal.ai-generated heroes (FLUX.2, Nano Banana, Imagen); required: bring your own images or render CSS-only visuals. Generated assets remain subject to your input rights and model-provider terms — review output before commercial deployment. |
167
+ | **Bulletproof basics** | Reduced-motion fallback, iOS video safety, mobile-stacked layout, transform/opacity-only core hot paths; optional GSAP showcase enhancements in selected examples; no WebGL required. Validate performance on target devices before production. |
168
+
169
+ ---
170
+
171
+ ## Quickstart
172
+
173
+ ### Mode A — instant scroll section
174
+ > *"Use cinematic-scroll to build a self-contained HTML pinned hero chapter for [YOUR BRAND]. Include a progress HUD."*
175
+
176
+ You get one runnable `.html` file. Open it. Done.
177
+
178
+ ### Mode B — full release site
179
+ > *"Use cinematic-scroll to scaffold a complete Shopify-Editions-tier release page for [YOUR PRODUCT IN ONE LINE]. Demo mode first — do not require my fal.ai key. Copy all bundled templates verbatim. 8 chapters. Finish with the exact commands to run."*
180
+
181
+ Then, in the scaffolded project:
182
+
183
+ ```bash
184
+ npm install
185
+ npm run dev
186
+ ```
187
+
188
+ Open `http://localhost:3000` — a full 8-chapter cinematic page, CSS-only visuals, **zero AI setup**.
189
+
190
+ Want real generated chapter art? Add your own [fal.ai](https://fal.ai) key and run the command below. Generation cost varies by model and resolution — see `MODELS.md` and current fal.ai pricing before running a batch.
191
+
192
+ ```bash
193
+ npm run setup # interactive key wizard → writes .env.local
194
+ npm run generate # generates all chapter heroes into public/generated/
195
+ ```
196
+
197
+ Full walkthrough: [`examples/GETTING_STARTED.md`](./examples/GETTING_STARTED.md). Model menu + costs: [`MODELS.md`](./MODELS.md).
198
+
199
+ ---
200
+
201
+ ## What's in the box
202
+
203
+ ```
204
+ cinematic-scroll-skill/
205
+ ├── SKILL.md # the agent contract (Mode A + Mode B). For Claude, not humans.
206
+ ├── README.md # you are here
207
+ ├── COMPATIBILITY.md # platform installation & verification (Claude, Cursor, Hermes, OpenClaw)
208
+ ├── LICENSE # MIT
209
+ ├── manifest.json # skill metadata (free)
210
+ ├── MODELS.md # fal.ai model menu, costs, when-to-use
211
+ ├── examples/
212
+ │ ├── PROMPTS.md # 20+ trigger prompts across aesthetic worlds
213
+ │ ├── GETTING_STARTED.md # fal.ai setup, troubleshooting, queue+webhook
214
+ │ ├── KNOWN_ISSUES.md # QA log of real failure modes + fixes
215
+ │ ├── renaissance/ # Mode A example — warm classical editorial
216
+ │ ├── studio/ # Mode A example — brutalist creative-director portfolio
217
+ │ ├── noir/ # Mode A example — sci-fi noir (VANTASCOPE)
218
+ │ ├── luxe/ # Mode A example — quiet luxury (Maison Solenne)
219
+ │ └── pop/ # Mode A example — Gen-Z pop (BLOOM)
220
+ └── templates/nextjs/ # tested, copy-verbatim Next.js App Router project
221
+ ├── app/ (+ api/fal/*, generate-edition-asset)
222
+ ├── components/ (ChapterScene, ChapterDemoVisual, EditionsPage, SmoothScrollProvider)
223
+ ├── lib/ (editions-manifest, fal-*, prompt-contract, use-lenis, use-device)
224
+ ├── scripts/ (setup.mjs, generate-chapter-assets.mjs)
225
+ └── package.json, tailwind.config.ts, tsconfig.json, …
226
+ ```
227
+
228
+ ## Peer dependencies (in the consuming app)
229
+
230
+ ```bash
231
+ npm install choreo-3d framer-motion gsap @gsap/react lenis @fal-ai/client @fal-ai/server-proxy
232
+ ```
233
+
234
+ The motion primitives target the [`choreo-3d`](https://www.npmjs.com/package/choreo-3d) package, with a built-in **vanilla fallback** (sticky + IntersectionObserver + rAF) for sandboxes where npm packages can't be installed — identical math, same keyframes.
235
+
236
+ **On GSAP:** as of the 2025 Webflow acquisition, [GSAP is 100% free](https://gsap.com/) — every former Club plugin included (SplitText, ScrollSmoother, ScrollTrigger, MorphSVG…), commercial use too. The Next.js build (Mode B) uses **ScrollTrigger + SplitText** for pinning and title reveals; the standalone demos retain a **vanilla rAF core** with optional deferred GSAP enhancements in selected showcase beats (loaded from CDN with vanilla fallback). This means Mode A files run from `file://` with zero build, and gracefully fall back to CSS-only rendering if the CDN is unavailable. For low-level GSAP help, pair this with the official [`greensock/gsap-skills`](https://github.com/greensock/gsap-skills) — that skill teaches the GSAP API; this one teaches the cinematic system on top.
237
+
238
+ ---
239
+
240
+ ## Originality & legal
241
+
242
+ The reference direction is Shopify Editions, used **only** as an art-direction benchmark — chaptered release storytelling. The skill never copies Shopify's assets, logos, copy, source, or exact compositions, and never bakes readable UI text into generated images or imitates a named living artist. Generated assets may be used subject to fal.ai, model-provider and input-rights terms. Review output before commercial deployment.
243
+
244
+ ## License
245
+
246
+ MIT © 2026 Simone Leonelli — see [LICENSE](./LICENSE).
247
+
248
+ Built something with it? I'd genuinely love to see it: **simone@w230.net**
249
+ </content>
250
+ </invoke>