# Border Pulse

> Rings leave the border like sonar: this is live.

For recording states, active calls, incoming items and the one card that needs a decision.

- Family: Chrome
- Plan: Creative. Included with Creative.
- Requires: React, Tailwind CSS v4 and the motion package
- Page with a live preview: https://galactrex.com/ui/border-pulse/
- 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 border-pulse
```

It installs to `components/galactrex/border-pulse.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 { BorderPulse } from "@/components/galactrex/border-pulse";

<div className="relative rounded-xl border p-4"><BorderPulse />Recording</div>
```

## Props

| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `active` | `boolean` | `true` | Pulsing while true. |
| `rings` | `number` | `2` | Rings at a time. |
| `duration` | `number` | `1.8` | Seconds per ring. |
| `spread` | `number` | `14` | How far a ring travels in px. |
| `color` | `string` | — | Any CSS colour; defaults to a theme token. |
| `className` | `string` | — | Extra classes for the outer element. |

## Variants

- **Live.** A recording or call in progress.

## Accessibility

- Decorative; say what is live in text too.

## Motion

- Per-axis scale and opacity; pauses offscreen.
- Reduced motion: a still outline.
