# Progress Bar

Video progress bar on the top or bottom edge, split into chapter segments, with the current chapter's name.

```bash
npx shadcn add https://www.reelcn.dev/r/progress-bar.json
```

Usage:

```tsx
<Sequence durationInFrames={900}>
  <ProgressBar chapters={[{ at: 0, label: "Intro" }, { at: 240, label: "Setup" }, { at: 600, label: "Result" }]} />
</Sequence>
```

Use for:

- Tutorials, explainers and long-form edits with named chapters
- Showing viewers how much of a short is left

Dependencies:

- `remotion`


## Props

| Name | Type | Default | Description |
| --- | --- | --- | --- |
| delay? | `number` | — | Frames to wait before entering. |
| duration? | `number` | — | Enter duration in frames. Defaults to 0.6s. Some items reuse `duration` for an unrelated local timing. See that item's own prop docs. |
| exit? | `number \| boolean` | — | Exit at the end of the parent `<Sequence>`. `false` keeps it on screen, a number sets the exit length in frames. |
| motion? | `MotionPersonality` | — | Override the theme's motion personality. |
| poster? | `boolean` | — | Renders fully entered, with no exit: for a still frame or thumbnail. Defaults to `false`. |
| holdFrames? | `number` | — | Delays the start of the exit window by this many frames, for a minimum on-screen hold. Defaults to `0`. |
| edge? | `"top" \| "bottom"` | `"bottom"` |  |
| total? | `number` | — | Frames the bar takes to fill. Defaults to the length of its parent `<Sequence>` (or the composition). Inside a Sequence `useCurrentFrame()` is local, so the bar measures its own Sequence, not the whole video: put it at the top level of the composition to track the full video. |
| chapters? | `ProgressBarChapter[]` | `[]` | Chapter starts; each one becomes a segment of the bar. |
| thickness? | `number` | `8` | Bar thickness in design units. |
| offset? | `number` | `0` | Distance from the edge in design units. |
| showLabel? | `boolean` | `true` | Show the current chapter's name next to the bar. |
| color? | `string` | — | Fill color. Defaults to the theme accent. |
| trackColor? | `string` | — | Unfilled track. Defaults to the theme foreground at 20%. |
| labelColor? | `string` | — | Chapter label text. Defaults to the theme foreground. |
| labelBackground? | `string` | — | Chapter label pill. Defaults to the theme surface at 85%. |
| style? | `CSSProperties` | — |  |
| className? | `string` | — |  |