UNPKG

ani-js

Version:

A lightweight JavaScript animation library that mimics Tailwind-style utility classes — no Tailwind installation needed.

160 lines (149 loc) 5.11 kB
import { injectCSS } from "./inject.js"; function animate(el, className, duration = 500) { injectCSS(); el.style.animationDuration = `${duration}ms`; el.classList.add(className); } const animations = { fadeIn: "tw-fade-in", fadeOut: "tw-fade-out", slideUp: "tw-slide-up", slideDown: "tw-slide-down", slideLeft: "tw-slide-left", slideRight: "tw-slide-right", scaleUp: "tw-scale-up", scaleDown: "tw-scale-down", enlarge: "tw-enlarge", shrink: "tw-shrink", rotate: "tw-rotate", bounce: "tw-bounce", shake: "tw-shake", pulse: "tw-pulse", flash: "tw-flash", wobble: "tw-wobble", swing: "tw-swing", tada: "tw-tada", jello: "tw-jello", Glow: "tw-glow", Shadow: "tw-shadow", zoomIn: "tw-zoom-in", zoomOut: "tw-zoom-out", heartbeat: "tw-heartbeat", blink: "tw-blink", wave: "tw-wave", sway: "tw-sway", floating: "tw-floating", glitch: "tw-glitch", neonGlow: "tw-neon-glow", shimmer: "tw-shimmer", typingEffect: "tw-typing-effect", revealUp: "tw-reveal-up", revealDown: "tw-reveal-down", collapse: "tw-collapse", expand: "tw-expand", fadeSlide: "tw-fade-slide-left", bounceIn: "tw-bounce-in", bounceOut: "tw-bounce-out", scaleReveal: "tw-scale-reveal", rotateYFlipCard: "tw-rotate-y-flip-card", flipInX: "tw-flip-in-x", flipOutX: "tw-flip-out-x", flipInY: "tw-flip-in-y", flipOutY: "tw-flip-out-y", rotateIn: "tw-rotate-in", rotateOut: "tw-rotate-out", rollIn: "tw-roll-in", rollOut: "tw-roll-out", lightSpeedIn: "tw-light-speed-in", lightSpeedOut: "tw-light-speed-out", jackInTheBox: "tw-jack-in-the-box", GlowPulse: "tw-glow-pulse", Sparkle: "tw-sparkle", Teleport: "tw-teleport", Curtain: "tw-curtain", Mirror: "tw-mirror", Aura: "tw-aura", Dust: "tw-dust", ZigZag: "tw-zigzag", Orbit: "tw-orbit", PopUpSpin: "tw-popup-spin", Snap:"tw-thanos-snap", UpsideDown: "tw-upside-down", HoverPop: "tw-hoverpop", HoverShrink: "tw-hovershrink", HoverEnlarge: "tw-hoverenlarge", HoverShake: "tw-hovershake", HoverFade: "tw-hoverfade", HoverGlow: "tw-hover-glow", HoverShadow: "tw-hover-shadow", hoverBlur: "tw-hover-blur", hoverRotate: "tw-hover-rotate", hoverUnderlineLeft: "tw-hover-underline-left", hoverUnderlineRight: "tw-hover-underline-right", hoverBorderGlow: "tw-hover-border-glow", hoverScaleBounce: "tw-hover-scale-bounce", hoverTilt: "tw-hover-tilt", HoverUpsideDown: "tw-hover-upsidedown", HoverTeleport: "tw-hover-teleport", ColorCycle: "tw-color-cycle", BlackRed: "tw-black-red", BlackBlue: "tw-black-blue", BlackGreen: "tw-black-green", BlackPurple: "tw-black-purple", BlackYellow: "tw-black-yellow", BlackWhite: "tw-black-white", BlackOrange: "tw-black-orange", BlackPink: "tw-black-pink", BlackGray: "tw-black-gray", BlackCyan: "tw-black-cyan", BlackBrown: "tw-black-brown", BlackGold: "tw-black-gold", BlackSilver: "tw-black-silver", BlackMagenta: "tw-black-magenta", BlueYellow: "tw-blue-yellow", DarkGreenLime: "tw-dark-green-lime", PurpleOrange: "tw-purple-orange", IndigoPink: "tw-indigo-pink", GrayCyan: "tw-gray-cyan", DarkBlueWhite: "tw-dark-blue-white", TealSalmon: "tw-teal-salmon", OliveViolet: "tw-olive-violet", BrownSkyBlue: "tw-brown-sky-blue", MidnightGreenMint: "tw-midnight-green-mint", CrimsonLemon: "tw-crimson-lemon", SlatePeach: "tw-slate-peach", CharcoalLavender: "tw-charcoal-lavender", MaroonMint: "tw-maroon-mint", DarkCyanGold: "tw-dark-cyan-gold", DeepPurpleIvory: "tw-deep-purple-ivory", ForestPink: "tw-forest-pink", SteelRose: "tw-steel-rose", EggplantSun: "tw-eggplant-sun", }; const exports = {}; for (const [name, className] of Object.entries(animations)) { exports[name] = (el, duration = 500) => animate(el, className, duration); } export const { fadeIn, fadeOut, slideUp, slideDown, slideLeft, slideRight, scaleUp, scaleDown, enlarge, shrink, rotate, bounce, shake, pulse, flash, wobble, swing, tada, jello, zoomIn, zoomOut, flipInX, flipOutX, flipInY, flipOutY, rotateIn, rotateOut, rollIn, rollOut, lightSpeedIn, lightSpeedOut, jackInTheBox, heartbeat, blink, wave, sway, floating, glitch, neonGlow, shimmer, typingEffect, revealUp, revealDown, collapse, expand, fadeSlide, bounceIn, bounceOut, scaleReveal, rotateYFlipCard, Glow, Shadow, GlowPulse, Sparkle, Teleport,Curtain,Mirror,Aura,Dust,ZigZag,Orbit,PopUpSpin,Snap, UpsideDown, HoverPop, HoverShrink, HoverEnlarge, HoverShake, HoverFade, HoverGlow, HoverShadow, hoverBlur, hoverRotate, hoverUnderlineLeft, hoverUnderlineRight, hoverBorderGlow, hoverScaleBounce, hoverTilt,HoverUpsideDown,HoverTeleport, ColorCycle, BlackRed, BlackBlue,BlackGreen,BlackPurple,BlackYellow, BlackWhite,BlackOrange,BlackPink, BlackGray,BlackCyan,BlackBrown,BlackGold,BlackSilver,BlackMagenta, BlueYellow,DarkGreenLime,PurpleOrange,IndigoPink,GrayCyan,DarkBlueWhite, TealSalmon,OliveViolet,BrownSkyBlue,MidnightGreenMint,CrimsonLemon, SlatePeach,CharcoalLavender,MaroonMint,DarkCyanGold,DeepPurpleIvory, ForestPink,SteelRose,EggplantSun } = exports;