Spec
Slide types
The vocabulary a deck is written in. Each type declares its own fields, and that declaration is what you see below.
A slide type is a small contract: a name, a set of fields, and a shape. It is not a template you fill in and then push around, which is why the same deck can render at any size, on any theme, into HTML or PDF, and be read by something that is not a person. Core ships 33 of them, all declared in one registry; the glyph on each card below is the abstract diagram the editor draws in its own slide picker, from the same description of the layout.
The grid is grouped by the structure each type declares: the shape of its primary content, independent of what the slide is about and how it looks. Six values cover all of them, with no "other" bucket, and this is the axis a second implementation builds against - support a structure and you support every type in it.
A type also declares a runtime: what the presenting session has to do for it beyond serving the slide. For nearly the whole catalogue the answer is nothing - a static type renders with no server in the picture. The 4 live types are the exception: the audience answers, and the session collects and aggregates those answers as state the presenter opens and closes. One type, the countdown, is timed - its clock runs in the presenting window and asks nothing of the session.
Singleton 14 types
A fixed set of scalar slots.
A fixed set of scalar slots. Read the keys the type declares; there is no repetition to walk.
-
Title slide
title-slideBig title and subtitle to open with Fields and detailFields
Key Type Required Limit Options title string Yes 120 — subheading string No 160 — meta string No 160 — background enum No — lime, mist logoCorner enum No — left, right titleBlockAlign enum No — left, center Layout variants
- Left
- Centred
Reach for it when
- Opening/first slide of any deck
Reach for something else when
- Anything other than the deck opening
-
Section title
chapter-title-slideSection divider between topics Fields and detailFields
Key Type Required Limit Options titleBlockAlign enum No — left, center title string Yes 140 — subheading string No 160 — layout enum No — top, center, bottom Layout variants
- Left
- Centred
Reach for it when
- Introducing a new major section or topic
- Creating visual breaks between different parts of the presentation
- Helping audience understand the structure
Reach for something else when
- Content that needs explanation (use content slides after this)
- Minor sub-topics within a section
-
Text slide
content-slideA heading with body text Fields and detailFields
Key Type Required Limit Options title string Yes 120 — subheading string No 200 — layout enum No — two-column, one-column density enum No — auto, comfortable, compact body markdown Yes 3000 — background enum No — lime, mist actions items No — Repeats, each item with: label, url, style Layout variants
- One column
- Text in two columns
- Image 1/3
- Image 1/2
- Image 2/3
- Row above
- Row below
- Two beside text
- Corner image
Reach for it when
- General explanatory text that does not fit other slide types
- Mixed content (some bullets + some paragraphs)
- Content that is truly freeform
Reach for something else when
- Lists with title+description pairs (use list-slide)
- Parallel items/categories with no causal relationship (use list-slide, or icon-card-grid-slide if each needs an icon)
- Timelines or sequences (use timeline-slide)
- Tables (use table-slide or chart-slide)
- Genuine cause→effect / input→output flows between groups (use text-blocks-slide)
-
Image + text
image-text-slideAn image beside text Fields and detailFields
Key Type Required Limit Options title string Yes 120 — body markdown Yes 3000 — image image No — — images items No — Repeats, each item with: src, alt, fit, focusX, focusY caption string No 160 — alt string No 180 — imageRole enum No — content, decorative imageSide enum No — left, right imageWidth enum No — half, narrow, wide layout enum No — split, corner, duo, row-top, row-bottom textColumns enum No — 1, 2 imageFit enum No — cover, contain imageBackground enum No — white, match focusX number No — — focusY number No — — density enum No — auto, comfortable, compact background enum No — lime, mist actions items No — Repeats, each item with: label, url, style Layout variants
- Text only
- Image 1/3
- Image 1/2
- Image 2/3
- Row above
- Row below
- Two beside text
- Corner image
Reach for it when
- Content where a photo/image adds value
- Product or feature showcases
- Person introductions with photo
- Location or event context
- A small set of 2-3 related images with one shared story (rows/duo)
Reach for something else when
- Content without a meaningful image to pair
- Heavy text content (use content-slide or split into multiple)
- Long bodies on the "wide" or "corner" layouts (little text room)
- Many images without text (use gallery-slide)
-
Video
video-slideAn embedded video Fields and detailFields
Key Type Required Limit Options title string No 100 — source string Yes 400 — background enum No — lime, mist autoplay enum No — off, on watchUrl string No 400 — bunnyLibraryId string No 20 — Reach for it when
- Embedded video content
Reach for something else when
- Content without a video URL
-
Quote
quote-slideA pull quote with attribution Fields and detailFields
Key Type Required Limit Options quoteAlign enum No — left, center quote string Yes 400 — authorName string Yes 80 — authorTitle string Yes 120 — authorImage1 image No — — authorImage1Alt string No 180 — authorImage2 image No — — authorImage2Alt string No 180 — quotes items No — Repeats, each item with: quote, authorName, authorTitle, authorImage, authorImageAlt, authorImage2, authorImage2Alt Layout variants
- Left
- Centred
Reach for it when
- Direct quotes from interviews
- Memorable one-liners or punchy statements
- Testimonials or endorsements
- Key takeaways phrased as quotes
Reach for something else when
- Long passages (summarize or use content-slide)
- Multiple quotes (use one quote-slide per quote, spaced apart)
- Back-to-back placement (space them out in the deck)
-
Image slide
image-slideA single full-bleed image Fields and detailFields
Key Type Required Limit Options title string No 80 — subheading string No 140 — bottomSubheading string No 200 — image image No — — imageRole enum No — content, decorative alt string No 180 — caption string No 160 — focusX number No — — focusY number No — — fit enum No — cover, contain bleed boolean No — — layout enum No — full, bleed, centered background enum No — lime, mist zoomSteps enum No — , corners, horizontal, vertical, quadrants, custom zoomLevel number No — — zoomPositions string No 500 — Reach for it when
- Powerful standalone visuals
- Full-bleed photos or screenshots
- Visual breaks in the presentation
Reach for something else when
- Content that needs text explanation (use image-text-slide)
-
Embed
embed-slideEmbed an external page or iframe Fields and detailFields
Key Type Required Limit Options title string No 120 — embedUrl string Yes 500 — aspectRatio enum No — 16:9, 4:3, 1:1, auto sandbox enum No — restricted, permissive background enum No — lime, mist Reach for it when
- Showing a live prototype, board, or dashboard during the talk
- Content that must stay current between rehearsal and delivery
Reach for something else when
- A video (use video-slide)
- A static picture of a tool (use image-slide)
- Any case where you would have to invent the URL
-
Countdown timer Audience
countdown-slideA countdown timer Fields and detailFields
Key Type Required Limit Options title string No 120 — durationMinutes number No — — durationSeconds number No — — autoStart enum No — off, on flashOnZero enum No — on, off soundOnZero enum No — off, on zeroText string No 60 — background enum No — lime, mist, dark, accent, brand-1, brand-2, custom Reach for it when
- Breaks with a stated length ("15 minutes")
- Timeboxed exercises in a workshop deck
Reach for something else when
- Marking a section boundary (use chapter-title-slide)
- A deck that is presented straight through without pauses
-
Likert slider (1–10) Audience
likert-slider-slideA 1–10 slider rating Fields and detailFields
Key Type Required Limit Options question string Yes 200 — minLabel string No 120 — maxLabel string No 120 — background enum No — lime, mist Reach for it when
- "Rate from 1 to 10" questions
- "How likely are you to..." questions
- Confidence or intensity ratings
Reach for something else when
- Labeled categories (use likert-slide)
- Multiple choice (use poll-slide)
-
Feedback Audience
feedback-slideCollect open text feedback Fields and detailFields
Key Type Required Limit Options question string Yes 200 — placeholder string No 120 — background enum No — lime, mist Reach for it when
- Open feedback prompts
- "What should we improve?" questions
- Collecting ideas or suggestions
Reach for something else when
- Structured questions (use poll or likert slides)
-
Comparison
comparison-slideTwo options side by side Fields and detailFields
Key Type Required Limit Options title string No 120 — subheading string No 200 — bottomSubheading string No 200 — leftTitle string Yes 100 — leftBody markdown Yes 2000 — rightTitle string Yes 100 — rightBody markdown Yes 2000 — verdict string No 100 — background enum No — lime, mist Reach for it when
- A vs B comparisons (products, approaches)
- Pros and cons analysis
- Before vs after transformations
- Option evaluation and decision support
Reach for something else when
- More than 2 options (use table-slide or icon-card-grid-slide)
- 2x2 matrices like SWOT (use matrix-slide)
-
Custom HTML
custom-html-slideYour own HTML and CSS, for anything else Fields and detailFields
Key Type Required Limit Options html code No 20000 — css code No 10000 — background enum No — lime, mist -
End / Contact
end-slideA closing slide with contact details Fields and detailFields
Key Type Required Limit Options title string Yes 120 — body markdown No 500 — contactName string No 80 — contactEmail string No 120 — contactPhone string No 40 — contactUrl string No 200 — social1Label string No 40 — social1Url string No 200 — social2Label string No 40 — social2Url string No 200 — background enum No — lime, mist Reach for it when
- Final slide with contact information
- Thank you / closing slide
- Slides where the audience needs follow-up details
Reach for something else when
- Brand-only closing without contact info (use payoff-slide)
- Content slides mid-deck
Collection 12 types
n items of one repeated shape.
One array of items that all share a shape. Walk the array, render the item, repeat.
-
List
list-slideA bulleted or numbered list Fields and detailFields
Key Type Required Limit Options title string Yes 120 — subheading string No 160 — variant enum No — bullets, numbers layout enum No — auto, one-column, two-column density enum No — auto, comfortable, compact background enum No — lime, mist items items Yes — Repeats, each item with: title, text headerAlign enum No — left, center Layout variants
- Left
- Centred
Reach for it when
- Tips, recommendations, or best practices
- Meeting agendas (not roadmaps - those are timeline)
- Steps with short explanations
- Do/don't lists
- Key takeaways or highlights
- Any list where items have both a title AND a brief explanation
Reach for something else when
- NUMERIC HIGHLIGHTS like "220 trajectories" or "10,000 professionals" (use kpi-metrics-slide!)
- Output targets or deliverables with specific numbers (use kpi-metrics-slide)
- Parallel categories that should be compared side-by-side (use card slides)
- Timeline/roadmap with phases over time (use timeline-slide)
- Simple bullets without title+text structure (use content-slide)
-
KPI
kpi-metrics-slideBig numbers with deltas Fields and detailFields
Key Type Required Limit Options title string No 120 — subheading string No 200 — bottomSubheading string No 200 — background enum No — lime, mist accent enum No — none, highlight-best, highlight-risk countUp enum No — off, on metrics items No — Repeats, each item with: value, unit, label, note headerAlign enum No — left, center Layout variants
- Left
- Centred
Reach for it when
- NUMERIC OUTPUT TARGETS: "220 research trajectories", "10,000 professionals"
- Programme deliverables with specific numbers
- Key performance indicators and goals
- Budget figures or funding amounts
- Statistics and metrics that should STAND OUT
- Before/after comparisons with change indicators
- Any 1-4 numbers that are the KEY POINT of the slide
Reach for something else when
- More than 4 metrics (split into multiple slides or use table/chart)
- Qualitative descriptions without clear numeric values
- Lists of activities or processes (use list-slide or text-blocks-slide)
-
Image blocks
team-cards-slideImage blocks in a grid Fields and detailFields
Key Type Required Limit Options title string No 120 — subheading string No 220 — bottomSubheading string No 200 — subheading2 string No 220 — members items No — Repeats, each item with: image, alt, name, byline, linkedin background enum No — mist, lime, calm textPosition enum No — below, split imageShape enum No — rounded, square, circle imageAspect enum No — square, original showPhotoFrame enum No — off, on columnSplit enum No — , 1, 2, 3, 4, 5 cardCount enum No — 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 card1Image image No — — card1Alt string No 180 — card1ImageFocusX number No — — card1ImageFocusY number No — — card1Name string No 80 — card1Byline string No 120 — card1Linkedin string No 300 — card2Image image No — — card2Alt string No 180 — card2ImageFocusX number No — — card2ImageFocusY number No — — card2Name string No 80 — card2Byline string No 120 — card2Linkedin string No 300 — card3Image image No — — card3Alt string No 180 — card3ImageFocusX number No — — card3ImageFocusY number No — — card3Name string No 80 — card3Byline string No 120 — card3Linkedin string No 300 — card4Image image No — — card4Alt string No 180 — card4ImageFocusX number No — — card4ImageFocusY number No — — card4Name string No 80 — card4Byline string No 120 — card4Linkedin string No 300 — card5Image image No — — card5Alt string No 180 — card5ImageFocusX number No — — card5ImageFocusY number No — — card5Name string No 80 — card5Byline string No 120 — card5Linkedin string No 300 — card6Image image No — — card6Alt string No 180 — card6ImageFocusX number No — — card6ImageFocusY number No — — card6Name string No 80 — card6Byline string No 120 — card6Linkedin string No 300 — card7Image image No — — card7Alt string No 180 — card7ImageFocusX number No — — card7ImageFocusY number No — — card7Name string No 80 — card7Byline string No 120 — card7Linkedin string No 300 — card8Image image No — — card8Alt string No 180 — card8ImageFocusX number No — — card8ImageFocusY number No — — card8Name string No 80 — card8Byline string No 120 — card8Linkedin string No 300 — card9Image image No — — card9Alt string No 180 — card9ImageFocusX number No — — card9ImageFocusY number No — — card9Name string No 80 — card9Byline string No 120 — card9Linkedin string No 300 — card10Image image No — — card10Alt string No 180 — card10ImageFocusX number No — — card10ImageFocusY number No — — card10Name string No 80 — card10Byline string No 120 — card10Linkedin string No 300 — card11Image image No — — card11Alt string No 180 — card11ImageFocusX number No — — card11ImageFocusY number No — — card11Name string No 80 — card11Byline string No 120 — card11Linkedin string No 300 — card12Image image No — — card12Alt string No 180 — card12ImageFocusX number No — — card12ImageFocusY number No — — card12Name string No 80 — card12Byline string No 120 — card12Linkedin string No 300 — card13Image image No — — card13Alt string No 180 — card13ImageFocusX number No — — card13ImageFocusY number No — — card13Name string No 80 — card13Byline string No 120 — card13Linkedin string No 300 — card14Image image No — — card14Alt string No 180 — card14ImageFocusX number No — — card14ImageFocusY number No — — card14Name string No 80 — card14Byline string No 120 — card14Linkedin string No 300 — card15Image image No — — card15Alt string No 180 — card15ImageFocusX number No — — card15ImageFocusY number No — — card15Name string No 80 — card15Byline string No 120 — card15Linkedin string No 300 — card16Image image No — — card16Alt string No 180 — card16ImageFocusX number No — — card16ImageFocusY number No — — card16Name string No 80 — card16Byline string No 120 — card16Linkedin string No 300 — card17Image image No — — card17Alt string No 180 — card17ImageFocusX number No — — card17ImageFocusY number No — — card17Name string No 80 — card17Byline string No 120 — card17Linkedin string No 300 — card18Image image No — — card18Alt string No 180 — card18ImageFocusX number No — — card18ImageFocusY number No — — card18Name string No 80 — card18Byline string No 120 — card18Linkedin string No 300 — card19Image image No — — card19Alt string No 180 — card19ImageFocusX number No — — card19ImageFocusY number No — — card19Name string No 80 — card19Byline string No 120 — card19Linkedin string No 300 — card20Image image No — — card20Alt string No 180 — card20ImageFocusX number No — — card20ImageFocusY number No — — card20Name string No 80 — card20Byline string No 120 — card20Linkedin string No 300 — card21Image image No — — card21Alt string No 180 — card21ImageFocusX number No — — card21ImageFocusY number No — — card21Name string No 80 — card21Byline string No 120 — card21Linkedin string No 300 — card22Image image No — — card22Alt string No 180 — card22ImageFocusX number No — — card22ImageFocusY number No — — card22Name string No 80 — card22Byline string No 120 — card22Linkedin string No 300 — card23Image image No — — card23Alt string No 180 — card23ImageFocusX number No — — card23ImageFocusY number No — — card23Name string No 80 — card23Byline string No 120 — card23Linkedin string No 300 — card24Image image No — — card24Alt string No 180 — card24ImageFocusX number No — — card24ImageFocusY number No — — card24Name string No 80 — card24Byline string No 120 — card24Linkedin string No 300 — card25Image image No — — card25Alt string No 180 — card25ImageFocusX number No — — card25ImageFocusY number No — — card25Name string No 80 — card25Byline string No 120 — card25Linkedin string No 300 — Reach for it when
- Multiple screenshots / UI captures in one slide (imageAspect: original)
- Testimonials or mixed image grids with short labels
- Team introductions and speaker panels (name + role)
- Advisory boards or committees (up to 25, imageShape: circle)
- Any set of separate images that each want a small Title/Caption
Reach for something else when
- A single hero image (use image-slide)
- One image beside a paragraph of text (use image-text-slide)
- A curated photo gallery with masonry/featured layout (use gallery-slide)
- More than 25 blocks (split into multiple slides)
-
Logo wall
logo-wall-slideA wall of logos Fields and detailFields
Key Type Required Limit Options headerAlign enum No — left, center title string No 120 — subheading string No 220 — background enum No — lime, mist logoCount enum No — 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 logos items No — Repeats, each item with: image, name, alt, link logo1Image image No — — logo1Name string No 80 — logo1Alt string No 180 — logo1Link string No 500 — logo2Image image No — — logo2Name string No 80 — logo2Alt string No 180 — logo2Link string No 500 — logo3Image image No — — logo3Name string No 80 — logo3Alt string No 180 — logo3Link string No 500 — logo4Image image No — — logo4Name string No 80 — logo4Alt string No 180 — logo4Link string No 500 — logo5Image image No — — logo5Name string No 80 — logo5Alt string No 180 — logo5Link string No 500 — logo6Image image No — — logo6Name string No 80 — logo6Alt string No 180 — logo6Link string No 500 — logo7Image image No — — logo7Name string No 80 — logo7Alt string No 180 — logo7Link string No 500 — logo8Image image No — — logo8Name string No 80 — logo8Alt string No 180 — logo8Link string No 500 — logo9Image image No — — logo9Name string No 80 — logo9Alt string No 180 — logo9Link string No 500 — logo10Image image No — — logo10Name string No 80 — logo10Alt string No 180 — logo10Link string No 500 — logo11Image image No — — logo11Name string No 80 — logo11Alt string No 180 — logo11Link string No 500 — logo12Image image No — — logo12Name string No 80 — logo12Alt string No 180 — logo12Link string No 500 — Layout variants
- Left
- Centred
Reach for it when
- Partner organizations
- Sponsors and funding bodies
- Client logos
- Supporter acknowledgments
- Consortium or coalition members
Reach for something else when
- Detailed partner descriptions (use content-slide or icon-card-grid-slide)
- People (use team-cards-slide)
- Screenshots or photos that want captions (use team-cards-slide or gallery-slide)
-
Icon cards
icon-card-grid-slideCards with an icon and label Fields and detailFields
Key Type Required Limit Options title string Yes 120 — subheading string No 200 — layout enum No — cards, tiles bottomSubheading string No 200 — cardCount enum No — 1, 2, 3, 4, 5, 6 items items No — Repeats, each item with: icon, title, body, link card1Icon string No 40 — card1Title string No 80 — card1Body markdown No 700 — card1Link string No 500 — card2Icon string No 40 — card2Title string No 80 — card2Body markdown No 700 — card2Link string No 500 — card3Icon string No 40 — card3Title string No 80 — card3Body markdown No 700 — card3Link string No 500 — card4Icon string No 40 — card4Title string No 80 — card4Body markdown No 700 — card4Link string No 500 — card5Icon string No 40 — card5Title string No 80 — card5Body markdown No 700 — card5Link string No 500 — card6Icon string No 40 — card6Title string No 80 — card6Body markdown No 700 — card6Link string No 500 — Reach for it when
- 4-6 parallel categories or pillars
- Focus areas or strategic priorities
- Company values or principles
- Product features or capabilities
- Workstreams, departments, or teams
- Service offerings
- Benefits or advantages
- Any set of 4-6 things that can each have a meaningful icon
Reach for something else when
- Time-based sequences (use timeline-slide)
- Items that need very long descriptions or bullets (use text-blocks-slide)
- Cause-effect relationships (use text-blocks-slide)
- Simple lists without icons (use list-slide)
-
Text blocks
text-blocks-slideSeveral labelled text blocks Fields and detailFields
Key Type Required Limit Options title string Yes 120 — subheading string No 200 — bottomSubheading string No 200 — rows items No — Repeats, each item with: title, color, arrow, blocks row1Count enum No — 1, 2, 3, 4, 5, 6 row1Color enum No — yellow, black row1Block1Title string No 80 — row1Block1Body markdown No 500 — row1Block2Title string No 80 — row1Block2Body markdown No 500 — row1Block3Title string No 80 — row1Block3Body markdown No 500 — row1Block4Title string No 80 — row1Block4Body markdown No 500 — row1Block5Title string No 80 — row1Block5Body markdown No 500 — row1Block6Title string No 80 — row1Block6Body markdown No 500 — arrow1 enum No — none, down, up row2Enabled enum No — no, yes row2Title string No 120 — row2Count enum No — 1, 2, 3, 4, 5, 6 row2Color enum No — yellow, black row2Block1Title string No 80 — row2Block1Body markdown No 500 — row2Block2Title string No 80 — row2Block2Body markdown No 500 — row2Block3Title string No 80 — row2Block3Body markdown No 500 — row2Block4Title string No 80 — row2Block4Body markdown No 500 — row2Block5Title string No 80 — row2Block5Body markdown No 500 — row2Block6Title string No 80 — row2Block6Body markdown No 500 — arrow2 enum No — none, down, up row3Enabled enum No — no, yes row3Title string No 120 — row3Count enum No — 1, 2, 3, 4, 5, 6 row3Color enum No — yellow, black row3Block1Title string No 80 — row3Block1Body markdown No 500 — row3Block2Title string No 80 — row3Block2Body markdown No 500 — row3Block3Title string No 80 — row3Block3Body markdown No 500 — row3Block4Title string No 80 — row3Block4Body markdown No 500 — row3Block5Title string No 80 — row3Block5Body markdown No 500 — row3Block6Title string No 80 — row3Block6Body markdown No 500 — Reach for it when
- Cause→effect: activities/programmes (A, B, C) that PRODUCE specific outputs
- Input→processing→output flows
- Problem→solution or challenge→response structures
- Before→after transformations
- Strategy→tactics→results chains
- Any 2-3 row structure where each row LEADS TO the next
- Consequence chains: X causes Y, which causes Z. Prefer this over process-slide when nobody performs the steps -- the items are outcomes, not actions
Reach for something else when
- Plain enumerations or lists of points (use list-slide or content-slide)
- Parallel items/categories with NO causal or sequential relationship — use list-slide, or icon-card-grid-slide if each needs an icon
- A single row of blocks used just to group text (use list-slide)
- Single items without grouping (use content-slide)
- Sequential timelines with dates (use timeline-slide)
- Items that each need an icon (use icon-card-grid-slide)
-
Process
process-slideSequential steps with arrows Fields and detailFields
Key Type Required Limit Options title string Yes 120 — subheading string No 200 — bottomSubheading string No 200 — direction enum No — horizontal, vertical items items Yes — Repeats, each item with: title, text steps items No — Repeats, each item with: title, text background enum No — lime, mist Reach for it when
- Step-by-step procedures
- Onboarding processes
- Implementation methodologies
- How-to guides with sequential steps
- Project phases
Reach for something else when
- Recurring/cyclical processes (use cycle-slide)
- Timelines with specific dates (use timeline-slide)
- Narrowing conversions (use funnel-slide)
- Chains where each item CAUSES the next rather than being carried out in order (use text-blocks-slide). Test: can you name who performs each step? If yes it is a process; if the items are consequences nobody performs, it is a causal chain
-
Timeline
timeline-slideEvents along a timeline Fields and detailFields
Key Type Required Limit Options title string No 120 — subheading string No 200 — bottomSubheading string No 200 — items items Yes — Repeats, each item with: date, title, text background enum No — lime, mist Reach for it when
- Roadmaps with phases (Q1/Q2/Q3, Year 1/2/3, Phase 1/2/3)
- Company history and milestones
- Project retrospectives and future plans
- Historical event sequences
- Product evolution timelines
- Future development plans
- Now/Next/Later timelines
Reach for something else when
- Meeting agendas (use list-slide)
- Non-sequential items (use icon-card-grid-slide or list-slide)
- More than 10 items (split into multiple slides)
- Processes without dates/phases (use process-slide)
- Undated summary/total lines as items (put them in bottomSubheading)
-
Funnel
funnel-slideStages narrowing to a goal Fields and detailFields
Key Type Required Limit Options title string Yes 120 — subheading string No 200 — bottomSubheading string No 200 — items items Yes — Repeats, each item with: label, value, text stages items No — Repeats, each item with: label, value, text background enum No — lime, mist Reach for it when
- Sales funnels (Leads > Qualified > Closed)
- Marketing funnels (Awareness > Interest > Conversion)
- Recruitment funnels
- Any narrowing process with decreasing numbers
Reach for something else when
- Hierarchies without quantity reduction (use pyramid)
- Processes that don't narrow (use process-slide)
- Circular processes (use cycle-slide)
-
Pyramid
pyramid-slideA layered hierarchy pyramid Fields and detailFields
Key Type Required Limit Options title string Yes 120 — subheading string No 200 — bottomSubheading string No 200 — levels items Yes — Repeats, each item with: label, text background enum No — lime, mist Reach for it when
- Maslow-style need pyramids
- Priority levels (Critical > High > Medium > Low)
- Organizational hierarchies
- Skill progression pyramids
Reach for something else when
- Narrowing funnels with metrics (use funnel-slide)
- Linear processes (use process-slide)
- Circular processes (use cycle-slide)
-
Cycle
cycle-slideA repeating cycle of stages Fields and detailFields
Key Type Required Limit Options title string Yes 120 — subheading string No 200 — bottomSubheading string No 200 — centerLabel string No 60 — items items Yes — Repeats, each item with: label, text stages items No — Repeats, each item with: label, text background enum No — lime, mist Reach for it when
- PDCA (Plan-Do-Check-Act) cycles
- Agile/Scrum sprint cycles
- Continuous improvement processes
- Feedback loops
- Any process that repeats indefinitely
Reach for something else when
- Linear one-time processes (use process-slide)
- Timelines with dates (use timeline-slide)
- Narrowing funnels (use funnel-slide)
-
Gallery
gallery-slideA grid of images Fields and detailFields
Key Type Required Limit Options title string No 120 — subheading string No 200 — bottomSubheading string No 200 — layout enum No — grid, masonry, featured images items Yes — Repeats, each item with: src, focusX, focusY, caption, alt background enum No — lime, mist Reach for it when
- Several screenshots or UI captures in one slide (use layout: masonry)
- A photo gallery or set of related images
- 2-6 images shown together where the images tell the story
- Mixed aspect-ratio images that must not be cropped (masonry)
Reach for something else when
- A single hero image (use image-slide)
- One image beside a paragraph of text (use image-text-slide)
- More than 6 images, or images each needing a Title + Caption (use team-cards-slide)
- Partner/sponsor logos (use logo-wall-slide)
Fixed collection 3 types
Exactly n items; the count carries meaning.
The same item contract as a collection, with the count fixed because the count carries meaning: four quadrants is what makes a matrix a matrix.
Two of these do not keep to it yet: poll-slide and likert-slide carry option1..optionN as separate scalars rather than an array, because they never got the migration the other collections did. They are listed here rather than quietly rounded up.
-
Poll Audience
poll-slideA live audience poll Fields and detailFields
Key Type Required Limit Options question string Yes 200 — option1 string Yes 120 — option2 string Yes 120 — option3 string No 120 — option4 string No 120 — background enum No — lime, mist onClose enum No — stay, next, goto onCloseTarget string No 100 — Reach for it when
- Audience questions with discrete options
- "Which do you prefer?" style questions
- Quick pulse checks
Reach for something else when
- Open-ended questions (use feedback-slide)
- Scale ratings (use likert slides)
-
Likert (agree/disagree) Audience
likert-slideAn agree/disagree rating Fields and detailFields
Key Type Required Limit Options question string Yes 200 — option1 string Yes 120 — option2 string Yes 120 — option3 string No 120 — option4 string No 120 — option5 string No 120 — option6 string No 120 — option7 string No 120 — option8 string No 120 — option9 string No 120 — option10 string No 120 — background enum No — lime, mist onClose enum No — stay, next, goto onCloseTarget string No 100 — Reach for it when
- Agreement/disagreement questions
- Satisfaction ratings
- Any question with a labeled scale
Reach for something else when
- Multiple choice (use poll-slide)
- Numeric 1-10 rating (use likert-slider-slide)
-
Matrix
matrix-slideA 2×2 quadrant matrix Fields and detailFields
Key Type Required Limit Options title string No 120 — subheading string No 200 — bottomSubheading string No 200 — cells items Yes — Repeats, each item with: title, body, tone background enum No — lime, mist Reach for it when
- SWOT analysis
- Risk vs Impact matrices
- Urgent vs Important (Eisenhower)
- Any 2x2 framework or quadrant analysis
Reach for something else when
- Simple A vs B (use comparison-slide)
- More than 4 categories (use text-blocks or table)
Tabular 1 type
Rows and columns.
Rows of cells. The row is the item; the columns are positions inside it.
-
Table
table-slideA data table Fields and detailFields
Key Type Required Limit Options title string Yes 120 — caption string No 240 — headerRow enum No — on, off tableStyle enum No — plain, panel, soft cornerCell enum No — label, header animateByCell enum No — off, on rows items No — Repeats, each item with: c1, c2, c3, c4, c5, c6, c7, c8, c9, c10 colCount enum No — 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 background enum No — lime, mist Reach for it when
- Comparison tables
- Feature matrices
- Schedules or structured data
- Country/region benchmarks
- Side-by-side metrics
Reach for something else when
- Numeric data that would visualize better (use chart-slide)
- Large datasets (summarize or link externally)
- More than 10 columns (simplify or split)
Dataset 1 type
Data points plus an encoding.
Data points plus an encoding. The payload is an encoded blob rather than named fields, so this is the one shape a renderer cannot walk generically.
-
Chart
chart-slideA bar, line or pie chart Fields and detailFields
Key Type Required Limit Options title string Yes 120 — subheading string No 220 — bottomSubheading string No 200 — chartType enum Yes — bar, line, pie data csv Yes 20000 — pieLabelMode enum No — none, value, %, both showLegend enum No — yes, no showValues enum No — yes, no xLabel string No 80 — yLabel string No 80 — series1Label string No 80 — series2Label string No 80 — background enum No — lime, mist headerAlign enum No — left, center Layout variants
- Left
- Centred
Reach for it when
- Trends over time (line chart)
- Category comparisons (bar chart)
- Parts of a whole (pie chart)
- Any numeric data that benefits from visualization
Reach for something else when
- Non-numeric comparisons (use table-slide)
- Complex multi-dimensional data
- Data that needs exact values shown (use table-slide)
Chrome 2 types
No content fields at all.
No content fields at all. The slide is its own furniture, so there is nothing to read out of it.
-
Payoff
payoff-slideA closing payoff statement Fields and detailReach for it when
- Final slide of a presentation
- Brand reinforcement
Reach for something else when
- Content that needs explanation
- Anything mid-deck
- Slides that need contact details (use end-slide)
-
Follow-along invite Audience
follow-invite-slideA QR code to follow along Fields and detail
No types match those filters.
The fields every type carries
Nine fields are added to every slide type rather than declared on each one: two for what a screen reader announces, six for a per-slide background image and how it is treated, and one for the theme logo.
| Key | Type | Options |
|---|---|---|
| a11yTitle | string | — |
| a11ySummary | string | — |
| slideBgImage | image | — |
| slideBgFit | enum | cover, contain |
| slideBgFocusX | number | — |
| slideBgFocusY | number | — |
| slideBgOverlay | enum | auto, none, light, dark, gradient-top, gradient-bottom |
| slideBgText | enum | auto, light, dark |
| slideLogo | enum | none, top-right |
Retired types
These are no longer offered when you add a slide, but they still render, because decks that use them still exist and a deck that stops opening is a deck you have lost. They have no layout glyph on purpose: nothing should be inviting you to use one.
-
lead-capture-slideLead Capture Retired
Each type's schema is also served live, by any running instance:
https://sandbox.deckyard.eu/api/v1/schema/slide-types/<type>.json
Nothing on this page is typed by hand: the list, the counts, the field tables and the glyphs are generated from the core registry. The same registry as one flat, searchable table is in the documentation. Full reference