{"_id":"@crazygl/hero-halftone-video","name":"@crazygl/hero-halftone-video","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.1":{"name":"@crazygl/hero-halftone-video","version":"0.1.1","description":"Halftone Video — A looping video rendered as a living halftone print — a grid of ink dots whose size tracks the footage's local brightness, so the moving image reads as a newspaper press plate that's somehow in motion.… A customizable CrazyGL animated her","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"},"peerDependencies":{"react":">=18","react-dom":">=18"},"license":"Apache-2.0","author":{"name":"ybouane"},"homepage":"https://crazygl.com/hero/halftone-video","repository":{"type":"git","url":"git+https://github.com/crazygl-com/hero-halftone-video.git"},"publishConfig":{"access":"public"},"keywords":["halftone","video","print","editorial","dots","ripple","shader","pointer","premium","motion","halftone-video","crazygl","hero","hero-section","webgl","react","animation","ui","landing-page","interactive","frontend","component","canvas","three"],"bugs":{"url":"https://github.com/crazygl-com/hero-halftone-video/issues"},"gitHead":"1fca7dbfed46f9547e2803b95fd576e46a183b5b","_id":"@crazygl/hero-halftone-video@0.1.1","_nodeVersion":"24.14.0","_npmVersion":"11.12.0","dist":{"integrity":"sha512-ACq+JKCXBvkcSUPBR7P6YXr2kfH8tZBTKaKZcFN24Z3BH7felIwHmkWEL2EYKz5XVhYMwRfCvwBJEZidAzB/yg==","shasum":"1540594ee591d149e076ea74844ed2d9bfbb2e42","tarball":"https://registry.npmjs.org/@crazygl/hero-halftone-video/-/hero-halftone-video-0.1.1.tgz","fileCount":11,"unpackedSize":58192,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIF1SQ10Smsca4lw2kVgIpnBDK8ue/ytp+IN1LjbX5l3fAiEAsm+eVApy8UcuYZGwXHtpd/4dzOPiWevOjvIKz0RyNuA="}]},"_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-halftone-video_0.1.1_1782922345965_0.28852856090327017"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-01T16:12:25.831Z","0.1.1":"2026-07-01T16:12:26.135Z","modified":"2026-07-01T16:12:26.343Z"},"maintainers":[{"name":"ybouane","email":"ybouane@ybouane.com"}],"description":"Halftone Video — A looping video rendered as a living halftone print — a grid of ink dots whose size tracks the footage's local brightness, so the moving image reads as a newspaper press plate that's somehow in motion.… A customizable CrazyGL animated her","homepage":"https://crazygl.com/hero/halftone-video","keywords":["halftone","video","print","editorial","dots","ripple","shader","pointer","premium","motion","halftone-video","crazygl","hero","hero-section","webgl","react","animation","ui","landing-page","interactive","frontend","component","canvas","three"],"repository":{"type":"git","url":"git+https://github.com/crazygl-com/hero-halftone-video.git"},"author":{"name":"ybouane"},"bugs":{"url":"https://github.com/crazygl-com/hero-halftone-video/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-halftone-video/banner-full.png\" alt=\"Halftone Video\" width=\"640\">\n</p>\n\n# @crazygl/hero-halftone-video\n\nA looping video rendered as a living halftone print — a grid of ink dots whose size tracks the footage's local brightness, so the moving image reads as a newspaper press plate that's somehow in motion. The pointer is a clarity lens: under the cursor the screen resolves finer and the raw footage sharpens through, so the image reads clearer exactly where you point. Bold, editorial, premium.\n\n## Demo\n[Halftone Video](https://crazygl.com/hero/halftone-video)\n\n## Install\n\n```bash\nnpm install @crazygl/hero-halftone-video\n```\n\n## Usage\n\n```tsx\nimport HalftoneVideo from '@crazygl/hero-halftone-video';\n\nexport default function Hero() {\n  return (\n    <HalftoneVideo\n      videoSrc=\"https://crazygl.com/samples/drone-1.mp4\"\n      heading=\"In print and motion.\"\n      cellSize={6}\n      clarity={0.75}\n    />\n  );\n}\n```\n\n## Customise\n\n- **Content** — `contentType` (heading / two-columns / custom) plus `heading`, `subheading`, or column nodes.\n- **Video** — `videoSrc` (looping MP4/WebM or still image), `cellSize` (grid pitch), `maxDotScale` (largest dot radius), `invert` (positive vs knock-out print).\n- **Color** — `mode` (mono ink vs tint-by-video), `dotColor`, `backgroundColor`.\n- **Focus** — `clarity` (lens reveal strength), `lensRadius` (focal size).\n- **Backdrop** — `transparent` to composite the dots over your own page background.\n\n## Best for\n\n- Editorial and print-adjacent brands, fashion and culture magazines.\n- Music and film launch pages wanting a bold, tactile first frame.\n- Design studios after a high-contrast, \"press plate in motion\" texture.\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-cc0b44ca3b9266a40c460cf7468a6df9"}