react-transition-group

react-transition-group: React Component Animation Toolkit

Library
npm
v4.4.5
10,229stars
BSD 3-Clause License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum.How we score it →
49/100Fair
Development Activity8
Maintenance20
Community68
Maturity60
Momentum40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation.How we score it →
71/100Good
Architecture76
Code Quality74
Innovation70
Learning Curve62

react-transition-group is a set of low-level React components for managing a component’s presence over time — specifically its mounting, updating, and unmounting lifecycle — so that CSS or JS animations can be tied to those state transitions. It grew out of the original React addons-transition-group API and was rewritten from the ground up in v2+ with a non-backwards-compatible, more flexible API.

Rather than baking in an opinionated animation engine, the library exposes state (entering, entered, exiting, exited) and lifecycle hooks that developers wire up to their own CSS classes, inline styles, or third-party animation libraries. TransitionGroup manages lists of transitioning children, CSSTransition layers on CSS class toggling, and SwitchTransition/ReplaceTransition handle transitioning between two mutually exclusive elements.

What You Get

  • Transition - the base component exposing raw lifecycle state (entering/entered/exiting/exited) and callback hooks (onEnter, onEntering, onEntered, onExit, etc.)
  • CSSTransition - layers CSS class name toggling on top of Transition for declarative, stylesheet-driven animations
  • TransitionGroup - manages a dynamic set of Transition children (e.g. animating list items in and out) without unmounting them abruptly
  • SwitchTransition and ReplaceTransition - coordinate transitioning between two mutually exclusive elements (e.g. crossfading between two states)
  • Framework-agnostic animation hook-up: works with plain CSS transitions, CSS keyframes, or JS animation libraries like GSAP or react-spring

Common Use Cases

  • Fading or sliding a modal, tooltip, or dropdown in and out as it mounts and unmounts
  • Animating list items entering or leaving (e.g. a to-do list, notification stack, or search results list) via TransitionGroup
  • Crossfading between two views or tabs using SwitchTransition instead of instantly swapping content
  • Coordinating route-transition animations in a client-rendered app when a page component mounts/unmounts

Under The Hood

Architecture The library centers on src/Transition.js (622 lines), a class component implementing a small state machine (unmounted → exited → entering → entered → exiting) driven by componentDidMount/componentDidUpdate and timeouts; CSSTransition.js (378 lines) wraps it to toggle CSS class names at each state change, TransitionGroup.js (171 lines) tracks a map of currently-mounted/exiting children keyed by identity so leaving items animate before removal, and SwitchTransition.js (222 lines) composes two Transition instances to coordinate an exit-then-enter or simultaneous cross-fade sequence. Tech Stack Plain JavaScript (no TypeScript in the source; types are published separately via DefinitelyTyped), built with Babel to dual CJS/ESM output plus a Rollup UMD bundle, with dom-helpers and prop-types as its only non-React runtime dependencies and react/react-dom as peer dependencies (>=16.6.0). Code Quality Test coverage is strong for a UI library of this age: dedicated suites exist per component (Transition-test.js, CSSTransition-test.js, TransitionGroup-test.js, SwitchTransition-test.js, ChildMapping-test.js, plus an SSR-test.js for server-rendering behavior) using Jest and Testing Library, and CI gates on both ESLint and the full test suite before release via semantic-release. Prop validation relies on prop-types rather than static types, which is dated relative to newer React libraries but appropriate for the codebase’s age. API Design The API trades some initial-learning friction (developers must understand the entering/entered/exiting/exited state model and wire up their own CSS classes or callbacks) for maximum flexibility — there’s no bundled animation engine to fight against, and the same primitives compose cleanly whether the underlying animation is pure CSS, CSS-in-JS, or an external JS animation library.

Used by 20 apps in this directory

TypeScript
72%
AGPL 3.0

APITable

Low Code Platforms · Databases

15,526

API-first collaborative spreadsheet-database platform that auto-generates REST APIs and lets teams build internal tools, CRMs, and dashboards without code.

View details
53
Repo Health
77
Technical
60
Dependency
Built with
TypeScript72%
Java22%
Updated 9 months ago
TypeScript
96%
Other

Amplication

Developer Tools · AI Code Assistants · Automation

16,010

Create production-ready backend services with your organization's standards baked in — generating NestJS, Prisma, and GraphQL code that you own and control.

View details
61
Repo Health
84
Technical
60
Dependency
Built with
TypeScript96%
Updated 1 months ago
TypeScript
97%
AGPL 3.0

Bigcapital

Invoicing Finance

3,846

Self-hostable double-entry accounting platform with invoicing, inventory, multi-currency, and real-time financial reporting for small and medium businesses.

View details
91
Repo Health
77
Technical
64
Dependency
Built with
TypeScript97%
Updated yesterday
TypeScript
99%
AGPL 3.0

Cherry Studio

AI Assistants

50,753

All-in-one AI desktop client with 300+ assistants and multi-model support

View details
88
Repo Health
84
Technical
71
Dependency
Built with
TypeScript99%
Updated today
Java
48%
Apache 2.0

ClearFlask

Product Management · Community

448

Open-source feedback management and roadmap tool that lets product teams collect, prioritize, and respond to user input — with AI-powered summarization and full self-hosting control.

View details
83
Repo Health
73
Technical
63
Dependency
Built with
Java48%
TypeScript47%
Updated 2 weeks ago
TypeScript
92%
MIT

Dittofeed

Marketing · Automation

2,903

Open-source omni-channel customer engagement platform for automating transactional and marketing messages via email, SMS, WhatsApp, Slack, and mobile push.

View details
54
Repo Health
75
Technical
63
Dependency
Built with
TypeScript92%
Updated 4 months ago
TypeScript
94%
AGPL 3.0

Element Web

Team Chat · Collaboration

13,387

A polished, self-hostable Matrix client for secure, decentralized messaging and collaboration that puts your organization in full control of its data.

View details
96
Repo Health
83
Technical
67
Dependency
Built with
TypeScript94%
Updated today
TypeScript
48%
AGPL 3.0

Grafana

Monitoring · Analytics

76,300

The open-source observability platform that unifies metrics, logs, and traces from any data source into dynamic, queryable dashboards.

View details
95
Repo Health
91
Technical
65
Dependency
Built with
TypeScript48%
Go46%
Updated today
TypeScript
97%
Other

GrowthBook

Developer Tools · Analytics · Monitoring

8,138

Open source feature flags, A/B testing, and warehouse-native experimentation that queries your existing data infrastructure—no data movement required.

View details
92
Repo Health
85
Technical
66
Dependency
Built with
TypeScript97%
Updated today

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

Search