Skip to content
Pinky UI

Jelly

Elastic lean, drift and settle, with squash and stretch on press. The soft body behind Jelly Card.

Live example

Try the interaction before reading the recipe.

real component · keyboard-safe

Jelly · move through the bounded field

Purpose

Elastic lean, drift and settle, with squash and stretch on press. The soft body behind Jelly Card.

Use it when

You want a surface of your own to feel physically soft.

API shape

elasticity blends the spring from calm to overshooting; intensity scales how far the surface leans and drifts; squash adds volume-preserving compression on press.

Judgment

Keep intensity at or below 0.3 for anything containing text. The deformation is a 3D rotation, and text on a strongly rotated plane is harder to read even when it is still legible.

elasticity={0} genuinely settles without a wobble — use it when you want the lean but not the bounce.

Performance

Pointer position is written straight into motion values, so tracking never re-renders React. One getBoundingClientRect per pointer move on the tracked element only.

Source: packages/skills/primitives/jelly.md