# Morphing Text

> Words that melt into each other.

Two copies cross-blur under a threshold filter so letters look like liquid flowing into the next word.

- Family: Typography
- Plan: Creative. Included with Creative.
- Requires: React, Tailwind CSS v4 and the motion package
- Page with a live preview: https://galactrex.com/ui/morphing-text/
- Licence: https://galactrex.com/ui/license/

## Install

```sh
npx @galactrex/ui login   # once, with an API key from https://galactrex.com/account/
npx @galactrex/ui add morphing-text
```

It installs to `components/galactrex/morphing-text.tsx`, with the shared motion helpers beside it. First time in a project: `npx @galactrex/ui init` (setup guide: https://galactrex.com/docs/ui-components-setup/).

## Usage

```tsx
import { MorphingText } from "@/components/galactrex/morphing-text";

<MorphingText words={["Design", "Build", "Ship"]} />
```

## Props

| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `words` | `string[]` | — | The words. |
| `as` | `ElementType` | `"span"` | Element. |
| `every` | `number` | `2.6` | Seconds per word. |
| `morph` | `number` | `1` | Seconds of the melt. |
| `className` | `string` | — | Extra classes for the outer element. |

## Variants

- **Tagline.** Two to five short words.

## Accessibility

- The word list is read once; the morph is aria-hidden.

## Motion

- Blur and opacity per frame through an SVG threshold; pauses offscreen.
- Reduced motion: the first word.
