# Specular sweep

Component. Use on a surface that just changed: a soft light band sweeps across the host once. Overlay it on a pill, a card or an image.

## 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="specular-sweep" data-composition-src="compositions/specular-sweep.html"
     data-start="0" data-duration="1" 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 |
| --- | --- | --- | --- | --- | --- |
| `color` | color | style | `#ffffff` | Hex or `transparent` | Band colour. |
| `opacity` | number | style | `0.95` | 0 through 1 | Peak opacity. |
| `width` | number | style | `20` | 2 through 100 | Band width as percent of host width. |
| `angle` | number | layout | `28` | -80 through 80 | Degrees. |
| `direction` | enum | motion | `rtl` | `rtl`, `ltr` | rtl or ltr. |
| `at` | number | timing | `0.1` | 0 through 30 | Seconds before the move starts. |
| `duration` | number | timing | `0.5` | 0.1 through 3 | Seconds for one sweep. |
| `ground` | color | style | `transparent` | Hex or `transparent` | Background; transparent to overlay. |

## Package

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