md2slides Reference


md2slides Reference


Every building block of a deck, in one place: the command line, the front matter, the slides, the blocks, the code, the keys and the skin. One line per item — what it is and what it takes — with a link to the md2slides page for the whole story. New to the notation itself? See Markdown, Pandoc and md2slides.

In the tables, text is any text, n a number, min minutes (decimals allowed), s seconds (1, 0.4, or 400ms), and length a CSS length (1cm, 2em, 40px, 5%).

Command Line

[rexx] md2slides [options] filename [destination]
Option Takes What it does
-s, --skin a sheet The skin: who presents (colours, faces, sizes). Default skin-default.css, which must exist.
-mp, --master-pages a sheet A master: where things go. Repeatable; applied in order. Default master-default.css, if there is one.
--img a folder Another folder of pictures, searched after the deck's own img/. Repeatable.
--picture-size pixels, or no The longest side a PNG or JPEG keeps in the deck; bigger ones are reduced with ImageMagick, if installed. Default 1920.
--csl a name or a path The citation style, when the deck cites (bibliography:). Default rexxpub.
--pandoc-highlight a name Pandoc's colours for code that is not Rexx. Default: the skin's --skin-pandoc-style, else pygments.
-h, --help — The help.

A sheet is a path: relative ones are looked for beside the deck, then in the current folder. Filename gets .md when it has no extension and is not found as given; destination defaults to the deck's name with .html, in the current folder. The command line wins over the front matter, which wins over the default. → Usage, Skin and Masters

Front Matter

The --- block on the very first line of the file. md2slides' settings live under rexxpub:. It is YAML 1.2, the same Pandoc reads: blocks, lists, the one-line forms { a: 1, b: 2 } and [a, b], and # comments. yes, no, on, off are booleans, so a text that is one of those words goes in quotes; so does one with a colon and a blank in it. Invalid YAML stops the build, with its line. → YAML Front Matter

rexxpub: — top level

Key Takes What it does
skin: a sheet As -s.
master-pages: a sheet, or a list of sheets ([a.css, b.css]) As -mp. A plain value is one name, blanks and all.
img: a folder, or a list of folders As --img. A plain value is one name, blanks and all.
picture-size: pixels, or no As --picture-size. → Size
style: a Rexx style name The Rexx colours to start with (light, dark, tokio-day...); s changes them live. Default tokio-day.
title: text The browser tab's label. Default: the file's name. (Also a field, {title}.)
font-prose: a family name The text face, over the skin's.
font-mono: a family name The code face, over the skin's.
see-through: a per cent, or a block of callouts:, boxes:, trees:, cover-art:, pictures: How much of the slide shows through the grounds md2slides draws and the pictures pinned over it (default 15%; 0 = solid), over the skin's. One value is for all five. → YAML Front Matter
license: a licence name A field, checked against cc-by, cc-by-sa, cc-by-nc, cc-by-nc-sa, cc-by-nd, cc-by-nc-nd, cc0, public-domain, all-rights-reserved, gfdl, apache-2.0 (a -4.0-style version may follow).
header:, footer: a block The margin boxes: below.
anim: a block Default animations: below.
timer: a block The presenter's timer: below.
about: yes / no, or a block The about page (a): below.
view-source: yes / no v shows the Markdown of the slide on the screen. Default no: the Markdown is not in the file. → The Markdown of a Slide
fit: yes / no A slide that does not fit is made smaller when it is shown, to 45% at most; a slide with a scale= of its own is left as written. Default yes. → A Slide That Does Not Fit
logo: a logo's name, or none Every slide gets the class logo-name; a slide that names another .logo-x changes it from that slide on. → Skin and Masters
listings:, figures: a block How captions look, as in the other RexxPub tools: caption-position: (above/below), caption-style:, label-style:, label:; for listings, frame: too. → YAML Front Matter
code: a language, e.g. rexx Every code span with no braces after it is in that language: `x` is `x`{.rexx}. → The > Lines
number-figures: yes / no Number the captions: "Listing 1:", "Figure 1:", each through the deck. Default no in a deck.
any other name text (HTML allowed), or a list A field: below. A list is its items joined by ", " (an item that is a block gives its name:).

