{"_id":"@egorfdrv/facegen","name":"@egorfdrv/facegen","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@egorfdrv/facegen","version":"0.1.0","type":"module","description":"Generate unique animated faces from any string. Zero dependencies, deterministic, SVG + CSS animations.","main":"dist/index.js","module":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css":"./dist/animations.css"},"scripts":{"build":"tsc && cp src/animations.css dist/animations.css","prepublishOnly":"npm run build","demo":"npx serve demo"},"keywords":["avatar","generative","svg","face","identicon","deterministic","animated"],"license":"MIT","devDependencies":{"typescript":"^5.0.0","@types/react":"^19.0.0"},"peerDependencies":{"react":">=17"},"peerDependenciesMeta":{"react":{"optional":true}},"_id":"@egorfdrv/facegen@0.1.0","gitHead":"524d251049c8723046e6664979e9be3d5b675e72","_nodeVersion":"20.19.2","_npmVersion":"11.6.0","dist":{"integrity":"sha512-+wehCJTSo/tJEZ+pRPuyTA9K2fbjCyedlFbeVdlaE4Y8YqaJaKEWgGCW3QhP4WaN1KjXEJZTrad0pIFZQ8T0dg==","shasum":"825382b2266d2d1c39373924c7ab549f40373660","tarball":"https://registry.npmjs.org/@egorfdrv/facegen/-/facegen-0.1.0.tgz","fileCount":15,"unpackedSize":17802,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIC3huHsRgeklhU2JZYeF/sVuAwhPOhrL4UCvEnf9XUwoAiEAgJVXWhh8vX6qrNMD0COer33nz6z1QuPEn89ow+GWQUw="}]},"_npmUser":{"name":"egorfedorov","email":"egorfdrv@gmail.com"},"directories":{},"maintainers":[{"name":"egorfedorov","email":"egorfdrv@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/facegen_0.1.0_1772244609602_0.355597508843563"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-28T02:10:09.498Z","0.1.0":"2026-02-28T02:10:09.776Z","modified":"2026-02-28T02:10:10.013Z"},"maintainers":[{"name":"egorfedorov","email":"egorfdrv@gmail.com"}],"description":"Generate unique animated faces from any string. Zero dependencies, deterministic, SVG + CSS animations.","keywords":["avatar","generative","svg","face","identicon","deterministic","animated"],"license":"MIT","readme":"# facegen\n\nGenerate unique animated faces from any string. Zero dependencies, deterministic, SVG + CSS animations.\n\n```\nnpm i facegen\n```\n\n## React\n\n```tsx\nimport { Facegen } from 'facegen';\nimport 'facegen/css';\n\n<Facegen seed=\"alice@example.com\" size={48} animate />\n```\n\n## Vanilla JS\n\n```js\nimport { generateFaceSvg } from 'facegen';\n\nconst svg = generateFaceSvg('alice@example.com', { size: 48, animate: true });\ndocument.getElementById('avatar').innerHTML = svg;\n```\n\n## Props\n\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `seed` | `string` | — | Any string. Determines the face. |\n| `size` | `number` | `64` | Avatar size in px. Below 32px animations are disabled. |\n| `animate` | `boolean` | `true` | Enable blink / float / twitch animations. |\n| `alt` | `string` | `\"Avatar\"` | Accessible label (React only). |\n\n## How it works\n\n1. DJB2 hash of the seed string\n2. Slot-based parameter extraction (face shape, skin color, eyes, etc.)\n3. Pure SVG string generation — no canvas, no WebGL\n4. CSS keyframe animations with unique phase offsets\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-69c747fb8dc641db8b687a8b5f543228"}