# Signal

A waveform you can scrub — drag horizontally to move the phase, hover to light the bars.

- Family: Instruments, imported from `mizu-ui` or `mizu-ui/lab`
- Docs: https://mizu.user64bit.world/components/signal
- Source: https://github.com/0xuser64bit/mizu/blob/main/packages/mizu/src/lab/Signal.tsx

## Usage

```tsx
import { Signal } from "mizu-ui";

export function Wave() {
  return <Signal density={14} />;
}
```

## Copy it with the shadcn CLI

```sh
npx shadcn@latest init 0xuser64bit/mizu/preset # once, where there is no components.json
npx shadcn@latest add 0xuser64bit/mizu/signal
```

## Props

- `density`: `number` (default `14`). Bar width divisor — lower is denser.
- `speed`: `number` (default `1`). Auto-advance rate when not dragging.

## Accessibility

A labelled native range input provides keyboard scrubbing alongside pointer dragging.

## Motion

Pointer capture for drag; phase eases back to auto-advance on release.
