Configuration commands
Use commands to configure your presentation settings. Commands can either be applied globally — if put at the top of your Markdown file — or per slide to set or override global settings. When using global configuration commands, make sure that there are no line breaks between any other commands at the top of your markdown file.
Scale content to fit the slide
At times you have to fit more content onto one slide than the default font sizes allow for.
Deckset comes with an option to auto-scale paragraph text, lists, and other body content down to fit onto the slide. To enable this behavior put the following command at the top of your markdown file:
autoscale: true
You may turn this on or off on an individual slide by declaring [.autoscale: true] or [.autoscale: false] on the respective slide.
Keep columns at the same scale
By default, Deckset fits each column separately. To scale all columns by the same amount, add:
uniform-column-scaling: true
For a single slide, use [.uniform-column-scaling], [.uniform-column-scaling: true], or [.uniform-column-scaling: false]. Add autoscale: true as well if Deckset should shrink regular body text to fit.
Build lists
In Presenter and Rehearsal mode, you may want list items to appear one by one. To achieve this with Deckset, use the following command:
build-lists: true
You can also specify different modes of building lists:
build-lists: all # Equivalent to true
build-lists: notFirst # Will always show first item of a list
Please note that this only affects Presenter (and Rehearsal) mode.
You may turn this on or off on an individual slide by declaring [.build-lists: true] or [.build-lists: false] on the respective slide.
Slide numbers
To add running slide numbers to your presentation use the following command:
slidenumbers: true
You may turn this on or off on an individual slide by declaring [.slidenumbers: true] or [.slidenumbers: false] on the respective slide.
To add the count of slides in your presentation, use the slidecount: true command. You may also turn this off on an individual slide by declaring [.slidecount: true] or [.slidecount: false] on the respective slide.
Footers
To add a persistent footer to each slide of your presentation, use the following command:
footer: My Footer content
To override your global footer or to add a footer to a single slide, add [.footer: A different footer] to the respective slide.
You may turn off the footer on an individual slide by declaring [.hide-footer] on the respective slide.
For multi-line footers or richer layouts, use the block form and include full markdown, images, or columns:
footer: <<<
[.column]
Left footer text
[.column]
Right footer text
[.end-columns]
>>>
footer: <<<

