Skip to content
Pinky UI

Jelly Card

Use Jelly Card when a surface should feel physically soft — it leans toward the pointer, drifts slightly, and settles on a spring. It is the most expressive card in Pinky UI and should be treated as a limited resource.

View the Jelly Card component

Live example

Try the interaction before reading the recipe.

real component · keyboard-safe

Elastic surface

Leans, drifts, settles

Pointer-driven deformation with a spring return.

Purpose

Use Jelly Card when a surface should feel physically soft — it leans toward the pointer, drifts slightly, and settles on a spring. It is the most expressive card in Pinky UI and should be treated as a limited resource.

Good for

  • feature cards and product highlights
  • creative portfolios and case-study tiles
  • one or two hero surfaces that should feel alive

Avoid for

  • forms and input-heavy panels
  • dense data tables
  • long repeated lists, where per-item motion becomes noise
  • anything wrapping a critical or destructive action

Recommended defaults

elasticity={0.35} intensity={0.18} — the Soft preset. Do not raise intensity above 0.3 unless the card is alone on the screen; above that the surface stops reading as soft and starts reading as unstable. hoverScale stays at or under 1.04 by house rule.

In a grid, drop to Subtle (elasticity={0.15} intensity={0.08}) or switch to Spotlight Card. A dozen cards leaning at once is noise, not craft.

className positions the outer element (grid and flex placement); surfaceClassName styles the inner surface.

Accessibility

  • Effects are transform-only, so surrounding layout never shifts.
  • Pointer response is skipped entirely for touch and reduced motion, and the card stays fully usable in both cases.
  • Any semantics you nest inside are preserved; the card adds none of its own.
  • Keep rotation low if the card carries body text.

Performance

Cheap: two motion values and a CSS gradient, no React renders while tracking. The cost is visual, not computational — restraint is about attention, not frames.

Composition

Works well with Glow Border (framing) and a Magnetic Button inside.

Avoid nesting inside Tilt — two rotation systems on one surface fight each other and the result reads as a bug.

Source: packages/skills/components/jelly-card.md