Forest Logo
search
package_2

react-ripple

By @littensy

Roblox

Mirrored

🎨 Ripple

Ripple is a simple, lightweight, and easy-to-use Roblox library for creating simple transitions and animations. It is inspired by react-spring and aims to provide an imperative API for general use.

Installation

Ripple is available on NPM and can be installed with the following commands:

npm install @rbxts/ripple
yarn add @rbxts/ripple
pnpm add @rbxts/ripple
# Wally
Ripple = "littensy/ripple@version"

Reference

Supported types

The following data types are supported for animation:

Data typeConverted type
number[number]
vector[vector]
Vector2[vector]
Vector3[vector]
Color3[vector] (Oklab)
UDim[vector]
UDim2[vector, number]
CFrame[vector, vector, vector, vector]
Rect[vector, number]
Map<any, number | vector>Map<any, number | vector>

createSpring(initialValue, options)

createSpring creates a spring object starting at the given value.

local spring = createSpring(0, {
	tension = 170,
	friction = 26,
	start = true,
})

spring:setGoal(1)
spring:onChange(print) --> number, deltaTime

Try the react-spring visualizer →

Parameters

  • initialValue: The value that the spring should start with.
  • optional options: The physical properties of the spring.

Options

OptionTypeDescription
tension1numberInfluences the number of bounces in the animation. Defaults to 170.
friction1numberInfluences the level of spring in the animation. Defaults to 26.
mass1numberInfluences the speed of the spring and height of the bounce. Defaults to 1.
frequency2numberHow quickly the spring responds to changes.
dampingRatio2numberDictates how the spring slows down.
precisionnumberThe distance to the goal before the spring is considered idle. Defaults to 0.001.
restVelocitynumberThe smallest velocity before the spring is considered idle. Derived from precision by default.
positionTSet the position of the spring.
velocityTSet the velocity of the spring.
impulseTAdd to the velocity of the spring.
startbooleanConnect to Heartbeat while animating. Defaults to false.

Returns

createSpring returns a spring object.


createTween(initialValue, options)

createTween creates a tween object starting at the given value.

local tween = createTween(0, {
	easing = "quadOut",
	duration = 1,
	start = true,
})

tween:setGoal(1)
tween:onChange(print) --> number, deltaTime

Parameters

  • initialValue: The value that the spring should start with.
  • optional options: The properties of the tween.

Options

OptionTypeDescription
easingEasingThe easing function to use for animation.
durationnumberDuration of one repetition of the tween, in seconds.
repeatsnumberNumber of times the tween repeats.
reversesbooleanReverse directions when repeating.
positionTContinue the rest of the tween from this position.
startbooleanConnect to Heartbeat while animating. Defaults to false.

Easing functions

"linear""instant""smoothstep"
"sineIn""sineOut""sineInOut"
"backIn""backOut""backInOut"
"quadIn""quadOut""quadInOut"
"quartIn""quartOut""quartInOut"
"quintIn""quintOut""quintInOut"
"bounceIn""bounceOut""bounceInOut"
"elasticIn""elasticOut""elasticInOut"
"expoIn""expoOut""expoInOut"
"circIn""circOut""circInOut"
"cubicIn""cubicOut""cubicInOut"

See examples of easing functions →

Returns

createTween returns a tween object.


createMotion(initialValue, options)

createMotion creates an animation that switches between a spring and a tween.

local motion = createMotion(0, {
	spring = { tension = 170, friction = 26 },
	tween = { easing = "quadOut", duration = 1 },
	start = true,
})

motion:onChange(print) --> number, deltaTime
motion:tween(1)
task.wait(1)
motion:spring(0)

[!WARNING]

This creates both a spring and a tween object, which can be wasteful if your animation uses only one or the other.

Use createSpring or createTween if you do not need to switch animation types.

Parameters

  • initialValue: The value that the spring and tween should start with.
  • optional options: The properties of the spring or tween.

Options

OptionTypeDescription
springSpringOptions<T>The spring options to use for spring animations.
tweenTweenOptions<T>The tween options to use for tween animations.
startbooleanConnect to Heartbeat while animating. Defaults to false.

Returns

createMotion returns a motion object that controls a spring and a tween.


Ripple is licensed under the MIT License.

GitHub License

Footnotes

  1. Tension, friction, and mass are not compatible with frequency or damping ratio. 2 3

  2. Frequency and damping ratio are not compatible with tension, friction, or mass. 2

Package Details

Install command (Click to copy)


Version

3.0.1

License

MIT

check_circle

Safe for commercial use

infoLicense identified from the packaged LICENSE file; the manifest declared none.

Automated license review — not legal advice.