{"_id":"@crazygl/hero-film-strip-journey","name":"@crazygl/hero-film-strip-journey","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.1":{"name":"@crazygl/hero-film-strip-journey","version":"0.1.1","description":"Film Strip Product Journey — A product demo broken into frames along a 3D film strip that curves through the hero, with sprocket holes, drifting light leaks and grain, and a CTA where the strip ends. A customizable CrazyGL animated hero section — WebGL, R","type":"module","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./metadata.json":"./metadata.json","./style.css":"./style.css"},"dependencies":{"@crazygl/core":"^0.1.1","three":"^0.184.0"},"peerDependencies":{"react":">=18","react-dom":">=18"},"license":"Apache-2.0","author":{"name":"ybouane"},"homepage":"https://crazygl.com/hero/film-strip-journey","repository":{"type":"git","url":"git+https://github.com/crazygl-com/hero-film-strip-journey.git"},"publishConfig":{"access":"public"},"keywords":["three","3d","film","filmstrip","cinematic","video","product-tour","storytelling","saas","screenshot","film-strip-journey","crazygl","hero","hero-section","webgl","react","animation","ui","landing-page","interactive","frontend","component","canvas"],"bugs":{"url":"https://github.com/crazygl-com/hero-film-strip-journey/issues"},"gitHead":"83cfd713c620ef55abef79c76a0f88d85636f49c","_id":"@crazygl/hero-film-strip-journey@0.1.1","_nodeVersion":"24.14.0","_npmVersion":"11.12.0","dist":{"integrity":"sha512-05klt/WmpjiIjNgEEqo5Tiam8jPty19tnWrQXOkOEaTW1LwuyllZ4soMYg2jG9Gc4cl1BVM1Ap5q2ndUH0ptAg==","shasum":"ba3440c42fca2c26d0d87caa081f6d8a214949b6","tarball":"https://registry.npmjs.org/@crazygl/hero-film-strip-journey/-/hero-film-strip-journey-0.1.1.tgz","fileCount":11,"unpackedSize":90553,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAZWPPMuqNWrWZs74QTWpPr3V6yP9M/zsgFhZrBukVUpAiEAoDWXDrXId5eapEgtqd4J9mJygSZ0Prf1bpcuFvhrJI0="}]},"_npmUser":{"name":"ybouane","email":"ybouane@ybouane.com"},"directories":{},"maintainers":[{"name":"ybouane","email":"ybouane@ybouane.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/hero-film-strip-journey_0.1.1_1782922315367_0.4171709988094421"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-01T16:11:55.131Z","0.1.1":"2026-07-01T16:11:55.530Z","modified":"2026-07-01T16:11:55.750Z"},"maintainers":[{"name":"ybouane","email":"ybouane@ybouane.com"}],"description":"Film Strip Product Journey — A product demo broken into frames along a 3D film strip that curves through the hero, with sprocket holes, drifting light leaks and grain, and a CTA where the strip ends. A customizable CrazyGL animated hero section — WebGL, R","homepage":"https://crazygl.com/hero/film-strip-journey","keywords":["three","3d","film","filmstrip","cinematic","video","product-tour","storytelling","saas","screenshot","film-strip-journey","crazygl","hero","hero-section","webgl","react","animation","ui","landing-page","interactive","frontend","component","canvas"],"repository":{"type":"git","url":"git+https://github.com/crazygl-com/hero-film-strip-journey.git"},"author":{"name":"ybouane"},"bugs":{"url":"https://github.com/crazygl-com/hero-film-strip-journey/issues"},"license":"Apache-2.0","readme":"<sub>*Hero made by [@ybouane](https://x.com/ybouane).*</sub>\n<p align=\"center\">\n  <img src=\"https://crazygl.com/heroes/hero-film-strip-journey/banner-full.png\" alt=\"Film Strip Product Journey\" width=\"640\">\n</p>\n\n# @crazygl/hero-film-strip-journey\n\nA product demo broken into frames along a 3D film strip that curves through the hero, with sprocket holes, drifting light leaks and grain, and a CTA where the strip ends.\n\n## Demo\n[Film Strip Product Journey](https://crazygl.com/hero/film-strip-journey)\n\n## Install\n\n```bash\nnpm install @crazygl/hero-film-strip-journey\n```\n\n## Usage\n\n```tsx\nimport FilmStripJourney from '@crazygl/hero-film-strip-journey';\n\nexport default function Page() {\n  return (\n    <FilmStripJourney\n      frameCount={5}\n      frame1=\"https://crazygl.com/samples/screenshot-dashboard-dark.avif\"\n      ctaLabel=\"Play the demo\"\n      onCTAClick=\"/demo\"\n    />\n  );\n}\n```\n\n## Customise\n\n- **Frames** — `frameCount` (3–8) and `frame1`…`frame8` media slots (image or MP4/WebM/MOV video, cover-fit). Videos load and loop in the gate.\n- **Call to action** — `ctaLabel` and `onCTAClick` (URL string or function); empty label hides it.\n- **Strip** — `stripCurvature`, `stripSpan`, `stripWidth`, `stripOffsetX/Y/Z`, `stripTilt` place and shape the ribbon.\n- **Motion** — `driftSpeed` (ambient reel pull), `scrollRange` (frames advanced per scroll), `parallaxStrength`.\n- **Film look** — `lightLeakStrength` + `leakColor`, `grainStrength`, `sprocketColor`, `accentColor`, `frameBrightness`, `vignetteStrength`.\n- **Backdrop** — `bgTop`, `bgBottom`.\n\n## Best for\n\n- SaaS product tours and onboarding walkthroughs\n- Video and creative tooling launch pages\n- Storytelling-led landing pages that need a narrative spine\n- Demo-driven announcements where screenshots carry the message\n\n\n\nThis hero is part of [CrazyGL](https://crazygl.com), a collection of production-ready WebGL, canvas, 3D, and typography effects. Every CrazyGL hero ships with an agent-ready `SKILL.md` file that helps developers and coding agents adapt the effect into custom landing pages and interactive experiences.\n","readmeFilename":"README.md","_rev":"1-1954da9f5d667d3cdaf26991fee94e12"}