# Text wave

Component. Use when a sentence should be read word by word: words land in light grey one after another, then a colour wave runs left to right turning each word accent, then ink. Exit fades with blur.

## Mount

Fills its host box: give the host element the size and position you want, the component sizes everything in container units (percent of the host). No fixed canvas.

```html
<div data-composition-id="text-wave" data-composition-src="compositions/text-wave.html"
     data-start="0" data-duration="2.4" data-track-index="2"
     data-variable-values='{ "...": "..." }'
     style="position:absolute;left:300px;top:405px;width:1320px;height:195px"></div>
```

## Slots

No HTML slot; content comes from variables.

## Variables

| Variable | Type | Role | Default | Accepted | What changes |
| --- | --- | --- | --- | --- | --- |
| `text` | string | content | `Generate any brand asset` | Up to 80 characters | Three to eight words. |
| `align` | enum | layout | `left` | `left`, `center`, `right` | Where the text sits. |
| `size` | number | layout | `10` | 3 through 60 | Font size as percent of the host height. |
| `accent` | color | style | `#7b2f8e` | Hex or `transparent` | Focus word colour. |
| `grey` | color | style | `#c9c4c8` | Hex or `transparent` | Colour on landing. |
| `greyDark` | color | style | `#6a6467` | Hex or `transparent` | Colour before the wave arrives. |
| `ground` | color | style | `transparent` | Hex or `transparent` | Background; transparent to overlay. |
| `ink` | color | style | `#1a1418` | Hex or `transparent` | Resolved text colour. |
| `font` | font | style | `"Instrument Serif",Georgia,serif` | CSS font-family stack | Display face. Instrument Serif ships with the component. |
| `wordInterval` | number | timing | `0.16` | 0.04 through 1 | Seconds between landings. |
| `waveStep` | number | timing | `0.13` | 0.04 through 1 | Seconds between focus moves. |
| `exit` | enum | motion | `fade` | `fade`, `none` | fade or none. |

## Package

`index.html` is a demo host at 1920 by 1080; `compositions/text-wave.html` is the template entry; `assets/` holds GSAP, Instrument Serif and demo SVGs. One paused GSAP timeline on `window.__timelines["text-wave"]`. Generated from `_kit/components-*.mjs`; run `node packages/compositions/library/_kit/build-components.mjs` after editing.