Outside rexxpub:, bibliography: (a file of references, beside the deck) turns citations on: [@key] in the text, ::: {#refs} where the list goes.

Outside rexxpub:, lang: names the language of the caption labels (Listado, Figura... for es).

Not used by md2slides, though other RexxPub tools read them: docclass:, theme:, csl: (use --csl), pandoc-style: / highlight: (use --pandoc-highlight or the skin). The Rexx dialect keys (executor:, experimental:, unicode:) do not reach the slides either: name the dialect on the listing itself (```rexx {executor}).

Key Takes What it does
left:, center:, right: text, HTML and {fields} The template of that box, over the skin's. To empty a box the skin fills, write ' ' (an empty value leaves the skin's).
font-size: length The size of the band's three boxes.

A box that does not fit is shrunk, down to half size, together with the other two of its band. The header band shows only when the skin gives it a height. → The margin boxes

anim:

Key Takes What it does
element: → effect: an element effect Every fragment that names none. Default: a plain fade.
element: → duration: s How long a fragment takes. Default 1.
page: → effect: a page effect Every slide that names none. Default: no transition.
page: → duration: s How long a page transition takes. Default 0: give one with the effect, or it is over before it shows.

Element effects: fade, fade-up, fade-down, fade-left, fade-right, scale-in, blur-in, cut. Page effects: fade, slide, fade-color, cut. → Animation

timer:

Key Takes Default What it does
total: min the sum of the time= The talk's length.
warn: min list (5:1, 5 1, 5,1), or no 5:1 A popup this long before the end.
popup-every: whole s 10 In the last minute, the popup comes back this often. Over time it comes once a minute; Esc or t on a red one stops them until the timer restarts.
where: footer, header footer Where the popups show.
switch-to-seconds: min, all, no 3 Times on screen are whole minutes, with seconds in the last this-many minutes (and the overtime). all: always seconds.
sound: yes / no no A chime when a countdown reaches zero.
pause-message: text none What a break says when nothing is typed.
countdown-message: text none What a countdown says when nothing is typed.
record: yes / no no Keep the time per slide of every run, in the browser (h).

(interval: and seconds: are the old names of popup-every: and switch-to-seconds:; they still work, and the build says what they are called now.) → The Presenter's Timer, Rehearsing

about:

about: no leaves the page out. As a block, each group is yes or no: deck, system, command, links, timing (all yes), path (no: names without their folders) and print (no: yes prints the page after the last slide). → About This Deck

Fields

Kind Names Where they come from
Yours any top-level name in rexxpub: — presenter, affiliation, date (today = the build date), version, version-date, course... A name with no value (address-2:) is declared, and empty. the front matter
Per skin skin-<skin>-<name>:, e.g. skin-mu-affiliation: wins over <name>: when the deck is built with skin-<skin>.css
Automatic today, now, file-date, file-time, file-name, file-name-full, file-path the build (a field of yours of the same name wins)
Of the deck page, pages (also total-pages), total, section, sections, section-total the runtime, on every slide
Live clock, elapsed, remaining, section-elapsed, section-remaining the runtime, while the timer runs; blank before, not printed

Where they work:

  • In a margin box, every field. One nobody sets comes out empty, and the build warns — unless it is in an optional group: [ · v{version}] is all there when a field in it has a value, and gone when none has; the brackets never show.
  • In a slide's text and in link targets ([text]({regulations})), the fields of the first three kinds. An unknown {name} stays as written, and code is never touched.
  • On a business card, as in the text, but a field with no value leaves nothing, and a line of the card whose fields are all empty goes, label and all. An unknown {name} is left out too, and the build warns.
  • Per slide, a zone with the field's name (::: presenter, ::: course...) sets that field for one slide, in its boxes and in its text. Any field works, except the names of md2slides' own zones and blocks (title, row, card...), which keep their meaning.

→ The margin boxes

Slides

A slide opens with a marker, a line of its own, or with a level-1 heading, and a deck may use both. A heading right under a marker is that slide's title; two headings in a row are one title of two lines. The braces take classes (.name), an identifier (#name) and attributes (key=value, in quotes with blanks).

--- {.slide .logo-rexx kicker="Basics" time=10}

# The Title {.section}

→ Writing a Deck

Roles

Class What it does
.title-slide The cover: the master lays it out; no rule under the title.
.section A section opener: listed as a section by g, and named after its title in the timer.
.business-card Its text becomes a card (or one ::: card each): name, role, details.

Any other class (.logo-rexx...) goes to the <section> for the masters. → Roles

Slide attributes

Attribute Takes What it does
kicker= text A small line above the title.
field= text Sets that field for this slide, as a :::field zone does (reference="Cf. rexxref.pdf (3.7)"). Plain text; a zone of the same name wins.
anim= a page effect How the slide arrives.
anim-duration= s How long that takes (default 0, so give one).
wait-before=, wait-after=, wait= s Build the slide by the clock: a pause before / after / around each step.
duration= s Build it by the clock, the steps spread over this long.
time= min Open a section of the talk, this long.
section= text On a .section slide: the section's name in the timer and in g, instead of its title. On any other slide it is reported and ignored.
.pause, .startPause — Pause the timer while the slide is shown, until the talk goes on.
pause= min, or a time of day hh:mm to count down to, and a message; or a message A pause slide with a break countdown; with only a message, a break that counts up.
countdown= min, or a time of day hh:mm, and a message A big countdown when the slide is presented, once. A time of day already more than six hours past means tomorrow.
any other text Goes to the slide as data-<name>, for the masters (not title=: the title is the heading or the ::: title zone).

→ Attributes at a Glance, The Presenter's Timer

Zones

A zone is a ::: block that md2slides reads as data rather than showing it where it stands. → Zones

Zone What it does
::: title The slide's title (in a marker deck). Shrunk to fit its room.
::: subtitle The cover's subtitle. Gives way first when room is short.
::: cover-art What else the cover shows (a picture, a drawing): in the room the master keeps for it on its cover, fitted whole, clear of the title. → The Cover's Art
::: presenter, ::: course… (any field) That field, for this slide.
::: header-left … ::: footer-right That margin box, for this slide.
::: card One business card. ::: {.card .tight}: an address (an institution's card) — no role, and the lines close together.
::: background Pictures behind the slide, covering it.
::: layers Pictures stacked: the first sets the size, the rest go over it. With offset=length [length], a cascade: each one that much further right and down (no %).
::: {#refs} Where the list of references goes.
pin=corner (on a picture or a :::) Out of the flow, over the slide: its corner (top-left … bottom-right, center) on the same corner of the slide's content area, or of the block over=id; offset="dx dy" moves it from there (any lengths, negative too). → Pinned Pictures and Blocks
id@x,y, id@x1,y1,x2,y2 (an end) A place on the picture (or the drawing) id, in per cent of it: a point, or a region. As the end of an arrow or a callout; in spot= on a picture, b:@x1,y1,x2,y2 marks a region (ring = an ellipse). With d on, the pointer shows the place over a picture, and a click (a drag) copies it. → Places on a Picture
::: {.callout to=end} A balloon over the slide with a tail to end (an arrow's end: id, id:N, id[text]), standing at=right (left, above, below, above-left…) of it; offset= moves it; pin=/over= place it as a pin. shape=arrow: a thick arrow with the text inside, turned towards end. head=end|start|both|none or line=solid|dashed|dotted: a straight line instead of the tail (start is at the balloon). → Callouts
::: tree A nested list drawn as a tree: each item a node, joined by lines. layout=down (the default: each node over its children) or layout=columns (the root on top, its children in flow=N columns, one bus each; - [Item]{.break} starts a column). Grows with .incremental; spot= marks nodes; arrows end on nodes (to="t[Alarm]", to=t:3). In columns, - [Item]{.under} goes straight under its parent, not one step in. → Trees
::: {.drawing ratio=w/hwidth=N%} Blocks laid where you put them: each ::: {at="x,y,w,h"} in it is placed in per cent of the drawing (a placed block is a drawing for what it holds). .box frames a block (.square, .round, .dashed, .dotted, .bare), .arrow-right, -left, -up, -down make it a block arrow with its text inside. Steps, ids and arrows as anywhere; @ places on the drawing. → Drawings

Blocks

Everything here is written on a ::: block — ::: {.fragment level=2} — and most of it on a bracketed span too.

Revealing

Write What it does
.fragment Shown on its own step (a block, a span, a picture, a list item - [text]{.fragment}).
.incremental Each list item — or each table row — a step of its own.
head= In an incremental table: before (the header first, the default) or with-row (with the first row).
steps= In an incremental table: rows (the default) or cells. An empty cell comes with the one before.
```output {steps=lines} Each line of the output a step; the box comes with the first, an empty line with the one before. steps="1-2,3-4,5": a step per group; a leading 0 is the box alone. A Rexx listing takes it on the ::: around it (::: {steps=lines}); a listing with .numberLines, on its fence. appear=afterPrev on the block: each line comes by itself. → Output Line by Line
[text]{.static} An item of an incremental list that is there from the start.
.afterPrevious, .afterPrev Shown by itself when the step before has finished.
.withPrevious, .withPrev Shown together with the step before.
.afterClick Shown on a press: the default, written out.
appear= afterPrev, withPrev or afterClick for every step inside the block.
group= name: every fragment of this name on one step.
anim= An element effect, for this fragment.
anim-duration= s, for this fragment.
wait-before=, wait-after=, wait= s: a pause before this fragment, after it (before the next step that comes by itself), or both. They time the steps that come by themselves (.afterPrevious); a step that comes with a press comes at once, and the build warns.
spot= beat or beat:lines: joins the spotlight. On a listing, numbered or not, the lines may be N, N-M, [text] (the words, wherever they are, as written) or N[text]. Add caseless to find the words in any case. Other words inside spot=: ink, box, ring, hatch (how a mark looks; wash is the default), pen=1..4 or pen=colour, clear (the beats before this one go out), hide (on a cue or a fragment: the beats it names go out when its step comes, and a later cue lights them again), indent (on a listing: each run of lines is a band that starts at its indentation; bands overlap and darken), and hull (on a tree: one region round the beat's nodes; a cue with hull takes label=). On a tree, the lines are its nodes ([text]: the node with that text; N: the Nth node), marked whole; hatch there is a region round them. On the ::: around a table, the lines are the rows of its body, from 1: a marked row is a band. → Rows of a table On a cue they are for the whole beat. A span of prose with spot= is a mark. → How a Mark Looks, Marking Prose
[]{spot=beat} A cue: the beat fires on this step (with a timing word: .afterPrevious...). anim= says how the marks come in: fade (the default), pen (drawn left to right) or cut; anim-duration=, in s, how long.
[]{.arrow from=idto=id} An arrow between two things of the slide, drawn by itself (horizontal, vertical or centre to centre). An end may be narrowed like a spot: id[text], id:N (a row, when id holds a table). A step like any fragment; with spot=, it joins the beat. How it looks: head=end|start|both|none, line=solid|dashed|dotted, color=colour, width=px, bend=degrees (a curve; positive = to the left), label="text", route=elbow (down, across and down, or across, down and across). → Arrows, How an Arrow Looks

Timing words take any case. On a block that is not a fragment they time the first fragment inside it. → Marking Fragments

Layout

Write Takes What it does
.contents + scale= n > 0 Everything inside at that size (0.8); nested scales multiply. Anything but a positive number is reported and ignored. On any other block (::: {.fragment scale=0.8}) it does the same. A slide with a scale= is not fitted by the runtime.
level= 1, 2, 3... As if at that outline level: size, bullet and indent. Lists, paragraphs, code and tables line up with that level's text. Past 6 it is 6.
indent= length Pushed in from the left.
.plain — A list without bullets; a table without its grid (or header tint). On one item, - [text]{.plain}, that item's bullet.
.tight — Table rows close together; on a .row, no space above it.
cols= 1:5, 2:2:4... The proportions of the columns of the table that follows; shares beyond its columns are room it does not take.
flow= 2, 3... The list in it flowed into that many columns, column by column. With fill=rows, row by row.
::: row + ::: col-N N = 1…12 Columns side by side, in the proportions of their N.
.ruled — On a .row: a line between its columns. Ruled rows one under another make one line.
[text]{.label} — A small bold caption, as a paragraph of its own (Output:).

→ The Grid, Scaling a Block, Indenting a Block

Code

Write What it does
```rexx A Rexx listing, highlighted by the Rexx Parser.
```rexx {program=name} Pieces of one program, spread over slides, highlighted as one.
```rexx {blanks=all} Every blank shown. blanks=data (or just blanks): the blanks that are data — in strings, and the blank that concatenates.
```rexx {.numberLines startFrom=10} Line numbers.
```rexx {executor} A dialect: executor (or ```executor), experimental, unicode (or tutor), cms.
```output What a program printed: not highlighted.
```output {.keys} <Enter> and the like drawn as key caps.
```output {.blanks} Every blank shown.
```output {.file caption="name"} Data kept in a file: a yellow box with the file name inside, on top. The #id, the step and its timing belong to the whole box. → File Boxes
```output {steps=lines} Revealed a line per press, or steps="1-2,3-4" a group per press. → Output Line by Line
```python (any other) Highlighted by Pandoc.
```rexx {caption="Text"} A caption above the listing (any language); see listings: and number-figures:. A picture's caption is its ![text](img/...). The #id, the step and its timing belong to the caption and its listing or picture together.
`say "hi"`{.rexx} Rexx in a sentence, highlighted.
`3 4`{.output} Output in a sentence ({.output blanks=all} shows its blanks).
[Enter]{.key} A key cap in a sentence.

The Rexx listings take the options of the Rexx highlighter (size=, pad=, style=...), and only those: a class on a Rexx fence (.fragment) is dropped, with a warning; put the listing inside ::: fragment instead. A listing with its own style= keeps it when s changes the others. → Rexx Code, and Rexx in Prose, Captions

> Lines

The same as the braces, written as a line that starts with >, just before the thing it is about. A line holds a step word (click, after, with), options (word, word=value), a name (id=#x; used as #x) and a keyword with its operands. A quotation is still a quotation: a line is read as md2slides only when its words are md2slides' (\> starts a paragraph with a >). → The > Lines

Write Is today
> slide logo=x kicker=K + # T # T {.logo-x kicker="K"}; > slide with no #: --- {.slide}
> slide cover / section / card .title-slide / .section / .business-card
> subtitle, > cover-art ::: subtitle, ::: cover-art around the next block
> click, > after, > with, > later .fragment, .fragment .afterPrevious, .fragment .withPrevious, .fragment .later on the next block
> steps, > steps=cells, > steps="1-2,3", each=after .incremental (list, table), steps=lines (listing), appear=afterPrev
> static, > label, > break, > under [item]{.static}, [text]{.label}, [item]{.break}, [item]{.under}
> id=#x #x on the next block
> picture img/a.png (also pic), caption="T" ![](img/a.png), ![T](img/a.png), with the options of the line and of the lines before it in its braces
> columns 9 3 ruled / > next column / > end columns ::: {.row .ruled} + ::: col-9 ... (also cols, col; shares by blanks or commas; spare shares become empty .spare columns)
> group ... > end group ::: {...} ... ::: (also grp)
> use #g at=x,y,w,h, > use f.md2draw#g ::: {#g-2 .use at=...} + the lines of group g again, its names g-2-...
> drawing ratio= width= ... > end drawing, > at=x,y,w,h, > box round arrow=left ::: {.drawing}, at="x,y,w,h", .box .round .arrow-left
> layers offset= ... > end layers, > tree layout= ::: {.layers}, ::: {.tree}
> file=f, numbered=10, blanks, keys, program=p (before a listing) .file caption="f", .numberLines startFrom=10, blanks / .blanks, .keys, program=p
> arrow #a -> #b (<-, <->, --; long: -->...) []{.arrow from=a to=b} (head=start, both, none)
> callout --> #a at=right (--, <--, <-->, or --> with line=: a straight line) ::: {.callout to=a at=right} around the next paragraph (head=none, start, both, end)
> mark id=#nv 2 "NAME", > mark 5-7 box pen=2 spot="nv:2[NAME]; mark-2:5-7" on the listing (looks on the listing, or on the cues when the marks differ)
> click show #nv, > after show 2 pen=2 clear, > click hide #nv []{spot=nv}, []{.afterPrevious spot="mark-2 pen=2 clear"}, []{spot="nv hide"}
> later id=#pic + > click show #pic #out:1-4 {#pic .fragment .later} on the block; []{.fragment show="pic out:1-4"} where the show is. The block comes in with that step; out:1-4 are lines 1-4 of the later block out (made its steps=).
#a:4, #a:4:"w", #t:"Alarm", #p:60,40, #p:20,30,60,70 a:4, a:4[w], t:[Alarm], p@60,40, p@20,30,60,70

Keys

Key What it does
→ ↓ PageDown Space Next step, then next slide
← ↑ PageUp Backspace Back
Alt+PageDown / Alt+PageUp The next / previous slide, complete, at once
Home / End Start / end of this slide
Ctrl+Home / Ctrl+End First / last slide
g, or a digit Go to a slide: pick, type its number, or search
s The Rexx colours
d Diagnose: the deck's problems
a About this deck
v The Markdown of this slide (view-source: yes only)
Shift+V The Markdown beside the slide, as you go; drag the bar between them (view-source: yes only)
t The timer: time elapsed and left, the seconds running
r Start the timer; twice, restart it
p Pause (how long? minutes, a time, a message, or nothing), or resume
c A countdown over the slide, or none
m The time on this slide, top left
h Time per slide and section; runs compared; export and import
b / w Black / white screen
f Full screen (starts the timer)
Esc Clear the screen, close what is open (every dialog has a ×, too)
F1 The keys, on screen (in the go dialog, the dialog's own)

A click goes on (on the left eighth of the screen, back); a drag selects text instead. → Navigating a Deck

On a touch screen: a tap is a click; a swipe is the next or previous step; a tap with two fingers is F1, whose keys are buttons; the round button in the bottom right corner opens the touch bar (first, previous slide, back, next, next slide, last, g, F1). → Without a Keyboard

Skin Properties

A skin is a style sheet that sets these on :root. All are optional; the deck has a default for each.

Property Default What it sets
--skin-font-prose Helvetica Neue, Helvetica, Arial, sans-serif The text face
--skin-font-mono Consolas, Courier New, monospace The code face
--skin-font-title — The face of a business card's name
--skin-body-size — (the browser's size; code is figured from 34px) The text size, from which the others follow: every skin should set it
--skin-code-ratio 0.7 Code size against text size
--skin-code-size text size × ratio Code size, fixed
--skin-inline-mono-scale 1 Code in text (mentions, code spans, output mentions) against the text around it
--skin-fg, --skin-bg #1a1a1a, #ffffff Text and ground
--skin-accent #00529B The house colour: rule, progress bar, table header tint
--skin-rule the accent The line under the title and the table header
--skin-deep — Labels on a business card
--skin-title-weight 700 The title's weight
--skin-output-bg #e8e8e8 Behind output
--skin-othercode-bg transparent Behind code that is not Rexx
--skin-table-rule the text colour, faint A table's grid
--skin-table-head-bg, --skin-table-head-fg the accent, faint; the text colour A table's header row
--skin-plain-table-head-bg transparent The header row of a .plain table
--skin-key-border, --skin-key-bg the text colour; transparent Key caps
--skin-pad-top, --skin-pad-x 42px, 56px The slide's inner margins
--skin-header-height, --skin-footer-height 0px, 64px The margin bands
--skin-margin-size, --skin-footer-muted 15px, #808080 Text in the margin boxes
--skin-header-left … --skin-footer-right — Default box templates, as quoted strings
--skin-kicker-top 14px Where the kicker sits
--skin-anim-duration-page, --skin-anim-duration-elem 0s, 1s Default tempos
--skin-arrow-color, --skin-arrow-width, --skin-arrow-gap the accent, 3px, 4px Arrows: colour, stroke (the head grows with it), and how far short of each end they stop
--skin-arrow-label-size, --skin-arrow-label-halo ¾ of --skin-body-size, --skin-bg Arrows: the size of a label=, and the ground behind it
--skin-tree-node-border, --skin-tree-node-border-width, --skin-tree-node-radius the accent, 2px, .35em Trees: a node's frame
--skin-tree-node-bg, --skin-tree-node-fg, --skin-tree-node-padding, --skin-tree-node-width --skin-bg, the text colour, .12em .5em, 0 (5.5em in columns) Trees: a node's ground, text, room inside, and least width
--skin-tree-node-opacity .85 (the slide shows through) Trees: how much a node's ground hides what is under it
--skin-tree-line, --skin-tree-line-width the text colour, 2px Trees: the lines
--skin-tree-gap-x, --skin-tree-gap-y, --skin-tree-indent, --skin-tree-row .6em, 1.1em, 1.4em, .35em Trees: room side by side, down to the children, one step in, between rows
--skin-spot-hull-margin, --skin-spot-hull-radius, --skin-spot-hull-label-size 6px, 10px, .8em A hull: how far round the nodes, its corners, its label
--skin-spot-area-frame, --skin-spot-area-line 3px, solid A marked region of a picture: its frame, and its line (dashed, dotted)
--skin-box-bg, --skin-box-border, --skin-box-border-width, --skin-box-radius, --skin-box-opacity transparent (the accent, for a block arrow), the accent, 2px, .3em, .85 (the slide shows through) Drawings: a box (.box) and a block arrow (.arrow-right...): its ground, frame and corners
--skin-callout-bg, --skin-callout-border, --skin-callout-border-width, --skin-callout-fg, --skin-callout-opacity the accent faint, the accent, 2px, the text colour, .85 (the slide shows through) Callouts: the balloon
--skin-callout-size, --skin-callout-width, --skin-callout-radius .65, 50%, .6em Callouts: the text (a share of the body text), the widest, the corners
--skin-callout-line-width --skin-arrow-width (3px) Callouts with head= or line=: the line, in the border's colour
--skin-callout-arrow-bg, --skin-callout-arrow-fg the accent, --skin-bg Callouts with shape=arrow
--skin-column-rule, --skin-column-rule-width the text colour, 2px The line between the columns of a .ruled row
--skin-file-bg, --skin-file-name rgba(255,204,51,0.25), #8c8c8c File boxes: the box, and the file name inside it
--skin-pandoc-style pygments Pandoc's colours for other code

→ Skin and Masters