Skip to content

Slide types

Deckyard ships 34 built-in slide types: 34 offered when you add a slide, and 0 retired ones that still render, because a deck that stops opening is a deck you have lost.

This page is the exhaustive field list, generated from the same registry that builds the editor form, runs validation and generates the JSON Schemas. For the same types as a visual catalogue with layout diagrams, see the slide-type spec; for a guided tour of what each one is for, see Slide Types.

  • Key is the property name inside a slide’s content object.
  • Required means the importer will not blank it; an absent or empty value falls back to the type default.
  • Limit is the maximum length in characters, where the type declares one.
  • Options lists the accepted values of an enumerated field.
  • Every type also accepts the global fields below.

The line under each heading carries what the type declares about itself, none of which is part of its JSON Schema - the schema describes a slide’s content, and these are statements about the type:

  • Tier is how far our promise goes. Tier 1 is the normative core profile a conforming implementation renders; tier 2 we ship and publish, but it versions with the app.
  • Structure is the shape of the primary content, and it is the axis worth building a reader against: six values cover every type.
  • Runtime is what the presenting session has to do beyond serving the slide (static - nothing, timed - a presenter-driven clock, live - the audience answers and the session aggregates), with the kind of answer a live type collects in brackets.
  • Falls back to is the tier-1 contract to degrade to when you have not implemented the type. Every tier-2 type declares one, which is why a reader that knows only the nine still renders every deck without dropping content.

All four are readable from GET /api/slide-types on any instance, and the argument behind them is on the conformance page.

Each type’s JSON Schema is served at https://deckyard.eu/schema/v18/slide-types/<type>.schema.json — see JSON Schemas for how to fetch it.

The 9 accessibility, background and logo fields below are added to every slide type rather than declared on each one. They are listed here once instead of 34 times.

KeyLabelTypeRequiredLimitOptions
a11yTitleAccessibility titlestringNo140—
a11ySummaryAccessibility summarystringNo280—
slideBgImageBackground imageimageNo——
slideBgFitBackground fitenumNo—cover, contain
slideBgFocusXBackground focus XnumberNo——
slideBgFocusYBackground focus YnumberNo——
slideBgOverlayBackground overlayenumNo—auto, none, light, dark, gradient-top, gradient-bottom
slideBgTextText colourenumNo—auto, light, dark
slideLogoTheme logoenumNo—none, top-right

Identity eu.deckyard.slide.title · tier 1 · structure singleton · runtime static.

Big title and subtitle to open with.

KeyLabelTypeRequiredLimitOptions
titleTitlestringYes120—
subheadingSubtitlestringNo160—
metaMetastringNo160—
backgroundBackgroundenumNo—lime, mist
logoCornerLogo cornerenumNo—left, right
titleBlockAlignTitle block alignmentenumNo—left, center

Layout variants: block-left (Left), block-center (Centred).

Identity eu.deckyard.slide.chapter-title · tier 1 · structure singleton · runtime static.

Section divider between topics.

KeyLabelTypeRequiredLimitOptions
titleBlockAlignTitle block alignmentenumNo—left, center
titleTitlestringYes140—
subheadingSubheadingstringNo160—
layoutLayoutenumNo—top, center, bottom

Layout variants: block-left (Left), block-center (Centred).

Identity eu.deckyard.slide.content · tier 1 · structure singleton · runtime static.

A heading with body text.

KeyLabelTypeRequiredLimitOptions
titleTitlestringYes120—
subheadingSubheadingstringNo200—
layoutText columnsenumNo—two-column, one-column
densityText sizeenumNo—auto, compact
bodyBodymarkdownYes3000—
asideVariantAsideenumNo—none, note, tip, warning
asideTextAside textmarkdownNo300—
backgroundBackgroundenumNo—lime, mist
actionsAction buttonsitemsNo——

Each item in actions:

KeyLabelTypeRequiredLimitOptions
labelButton labelstringYes40—
urlURLurlYes500—
styleStyleenumNo—primary, secondary, outline

Layout variants: one-column (One column), two-column (Text in two columns), split-narrow (Image 1/3), split-half (Image 1/2), split-wide (Image 2/3), top (Row above), bottom (Row below), beside (Beside text), corner (Corner image).

