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,81 @@
1
+ # Pop — BLOOM (contemporary pop / Gen-Z energy)
2
+
3
+ A self-contained cinematic-scroll example in a deliberately loud world:
4
+ **contemporary pop / Gen-Z** — candy-pink + electric-lime gradients, bold
5
+ rounded mixed-case type, *fast* parallax with wide depth gaps (0.15 → 1.40),
6
+ quick word-stagger, and a floating app-UI layer (a phone) that drifts upward
7
+ faster than the title. Fictional product (**BLOOM**, a productivity app that
8
+ doesn't feel like homework). No real brands.
9
+
10
+ Director grammar: **Greta Gerwig** (Gen-Z warmth + heart) crossed with
11
+ **Wes Anderson** snap pacing — energetic but art-directed, not a meme.
12
+
13
+ A dedicated **"THE DROP"** showcase beat (section `#drop`, inserted right after
14
+ the hero) is now powered by **GSAP ScrollTrigger** and layers in two extra
15
+ techniques the vanilla rAF engine doesn't:
16
+
17
+ - **Jump-scare micro** (taste-guardrails §2 "Jump scare — Gen-Z energy"): the
18
+ "get the app" stamp snaps in once at a scroll threshold — `scale 0.8 → 1.05`
19
+ + `rotateZ(-2° → 0°)` on a `back.out(2)` overshoot. One-shot (not scrubbed),
20
+ reversible. The signature moment.
21
+ - **Velocity-reactive** (scroll-patterns #3): the giant marquee rows react to
22
+ scroll *speed* — a lerped `deltaY/dt` velocity tracker (lerp 0.15, capped)
23
+ drives `skewX` + `scaleY` via `gsap.quickTo`. Transform-only, disabled on
24
+ touch.
25
+
26
+ GSAP is loaded `defer` + feature-detected: if the CDN fails to load, the page
27
+ still runs on the hand-rolled engine and **THE DROP stays at a complete static
28
+ state**. The wiring uses `gsap.matchMedia()` so it auto-disables under
29
+ `prefers-reduced-motion` and at ≤768px.
30
+
31
+ Single self-contained `index.html` — no build step, no npm, no JS libraries.
32
+ Only external resource is Google Fonts. GitHub-Pages-native.
33
+
34
+ ## Run / preview
35
+
36
+ ```bash
37
+ python3 -m http.server 8099 # then open http://localhost:8099/examples/pop/
38
+ # …or just open index.html directly.
39
+ ```
40
+
41
+ The page works **immediately at $0** using a CSS-only phone-UI mock — the
42
+ "floating app" reads as a real screen even with **no image files present**.
43
+ To swap in real screenshots, drop files into `assets/` (see slots below) and
44
+ the page picks them up automatically (it probes `assets/<id>.jpg`, falls back
45
+ to the CSS mock on 404).
46
+
47
+ ## Image slots
48
+
49
+ Each chapter's floating phone probes one screenshot. The image is shown inside
50
+ a 9:19 phone frame (portrait app screenshot). All paths are **relative** so the
51
+ page works at `https://<user>.github.io/cinematic-scroll-skill/examples/pop/`.
52
+
53
+ | Slot (file) | Probed path | Aspect ratio | Target px (W×H) | Generation prompt |
54
+ |---|---|---|---|---|
55
+ | Hero — home | `assets/0-hero.jpg` | 9:19 (portrait) | 540 × 1140 | Gen-Z pop mobile-app **home screen** UI screenshot. Saturated candy-pink → electric-violet vertical gradient background with a lime-green glow at top. Glassy frosted cards floating over it: a big rounded greeting header "Hey, you" with a circular progress ring, then 3 to-do rows with rounded square icons and checkboxes, a bottom tab bar. Bold rounded sans-serif (Plus Jakarta Sans vibe), mixed case, high energy, playful but premium. No device frame, fill the canvas, no watermark, no logos other than the in-app UI. |
56
+ | Focus — session | `assets/1-focus.jpg` | 9:19 (portrait) | 540 × 1140 | Gen-Z pop mobile-app **focus-timer screen** UI screenshot. Electric-violet → cyan vertical gradient background. Centered glassy card showing a large countdown "18:42" and a cute growing plant/seedling illustration, a circular progress ring near full, "Focus Bloom" label in bold rounded sans. Frosted-glass surfaces, neon-lime accents, playful sticker-ish detail. No device frame, fill the canvas, no watermark, no real logos. |
57
+ | Flow — today | `assets/2-flow.jpg` | 9:19 (portrait) | 540 × 1140 | Gen-Z pop mobile-app **daily-schedule / drag-and-drop screen** UI screenshot. Lime-green → cyan vertical gradient background. A vertical timeline of glassy rounded task blocks at different times, one mid-drag with a subtle shadow, an "auto-shuffled" pill chip, bold rounded sans headers, neon accents. Frosted glass, high saturation, energetic but clean. No device frame, fill the canvas, no watermark, no real logos. |
58
+ | Crew — circle | `assets/3-crew.jpg` | 9:19 (portrait) | 540 × 1140 | Gen-Z pop mobile-app **social / friends screen** UI screenshot. Cyan → candy-pink vertical gradient background. Row of round friend avatars with little online/streak badges, a shared "group streak" card with a flame, a glassy chat-nudge bubble, bold rounded sans, lime + pink accents. Frosted glass cards, playful and warm, premium not childish. No device frame, fill the canvas, no watermark, no real logos. |
59
+
60
+ Recommended export: square-cropped to 9:19 portrait, WebP or JPEG, ≤ 200 KB
61
+ each (mobile budget). Keep the screen content slightly inset from the edges so
62
+ nothing important is clipped by the phone's rounded corners.
63
+
64
+ ## Notes
65
+
66
+ - **Compositor-only motion:** the scroll loop mutates only `transform` and
67
+ `opacity`, batched in one `requestAnimationFrame`, with a passive scroll
68
+ listener; off-screen sections are skipped.
69
+ - **Zero-image safe:** no `assets/` folder is required to ship — the CSS phone
70
+ mock renders the app on first paint.
71
+ - **Reduced-motion & mobile (≤680px):** the rAF engine is skipped entirely and
72
+ the page renders a clean static mid-state (full opacity, words settled,
73
+ stacked layout, no scrolljack). THE DROP beat builds its markup in this path
74
+ too — it just isn't GSAP-animated, and its CSS static defaults (sticker
75
+ landed, rows un-skewed) keep it whole. Velocity effects are off on touch.
76
+ - **Accessibility:** semantic landmarks (`header`/`main`/`footer`/`nav`), body
77
+ copy sits on solid white panels for contrast over the bright gradients, and
78
+ `prefers-reduced-motion` is respected.
79
+
80
+ Built with the [cinematic-scroll](https://github.com/MustBeSimo/cinematic-scroll-skill)
81
+ Agent Skill · BLOOM is fictional · one of many possible aesthetics.