tailwindcss-animate

Tailwind CSS plugin for enter and exit animations using utility classes

Library
npm
v1.0.7
3,015 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
34 /100 Needs Attention
Development Activity 0
Maintenance 0
Community 40
Maturity 56
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
75 /100 Good
Architecture 80
Code Quality 55
Innovation 80
Learning Curve 85

tailwindcss-animate is a Tailwind CSS plugin that adds animate-in and animate-out utility classes for building enter and exit animations directly in markup. It layers fade, zoom, spin, and directional slide effects on top of two shared CSS @keyframes, and exposes duration, delay, easing, direction, fill-mode, and repeat controls that extend Tailwind’s existing transition theme rather than introducing a parallel one.

The plugin ships as pure CSS with no client-side JavaScript, and has become the de facto animation layer for Radix UI and shadcn/ui component libraries, where it drives open/close transitions for dialogs, dropdowns, popovers, and toasts via data-state attributes.

What You Get

  • animate-in / animate-out utility classes built on a shared pair of enter/exit CSS @keyframes
  • Composable modifiers - fade-in/out, zoom-in/out, spin-in/out, and slide-in-from-/slide-out-to- directional variants that stack additively
  • Full animation-timing control - duration-, delay-, ease-, direction-, fill-mode-, and repeat- utilities mapped onto Tailwind’s existing transition theme
  • running/paused play-state utilities, plus inherited motion-safe/motion-reduce variant support from Tailwind core

Common Use Cases

  • Animating Radix UI or shadcn/ui dialogs, dropdowns, and popovers on open/close
  • Toast and notification enter/exit sequencing without custom CSS or a JS animation library
  • Adding tasteful fade/zoom/slide micro-interactions to any Tailwind project without leaving utility-class syntax
  • Animating conditionally-rendered React/Vue components in and out via data-state attributes

Under The Hood

Architecture - Single-file Tailwind plugin (index.js, ~188 lines) built via the tailwindcss/plugin factory. It registers a handler that calls addUtilities/matchUtilities against the Tailwind theme function to inject two @keyframes (enter/exit) plus a matrix of utility classes (animate-in/animate-out, fade-in/out, zoom-in/out, spin-in/out, slide-in-from-/slide-out-to-, duration-, delay-, ease-, fill-mode-, direction-, repeat-, plus running/paused). All animation state is threaded through CSS custom properties (—tw-enter-opacity, —tw-enter-scale, —tw-enter-rotate, —tw-enter-translate-x/y, mirrored for exit) so classes compose additively - animate-in fade-in zoom-in-95 all write into the same shared keyframes via translate3d()/scale3d()/rotate(), rather than each utility owning its own animation. The plugin’s second argument extends Tailwind’s theme config with derived defaults (animationDuration layering onto transitionDuration, etc.), so it ships zero runtime JS - output is pure generated CSS at build time.

Tech Stack - Plain JavaScript (CommonJS, require/module.exports), no TypeScript source - only a 2-line ambient index.d.ts declaring an opaque plugin type with no typed API surface. Single peer dependency: tailwindcss >=3.0.0. Dev tooling is minimal: Prettier (tabs, no semicolons) enforced via a husky + lint-staged pre-commit hook and a CI format:check job; there is no bundler and no build step, index.js ships as-is.

Code Quality - No test suite of any kind - no test script, no test files, no assertions; the only CI check (.github/workflows/checks.yml) runs Prettier formatting, not correctness testing. Error handling is not really applicable, since this is pure declarative config rather than runtime logic. Naming is consistent and CSS-idiomatic (fade-in, zoom-out, slide-in-from-top), and a private filterDefault() helper strips DEFAULT keys from theme objects before building matchUtilities value maps, showing some care to avoid emitting a bare duration utility. The absence of a formal test suite is a real gap, though the surface area is small enough to somewhat mitigate the risk.

API Design - Integration friction is extremely low: a single require(“tailwindcss-animate”) in the plugins array of tailwind.config.js gives consumers a full set of Tailwind-native utility classes with no new syntax to learn (animate-in fade-in zoom-in-95 duration-300). The docs/ directory documents every utility group as its own markdown file, and the README front-loads a compact usage sample. Weaknesses: index.d.ts provides essentially no type information, so there’s no IntelliSense over the utility class names themselves, and a few naming pairs are slightly inconsistent (slide-in-from-top vs slide-out-to-top uses different prepositions for symmetric behavior).

Used by 100 apps in this directory

Go
87%
MIT

Hatchet

AI Development · Automation · Developer Tools

8,174

A Postgres-backed orchestration engine for background tasks, AI agents, and durable workflows that replaces Redis queues and multi-datastore durable execution platforms with a single self-hostable service.

View details
88
Repo Health
83
Technical
67
Dependency
Built with
Go 87%
Updated 1 weeks ago
TypeScript
91%
Apache 2.0

Helicone

AI Development · Analytics · Monitoring

6,235

An open-source AI gateway and LLM observability platform that routes requests to 100+ models while logging cost, latency, and full traces for every call.

View details
74
Repo Health
81
Technical
65
Dependency
Built with
TypeScript 91%
Updated 6 days ago
TypeScript
95%
AGPL 3.0

HeyForm

Forms Surveys · No Code Platforms

9,048

Open-source conversational form builder with AI generation, conditional logic, and 30+ integrations — self-host with full data ownership.

View details
86
Repo Health
67
Technical
67
Dependency
Built with
TypeScript 95%
Updated 6 days ago
Go
69%
MIT

hoop

Monitoring · Security

836

A wire-protocol gateway that enforces data masking, command blocking, approval workflows, and full session recording for engineers and AI agents accessing production infrastructure.

View details
86
Repo Health
80
Technical
64
Dependency
Built with
Go 69%
Clojure 13%
Updated 6 days ago
TypeScript
93%
Apache 2.0

InsForge

Databases · Developer Tools

13,176

The all-in-one, open-source backend platform purpose-built for AI coding agents — giving your agent database, auth, storage, edge functions, a model gateway, and compute to ship full-stack apps end-to-end.

View details
86
Repo Health
81
Technical
72
Dependency
Built with
TypeScript 93%
Updated 6 days ago
TypeScript
92%
MIT

Kaneo

Product Management · Productivity · Project Management

9,574

Lightweight self-hosted project management that gives you kanban boards, GitHub sync, and full team collaboration without the enterprise bloat.

View details
87
Repo Health
81
Technical
70
Dependency
Built with
TypeScript 92%
Updated 6 days ago
TypeScript
98%
AGPL 3.0

Karakeep

Bookmarks Archiving

29,926

Self-hosted bookmark manager that captures links, notes, images, and PDFs with AI tagging, full-text search, and automatic archiving.

View details
88
Repo Health
76
Technical
66
Dependency
Built with
TypeScript 98%
Updated 1 weeks ago
Python
51%
AGPL 3.0

Khoj

AI Assistants · Knowledge Management · Productivity

37,802

A self-hostable AI second brain that chats with your documents, searches the web, builds custom agents, and runs entirely on your own LLM.

View details
62
Repo Health
82
Technical
66
Dependency
Built with
Python 51%
TypeScript 36%
Updated 2 months ago
TypeScript
39%
Apache 2.0

Label Studio

AI Development · Data Engineering

28,540

Label Studio is an open-source, multi-type data labeling platform that lets teams annotate images, text, audio, video, and time series data with a configurable XML-based UI and export annotations in formats ready for any ML framework.

View details
93
Repo Health
87
Technical
64
Dependency
Built with
TypeScript 39%
JavaScript 27%
Python 25%
Updated 1 weeks ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers