BoseUI v2

Morphing Blob

Backgrounds

Organic fluid morphing SVG blob driven by Catmull-Rom cubic spline interpolation, Hooke's Law spring physics per node, and smooth real-time cursor attraction.

Catmull-Rom Spring Splines

Organic Morphing Blob

Move cursor to attract fluid spring nodes

Installation

Install directly into your project using the shadcn CLI or copy the source code manually.

Requires:framer-motionclsxtailwind-merge
$npx shadcn@latest add "https://boseui.site/r/morphing-blob.json"

Props

TypeScript props supported by <MorphingBlob />.

12 props
PropTypeDefaultDescription
widthnumber400Width of the SVG viewBox in pixels.
heightnumber400Height of the SVG viewBox in pixels.
pointsnumber8Number of radial anchor nodes forming the organic perimeter.
baseRadiusnumber120Resting base radius of the blob from center in pixels.
variancenumber28Maximum radial fluctuation delta applied to node targets.
speednumber0.7Frequency of retargeting cycles for organic movement.
stiffnessnumber45Spring stiffness constant pulling nodes toward their targets.
dampingnumber9Velocity damping factor preventing wild oscillations.
cursorFollowbooleantrueEnable smooth attraction toward the pointer location.
cursorStrengthnumber0.35Offset multiplier applied to the blob center relative to pointer position.
cursorSmoothnessnumber0.08Lerp interpolation speed for cursor tracking.
colors[string, string]['#7C3AED', '#06B6D4']Two-stop linear gradient hex colors filling the blob.

Key Features

  • Continuous Catmull-Rom cubic bezier closed loop path computation.
  • Hooke's Law spring-mass-damping physics simulation per radial node.
  • Real-time cursor parallax offset with smooth damping and viewport scaling.
  • Accessible automatic fallback for prefers-reduced-motion environments.

Keyboard & Accessibility

  • Marks ambient SVG canvas with aria-hidden='true' and role='presentation'.
  • Automatically bypasses frame animation loops if prefers-reduced-motion is detected.