{"_id":"@crazygl/hero-cinematic-contact-sheet","_rev":"2-e7079d44d4272e1e876aa39ae8fc169d","name":"@crazygl/hero-cinematic-contact-sheet","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@crazygl/hero-cinematic-contact-sheet","version":"0.1.0","author":{"name":"ybouane"},"license":"Apache-2.0","_id":"@crazygl/hero-cinematic-contact-sheet@0.1.0","maintainers":[{"name":"ybouane","email":"ybouane@ybouane.com"}],"homepage":"https://crazygl.com/hero/cinematic-contact-sheet","bugs":{"url":"https://github.com/crazygl-com/hero-cinematic-contact-sheet/issues"},"dist":{"shasum":"582cf1db43f6c1423be9a8c06205ccb31193a594","tarball":"https://registry.npmjs.org/@crazygl/hero-cinematic-contact-sheet/-/hero-cinematic-contact-sheet-0.1.0.tgz","fileCount":11,"integrity":"sha512-cWKiZETTAFiZAwQWbZGDco5LKRtscCFZkpE+KtqkiChQeB7rrQ0NA/d7rYQXeloLbBXPhKdusFJ9ImQPGQpf1A==","signatures":[{"sig":"MEUCIAGjFDL3yPhLa3h0z45YMwTDJE/PhzTqUoulkqnsXSPZAiEAvICMyCpnZjzvUbKNJHumsOieRocTkkI81z7r0tkZlQ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":86492},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./style.css":"./style.css","./metadata.json":"./metadata.json"},"gitHead":"455c2478c74f4c06588e6308bb99f4cc0bccf3ab","_npmUser":{"name":"ybouane","email":"ybouane@ybouane.com"},"repository":{"url":"git+https://github.com/crazygl-com/hero-cinematic-contact-sheet.git","type":"git"},"_npmVersion":"11.12.0","description":"Image and video frames bend through depth like a cinematic contact sheet, with soft light leaks and a photographer’s edit-table mood.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"three":"^0.184.0","@crazygl/core":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/hero-cinematic-contact-sheet_0.1.0_1782870649670_0.2188373809882873","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@crazygl/hero-cinematic-contact-sheet","version":"0.1.1","description":"Cinematic Contact Sheet — Multiple frames behave like a cinematic contact sheet, bending through depth and holding a warm editorial mood. A customizable CrazyGL animated hero section — WebGL, React, drop-in.","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/cinematic-contact-sheet","repository":{"type":"git","url":"git+https://github.com/crazygl-com/hero-cinematic-contact-sheet.git"},"publishConfig":{"access":"public"},"keywords":["three","3d","screenshot","stack","cards","saas","templates","dashboards","modules","editorial","portfolio","cinematic-contact-sheet","crazygl","hero","hero-section","webgl","react","animation","ui","landing-page","interactive","frontend","component","canvas"],"bugs":{"url":"https://github.com/crazygl-com/hero-cinematic-contact-sheet/issues"},"gitHead":"6c0a2345045f9e927041211ff81c765b64764ab6","_id":"@crazygl/hero-cinematic-contact-sheet@0.1.1","_nodeVersion":"24.14.0","_npmVersion":"11.12.0","dist":{"integrity":"sha512-d2CPfmBYK+bE1d9lzzM0/fpBF1DNLz0h/E9TqbfaTdW9ndMKZm/kJ1AIxkIfu85HdnfSLR5anbJlR+1tnhBRWA==","shasum":"f645070704b7a7bca7a4717ff67b5bdfcd89adab","tarball":"https://registry.npmjs.org/@crazygl/hero-cinematic-contact-sheet/-/hero-cinematic-contact-sheet-0.1.1.tgz","fileCount":11,"unpackedSize":87065,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEmZRNqxN/X0G9RhDKy5XghKuXz/RASwuP1vrunVnJyzAiAoKgaAthL3jheVYH+TcjWteNZH+mEpjF/ew9/wIgSjWw=="}]},"_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-cinematic-contact-sheet_0.1.1_1782922280224_0.06516546656501343"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-01T01:50:49.458Z","modified":"2026-07-01T16:11:20.512Z","0.1.0":"2026-07-01T01:50:49.831Z","0.1.1":"2026-07-01T16:11:20.384Z"},"bugs":{"url":"https://github.com/crazygl-com/hero-cinematic-contact-sheet/issues"},"author":{"name":"ybouane"},"license":"Apache-2.0","homepage":"https://crazygl.com/hero/cinematic-contact-sheet","repository":{"type":"git","url":"git+https://github.com/crazygl-com/hero-cinematic-contact-sheet.git"},"description":"Cinematic Contact Sheet — Multiple frames behave like a cinematic contact sheet, bending through depth and holding a warm editorial mood. A customizable CrazyGL animated hero section — WebGL, React, drop-in.","maintainers":[{"name":"ybouane","email":"ybouane@ybouane.com"}],"readme":"<sub>*Hero made by [@ybouane](https://x.com/ybouane).*</sub>\n<p align=\"center\">\n  <img src=\"https://crazygl.com/heroes/hero-cinematic-contact-sheet/banner-full.png\" alt=\"Cinematic Contact Sheet\" width=\"640\">\n</p>\n\n# @crazygl/hero-cinematic-contact-sheet\n\nMultiple frames behave like a cinematic contact sheet, bending through depth and holding a warm editorial mood.\n\n## Demo\n[Cinematic Contact Sheet](https://crazygl.com/hero/cinematic-contact-sheet)\n\n## Install\n\n```bash\nnpm install @crazygl/hero-cinematic-contact-sheet\n```\n\n## Usage\n\n```tsx\nimport CinematicContactSheet from '@crazygl/hero-cinematic-contact-sheet';\n\nexport default function Page() {\n  return (\n    <CinematicContactSheet\n      heading={\"Every frame\\nstill counts.\"}\n      screenshot1=\"/shots/one.avif\"\n      screenshot2=\"/shots/two.avif\"\n      flipCycle\n      cycleInterval={2.9}\n    />\n  );\n}\n```\n\n## Customise\n\n- **Content** — `contentType` (heading / two-columns / custom), `heading`, `subheading`.\n- **Screenshots** — `screenshot1`…`screenshot5`, the images on each card (1 is front).\n- **Stack** — `cardCount`, `stackOffsetX/Y/Z`, `cardSize`, `groupOffsetX/Y`, `cardCornerRadius`.\n- **Flip cycle** — `flipCycle`, `cycleInterval` (seconds between flips).\n- **Motion** — `cursorTilt` pointer parallax, `ambientFloat` continuous bob.\n- **Style / Lighting** — `edgeGlowColor`/`edgeGlowStrength`, `shadowStrength`, `keyColor`, `fillColor`, `screenBrightness`.\n- **Background** — `bgTop`, `bgBottom` gradient.\n\n## Best for\n\n- Photographer and studio portfolios built from layered stills.\n- Product launch pages showing multiple app screens or modules.\n- Design-agency and editorial/template-marketplace landing pages.\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","keywords":["three","3d","screenshot","stack","cards","saas","templates","dashboards","modules","editorial","portfolio","cinematic-contact-sheet","crazygl","hero","hero-section","webgl","react","animation","ui","landing-page","interactive","frontend","component","canvas"]}