Identity eu.deckyard.slide.list · tier 1 · structure collection · runtime static.

A bulleted or numbered list.

KeyLabelTypeRequiredLimitOptions
titleTitlestringYes120—
subheadingSubheadingstringNo160—
variantStyleenumNo—bullets, numbers
layoutLayoutenumNo—auto, one-column, two-column
densityText sizeenumNo—auto, comfortable, compact
asideVariantAsideenumNo—none, note, tip, warning
asideTextAside textmarkdownNo300—
backgroundBackgroundenumNo—lime, mist
itemsItemsitemsYes——
headerAlignHeader alignmentenumNo—left, center

Each item in items:

KeyLabelTypeRequiredLimitOptions
titleTitlestringYes80—
textText (single line)stringNo120—

Layout variants: block-left (Left), block-center (Centred).

Identity eu.deckyard.slide.quote · tier 1 · structure singleton · runtime static.

A pull quote with attribution.

KeyLabelTypeRequiredLimitOptions
quoteAlignQuote block alignmentenumNo—left, center
quotesQuotesitemsYes——

Each item in quotes:

KeyLabelTypeRequiredLimitOptions
quoteQuotestringYes400—
authorNameNamestringYes80—
authorTitleRole / titlestringNo120—
authorImage1Portrait photo 1 (optional)imageNo——
authorImage1AltPortrait 1 alt text (optional)stringNo180—
authorImage2Portrait photo 2 (optional)imageNo——
authorImage2AltPortrait 2 alt text (optional)stringNo180—

Layout variants: block-left (Left), block-center (Centred).

Identity eu.deckyard.slide.image-text · tier 1 · structure singleton · runtime static.

An image beside text.

KeyLabelTypeRequiredLimitOptions
titleTitlestringYes120—
bodyBodymarkdownYes3000—
imageImageimageNo——
imageRoleImage roleenumNo—content, decorative
altAlt textstringNo180—
captionCaptionstringNo160—
focusXFocus XnumberNo——
focusYFocus YnumberNo——
fitImage fitenumNo—cover, contain
imageSideImage positionenumNo—left, right
imageWidthImage widthenumNo—half, narrow, wide
layoutLayoutenumNo—split, corner
imageBackgroundImage backgroundenumNo—white, match
densityText sizeenumNo—auto, compact
asideVariantAsideenumNo—none, note, tip, warning
asideTextAside textmarkdownNo300—
backgroundBackgroundenumNo—lime, mist
actionsAction buttonsitemsNo——

Each item in actions:

KeyLabelTypeRequiredLimitOptions
labelButton labelstringYes40—
urlURLurlYes500—
styleStyleenumNo—primary, secondary, outline

Layout variants: text (Text only), split-narrow (Image 1/3), split-half (Image 1/2), split-wide (Image 2/3), corner (Corner image), beside (Beside text), top (Row above), bottom (Row below).

Identity eu.deckyard.slide.image-set · tier 2 · structure collection · runtime static · falls back to image-text-slide.

Two or three images with text.

KeyLabelTypeRequiredLimitOptions
titleTitlestringYes120—
bodyBodymarkdownYes3000—
imagesImagesitemsYes——
captionCaptionstringNo160—
imageRoleImage roleenumNo—content, decorative
layoutLayoutenumNo—beside, top, bottom
imageSideImage positionenumNo—left, right
imageWidthImage widthenumNo—half, narrow, wide
textColumnsText columnsenumNo—1, 2
imageBackgroundImage backgroundenumNo—white, match
densityText sizeenumNo—auto, compact
asideVariantAsideenumNo—none, note, tip, warning
asideTextAside textmarkdownNo300—
backgroundBackgroundenumNo—lime, mist
actionsAction buttonsitemsNo——

Each item in images:

KeyLabelTypeRequiredLimitOptions
srcImage URLimageNo——
altAlt textstringNo180—
fitImage fitenumNo—cover, contain
focusXFocus XnumberNo——
focusYFocus YnumberNo——

Each item in actions:

KeyLabelTypeRequiredLimitOptions
labelButton labelstringYes40—
urlURLurlYes500—
styleStyleenumNo—primary, secondary, outline

Layout variants: beside (Beside text), top (Row above), bottom (Row below), split-half (Image 1/2), text (Text only).

