{"_id":"tailwind-fabric","_rev":"2-ea6c4b2bb3a61324dcc05da6287d9033","name":"tailwind-fabric","dist-tags":{"latest":"3.0.4"},"versions":{"3.0.1":{"name":"tailwind-fabric","version":"3.0.1","keywords":["tailwindcss","tailwindcss-plugin","animate.css","animation","keyframes","motion"],"author":{"name":"EIIiechena"},"license":"MIT","_id":"tailwind-fabric@3.0.1","maintainers":[{"name":"johnxia1997","email":"Johnxia1997@outlook.com"}],"homepage":"https://EIIiechena.github.io/tailwind-fabric/","bugs":{"url":"https://github.com/EIIiechena/tailwind-fabric/issues"},"dist":{"shasum":"5d82db0e9f4f3819fcd4811da64f8dc9426a8666","tarball":"https://registry.npmjs.org/tailwind-fabric/-/tailwind-fabric-3.0.1.tgz","fileCount":8,"integrity":"sha512-STMTd9NRcebYOHp5wNfwQ0yvLQ/veyaPeNRQfFIgPolTBYfzjlprvZ9l/cYGTQ99yaGiHbft7arn5iW+itVgiA==","signatures":[{"sig":"MEUCIQCLXjMdYs7OHPYDaXDvVgn7exBJu8P4DchEss1oLaoXMQIgYuXSzJJeqzluicu9LjvAXsmcQIRpODYxdAjchaChDfI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16751},"main":"plugin.js","engines":{"node":">=18"},"exports":"./plugin.js","scripts":{"lint":"eslint . --ext .js","test":"node --test"},"_npmUser":{"name":"johnxia1997","email":"Johnxia1997@outlook.com"},"repository":{"url":"git+https://github.com/EIIiechena/tailwind-fabric.git","type":"git"},"_npmVersion":"10.9.3","description":"A configurable, namespaced Animate.css integration for Tailwind CSS","directories":{},"_nodeVersion":"22.18.0","dependencies":{"postcss":"^8.4.5","postcss-js":"^3.0.3","animate.css":"^4.1.1","postcss-selector-parser":"^6.0.8","@aaron205whitmore/postcss-animate-utils":"^1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.5.0","tailwindcss":"^3.0.7","eslint-plugin-import":"^2.25.2","eslint-config-airbnb-base":"15.0.0"},"peerDependencies":{"tailwindcss":"^3"},"_npmOperationalInternal":{"tmp":"tmp/tailwind-fabric_3.0.1_1790596584586_0.10692719824620922","host":"s3://npm-registry-packages-npm-production"}},"3.0.4":{"_id":"tailwind-fabric@3.0.4","bugs":{"url":"https://github.com/martin75/tailwind-fabric/issues"},"dist":{"shasum":"ada774fb9a7397e86926447e388718720f3e83f3","tarball":"https://registry.npmjs.org/tailwind-fabric/-/tailwind-fabric-3.0.4.tgz","fileCount":8,"integrity":"sha512-kH/aNsnVPjFLsjlDT1g2gWFFzXNRYv8PHItJNYo7t8pJAJuHJDtsoLD28fuhvWEaHlzrlGTGoDvB+c0i3LR+bA==","signatures":[{"sig":"MEUCIDfHWhSW8s8NAKjpgkewSeon+n1oLPpFaYISCUoZPTSKAiEA7QEAf4JlfItm5am9ZqAVXcUFfiAhK/mFCMBrRhGV23s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICxIDPP9bWwJCTPKn6wHoaNhdUulQbhI9LFU35hVZ5rUAiEA8bgBsceyAyLUtmIrGLvH4dAg0wOMylO+ttpyCw0iaUI="}],"unpackedSize":16747},"main":"plugin.js","name":"tailwind-fabric","author":{"name":"EIIiechena"},"engines":{"node":">=18"},"exports":"./plugin.js","license":"MIT","scripts":{"lint":"eslint . --ext .js","test":"node --test"},"version":"3.0.4","_npmUser":{"name":"johnxia1997","email":"Johnxia1997@outlook.com"},"homepage":"https://martin75.github.io/tailwind-fabric/","keywords":["tailwindcss","tailwindcss-plugin","animate.css","animation","keyframes","motion"],"repository":{"url":"git+https://github.com/martin75/tailwind-fabric.git","type":"git"},"_npmVersion":"10.9.3","description":"A configurable, namespaced Animate.css integration for Tailwind CSS","directories":{},"maintainers":[{"name":"johnxia1997","email":"Johnxia1997@outlook.com"}],"_nodeVersion":"22.18.0","dependencies":{"postcss":"^8.4.5","postcss-js":"^3.0.3","animate.css":"^4.1.1","postcss-selector-parser":"^6.0.8","@aaron205whitmore/postcss-animate-utils":"^1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.5.0","tailwindcss":"^3.0.7","eslint-plugin-import":"^2.25.2","eslint-config-airbnb-base":"15.0.0"},"peerDependencies":{"tailwindcss":"^3"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tailwind-fabric_3.0.4_1790666696670_0.23858775947747746"}}},"time":{"created":"2026-09-28T11:56:24.413Z","modified":"2026-09-29T07:24:56.878Z","3.0.1":"2026-09-28T11:56:24.724Z","3.0.4":"2026-09-29T07:24:56.751Z"},"bugs":{"url":"https://github.com/martin75/tailwind-fabric/issues"},"author":{"name":"EIIiechena"},"license":"MIT","homepage":"https://martin75.github.io/tailwind-fabric/","keywords":["tailwindcss","tailwindcss-plugin","animate.css","animation","keyframes","motion"],"repository":{"url":"git+https://github.com/martin75/tailwind-fabric.git","type":"git"},"description":"A configurable, namespaced Animate.css integration for Tailwind CSS","maintainers":[{"name":"johnxia1997","email":"Johnxia1997@outlook.com"}],"readme":"# tailwind-fabric\r\n\r\nA configurable Animate.css integration for Tailwind CSS 3. It reads the installed Animate.css catalog at build time, emits only the animations you select, and namespaces generated keyframes to prevent collisions.\r\n\r\nGlobal `duration`, `delay`, and `iterationCount` values are passed to `@aaron205whitmore/postcss-animate-utils`, which generates the corresponding Tailwind base custom properties.\r\n\r\n## Installation\r\n\r\n```sh\r\nnpm install tailwind-fabric animate.css\r\n```\r\n\r\n## Basic usage\r\n\r\n```js\r\n// tailwind.config.js\r\nmodule.exports = {\r\n  content: ['./src/**/*.{html,js,jsx,ts,tsx,vue,svelte}'],\r\n  plugins: [\r\n    require('tailwind-fabric')({\r\n      animations: ['bounce', 'fadeIn', 'fadeOut', 'slideInUp']\r\n    })\r\n  ]\r\n};\r\n```\r\n\r\nApply the base class together with an animation class:\r\n\r\n```html\r\n<div class=\"keyframe keyframe-fade-in\">Content</div>\r\n```\r\n\r\nAnimation names are converted to kebab case in generated class names. For example, `fadeInDownBig` becomes `keyframe-fade-in-down-big`.\r\n\r\n## Configuration\r\n\r\n```js\r\nrequire('tailwind-fabric')({\r\n  prefix: 'motion',\r\n  animations: ['bounce', 'fadeIn'],\r\n  exclude: ['bounce'],\r\n  aliases: {\r\n    enter: 'fadeIn'\r\n  },\r\n  duration: '900ms',\r\n  delay: '0s',\r\n  iterationCount: '1',\r\n  namespaceKeyframes: true,\r\n  respectReducedMotion: true,\r\n  modifiers: true,\r\n  durations: {\r\n    quick: '300ms',\r\n    deliberate: '1400ms'\r\n  },\r\n  delays: {\r\n    short: '150ms',\r\n    long: '800ms'\r\n  },\r\n  repeats: {\r\n    twice: '2',\r\n    forever: 'infinite'\r\n  }\r\n})\r\n```\r\n\r\n| Option | Default | Purpose |\r\n| --- | --- | --- |\r\n| `prefix` | `keyframe` | Prefix for classes and generated keyframes |\r\n| `animations` | `'*'` | Animate.css names to include; `'*'` includes the full catalog |\r\n| `exclude` | `[]` | Animation names to omit |\r\n| `aliases` | `{}` | Public class names mapped to Animate.css animation names |\r\n| `duration` | `1s` | Default animation duration |\r\n| `delay` | `0s` | Default animation delay |\r\n| `iterationCount` | `1` | Default iteration count |\r\n| `namespaceKeyframes` | `true` | Prefix keyframe identifiers to prevent collisions |\r\n| `respectReducedMotion` | `true` | Minimize animation when the user requests reduced motion |\r\n| `modifiers` | `true` | Generate timing, repeat, pause, and run utilities |\r\n| `durations` | Built-in map | Duration modifier tokens |\r\n| `delays` | Built-in map | Delay modifier tokens |\r\n| `repeats` | Built-in map | Iteration modifier tokens |\r\n\r\nThe deprecated `classes` option remains an alias for `animations` during migration.\r\n\r\n## Generated utilities\r\n\r\nWith the default prefix, the plugin generates:\r\n\r\n```html\r\n<div class=\"keyframe keyframe-bounce keyframe-duration-fast keyframe-delay-1s keyframe-repeat-2\"></div>\r\n```\r\n\r\n- `keyframe-duration-{token}` sets the duration variable.\r\n- `keyframe-delay-{token}` sets the delay variable.\r\n- `keyframe-repeat-{token}` sets the iteration-count variable.\r\n- `keyframe-paused` and `keyframe-running` control playback.\r\n\r\nTailwind variants work normally:\r\n\r\n```html\r\n<div class=\"keyframe keyframe-fade-in hover:keyframe-paused md:keyframe-duration-slow\"></div>\r\n```\r\n\r\n## Aliases\r\n\r\nAliases provide stable semantic names without copying keyframes:\r\n\r\n```js\r\nrequire('tailwind-fabric')({\r\n  animations: [],\r\n  aliases: {\r\n    notificationEnter: 'fadeInDown',\r\n    notificationExit: 'fadeOutUp'\r\n  }\r\n})\r\n```\r\n\r\n```html\r\n<aside class=\"keyframe keyframe-notification-enter\"></aside>\r\n```\r\n\r\n## Catalog\r\n\r\nThe package exposes the animation names found in the installed Animate.css version:\r\n\r\n```js\r\nconst keyframes = require('tailwind-fabric');\r\nconsole.log(keyframes.catalog());\r\n```\r\n\r\n## Migration from 1.x\r\n\r\n- The default class prefix changed from `animatecss` to `keyframe`.\r\n- Generated animation class names use kebab case.\r\n- Keyframe names are namespaced by default.\r\n- `animations` replaces `classes`; `classes` remains a compatibility alias.\r\n- `@aaron205whitmore/postcss-animate-utils` now processes global timing options and is installed automatically.\r\n- Reduced-motion handling is enabled by default.\r\n\r\n## License\r\n\r\nMIT\r\n","readmeFilename":"README.md"}