Deck
Title slide
The deck cover, drawn by the VI canvas: the side-by-side lockup by default, the full-bleed art cover when imagery is supplied. Client, date and the classification caveat ride the canvas's own footer row.
Install
npx shadcn@latest add @alix/titleSlidePreview
Ninety days to margin
The plan, the proof, and the ask.
Northwind IndustriesJuly 2026Draft for discussion
Usage
import { TitleSlide } from "@/components/deck/titleSlide";
<TitleSlide
title="Ninety days to margin"
subtitle="The plan, the proof, and the ask."
client="Northwind Industries"
date="July 2026"
classification="Draft for discussion"
/>Examples
01
With cover imagery
Pass resolved media and the cover switches to the full-bleed art template. The mark corners the frame and every ink flips to the image's tone.

AE Group efficiency programme
Response document
AE GroupJuly 2026
<TitleSlide
title="AE Group efficiency programme"
subtitle="Response document"
client="AE Group"
date="July 2026"
media={{ src: "/vi/gradient-art.webp", tone: "dark" }}
/>02
Cover-only, no subtitle
The subtitle is optional; omit it and the title carries the lockup alone, with just the engagement meta on the footer.
Project Jupiter
Northwind IndustriesJuly 2026Confidential
<TitleSlide
title="Project Jupiter"
client="Northwind Industries"
date="July 2026"
classification="Confidential"
/>When to use it
Use it for
- The single opening slide of a deck: exactly one, always first.
- Engagement chrome (client, date, and the classification caveat), which routes to the footer meta row, never the title.
- A cover with resolved imagery: pass media and the art template takes over; leave it off for the type-only lockup.
Reach for something else
- Chapter turns inside the deck. Use SectionBreakSlide.
- Passing a raw image element or an unresolved image id: media is a resolved { src, tone } object the app produces from a governed image.
- Placing the wordmark or title yourself: the geometry belongs to the VI templates.
Props
| Prop | Type | Default | Description |
|---|---|---|---|
| title | string | – | The cover title. A plain string from the deck JSON; the slide owns the type. |
| subtitle | string | – | Optional support line under the title. |
| client | string | – | Engagement chrome. client, date and classification are collected in order onto the canvas footer meta row, not the title block. |
| classification | string | – | The consulting-grade caveat line, e.g. "Draft for discussion". |
| surface | VISurface | – | Cover surface when no image is set: the brand vocabulary (white, primary, sand, greyGradient, goldGradient). Ignored once media is supplied. |
| media | VIMedia | – | Resolved cover imagery: a { src, tone } object (the app resolves a governed imageId to this). Its presence switches the lockup template to the art cover. |