Identity eu.deckyard.slide.video · tier 2 · structure singleton · runtime static · falls back to content-slide.

An embedded video.

KeyLabelTypeRequiredLimitOptions
titleTitlestringNo100—
sourceVideo URL or Bunny ID (YouTube/Vimeo URL, Bunny embed URL, or Bunny video UUID)stringYes400—
transcriptTranscriptmarkdownNo20000—
backgroundBackgroundenumNo—lime, mist
autoplayAutoplayenumNo—off, on
watchUrlWatch link for the PDF exportstringNo400—
bunnyLibraryIdBunny library IDstringNo20—

Identity eu.deckyard.slide.team-cards · tier 2 · structure collection · runtime static · falls back to list-slide.

Image blocks in a grid.

KeyLabelTypeRequiredLimitOptions
titleTitlestringNo120—
subheadingSubheadingstringNo220—
bottomSubheadingBottom subheadingstringNo200—
subheading2Right group subheadingstringNo220—
membersMembersitemsNo——
backgroundBackgroundenumNo—lime, mist
textPositionText positionenumNo—below, split
imageShapeImage shapeenumNo—rounded, square, circle
imageAspectImage aspectenumNo—square, original
showPhotoFrameShow photo frameenumNo—off, on
columnSplitColumn splitenumNo—“, 1, 2, 3, 4, 5

Each item in members:

KeyLabelTypeRequiredLimitOptions
imagePhotoimageNo——
altPhoto alt textstringNo180—
imageFocusXFocus XnumberNo——
imageFocusYFocus YnumberNo——
nameTitlestringNo80—
bylineCaptionstringNo120—
bodyDescriptionmarkdownNo600—
linkedinLinkedIn URLurlNo300—

Identity eu.deckyard.slide.logo-wall · tier 2 · structure collection · runtime static · falls back to image-slide.

A wall of logos.

KeyLabelTypeRequiredLimitOptions
headerAlignHeader alignmentenumNo—left, center
titleTitlestringNo120—
subheadingSubheadingstringNo220—
backgroundBackgroundenumNo—lime, mist
logosLogositemsNo——

Each item in logos:

KeyLabelTypeRequiredLimitOptions
imageLogo imageimageNo——
nameNamestringNo80—
altAlt textstringNo180—
linkLink URLurlNo500—

Layout variants: block-left (Left), block-center (Centred).

Identity eu.deckyard.slide.image · tier 1 · structure singleton · runtime static.

A single full-bleed image.

KeyLabelTypeRequiredLimitOptions
titleTitlestringNo80—
subheadingSubheadingstringNo140—
bottomSubheadingBottom subheadingstringNo200—
imageImageimageNo——
imageRoleImage roleenumNo—content, decorative
altAlt textstringNo180—
captionCaptionstringNo160—
focusXFocus XnumberNo——
focusYFocus YnumberNo——
fitImage fitenumNo—cover, contain
bleedEdge-to-edgebooleanNo——
layoutLayoutenumNo—full, bleed, centered
backgroundBackgroundenumNo—lime, mist
zoomStepsZoom stepsenumNo—“, corners, horizontal, vertical, quadrants, custom
zoomLevelZoom levelnumberNo——
zoomPositionsCustom zoom positionsstringNo500—

Identity eu.deckyard.slide.embed · tier 2 · structure singleton · runtime static · falls back to content-slide.

Embed an external page or iframe.

KeyLabelTypeRequiredLimitOptions
titleTitlestringNo120—
embedUrlEmbed URL (HTTPS only)stringYes500—
aspectRatioAspect ratioenumNo—16:9, 4:3, 1:1, auto
sandboxSandbox modeenumNo—restricted, permissive
backgroundBackgroundenumNo—lime, mist

Identity eu.deckyard.slide.gallery · tier 2 · structure collection · runtime static · falls back to image-slide.

A grid of images.

KeyLabelTypeRequiredLimitOptions
titleTitlestringNo120—
subheadingSubheadingstringNo200—
bottomSubheadingBottom subheadingstringNo200—
layoutLayoutenumNo—grid, masonry, featured
imagesImagesitemsYes——
backgroundBackgroundenumNo—lime, mist

Each item in images:

KeyLabelTypeRequiredLimitOptions
srcImage URLimageYes——
focusXFocus XnumberNo——
focusYFocus YnumberNo——
captionCaptionstringNo100—
altAlt textstringNo200—

Identity eu.deckyard.slide.icon-card-grid · tier 2 · structure collection · runtime static · falls back to list-slide.

Cards with an icon and label.

KeyLabelTypeRequiredLimitOptions
titleTitlestringYes120—
subheadingSubheadingstringNo200—
layoutLayoutenumNo—cards, tiles
bottomSubheadingBottom subheadingstringNo200—
itemsCardsitemsNo——

Each item in items:

KeyLabelTypeRequiredLimitOptions
iconIconstringNo40—
titleTitlestringNo80—
bodyBodymarkdownNo700—
linkLink URLurlNo500—

Identity eu.deckyard.slide.text-blocks · tier 2 · structure collection · runtime static · falls back to list-slide.

Several labelled text blocks.

KeyLabelTypeRequiredLimitOptions
titleTitlestringYes120—
subheadingSubheadingstringNo200—
rowsRowsitemsNo——
bottomSubheadingBottom subheadingstringNo200—
headerAlignHeader alignmentenumNo—center, left

Each item in rows:

KeyLabelTypeRequiredLimitOptions
titleRow headingstringNo120—
colorColorenumNo—yellow, black
blocksBlocksitemsNo——
arrowArrow after rowenumNo—none, down, up

Each item in blocks:

KeyLabelTypeRequiredLimitOptions
titleTitlestringNo80—
bodyBodymarkdownNo500—

Layout variants: block-center (Centred), block-left (Left).

Identity eu.deckyard.slide.process · tier 2 · structure collection · runtime static · falls back to list-slide.

Sequential steps with arrows.

KeyLabelTypeRequiredLimitOptions
titleTitlestringYes120—
subheadingSubheadingstringNo200—
bottomSubheadingBottom subheadingstringNo200—
directionDirectionenumNo—horizontal, vertical
itemsStepsitemsYes——
backgroundBackgroundenumNo—lime, mist

Each item in items:

KeyLabelTypeRequiredLimitOptions
titleStep titlestringYes60—
textStep descriptionstringNo200—

Identity eu.deckyard.slide.timeline · tier 2 · structure collection · runtime static · falls back to list-slide.

Events along a timeline.

KeyLabelTypeRequiredLimitOptions
titleTitlestringNo120—
subheadingSubheadingstringNo200—
bottomSubheadingBottom subheadingstringNo200—
itemsTimeline itemsitemsYes——
backgroundBackgroundenumNo—lime, mist

Each item in items:

KeyLabelTypeRequiredLimitOptions
dateDate / labelstringYes30—
titleTitlestringYes60—
textDescriptionstringNo200—

Identity eu.deckyard.slide.table · tier 1 · structure tabular · runtime static.

A data table.

KeyLabelTypeRequiredLimitOptions
titleTitlestringYes120—
captionCaptionstringNo240—
headerRowHeader rowenumNo—on, off
tableStyleTable styleenumNo—plain, panel, soft
cornerCellTop-left cellenumNo—label, header
animateByCellAnimate by cellenumNo—off, on
rowsRowsitemsNo——
colCountColumnsenumNo—1, 2, 3, 4, 5, 6, 7, 8, 9, 10
backgroundBackgroundenumNo—lime, mist

Each item in rows:

KeyLabelTypeRequiredLimitOptions
c1C1stringNo400—
c2C2stringNo400—
c3C3stringNo400—
c4C4stringNo400—
c5C5stringNo400—
c6C6stringNo400—
c7C7stringNo400—
c8C8stringNo400—
c9C9stringNo400—
c10C10stringNo400—

Identity eu.deckyard.slide.kpi-metrics · tier 2 · structure collection · runtime static · falls back to list-slide.

Big numbers with deltas.

KeyLabelTypeRequiredLimitOptions
titleTitlestringNo120—
subheadingSubheadingstringNo200—
bottomSubheadingBottom subheadingstringNo200—
backgroundBackgroundenumNo—lime, mist
accentAccentenumNo—none, highlight-best, highlight-risk
countUpCount-up animationenumNo—off, on
metricsMetricsitemsNo——
headerAlignHeader alignmentenumNo—left, center

Each item in metrics:

KeyLabelTypeRequiredLimitOptions
valueValuestringNo30—
unitUnitstringNo12—
labelLabelstringNo60—
noteNotestringNo100—

Layout variants: block-left (Left), block-center (Centred).

Identity eu.deckyard.slide.chart · tier 2 · structure dataset · runtime static · falls back to table-slide.

A bar, line or pie chart.

KeyLabelTypeRequiredLimitOptions
titleTitlestringYes120—
subheadingSubheadingstringNo220—
bottomSubheadingBottom subheadingstringNo200—
chartTypeChart typeenumYes—bar, line, pie
dataData (CSV/TSV)csvYes20000—
pieLabelModePie labelsenumNo—none, value, %, both
showLegendLegendenumNo—yes, no
showValuesShow valuesenumNo—yes, no
xLabelX labelstringNo80—
yLabelY labelstringNo80—
series1LabelSeries 1 label (legend)stringNo80—
series2LabelSeries 2 label (legend)stringNo80—
backgroundBackgroundenumNo—lime, mist
headerAlignHeader alignmentenumNo—left, center

Layout variants: block-left (Left), block-center (Centred).

Identity eu.deckyard.slide.comparison · tier 2 · structure singleton · runtime static · falls back to table-slide.

Two options side by side.

KeyLabelTypeRequiredLimitOptions
titleTitlestringNo120—
subheadingSubheadingstringNo200—
bottomSubheadingBottom subheadingstringNo200—
leftTitleLeft titlestringYes100—
leftBodyLeft contentmarkdownYes2000—
rightTitleRight titlestringYes100—
rightBodyRight contentmarkdownYes2000—
verdictVerdictstringNo100—
variantTreatmentenumNo—versus, before-after, pros-cons, tradeoff
backgroundBackgroundenumNo—lime, mist

Identity eu.deckyard.slide.matrix · tier 2 · structure fixed-collection · runtime static · falls back to table-slide.

A 2×2 quadrant matrix.

KeyLabelTypeRequiredLimitOptions
titleTitlestringNo120—
subheadingSubheadingstringNo200—
bottomSubheadingBottom subheadingstringNo200—
cellsCellsitemsYes——
xAxisHorizontal axisstringNo60—
yAxisVertical axisstringNo60—
backgroundBackgroundenumNo—lime, mist

Each item in cells:

KeyLabelTypeRequiredLimitOptions
titleCell titlestringYes40—
bodyCell contentmarkdownYes1000—
toneToneenumNo—default, positive, negative, neutral

Identity eu.deckyard.slide.funnel · tier 2 · structure collection · runtime static · falls back to list-slide.

Stages narrowing to a goal.

KeyLabelTypeRequiredLimitOptions
titleTitlestringYes120—
subheadingSubheadingstringNo200—
bottomSubheadingBottom subheadingstringNo200—
itemsStagesitemsYes——
backgroundBackgroundenumNo—lime, mist

Each item in items:

KeyLabelTypeRequiredLimitOptions
labelStage labelstringYes60—
valueValue/metricstringNo30—
textDescriptionstringNo120—

Identity eu.deckyard.slide.pyramid · tier 2 · structure collection · runtime static · falls back to list-slide.

A layered hierarchy pyramid.

KeyLabelTypeRequiredLimitOptions
titleTitlestringYes120—
subheadingSubheadingstringNo200—
bottomSubheadingBottom subheadingstringNo200—
levelsLevelsitemsYes——
backgroundBackgroundenumNo—lime, mist

Each item in levels:

KeyLabelTypeRequiredLimitOptions
labelLevel labelstringYes60—
textDescriptionstringNo120—

Identity eu.deckyard.slide.cycle · tier 2 · structure collection · runtime static · falls back to list-slide.

A repeating cycle of stages.

KeyLabelTypeRequiredLimitOptions
titleTitlestringYes120—
subheadingSubheadingstringNo200—
bottomSubheadingBottom subheadingstringNo200—
centerLabelCenter labelstringNo60—
itemsStagesitemsYes——
backgroundBackgroundenumNo—lime, mist

Each item in items:

