Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
React Spring | 26,375 | 1,464 | 1,603 | a day ago | 378 | June 26, 2023 | 96 | mit | TypeScript | |
✌️ A spring physics based React animation library | ||||||||||
React Three Fiber | 23,779 | 303 | 6 days ago | 184 | July 26, 2023 | 23 | mit | TypeScript | ||
🇨🇭 A React renderer for Three.js | ||||||||||
Motion | 20,119 | 118 | 3,187 | 3 days ago | 938 | July 28, 2023 | 311 | mit | TypeScript | |
Open source, production-ready animation and gesture library for React | ||||||||||
Lottie React Native | 16,122 | 6,322 | 232 | a day ago | 69 | July 25, 2023 | 28 | apache-2.0 | Kotlin | |
Lottie wrapper for React Native. | ||||||||||
React Content Loader | 12,768 | 309 | 446 | 6 months ago | 70 | March 12, 2023 | 9 | mit | TypeScript | |
⚪ SVG-Powered component to easily create skeleton loadings. | ||||||||||
React Transition Group | 9,771 | 47,715 | 6,163 | 5 months ago | 43 | August 01, 2022 | 218 | other | JavaScript | |
An easy way to perform animations when a React component enters or leaves the DOM | ||||||||||
React Native Animatable | 9,498 | 2,130 | 338 | 4 months ago | 23 | October 13, 2019 | 209 | mit | JavaScript | |
Standard set of easy to use animations and declarative transitions for React Native | ||||||||||
Auto Animate | 9,432 | 51 | 11 days ago | 13 | June 16, 2023 | 29 | mit | TypeScript | ||
A zero-config, drop-in animation utility that adds smooth transitions to your web app. You can use it with React, Vue, or any other JavaScript application. | ||||||||||
React Native Reanimated | 7,699 | 4,847 | 1,513 | 16 hours ago | 193 | August 05, 2023 | 302 | mit | TypeScript | |
React Native's Animated library reimplemented | ||||||||||
React Move | 6,558 | 323 | 81 | 9 months ago | 60 | June 13, 2021 | 25 | mit | JavaScript | |
React Move | Beautiful, data-driven animations for React |
a tool for rapidly developing animations where frames are described using svg elements la react
import React from 'react'
import { AnimationModule } from 'clumsy-graphics'
import getColormap from 'colormap'
const HelloRainbowAnimationModule: AnimationModule = {
moduleName: 'Hello-Rainbow',
frameCount: 24,
getFrameDescription: getHelloRainbowFrameDescription,
frameSize: {
width: 1024,
height: 1024,
},
animationSettings: {
frameRate: 9,
constantRateFactor: 1,
},
}
export default HelloRainbowAnimationModule
interface GetHelloRainbowFrameDescriptionApi {
frameCount: number
frameIndex: number
}
async function getHelloRainbowFrameDescription(
api: GetHelloRainbowFrameDescriptionApi
) {
const { frameCount, frameIndex } = api
const rainbowColormap = getColormap({
colormap: 'rainbow-soft',
nshades: frameCount,
format: 'hex',
alpha: 1,
})
const mainFrameColor = rainbowColormap[frameIndex % frameCount]
return (
<svg viewBox={`0 0 100 100`}>
<rect
x={0}
y={0}
width={100}
height={100}
fill={'black'}
stroke={mainFrameColor}
strokeWidth={2}
/>
<text
x={5}
y={9}
style={{
fontFamily: 'monospace',
fontSize: 5,
fontWeight: 600,
fill: mainFrameColor,
}}
>
Hello Rainbow
</text>
{new Array(frameCount).fill(null).map((_, squareIndex) => {
const squareStamp = squareIndex / frameCount
const squareRadius = 30 - 30 * squareStamp
const squareLength = 2 * squareRadius
return (
<rect
x={50 - squareRadius}
y={50 - squareRadius}
width={squareLength}
height={squareLength}
stroke={rainbowColormap[(squareIndex + frameIndex) % frameCount]}
strokeWidth={0.5}
/>
)
})}
</svg>
)
}
yarn clumsy-graphics startDevelopment --animationModulePath=./example-project/HelloRainbow.animation.tsx
open browser at localhost:3000
yarn add clumsy-graphics
install and run docker engine (the majority of clumsy-graphics
runs within a container to simplify dependency management)
clumsy-graphics --animationModulePath=<SourceFilePath>
animationModulePath
: path to animation module export file
clientServerPort
: the port on the host machine to use for handling api, asset, and page requests
run clumsy-graphics command
open browser at localhost:3000
begin making changes on the active animation module