--- title: Variables and templating description: "Ask for the parts that should change to become named slots, then re-render the same composition with different values — one output per record." --- [Design systems](/prompting/design-systems) covered the parts of a video that should *never* change per render — the brand. This page covers the parts that should: a card per customer, a stat per quarter, a name per recipient. When you know a composition will be reused, say so in the prompt, and name the parts that change. The agent turns them into declared [variables](/concepts/variables): typed, labeled slots filled at render time instead of hardcoded into the HTML. The trigger phrase is simple — call out the slots: > Build a 6-second title card. Make the **name**, the **logo**, and the **accent color** variables; everything else stays fixed. *Default variable values.* *The same composition re-rendered with `--variables` overrides — different name, logo, and accent, zero re-prompting.* The agent declares `data-composition-variables` on the composition root with the right type for each slot — `string` for the name, `color` for the accent, and a `string` URL for the logo (the escape hatch for any media asset — image, video, audio, or logo). A plain `` logo needs no timing attributes; only `