{"_id":"@crazygl/hero-image-masked-text","name":"@crazygl/hero-image-masked-text","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.1":{"name":"@crazygl/hero-image-masked-text","version":"0.1.1","description":"Image Masked Text — A heading whose letterforms are filled with a photograph. Uses native CSS background-clip:text so the wordmark stays selectable and crisp at any zoom, with cover, contain, or custom-percent fit modes. A customizable CrazyGL animated he","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/image-masked-text","repository":{"type":"git","url":"git+https://github.com/crazygl-com/hero-image-masked-text.git"},"publishConfig":{"access":"public"},"keywords":["image-mask","typography","background-clip","headline","css","image-masked-text","crazygl","hero","hero-section","webgl","react","animation","ui","landing-page","interactive","frontend","component","canvas","three"],"bugs":{"url":"https://github.com/crazygl-com/hero-image-masked-text/issues"},"gitHead":"8a0827ed7284bf03efbb7ffe38deedef182bfea2","_id":"@crazygl/hero-image-masked-text@0.1.1","_nodeVersion":"24.14.0","_npmVersion":"11.12.0","dist":{"integrity":"sha512-qQH2e00yZY6KA6I+mOZmSmFVQJvAzC/wsORWPfAJCSzrBgiFOQ5SbXlKIZduDpQQBal4Pxksnn8HlXj8ecrMkg==","shasum":"8c5a8802c27f0e2294a617f4c18ec71b3a3080df","tarball":"https://registry.npmjs.org/@crazygl/hero-image-masked-text/-/hero-image-masked-text-0.1.1.tgz","fileCount":9,"unpackedSize":39232,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHy03GXL5KLiRgDp8JyHEzaX5FhDSrRV8L0DhJ84DbJgAiBxLgzuD904KLWDaSRF+v9hrjFJHyMabFesw0+uwWmddw=="}]},"_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-image-masked-text_0.1.1_1782922361753_0.9506235424914662"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-01T16:12:41.598Z","0.1.1":"2026-07-01T16:12:41.890Z","modified":"2026-07-01T16:12:42.160Z"},"maintainers":[{"name":"ybouane","email":"ybouane@ybouane.com"}],"description":"Image Masked Text — A heading whose letterforms are filled with a photograph. Uses native CSS background-clip:text so the wordmark stays selectable and crisp at any zoom, with cover, contain, or custom-percent fit modes. A customizable CrazyGL animated he","homepage":"https://crazygl.com/hero/image-masked-text","keywords":["image-mask","typography","background-clip","headline","css","image-masked-text","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-image-masked-text.git"},"author":{"name":"ybouane"},"bugs":{"url":"https://github.com/crazygl-com/hero-image-masked-text/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-image-masked-text/banner-full.png\" alt=\"Image Masked Text\" width=\"640\">\n</p>\n\n# @crazygl/hero-image-masked-text\n\nA heading whose letterforms are filled with a photograph. Uses native CSS background-clip:text so the wordmark stays selectable and crisp at any zoom, with cover, contain, or custom-percent fit modes.\n\n## Demo\n[Image Masked Text](https://crazygl.com/hero/image-masked-text)\n\n## Install\n\n```bash\nnpm install @crazygl/hero-image-masked-text\n```\n\n## Usage\n\n```tsx\nimport ImageMaskedText from '@crazygl/hero-image-masked-text';\n\nexport default function Page() {\n  return (\n    <ImageMaskedText\n      heading=\"Editorial\"\n      image=\"/photos/cover-shoot.jpg\"\n      imageFit=\"cover\"\n      bgColor=\"#f4ede0\"\n    />\n  );\n}\n```\n\nPlug in any photograph (JPG / PNG / WebP / AVIF). High-contrast subjects centred in the frame read best, so the letters land on the interesting parts. (The companion hero `text-video-mask` does the same effect for video sources.)\n\n## Customise\n\n- **Content** — `heading`, `subheading`, optional `ctaLabel` / `onCTAClick`.\n- **Image** — `image`, `imageFit` (cover / contain / percent), `imagePercent`, `imageOffsetX` / `imageOffsetY`.\n- **Typography** — `fontSize`, `headingFontFamily` / `headingFontWeight` (800–900 maximises visible image), `letterSpacing`, `lineHeight`, `textAlign`, `fallbackTextColor`.\n- **Backdrop** — `transparentBackground`, `bgColor`, `vignetteStrength`.\n\n## Best for\n\n- Editorial magazine headlines and fashion / lifestyle launches\n- Agency portfolio splashes and brand stories\n- Art-direction reels\n- Any landing page where the hero should read as \"the photograph is the typeface\"\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-17ee571c0d8a82400b4302fa3d9de5ee"}