>>>
Corner logos
To place an image in a corner throughout your presentation, add logo to the commands at the top of the file:
logo: brand/company-mark.svg, bottom-right, medium, margin(40), alt(Company)
Use the image path first, followed by comma-separated options. Raster images and SVGs are supported. The default is top-right, medium, with margin(40).
- Corner:
top-left,top-right,bottom-left, orbottom-right. - Size:
Sorsmall,Mormedium,Lorlarge, ororiginal. Thesize(...)form also works, for examplesize(original). - Margin:
margin(40)sets the slide-edge margin and the clearance from nearby content in reference-slide points. Use a nonnegative number. Margins that are too large are reduced to fit the slide. - Image options: use
alt(...)for an accessible description,decorativefor a purely decorative mark, and options such asalpha(...)andcorner-radius(...)as needed. Commas insidealt(Company, Inc.)are preserved.
Small, medium, and large logos can use up to 7.5%, 11%, and 15% of the slide’s width and height while keeping their proportions. On a 1280 × 720 slide, for example, a medium logo fits within 140.8 × 79.2 points. The original option uses the image’s own size, shrinking it only when needed to fit the slide and margins.
Deckset keeps nearby content clear of the logo. A short bottom logo can sit beside a footer, while a tall one extends upward. If footer text, slide numbers, or footnotes no longer fit beside it, they move above it. Transparent padding inside the image can make the visible gap look larger. Try a named size if an original-size logo takes up too much room.
The logo applies to the whole presentation and cannot be changed on a single slide. To disable it, leave the image path empty (logo: , top-right) or add the hide image option. If the file contains more than one global logo command, the last one wins.
Slide transitions
In Presenter mode, you may want to transition between slides. To achieve this with Deckset, use the following command:
slide-transition: true
You can control the duration of the transition by passing in the value in seconds: slide-transition: fade(0.3).
Available transition styles include fade, fadeThroughColor, push, move, reveal, flip, wipe, zoom, barnDoor, wipeFromCenter, iris, and spotlight.
You may also use this command on a single slide, like so: [.slide-transition: fade(0.3)], [.slide-transition: flip(0.6, horizontal)], [.slide-transition: wipe(0.45, left)], [.slide-transition: zoom(0.4)], [.slide-transition: barnDoor(0.5, vertical)], [.slide-transition: wipeFromCenter(0.5, horizontal)], [.slide-transition: iris(0.5)], or [.slide-transition: false].
Use headers as slide dividers
To automatically start a new slide with each header, use the
slide-dividers: #, ##, ###, ####
command and specify the header levels you would like to take into account.
Please note that this command can only be used globally, at the top of your Markdown file.
With slide-dividers, a per-slide command between two divider headers applies to the slide started by the first header. To configure the next slide before its header, add an explicit --- separator and put the command immediately after it.
Position header-only slides vertically
To set the vertical position of slides containing only headers, add this command at the top of your Markdown file:
header-vertical-alignment: center
The available values are top, center, and bottom. You can override the global value on an individual slide:
# Quarterly results
[.header-vertical-alignment: bottom]
The per-slide value overrides the global value and has no effect on slides with body content. Footers, footnotes, slide numbers, and background images do not count as body content, so the command still applies.
If the selected alignment matches the theme default, Deckset keeps the theme’s original position.
Treat paragraphs as presenter notes
To move regular paragraphs into presenter notes (without having to prefix them with ^), use:
paragraphs-as-presenter-notes: true
Please note that this command can only be used globally, at the top of your Markdown file.
Time budget
On macOS, open the presentation options sidebar and find Time Budget. Enable Use time budget and set Duration in minutes. The sidebar accepts 1–720 minutes with up to one decimal place and shows elapsed time and pacing in Presenter and Rehearsal modes.
The sidebar choice is saved with the document. Plain Markdown files store it as file metadata, which may be lost when emailing files or using version control; Text Bundles store it in the bundle metadata. To keep the setting in the Markdown itself, use:
time-budget: 20
When the Markdown contains a time-budget command, it wins over the sidebar setting and disables those controls. Edit or remove the command to change the time budget in the sidebar again.
The budget timer starts when you advance from slide 1 to slide 2. If you jump to a later slide, the timer starts immediately with time credited based on the average time per slide. The timer stays green while you are on pace, turns yellow when you fall behind pace, and turns red after the total budget is exceeded.
Please note that this command can only be used globally, at the top of your Markdown file.
Default code language
You can specify a default code language by adding it at the top of your Markdown file:
code-language: Swift
Code background
Use code-background to control the appearance of code blocks. A boxed background uses the background and syntax colors from the named highlight.js theme:
code-background: box(github-dark)
Use window with the same theme name to add a macOS-style frame with red, yellow, and green window controls:
code-background: window(github-dark)
Use plain to remove the code frame and use the presentation theme’s syntax colors:
code-background: plain
All three values can also be applied to an individual slide, overriding the global setting:
[.code-background: box(github-dark)]
[.code-background: window(github-dark)]
[.code-background: plain]
Document title and content language
Add either or both commands at the top of your Markdown file to set the presentation title and language:
title: Quarterly results
language: en-GB
The title becomes the document title when you export to HTML.
language tells Deckset which language the presentation uses. Deckset can then apply the right rules for line breaks, punctuation, glyphs, and language-specific theme fonts. The command also sets the document language in PDF and HTML exports; in HTML, it sets the writing direction too.
If you leave the command out, Deckset detects the main language from the presentation text when you export to PDF or HTML. Set it explicitly when the text is too short to identify reliably, or when typography and pronunciation matter.
Deckset can create localized formula descriptions in English, German, Spanish, and French. For other languages, including Chinese, Japanese, and Korean, it uses an English description and marks it as English for screen readers.
Use a BCP 47 language tag, such as en-GB, zh-Hans for Simplified Chinese, zh-Hant for Traditional Chinese, ja for Japanese, or ko for Korean.
These commands can only be used globally, at the top of your Markdown file.
Store theme choice in document
Deckset does store the theme choice as metadata to the file. In some cases, this information can get lost, e.g. in version control systems or when sending the file via email.
To make sure the theme choice doesn’t get lost, you can use the following command, referencing any theme by its name: theme: Fira.
If you also want to specify the color choice, you can reference the number of the color swatch as it appears within Deckset e.g.:
theme: Fira, 3
Please note that this command can only be used globally, at the top of your Markdown file.
Automatically fit headers
Deckset allows you to fit header to entire slide to get that signature font look. However repeating this for every slide might be a bit cumbersome. You can address that by using the fit-header command like so:
fit-header: #, ##
Note that this only works as a global command and needs to be placed on top of your md file.
Global Background Image
To apply a background image to every slide in your presentation, simply add the background-image command at the very top of your Markdown file:
background-image: image2.jpg
(rest of your content)
Presentation pause screen
In Presentation Mode, press w to show a pause slide. Define its contents at the top of your Markdown file with a pause-screen block:
pause-screen: <<<
[.background-color: #F7F4ED]
[.header: #202020]
[.text: #202020]
# Back in 10 minutes

Wi-Fi: **GuestNet**
>>>
The pause slide supports the same Markdown and per-slide styling commands as a regular slide, including inline and background images, math, code, Mermaid, and Pikchr diagrams. It inherits the current theme, then applies commands inside the block. It does not appear in slide navigation, slide counts, thumbnails, or exports, and it never shows a footer, slide numbers, builds, or transitions.
The earlier image and text commands remain supported for existing presentations:
pause-screen-image: break.png
pause-screen-text: Back in 10 minutes
When pause-screen is present, Deckset ignores the older image and text commands. Image paths work just like they do on a regular slide. Press w to show or hide the pause slide; b still shows or hides the black screen.
Default image corner radius
To set a global default corner radius for images, add the following command at the top of your Markdown file:
image-corner-radius: 12
This default applies only when no explicit corner-radius(...) is provided in the image options. For example:
