Reference

Component library

Every <deck-*> element · attributes, slots, tokens, live preview. The default bundle has 36 core components; 23 optional elements are documented below.

Mental model · which one do I need?

The core elements you will meet first fit in five practical buckets; sub-elements and helpers follow in the catalogue. Start with the layout, then add only the building blocks the slide needs.

New to Rikiki? Read the 5-component cheatsheetfirst · don't try to learn the whole catalog before your first talk.

This catalogue details 8 layouts and 27 building blocks from the default bundle, then 15 optional modules and the 8 child elements those modules define. Layouts give a slide its overall structure; the building blocks fill the slots. Every group follows the same design-token contract · override--deck-<tag>-* on the host to retheme a single instance, or globally on :root.

Layouts

One per typical slide kind. Pick the layout that matches the slide's job.

<deck-cover>

Opening slide · XL title on dark, optional brand mark, meta block.

Attributes

AttributeTypeNotes
brandstringText label · split on " · " (first segment = brand name)
brand-srcURLOptional logo path
speakerstring
companystring
company-srcURLOptional client logo · shown before the company name
durationstring
audiencestring
runtimestring
speaker-labelstringOverride the meta label · the default follows the document language
company-labelstring
duration-labelstring
audience-labelstring
runtime-labelstring

Slots

SlotWhat goes in
(default)Title (h1) and subtitle (.sub)

Example

<deck-cover brand="rikiki · docs" speaker="Jane">
  <h1>Hello, <span class="accent">world</span>.</h1>
  <p class="sub">Sub-title or opening question.</p>
</deck-cover>
Live preview · slide canvas

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-cover-bgBackground color or paint
  • --deck-cover-textMain text color
  • --deck-cover-softSecondary text or surface color
  • --deck-cover-mutedMuted text color
  • --deck-cover-faintLowest emphasis text color
  • --deck-cover-borderBorder color or complete border value
Show an override example
deck-cover {
  --deck-cover-bg: #f07020;
  --deck-cover-text: #f07020;
}

<deck-section>

Chapter separator · number + centered title on dark. Marks a 2D-nav boundary.

Attributes

AttributeTypeNotes
numstringSmall label above the title

Slots

SlotWhat goes in
(default)Title (h1)

Example

<deck-section num="02">
  <h1>Anatomy</h1>
</deck-section>
Live preview · slide canvas

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-section-bgBackground color or paint
  • --deck-section-num-colorColor of the named element
  • --deck-section-title-colorColor of the named element
  • --deck-section-em-colorColor of the named element
  • --deck-section-rule-colorColor of the named element
Show an override example
deck-section {
  --deck-section-bg: #f07020;
  --deck-section-num-color: #f07020;
}

<deck-feature>

One focal block · code, table, mermaid, big stat.

Attributes

AttributeTypeNotes
eyebrowstringSmall pill above the title
spreadbetween | around | evenly | center | end | startHow the leftover vertical space of the body is distributed · default start
fillbooleanLet the body blocks take the leftover height instead · pair with a <deck-fit> child

Slots

SlotWhat goes in
titleh1
leadone-line intro
(default)The focal block · usually deck-code, deck-mermaid, or a custom widget

Example

<deck-feature eyebrow="Module">
  <h1 slot="title">Side effects</h1>
  <p slot="lead" class="lead">A module can act on import.</p>
  <deck-code lang="ts" hero>
    import './polyfill';
  </deck-code>
</deck-feature>
Live preview · slide canvas

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-eyebrow-bgBackground color or paint
  • --deck-eyebrow-colorColor of the named element
  • --deck-eyebrow-radiusCorner radius
  • --deck-eyebrow-padding-xHorizontal inner spacing
  • --deck-eyebrow-padding-yVertical inner spacing
Show an override example
deck-feature {
  --deck-eyebrow-bg: #f07020;
  --deck-eyebrow-color: #f07020;
}

<deck-split>

Two or three columns of cards.

Attributes

AttributeTypeNotes
cols"1-1" | "1-2" | "2-1" | "3"Default 1-1
gap1..6maps to var(--rik-space-N)
col-gap1..6gap between children inside a column
eyebrowstringSmall pill above the title
spreadbetween | around | evenly | center | end | startHow the leftover vertical space of the body is distributed · default start
fillbooleanLet the body blocks take the leftover height instead
pivotstringSymbol or word drawn between the two columns · turns a neutral split into a directed comparison. Two columns only
winnerleft | rightWhich side carries the accent rule · absent for neither

Slots

SlotWhat goes in
title / leadheader above the columns
left / right2-col layout
a / b / c3-col layout

Example

<deck-split cols="1-1">
  <h1 slot="title">Two takes</h1>
  <deck-card slot="left" color="red">Problem</deck-card>
  <deck-card slot="right" color="green">Fix</deck-card>
</deck-split>
Live preview · slide canvas

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-split-gapSpacing between items
  • --deck-split-col-gapSpacing between columns
  • --deck-eyebrow-bgBackground color or paint
  • --deck-eyebrow-colorColor of the named element
Show an override example
deck-split {
  --deck-split-gap: 1.5rem;
  --deck-split-col-gap: 1.5rem;
}

<deck-feature-cards>

Hero on top, two detail cards underneath.

Attributes

AttributeTypeNotes
eyebrowstring

Slots

SlotWhat goes in
title / leadheader
(default)the hero block · usually deck-code or deck-mermaid
left / rightthe two detail cards

Example

<deck-feature-cards eyebrow="Deep dive">
  <h1 slot="title">One thing at a time</h1>
  <deck-code lang="ts" hero>function run() { return 42; }</deck-code>
  <deck-card slot="left">What changes</deck-card>
  <deck-card slot="right">What stays</deck-card>
</deck-feature-cards>
Live preview · slide canvas

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-feature-cards-gapSpacing between items
  • --deck-feature-cards-col-gapSpacing between columns
  • --deck-feature-cards-hero-flexFlex sizing of the named region
  • --deck-feature-cards-detail-flexFlex sizing of the named region
  • --deck-eyebrow-bgBackground color or paint
  • --deck-eyebrow-colorColor of the named element
Show an override example
deck-feature-cards {
  --deck-feature-cards-gap: 1.5rem;
  --deck-feature-cards-col-gap: 1.5rem;
}

<deck-takeaway>

Centered punchline on dark · the take-home line.

Attributes

AttributeTypeNotes
kickerstringSmall caption above the punch
spreadbetween | around | evenly | center | end | startHow the leftover vertical space of the body is distributed · default start
fillbooleanLet the body blocks take the leftover height instead

Slots

SlotWhat goes in
(default)Use <deck-punch size="display"> for the big text

Example

<deck-takeaway kicker="The whole point">
  <deck-punch size="display">Source = output.</deck-punch>
  <p class="caption on-dark">A deck is a folder.</p>
</deck-takeaway>
Live preview · slide canvas

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-takeaway-bgBackground color or paint
  • --deck-takeaway-display-colorColor of the named element
  • --deck-takeaway-caption-colorColor of the named element
  • --deck-takeaway-gapSpacing between items
Show an override example
deck-takeaway {
  --deck-takeaway-bg: #f07020;
  --deck-takeaway-display-color: #f07020;
}

<deck-photo>

Full-bleed image slide · slotted content sits on a dimmable overlay. Cover-style hero or mood section break.

Attributes

AttributeTypeNotes
srcURLImage URL · required
positionCSS object-positionDefault "center"
darken0..1Overlay alpha · default 0.35
aligntop | center | bottomVertical alignment of slotted content
text-alignleft | center | rightText alignment inside the overlay · default left

Slots

SlotWhat goes in
(default)Title (h1), subtitle (.sub), or any HTML to overlay on the image

Example

<deck-photo src="/component-photo.svg" darken="0.4" align="center">
  <h1>Mood opener</h1>
  <p class="sub">One line caption.</p>
</deck-photo>
Live preview · slide canvas

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-photo-overlay-colorColor of the named element
  • --deck-photo-text-colorColor of the named element
  • --deck-photo-text-mutedMuted text color
  • --deck-photo-content-max-widthWidth of the named element
  • --deck-photo-padding-xHorizontal inner spacing
  • --deck-photo-padding-yVertical inner spacing
Show an override example
deck-photo {
  --deck-photo-overlay-color: #f07020;
  --deck-photo-text-color: #f07020;
}

<deck-bento>

Bento grid slide · cells share a multi-row, multi-column canvas.

Attributes

AttributeTypeNotes
eyebrowstring
cols1..12 | templatedefault 2
rows1..12 | templatedefault 1 full-height row
gap1..6 | CSS lengthdefault 3
alignstart | center | end | stretchalign-items on every cell
justifystart | center | end | stretchjustify-items on every cell

Slots

SlotWhat goes in
titleSlide title (<h1>)
(default)deck-point children for words, deck-cell for anything measured

Example

<deck-bento eyebrow="Layout" cols="3" rows="2">
  <h1 slot="title">Cells share the space</h1>
  <deck-cell col="1 / 3" row="1"><deck-punch fit>Measured</deck-punch></deck-cell>
  <deck-cell col="3 / 4" row="1 / 3" tone="info"><h3>Tall</h3><p>Two rows.</p></deck-cell>
  <deck-point col="1 / 2" row="2 / 3" tone="ok"><h3>A</h3><p>Placed explicitly.</p></deck-point>
  <deck-point col="2 / 3" row="2 / 3" tone="warn"><h3>B</h3><p>No grid ambiguity.</p></deck-point>
</deck-bento>
Live preview · slide canvas

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-bento-gapSpacing between items
Show an override example
deck-bento {
  --deck-bento-gap: 1.5rem;
}

Building blocks

The building blocks you slot inside layouts, grouped by what they are for: first the ones that carry text, then the ones that carry data, then the ones that shape the slide, then the ones that embed code and diagrams.

<deck-md>

Markdown body · GFM, tables, lists, code, **bold**, *italic*.

Example

<deck-md>
  **Markdown** body with `inline code`, lists, and links.
</deck-md>
Live preview

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-md-pre-bgBackground color or paint
  • --deck-md-pre-borderBorder color or complete border value
  • --deck-md-pre-textMain text color
Show an override example
deck-md {
  --deck-md-pre-bg: #f07020;
  --deck-md-pre-border: 1px solid #f07020;
}

<deck-punch>

Big punchline text · sized via attribute, color via tone.

Attributes

AttributeTypeNotes
sizelead | big | mega | stat | display
tonewarn | danger | ok | info | muted | accent
weight700 | 800 | 900
alignleft | center | right
fitbooleanShrink to fit the box · overrides size and the fluid cqw scaling
fit-minremFit floor · default 1
fit-maxremFit ceiling · default 12

Example

<deck-punch size="display">Source = output.</deck-punch>
Live preview

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-punch-colorColor of the named element
  • --deck-punch-sizeSize of the named element
Show an override example
deck-punch {
  --deck-punch-color: #f07020;
  --deck-punch-size: 2rem;
}

<deck-fit>

Shrink slotted text to fit its box by font-size · not for images.

Attributes

AttributeTypeNotes
minremdefault 1
maxremdefault 12

Example

<deck-fit max="6">
  A line that shrinks until it fits its cell.
</deck-fit>
Live preview

<deck-kicker>

Caption-style label above a section · uppercase, mono.

Attributes

AttributeTypeNotes
on-darkbooleanSwitch to the inverse-surface palette · use on dark backgrounds

Example

<deck-kicker>Before</deck-kicker>
Live preview

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-kicker-colorColor of the named element
  • --deck-kicker-on-dark-colorColor of the named element
  • --deck-kicker-font-sizeFont size
  • --deck-kicker-trackingLetter spacing
  • --deck-kicker-marginVisual value used by the named part
Show an override example
deck-kicker {
  --deck-kicker-color: #f07020;
  --deck-kicker-on-dark-color: #f07020;
}

<deck-badge>

Status pill · bad / ok / info / warn / neutral.

Attributes

AttributeTypeNotes
typebad | ok | info | warn | neutral

Example

<deck-badge type="ok">production-ready</deck-badge>
Live preview

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-badge-bgBackground color or paint
  • --deck-badge-fgForeground color
  • --deck-badge-borderBorder color or complete border value
  • --deck-badge-radiusCorner radius
  • --deck-badge-padding-xHorizontal inner spacing
  • --deck-badge-padding-yVertical inner spacing
Show an override example
deck-badge {
  --deck-badge-bg: #f07020;
  --deck-badge-fg: #f07020;
}

<deck-kbd>

One keyboard key chip · inline anywhere in body text, and the piece <deck-shortcut> draws its keys from.

Attributes

AttributeTypeNotes
toneaccent | okPaint the chip when one key in a run deserves the emphasis

Slots

SlotWhat goes in
(default)The key name · Esc, ⌘, PgDn

Example

<p>Press <deck-kbd>P</deck-kbd> to open the presenter window.</p>
Live preview

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-kbd-bgBackground color or paint
  • --deck-kbd-colorColor of the named element
  • --deck-kbd-borderBorder color or complete border value
  • --deck-kbd-radiusCorner radius
  • --deck-kbd-padding-xHorizontal inner spacing
  • --deck-kbd-padding-yVertical inner spacing
  • --deck-kbd-accent-bgBackground color or paint
  • --deck-kbd-ok-bgBackground color or paint
Show an override example
deck-kbd {
  --deck-kbd-bg: #f07020;
  --deck-kbd-color: #f07020;
}

<deck-callout>

Boxed note with icon · info / warn / danger / ok.

Attributes

AttributeTypeNotes
typeinfo | warn | danger | ok
on-darkbooleanReadable surface and inverse text inside a dark layout

Example

<deck-callout type="warn">
  <strong>Heads up ·</strong> this changes the public API.
</deck-callout>
Live preview

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-callout-bgBackground color or paint
  • --deck-callout-borderBorder color or complete border value
  • --deck-callout-strokeVisual value used by the named part
  • --deck-callout-radiusCorner radius
  • --deck-callout-padding-xHorizontal inner spacing
  • --deck-callout-padding-yVertical inner spacing
  • --deck-callout-colorColor of the named element
  • --deck-callout-strong-colorColor of the named element
  • --deck-callout-code-bgBackground color or paint
Show an override example
deck-callout {
  --deck-callout-bg: #f07020;
  --deck-callout-border: 1px solid #f07020;
}

<deck-notes>

Speaker notes for a slide · hidden by default, surfaced in the presenter window (press P). Free-form text content.

Slots

SlotWhat goes in
(default)Plain text or markup · displayed as-is in the presenter window

Example

<deck-feature>
  <h1 slot="title">My slide</h1>
  <deck-notes>
    Talking points:
    - Mention the migration story
    - Pause for laughter on the Java joke
  </deck-notes>
</deck-feature>
Live preview · slide canvas

<deck-stat>

Big-number visual · for promises, metrics, milestones.

Attributes

AttributeTypeNotes
numstringHuge display-font number
toneyellow|orange|green|red|purple|lime|cyan
compactbooleanSmaller scale, for a row of stats rather than one hero figure

Slots

SlotWhat goes in
claimMid-size headline below the number
(default)One line of body text

Example

<deck-stat num="01" tone="orange">
  <h3 slot="claim">Serve a folder</h3>
  No build, no toolchain.
</deck-stat>
Live preview

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-stat-colorColor of the named element
  • --deck-stat-num-sizeSize of the named element
  • --deck-stat-num-weightFont weight
  • --deck-stat-claim-colorColor of the named element
  • --deck-stat-body-colorColor of the named element
  • --deck-stat-border-widthBorder thickness
  • --deck-stat-padding-xHorizontal inner spacing
  • --deck-stat-padding-yVertical inner spacing
  • --deck-stat-gapSpacing between items
Show an override example
deck-stat {
  --deck-stat-color: #f07020;
  --deck-stat-num-size: 2rem;
}

<deck-metric>

One-line metric · label + value · severity colored. Wrap several in <deck-metric-list> for the rule-divided list look.

Attributes

AttributeTypeNotes
valuestring
severitybad | warn | ok | info
monoboolean

Example

<deck-metric-list>
  <deck-metric value="5"  severity="bad">Files parsed</deck-metric>
  <deck-metric value="1"  severity="ok">Used</deck-metric>
</deck-metric-list>
Live preview

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-metric-bgBackground color or paint
  • --deck-metric-borderBorder color or complete border value
  • --deck-metric-textMain text color
  • --deck-metric-radiusCorner radius
  • --deck-metric-padding-xHorizontal inner spacing
  • --deck-metric-padding-yVertical inner spacing
  • --deck-metric-shadowBox shadow
  • --deck-metric-label-colorColor of the named element
  • --deck-metric-value-{bad,warn,ok,info}Value color for this semantic state
Show an override example
deck-metric {
  --deck-metric-bg: #f07020;
  --deck-metric-border: 1px solid #f07020;
}

<deck-metric-list>

Container · rule dividers between stacked <deck-metric> rows. No attributes · purely a layout grouping.

Example

<deck-metric-list>
  <deck-metric value="5"  severity="bad">Files parsed</deck-metric>
  <deck-metric value="1"  severity="ok">Used</deck-metric>
</deck-metric-list>
Live preview

<deck-csv>

Inline CSV rendered as a styled table · cells are trimmed.

Attributes

AttributeTypeNotes
delimiterstringdefault ","
no-headerbooleanfirst row is data
fitbooleanshrink the table to fit its box
fit-minremdefault 0.6
fit-maxremdefault 2
highlight-rowsstring1-based body rows to emphasise · "2" or "2 5"
highlight-colsstring1-based columns to emphasise · same grammar
revealbooleanshow one body row per step instead of the whole table

Example

<deck-csv delimiter=";" highlight-rows="2" fit>
  Region; Users; Plan
  EMEA; 12 040; Pro
  APAC; 9 310; Pro
</deck-csv>
Live preview

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-csv-borderBorder color or complete border value
  • --deck-csv-header-bgBackground color or paint
  • --deck-csv-padding-xHorizontal inner spacing
  • --deck-csv-padding-yVertical inner spacing
Show an override example
deck-csv {
  --deck-csv-border: 1px solid #f07020;
  --deck-csv-header-bg: #f07020;
}

<deck-tier-list>

Tier ladder · stacks <deck-tier> rows for JIT levels, severity ladders, ranking. No attributes · the rows carry the data.

Example

<deck-tier-list>
  <deck-tier name="LLInt" speed="×1">Bytecode</deck-tier>
  <deck-tier name="FTL"   speed="×100" hot>LLVM</deck-tier>
</deck-tier-list>
Live preview

<deck-tier>

One tier of a <deck-tier-list> · name on the left, speed on the right, description in the default slot.

Attributes

AttributeTypeNotes
namestringLeft-hand label, in the mono face
speedstringRight-side figure · free text, not only a number
severitymuted | warn | okColors the speed figure
hotbooleanMarks the top tier · tints the row and the figure with the accent

Slots

SlotWhat goes in
(default)Description line under the name

Example

<deck-tier-list>
  <deck-tier name="LLInt" speed="×1"   severity="muted">Bytecode interpreter</deck-tier>
  <deck-tier name="DFG"   speed="×8"   severity="ok">Optimizing JIT</deck-tier>
  <deck-tier name="FTL"   speed="×100" hot>Top-tier JIT</deck-tier>
</deck-tier-list>
Live preview

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-tier-bgBackground color or paint
  • --deck-tier-borderBorder color or complete border value
  • --deck-tier-radiusCorner radius
  • --deck-tier-padding-xHorizontal inner spacing
  • --deck-tier-padding-yVertical inner spacing
  • --deck-tier-shadowBox shadow
  • --deck-tier-name-colorColor of the named element
  • --deck-tier-desc-colorColor of the named element
  • --deck-tier-speed-{muted,warn,ok}Speed indicator color for this state
  • --deck-tier-hot-bgBackground color or paint
  • --deck-tier-hot-borderBorder color or complete border value
  • --deck-tier-hot-colorColor of the named element
Show an override example
deck-tier {
  --deck-tier-bg: #f07020;
  --deck-tier-border: 1px solid #f07020;
}

<deck-tier-arrow>

Separator note between two tiers of a deck-tier-list.

Example

<deck-tier-list>
  <deck-tier name="S" speed="×1">Ships today</deck-tier>
  <deck-tier-arrow>after ~6 runs</deck-tier-arrow>
  <deck-tier name="A" speed="×10">Ships next</deck-tier>
</deck-tier-list>
Live preview

<deck-step-list>

Numbered steps · stacks <deck-step> rows, or chains them across the width.

Attributes

AttributeTypeNotes
directioncolumn | rowdefault column · row lays the steps as a chain across the width
no-connectorsbooleanDrop the connector drawn between steps in row direction

Slots

SlotWhat goes in
(default)<deck-step> children

Example

<deck-step-list>
  <deck-step n="1" note="opens the deck">Cover</deck-step>
  <deck-step n="2" note="chapter break">Section</deck-step>
</deck-step-list>
Live preview

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-step-list-gapSpacing between items
  • --deck-step-list-connectorVisual value used by the named part
  • --deck-step-list-arrowVisual value used by the named part
Show an override example
deck-step-list {
  --deck-step-list-gap: 1.5rem;
  --deck-step-list-connector: #f07020;
}

<deck-step>

One step of a <deck-step-list> · number, label, and the note that explains it.

Attributes

AttributeTypeNotes
nstringNumber or letter carrying the sequence
notestringSupporting explanation, read after the label
note-positioninline | belowdefault inline · below puts the note under its label, which keeps a row of steps readable

Slots

SlotWhat goes in
(default)The step label

Example

<deck-step-list direction="row">
  <deck-step n="1" note="What the check measures" note-position="below">Inspect</deck-step>
  <deck-step n="2" note="What it writes" note-position="below">Report</deck-step>
</deck-step-list>
Live preview

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-step-ruleDivider color or complete divider value
  • --deck-step-padding-yVertical inner spacing
  • --deck-step-num-colorColor of the named element
  • --deck-step-num-sizeSize of the named element
  • --deck-step-num-scaleVisual value used by the named part
  • --deck-step-label-colorColor of the named element
  • --deck-step-note-colorColor of the named element
  • --deck-step-note-gapSpacing between items
Show an override example
deck-step {
  --deck-step-rule: 1px solid #f07020;
  --deck-step-padding-y: 1.5rem;
}

<deck-shortcut-list>

Two-column grid of <deck-shortcut> rows, with a separator line under each.

Attributes

AttributeTypeNotes
colsstringSet to "1" for a single column · the default is two
col-gap1..6Space between the two columns

Slots

SlotWhat goes in
(default)<deck-shortcut> children

Example

<deck-shortcut-list cols="1" col-gap="4">
  <deck-shortcut keys="O" label="Overview" note="Path layout"></deck-shortcut>
  <deck-shortcut keys="?" label="Help" note="Full shortcut overlay"></deck-shortcut>
</deck-shortcut-list>
Live preview

<deck-shortcut>

Keyboard shortcut row · keys + label + note. Pairs with <deck-shortcut-list>.

Attributes

AttributeTypeNotes
keysstringSpace-separated · e.g. "Space PgDn"
labelstring
notestringFalls back to the default slot when absent
toneaccent | okPaints the keys of this row

Slots

SlotWhat goes in
(default)The note, when it is richer than a string attribute

Example

<deck-shortcut-list>
  <deck-shortcut keys="O" label="Overview" note="Path layout"></deck-shortcut>
  <deck-shortcut keys="?" label="Help" note="Full shortcut overlay" tone="accent"></deck-shortcut>
</deck-shortcut-list>
Live preview

<deck-stack>

Vertical (or horizontal) flex container · the most-used spacing helper.

Attributes

AttributeTypeNotes
gap1..6
directioncolumn | row
alignstart | center | end | stretch
justifystart | center | end | between | around

Example

<deck-stack gap="3">
  <deck-callout>One</deck-callout>
  <deck-callout>Two</deck-callout>
</deck-stack>
Live preview

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-stack-gapSpacing between items
Show an override example
deck-stack {
  --deck-stack-gap: 1.5rem;
}

<deck-grid>

Grid container · n columns by 1..12 or explicit template.

Attributes

AttributeTypeNotes
cols1..12 | "1fr 2fr" | ...
rows1..12 | "auto 1fr" | ...Optional explicit row template
gap1..6
alignstart | center | end | stretchalign-items
justifystart | center | end | stretchjustify-items
fillbooleanTake the parent slide's full height

Example

<deck-grid cols="3" gap="3" fill>
  <deck-card>a</deck-card>
  <deck-card>b</deck-card>
  <deck-card>c</deck-card>
</deck-grid>
Live preview

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-grid-gapSpacing between items
Show an override example
deck-grid {
  --deck-grid-gap: 1.5rem;
}

<deck-card>

Tinted card · yellow, orange, green, red.

Attributes

AttributeTypeNotes
coloryellow | orange | green | red
centerboolean
compactbooleanreduced padding

Example

<deck-card color="green">
  <h3>Tinted card</h3>
  <p>Used inside splits and grids.</p>
</deck-card>
Live preview

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-card-bgBackground color or paint
  • --deck-card-borderBorder color or complete border value
  • --deck-card-textMain text color
  • --deck-card-title-colorColor of the named element
  • --deck-card-radiusCorner radius
  • --deck-card-padding-xHorizontal inner spacing
  • --deck-card-padding-yVertical inner spacing
  • --deck-card-shadowBox shadow
  • --deck-card-gapSpacing between items
Show an override example
deck-card {
  --deck-card-bg: #f07020;
  --deck-card-border: 1px solid #f07020;
}

<deck-source>

A source or credit line, placed under any evidence block · deck-csv, deck-table, deck-bar, deck-kpi-grid, deck-annotate, or plain prose.

Attributes

AttributeTypeNotes
hrefstringTurns the credit into a link

Slots

SlotWhat goes in
(default)The credit text, e.g. "Word, p. 12"

Example

<deck-csv>
  Region; Users
  EMEA; 12 040
</deck-csv>
<deck-source href="https://example.com/report">Annual report, p. 4</deck-source>
Live preview

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-source-colorColor of the named element
  • --deck-source-gapSpacing between items
Show an override example
deck-source {
  --deck-source-color: #f07020;
  --deck-source-gap: 1.5rem;
}

<deck-cell>

Bento grid item · a size container, so child cqw/cqh type scales against the cell.

Attributes

AttributeTypeNotes
span"CxR" | column counte.g. 2x1
colinteger | line syntaxper-axis override
rowinteger | line syntaxper-axis override
toneinfo | warn | ok | danger
plainbooleandrop the card chrome
flatbooleankeep the surface, drop the border
alignstart | center | end | stretchHORIZONTAL · align-items
justifystart | center | end | betweenVERTICAL · justify-content

Example

<deck-cell span="2x1" tone="ok" justify="end">
  <h3>Bottom-aligned</h3>
</deck-cell>
Live preview

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-cell-bgBackground color or paint
  • --deck-cell-borderBorder color or complete border value
  • --deck-cell-radiusCorner radius
  • --deck-cell-padding-xHorizontal inner spacing
  • --deck-cell-padding-yVertical inner spacing
  • --deck-cell-gapSpacing between items
Show an override example
deck-cell {
  --deck-cell-bg: #f07020;
  --deck-cell-border: 1px solid #f07020;
}

<deck-point>

Bento item sized BY its content · reach for it when the item holds words, and for deck-cell when it holds something measured.

Attributes

AttributeTypeNotes
span"CxR" | column counte.g. 2x1 · col/row override it
colinteger | line syntaxper-axis override
rowinteger | line syntaxper-axis override
toneinfo | warn | ok | danger
plainbooleanstop painting the chrome · the gutter and border width stay, so the reading edge matches a painted sibling
flatbooleankeep the surface, drop the border
alignstart | center | end | stretchHORIZONTAL · there is no justify, a point has no leftover height to distribute

Slots

SlotWhat goes in
(default)A title (h3) and its body text

Example

<deck-point tone="ok">
  <h3>Sized by its words</h3>
  <p>No hole under the text, whatever the title wraps to.</p>
</deck-point>
Live preview

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-cell-bgBackground color or paint
  • --deck-cell-borderBorder color or complete border value
  • --deck-cell-radiusCorner radius
  • --deck-cell-padding-xHorizontal inner spacing
  • --deck-cell-padding-yVertical inner spacing
  • --deck-cell-gapSpacing between items
Show an override example
deck-point {
  --deck-cell-bg: #f07020;
  --deck-cell-border: 1px solid #f07020;
}

<deck-code>

Code block with light syntax highlighting · js, ts, html, css.

Attributes

AttributeTypeNotes
langjs | ts | html | css | …
herobooleancenters vertically as the focal block
nestedbooleanno shadow, lighter border (inside a card)
step-groupsJSON[[1,2],[3,4]] · highlight subsets of lines on each step

Example

<deck-code lang="ts" hero>
  const greet = (n: string) => `Hi, ${n}`;
</deck-code>
Live preview

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-code-bgBackground color or paint
  • --deck-code-borderBorder color or complete border value
  • --deck-code-textMain text color
  • --deck-code-radiusCorner radius
  • --deck-code-padding-xHorizontal inner spacing
  • --deck-code-padding-yVertical inner spacing
  • --deck-code-syntax-{kw,str,num,cmt,ty,prop,fn}Syntax color for this token category
Show an override example
deck-code {
  --deck-code-bg: #f07020;
  --deck-code-border: 1px solid #f07020;
}

<deck-mermaid>

Mermaid diagram. Needs rikiki/dist/vendor/mermaid.min.js beside the runtime: start the deck with `init --with-mermaid` (or copy the file in), and pass --with-mermaid to bundle.

Attributes

AttributeTypeNotes
compactbooleanreduced padding and max-width

Example

<deck-mermaid>
  graph LR
  a --> b --> c
</deck-mermaid>
Live preview

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-mermaid-bgBackground color or paint
  • --deck-mermaid-borderBorder color or complete border value
  • --deck-mermaid-paddingInner spacing
  • --deck-mermaid-radiusCorner radius
Show an override example
deck-mermaid {
  --deck-mermaid-bg: #f07020;
  --deck-mermaid-border: 1px solid #f07020;
}

Optional modules

These elements are not imported by the default bundle. They are compiled as separate modules and reach the browser only when a deck imports them, so a deck that does not use one pays nothing for it. Import the matching file fromrikiki/dist/ after the core runtime. Several modules also define child elements · those are documented under the module that defines them.

ElementPurposeModule
<deck-agenda>Agenda that follows the deck sections and marks the current chapter.deck-agenda.js
<deck-annotate>Image or screenshot with numbered marks, progressive reveal, and an optional legend.deck-annotate.js
<deck-bar>Single value or stacked horizontal bar for progress, proportions, or budgets.deck-bar.js
<deck-checklist>Responsive checklist container for yes/no decisions and acceptance criteria.deck-checklist.js
<deck-figure>Screenshot, diagram or chart with its caption and source credit attached to the image.deck-figure.js
<deck-flow>Stage based process diagram with labels, notes, connectors, and reveal states.deck-flow.js
<deck-graph>Positioned node and edge graph for architecture, dependencies, or relationships.deck-graph.js
<deck-icon>Consistent icon slot or named glyph from the bundled icon set.deck-icon.js
<deck-kpi-grid>Aligned KPI figures with optional rules between the values.deck-kpi-grid.js
<deck-persona>Audience or user framing block with avatar, name, role, organisation, and context.deck-persona.js
<deck-pull>Large pull quote that can occupy the full width or float to one side.deck-pull.js
<deck-quote>Attributed quote with controlled mark, size, contrast, and author role.deck-quote.js
<deck-table>Progressive table wrapper that highlights rows or columns as steps advance.deck-table.js
<deck-timeline>Chronological milestone track with row or column direction and progressive reveal.deck-timeline.js
<deck-versus>Two sided decision layout with a central pivot and an optional winner.deck-versus.js

<deck-agenda>

Agenda that follows the deck sections and marks the current chapter.

Module

rikiki/dist/deck-agenda.js

Attributes

AttributeType or value
no-numbersboolean
no-jumpboolean

Slots and children

Slot or childWhat goes in
defaultreads deck-section titles from the nearest deck-root

Example

<deck-agenda></deck-agenda>
Live preview · slide canvas

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-agenda-gapSpacing between items
  • --deck-agenda-sizeSize of the named element
  • --deck-agenda-colorColor of the named element
  • --deck-agenda-done-colorColor of the named element
  • --deck-agenda-current-colorColor of the named element
  • --deck-agenda-markerMarker color or paint
  • --deck-agenda-ruleDivider color or complete divider value
  • --deck-agenda-num-colorColor of the named element
Show an override example
deck-agenda {
  --deck-agenda-gap: 1.5rem;
  --deck-agenda-size: 2rem;
}

<deck-annotate>

Image or screenshot with numbered marks, progressive reveal, and an optional legend.

Module

rikiki/dist/deck-annotate.js

Attributes

AttributeType or value
srcURL
altstring
marksJSON/string mark data
all-at-onceboolean
no-legendboolean
leaderboolean
offsetx,y pixels or a named side (above, below, left, right)
offsetsone displacement per mark, separated by |
captionfigure caption
sourcecredit line
source-hrefturns the credit into a link

Slots and children

Slot or childWhat goes in
defaultoptional legend content when marks do not provide one
captionboolean
sourceboolean

Example

<deck-annotate src="/screen.png" alt="Product screen" marks="1:42,18,2:74,55"></deck-annotate>
Live preview

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-annotate-radiusCorner radius
  • --deck-annotate-borderBorder color or complete border value
  • --deck-annotate-mark-bgBackground color or paint
  • --deck-annotate-mark-colorColor of the named element
  • --deck-annotate-mark-sizeSize of the named element
  • --deck-annotate-mark-ringVisual value used by the named part
  • --deck-annotate-leaderVisual value used by the named part
  • --deck-annotate-leader-widthWidth of the named element
  • --deck-annotate-legend-colorColor of the named element
  • --deck-annotate-legend-sizeSize of the named element
  • --deck-annotate-gapSpacing between items
Show an override example
deck-annotate {
  --deck-annotate-radius: 14px;
  --deck-annotate-border: 1px solid #f07020;
}

<deck-bar>

Single value or stacked horizontal bar for progress, proportions, or budgets.

Module

rikiki/dist/deck-bar.js

Attributes

AttributeType or value
valuenumber
totalnumber
labelstring
toneaccent|ok|warn|danger|info|muted
segmentsJSON
no-valueboolean
no-legendboolean

Slots and children

Slot or childWhat goes in
defaultoptional legend content

Example

<deck-bar label="Coverage" value="82" total="100" tone="ok"></deck-bar>
Live preview

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-bar-trackVisual value used by the named part
  • --deck-bar-heightHeight of the named element
  • --deck-bar-radiusCorner radius
  • --deck-bar-gapSpacing between items
  • --deck-bar-label-colorColor of the named element
  • --deck-bar-value-colorColor of the named element
  • --deck-bar-legend-colorColor of the named element
  • --deck-bar-legend-sizeSize of the named element
  • --deck-bar-fillVisual value used by the named part
  • --deck-bar-dividerVisual value used by the named part
Show an override example
deck-bar {
  --deck-bar-track: #f07020;
  --deck-bar-height: 2rem;
}

<deck-checklist>

Responsive checklist container for yes/no decisions and acceptance criteria.

Module

rikiki/dist/deck-checklist.js

Attributes

AttributeType or value
colsnumber/string

Slots and children

Slot or childWhat goes in
defaultdeck-check children

Example

<deck-checklist cols="2">
  <deck-check>Offline bundle</deck-check>
  <deck-check no>External CDN</deck-check>
</deck-checklist>
Live preview

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-checklist-gapSpacing between items
  • --deck-checklist-colsGrid column template
  • --deck-checklist-ruleDivider color or complete divider value
  • --deck-check-yesVisual value used by the named part
  • --deck-check-noVisual value used by the named part
  • --deck-check-sizeSize of the named element
  • --deck-check-gapSpacing between items
  • --deck-check-colorColor of the named element
Show an override example
deck-checklist {
  --deck-checklist-gap: 1.5rem;
  --deck-checklist-cols: #f07020;
}

<deck-check>

One line of a checklist · a yes by default, a no when the attribute says so.

Attributes

AttributeTypeNotes
nobooleanMark the line as not met · swaps the yes glyph for the no one

Slots

SlotWhat goes in
(default)The criterion being checked

Example

<deck-checklist cols="2">
  <deck-check>Offline bundle</deck-check>
  <deck-check no>External CDN</deck-check>
</deck-checklist>

<deck-figure>

Screenshot, diagram or chart with its caption and source credit attached to the image.

Module

rikiki/dist/deck-figure.js

Attributes

AttributeType or value
srcimage URL
alttext alternative, required unless decorative
captionstring
sourcestring
source-hrefURL
decorativeboolean

Slots and children

Slot or childWhat goes in
imagemedia used when src is absent
captionrich caption content
sourcerich credit content

Example

<deck-figure
  src="/build-duration.png"
  alt="Build duration by pipeline stage"
  caption="The cache removes most of the install cost."
  source="CI benchmark"
></deck-figure>
Live preview

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-figure-gapSpacing between items
  • --deck-figure-image-fitVisual value used by the named part
  • --deck-figure-image-positionVisual value used by the named part
  • --deck-figure-radiusCorner radius
  • --deck-figure-borderBorder color or complete border value
  • --deck-figure-bgBackground color or paint
  • --deck-figure-caption-colorColor of the named element
  • --deck-figure-source-colorColor of the named element
  • --deck-figure-max-heightHeight of the named element
Show an override example
deck-figure {
  --deck-figure-gap: 1.5rem;
  --deck-figure-image-fit: #f07020;
}

<deck-flow>

Stage based process diagram with labels, notes, connectors, and reveal states.

Module

rikiki/dist/deck-flow.js

Attributes

AttributeType or value
colsnumber/string
no-connectorsboolean
revealboolean

Slots and children

Slot or childWhat goes in
defaultdeck-flow-step children

Example

<deck-flow cols="4">
  <deck-flow-step label="Write" note="brief">
    Source
  </deck-flow-step>
  <deck-flow-step label="Check" note="evidence">
    Review
  </deck-flow-step>
</deck-flow>
Live preview

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-flow-gapSpacing between items
  • --deck-flow-step-accentVisual value used by the named part
  • --deck-flow-step-label-colorColor of the named element
  • --deck-flow-step-note-colorColor of the named element
  • --deck-flow-step-pending-opacityOpacity
  • --deck-flow-linkVisual value used by the named part
Show an override example
deck-flow {
  --deck-flow-gap: 1.5rem;
  --deck-flow-step-accent: #f07020;
}

<deck-flow-step>

One stage of a flow · an index, a label, a note, and the body text under them.

Attributes

AttributeTypeNotes
labelstringStage name
notestringShort qualifier under the label
plainbooleanStop the active stage from taking the block
indexstringPosition in the chain · written by deck-flow on every update, not by the author
lastbooleanWritten by deck-flow on the final stage · it has nothing to point at
linkedbooleanWritten by deck-flow from its own no-connectors attribute

Slots

SlotWhat goes in
(default)The body text of the stage

Example

<deck-flow cols="2">
  <deck-flow-step label="Write" note="brief">Source</deck-flow-step>
  <deck-flow-step label="Check" note="evidence">Review</deck-flow-step>
</deck-flow>

<deck-graph>

Positioned node and edge graph for architecture, dependencies, or relationships.

Module

rikiki/dist/deck-graph.js

Attributes

AttributeType or value
layoutfree|row|column
revealboolean

Slots and children

Slot or childWhat goes in
defaultdeck-node, deck-group, deck-lane, and deck-edge children

Example

<deck-graph layout="row">
  <deck-node id="source" label="Brief"></deck-node>
  <deck-edge from="source" to="proof" label="check"></deck-edge>
  <deck-node id="proof" label="Verified deck" boxed tone="ok"></deck-node>
</deck-graph>
Live preview

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-graph-edgeVisual value used by the named part
  • --deck-graph-edge-widthWidth of the named element
  • --deck-graph-edge-labelVisual value used by the named part
  • --deck-graph-ratioVisual value used by the named part
  • --deck-node-colorColor of the named element
  • --deck-node-ruleDivider color or complete divider value
  • --deck-node-sizeSize of the named element
  • --deck-node-bgBackground color or paint
  • --deck-node-active-colorColor of the named element
  • --deck-group-borderBorder color or complete border value
  • --deck-group-bgBackground color or paint
  • --deck-lane-ruleDivider color or complete divider value
Show an override example
deck-graph {
  --deck-graph-edge: #f07020;
  --deck-graph-edge-width: 2rem;
}

<deck-node>

One node of a graph · placed by the layout, or by an explicit position.

Attributes

AttributeTypeNotes
atx,y percentPosition in the drawing area · ignored under a row or column layout
labelstring
notestringMono micro-label under the name · a protocol, a count, a latency
widthCSS widthWrap a long label before it collides with its neighbour
boxedbooleanDraw the node as a filled block rather than type under a rule
toneaccent | ok | warn | dangerFill color of a boxed node
iconicon nameGlyph above the label · needs dist/deck-icon.js loaded too

Example

<deck-graph layout="row">
  <deck-node id="source" label="Brief"></deck-node>
  <deck-node id="proof" label="Verified deck" boxed tone="ok"></deck-node>
</deck-graph>

<deck-edge>

One edge of a graph · joins two nodes by their id.

Attributes

AttributeTypeNotes
fromnode id
tonode id
labelstringCaption drawn on the edge
dashedboolean
routestraight | orthoortho turns at right angles instead of cutting across
label-offsetx,yPixel offset for the label when it collides with a node

Example

<deck-graph layout="row">
  <deck-node id="source" label="Brief"></deck-node>
  <deck-edge from="source" to="proof" label="check"></deck-edge>
  <deck-node id="proof" label="Verified deck"></deck-node>
</deck-graph>

<deck-group>

A labelled frame drawn behind a set of nodes · for a boundary or a subsystem.

Attributes

AttributeTypeNotes
atx,y,width,height percentPosition and size of the frame in the drawing area
labelstring
solidbooleanA solid outline instead of the dashed default

Example

<deck-graph>
  <deck-group at="4,10,44,70" label="Authoring" solid></deck-group>
  <deck-node at="14,40" label="Source"></deck-node>
</deck-graph>

<deck-lane>

A horizontal band across the graph · names a stage the nodes sitting in it belong to.

Attributes

AttributeTypeNotes
attop,height percentVertical position and height of the band in the drawing area
labelstring

Example

<deck-graph>
  <deck-lane at="10,30" label="Author"></deck-lane>
  <deck-node at="20,25" label="Write"></deck-node>
</deck-graph>

<deck-icon>

Consistent icon slot or named glyph from the bundled icon set.

Module

rikiki/dist/deck-icon.js

Attributes

AttributeType or value
nameicon name
sizesm|md|lg|xl
tonedefault|accent|ok|warn|danger|info|muted
labelaccessible label

Slots and children

Slot or childWhat goes in
defaultcustom SVG used when name is absent or unknown

Example

<deck-icon name="check" size="lg" tone="ok" label="Ready"></deck-icon>
Live preview

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-icon-sizeSize of the named element
  • --deck-icon-colorColor of the named element
  • --deck-icon-strokeVisual value used by the named part
Show an override example
deck-icon {
  --deck-icon-size: 2rem;
  --deck-icon-color: #f07020;
}

<deck-kpi-grid>

Aligned KPI figures with optional rules between the values.

Module

rikiki/dist/deck-kpi-grid.js

Attributes

AttributeType or value
colsnumber/string
ruledboolean

Slots and children

Slot or childWhat goes in
defaultdeck-kpi children; deck-kpi default slot accepts supporting text

Example

<deck-kpi-grid cols="3" ruled>
  <deck-kpi value="0" label="CDNs" tone="ok">
    Runtime requests
  </deck-kpi>
  <deck-kpi value="20" label="slides"></deck-kpi>
</deck-kpi-grid>
Live preview

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-kpi-grid-gapSpacing between items
  • --deck-kpi-grid-colsGrid column template
  • --deck-kpi-grid-ruleDivider color or complete divider value
  • --deck-kpi-value-sizeSize of the named element
  • --deck-kpi-value-colorColor of the named element
  • --deck-kpi-label-colorColor of the named element
  • --deck-kpi-note-colorColor of the named element
Show an override example
deck-kpi-grid {
  --deck-kpi-grid-gap: 1.5rem;
  --deck-kpi-grid-cols: #f07020;
}

<deck-kpi>

One figure of a KPI grid · the value, what it measures, and an optional qualifier.

Attributes

AttributeTypeNotes
valuestringThe figure itself
labelstringWhat the figure measures
notestringQualifier under the label
tonedefault | accent | ok | warn | danger | muted

Slots

SlotWhat goes in
(default)Supporting text under the figure

Example

<deck-kpi-grid cols="3" ruled>
  <deck-kpi value="0" label="CDNs" tone="ok">Runtime requests</deck-kpi>
  <deck-kpi value="20" label="slides"></deck-kpi>
</deck-kpi-grid>

<deck-persona>

Audience or user framing block with avatar, name, role, organisation, and context.

Module

rikiki/dist/deck-persona.js

Attributes

AttributeType or value
namestring
person-rolestring
orgstring
contextstring
srcimage URL
on-darkboolean
compactboolean
inlineboolean

Slots and children

Slot or childWhat goes in
defaultadditional context content

Example

<deck-persona name="Alex" person-role="Staff engineer" org="Siliceum" context="Needs a deck that survives handover"></deck-persona>
Live preview

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-persona-avatar-sizeSize of the named element
  • --deck-persona-initials-colorColor of the named element
  • --deck-persona-ruleDivider color or complete divider value
  • --deck-persona-name-colorColor of the named element
  • --deck-persona-role-colorColor of the named element
  • --deck-persona-context-colorColor of the named element
  • --deck-persona-gapSpacing between items
  • --deck-persona-compact-name-sizeSize of the named element
Show an override example
deck-persona {
  --deck-persona-avatar-size: 2rem;
  --deck-persona-initials-color: #f07020;
}

<deck-pull>

Large pull quote that can occupy the full width or float to one side.

Module

rikiki/dist/deck-pull.js

Attributes

AttributeType or value
sideleft|right|full

Slots and children

Slot or childWhat goes in
defaultquoted text or slotted HTML

Example

<deck-pull side="left">The source stays readable after delivery.</deck-pull>
Live preview

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-pull-colorColor of the named element
  • --deck-pull-sizeSize of the named element
  • --deck-pull-ruleDivider color or complete divider value
  • --deck-pull-rule-widthDivider thickness
  • --deck-pull-bgBackground color or paint
  • --deck-pull-paddingInner spacing
  • --deck-pull-widthWidth of the named element
Show an override example
deck-pull {
  --deck-pull-color: #f07020;
  --deck-pull-size: 2rem;
}

<deck-quote>

Attributed quote with controlled mark, size, contrast, and author role.

Module

rikiki/dist/deck-quote.js

Attributes

AttributeType or value
authorstring
author-rolestring
sizelead|big|mega
plainboolean
on-darkboolean
no-markboolean

Slots and children

Slot or childWhat goes in
defaultquoted text

Example

<deck-quote author="Jane Doe" author-role="Platform lead" size="big">Make the proof part of the delivery.</deck-quote>
Live preview

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-quote-colorColor of the named element
  • --deck-quote-sizeSize of the named element
  • --deck-quote-mark-colorColor of the named element
  • --deck-quote-mark-sizeSize of the named element
  • --deck-quote-ruleDivider color or complete divider value
  • --deck-quote-rule-widthDivider thickness
  • --deck-quote-gapSpacing between items
  • --deck-quote-author-colorColor of the named element
  • --deck-quote-role-colorColor of the named element
  • --deck-quote-max-widthWidth of the named element
Show an override example
deck-quote {
  --deck-quote-color: #f07020;
  --deck-quote-size: 2rem;
}

<deck-table>

Progressive table wrapper that highlights rows or columns as steps advance.

Module

rikiki/dist/deck-table.js

Attributes

AttributeType or value
highlight-rowscomma-separated row numbers
highlight-colscomma-separated column numbers
revealboolean

Slots and children

Slot or childWhat goes in
defaultone table element

Example

<deck-table highlight-rows="2,4" reveal>
  <table>
    <thead>
      <tr><th>Check</th><th>Status</th></tr>
    </thead>
    <tbody>
      <tr><td>Runtime</td><td>Pass</td></tr>
      <tr><td>Offline bundle</td><td>Pass</td></tr>
    </tbody>
  </table>
</deck-table>
Live preview

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-table-mark-bgBackground color or paint
  • --deck-table-mark-colorColor of the named element
  • --deck-table-pending-opacityOpacity
Show an override example
deck-table {
  --deck-table-mark-bg: #f07020;
  --deck-table-mark-color: #f07020;
}

<deck-timeline>

Chronological milestone track with row or column direction and progressive reveal.

Module

rikiki/dist/deck-timeline.js

Attributes

AttributeType or value
directionrow|column
alternaterow only, milestones above and below the axis
revealboolean

Slots and children

Slot or childWhat goes in
defaultdeck-milestone children

Example

<deck-timeline direction="row">
  <deck-milestone date="Now" label="Source" tone="accent">
    Write the brief
  </deck-milestone>
  <deck-milestone date="Next" label="Proof">
    Run the checks
  </deck-milestone>
</deck-timeline>
Live preview

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-timeline-axisVisual value used by the named part
  • --deck-timeline-axis-widthWidth of the named element
  • --deck-timeline-gapSpacing between items
  • --deck-milestone-dotVisual value used by the named part
  • --deck-milestone-dot-sizeSize of the named element
  • --deck-milestone-date-colorColor of the named element
  • --deck-milestone-label-colorColor of the named element
  • --deck-milestone-note-colorColor of the named element
  • --deck-milestone-pending-opacityOpacity
Show an override example
deck-timeline {
  --deck-timeline-axis: #f07020;
  --deck-timeline-axis-width: 2rem;
}

<deck-milestone>

One milestone of a timeline · a date, a label, and the body text under them.

Attributes

AttributeTypeNotes
datestringFree text · "Now", "Q3", a real date
labelstring
notestringQualifier under the label
tonedefault | accent | ok | warn | danger

Slots

SlotWhat goes in
(default)The body text of the milestone

Example

<deck-timeline direction="row">
  <deck-milestone date="Now" label="Source" tone="accent">Write the brief</deck-milestone>
  <deck-milestone date="Next" label="Proof">Run the checks</deck-milestone>
</deck-timeline>

<deck-versus>

Two sided decision layout with a central pivot and an optional winner.

Module

rikiki/dist/deck-versus.js

Attributes

AttributeType or value
pivotstring
winnerleft|right
slideboolean
eyebrowstring, slide mode only

Slots and children

Slot or childWhat goes in
left / rightthe two alternatives
title / leadheading and lead paragraph, slide mode only

Example

<deck-versus pivot="OR" winner="right">
  <div slot="left">
    <h3>Source</h3>
    <p>Readable and editable.</p>
  </div>
  <div slot="right">
    <h3>Proof</h3>
    <p>Checked and deliverable.</p>
  </div>
</deck-versus>
Live preview

Customization tokens

Override these CSS custom properties on one component instance or in a shared stylesheet.

  • --deck-versus-gapSpacing between items
  • --deck-versus-pivot-colorColor of the named element
  • --deck-versus-pivot-sizeSize of the named element
  • --deck-versus-ruleDivider color or complete divider value
  • --deck-versus-winner-ruleDivider color or complete divider value
  • --deck-versus-loser-colorColor of the named element
  • --deck-versus-eyebrow-colorColor of the named element
  • --deck-versus-slide-bgBackground color or paint
  • --deck-versus-side-alignVisual value used by the named part
Show an override example
deck-versus {
  --deck-versus-gap: 1.5rem;
  --deck-versus-pivot-color: #f07020;
}

Next

  • Optional modules · what each module costs and how a deck imports it.
  • Theming · the token contract these components read.
  • API reference · the deck-root properties, events and extension hooks.