Metamorph

Shape Morph

Flows through several shapes and lands on your logo, whatever its outline.

Preview

Installation

Terminal
npx @usefluid/cli add shape-morph

Usage

ShapeMorph.tsx
import { ShapeMorph } from "./ShapeMorph";
import { logo } from "@/lib/logo";

<ShapeMorph logo={logo} label="Acme" />

API reference

PropTypeDefaultDescription
logostring—Your logo as one path in a 120 x 120 box. Make it with fluid logo.
routestring[]circle, flower, square...The shapes it passes through before the logo.
playbooleantrueStart the route. Pass false until it is on screen.
labelstring—Accessible name. Without it the drawing is decorative.
classNamestring—Size it from outside: it fills its box.

Keyboard and screen readers

With label it is an image with that name; without it, it is hidden from screen readers. Reduced motion shows the logo at once.

Notes

Logos with holes or several parts work. The parts pair up by size, biggest first.

Every colour comes from the --fluid-* variables, and the piece is yours to change.

How it is made

The logo becomes points spread evenly along its border, and each point has a spring with a slightly different frequency. That is why the shape arrives little by little, like a liquid. Extra parts are born from a point, and at rest the exact drawing of the logo comes back.

For your agent

For your agent

Add Shape Morph to my project with the Fluid library. Use ShapeMorph with my logo. Convert its SVG with fitPath before passing it. Read my project first. Use my logo, my colours and my font through the --fluid-* variables. Keep 44px touch targets, visible focus and reduced motion. If I have no SVG logo, ask before making one up.