KeyLabelTypeRequiredLimitOptions
labelStage labelstringYes40—
textDescriptionstringNo80—

Identity eu.deckyard.slide.countdown · tier 2 · structure singleton · runtime timed · falls back to content-slide · the audience takes part.

A countdown timer.

KeyLabelTypeRequiredLimitOptions
titleTitlestringNo120—
durationMinutesMinutesnumberNo——
durationSecondsSecondsnumberNo——
autoStartAuto-startenumNo—off, on
flashOnZeroFlash red at zeroenumNo—on, off
soundOnZeroBeep at zeroenumNo—off, on
zeroTextText at zerostringNo60—
backgroundBackgroundenumNo—lime, mist, dark, accent, brand-1, brand-2, custom

Identity eu.deckyard.slide.poll · tier 2 · structure collection · runtime live (poll) · falls back to list-slide · the audience takes part.

A live audience poll.

KeyLabelTypeRequiredLimitOptions
questionQuestionstringYes200—
optionsAnswersitemsYes——
backgroundBackgroundenumNo—lime, mist
onCloseWhen closedenumNo—stay, next, goto
onCloseTargetTarget slide IDstringNo100—

Each item in options:

KeyLabelTypeRequiredLimitOptions
textAnswerstringYes120—

Identity eu.deckyard.slide.likert · tier 2 · structure collection · runtime live (likert) · falls back to list-slide · the audience takes part.

An agree/disagree rating.

KeyLabelTypeRequiredLimitOptions
questionQuestionstringYes200—
optionsScale labelsitemsYes——
backgroundBackgroundenumNo—lime, mist
onCloseWhen closedenumNo—stay, next, goto
onCloseTargetTarget slide IDstringNo100—

Each item in options:

KeyLabelTypeRequiredLimitOptions
textLabelstringYes120—

Likert slider (1–10) — likert-slider-slide

Section titled “Likert slider (1–10) — likert-slider-slide”

Identity eu.deckyard.slide.likert-slider · tier 2 · structure singleton · runtime live (likert) · falls back to content-slide · the audience takes part.

A 1–10 slider rating.

KeyLabelTypeRequiredLimitOptions
questionStatementstringYes200—
minLabelLeft label (1)stringNo120—
maxLabelRight label (10)stringNo120—
backgroundBackgroundenumNo—lime, mist

Identity eu.deckyard.slide.feedback · tier 2 · structure singleton · runtime live (feedback) · falls back to content-slide · the audience takes part.

Collect open text feedback.

KeyLabelTypeRequiredLimitOptions
questionQuestionstringYes200—
placeholderPlaceholderstringNo120—
backgroundBackgroundenumNo—lime, mist

Follow-along invite — follow-invite-slide

Section titled “Follow-along invite — follow-invite-slide”

Identity eu.deckyard.slide.follow-invite · tier 2 · structure chrome · runtime static · falls back to content-slide · the audience takes part.

A QR code to follow along.

No type-specific fields; it carries the global fields only.

Identity eu.deckyard.slide.callout · tier 2 · structure singleton · runtime static · falls back to content-slide.

One insight, warning or definition on its own slide.

KeyLabelTypeRequiredLimitOptions
variantKindenumYes—insight, warning, definition, note, tip
labelLabel / termstringNo80—
bodyBodymarkdownYes600—
sourceSourcestringNo160—
backgroundBackgroundenumNo—lime, mist

Identity eu.deckyard.slide.payoff · tier 2 · structure chrome · runtime static · falls back to end-slide.

A closing payoff statement.

No type-specific fields; it carries the global fields only.

Identity eu.deckyard.slide.end · tier 1 · structure singleton · runtime static.

A closing slide with contact details.

KeyLabelTypeRequiredLimitOptions
titleTitlestringYes120—
bodyBodymarkdownNo500—
contactNameContact namestringNo80—
contactEmailEmailemailNo120—
contactPhonePhonestringNo40—
contactUrlWebsiteurlNo200—
social1LabelSocial link 1 labelstringNo40—
social1UrlSocial link 1 URLurlNo200—
social2LabelSocial link 2 labelstringNo40—
social2UrlSocial link 2 URLurlNo200—
backgroundBackgroundenumNo—lime, mist