# Idea Set
URL: https://remocn.dev/docs/typography/idea-set

Two ruled lines rise in light italic, then change typeface letter by letter while one phrase turns accent-colored.

- Install: `npx shadcn@latest add @remocn/idea-set`
- Vibe: clean
- Natural length: 106f @ 30fps

## Installation

```bash
npx shadcn@latest add @remocn/idea-set
```

## Usage

```tsx
// src/Root.tsx
import { Composition } from "remotion";
import { IdeaSet } from "@/components/remocn/idea-set";

const IdeaSetScene = () => <IdeaSet lines={["Rough cut.", "Launch day."]} highlight="Launch day." />;

export const RemotionRoot = () => (
  <Composition
    id="IdeaSet"
    component={IdeaSetScene}
    durationInFrames={150}
    fps={30}
    width={1280}
    height={720}
  />
);
```

Each line rises out of a mask above a hairline rule in light italic. After `hold` frames the glyphs flip one by one to mono, then to medium sans, and the `highlight` phrase takes the accent color. Pass your own `lines`, and set `highlight` to text that appears in them. It ships light and dark.

## Props

| Prop | Type | Default | Description |
|---|---|---|---|
| `lines` | `string[]` | `["Napkin sketch.", "Keynote opener."]` | Lines of text, each set on its own ruled row. |
| `highlight` | `string` | `"Keynote opener."` | Phrase that turns accent-colored in the final typeface; must match line text. |
| `hold` | `number` | `18` | Frames to rest between each typeface change. |
| `accent` | `string` | — | Accent color; overrides the theme accent. |
| `background` | `string` | — | Background fill; pass "transparent" to drop it. |
| `speed` | `number` | `1` | Playback speed multiplier for the whole timeline. |
| `theme` | `"dark" \| "light"` | `"dark"` | Light or dark palette. |

## Use when
- A two-line rough-to-finished beat where the second line is the payoff.
- A product story that should feel typeset, with the voice shifting from sketch to polished.

## Don't use when
- One line should change voice mid-line without rules or a ledger look — use `mono-voice`.
- You only need a clean masked reveal with no typeface change — use `mask-reveal-up`.
- The change should read as a visible edit of old text into new — use `diff-swap`.