Customize slide appearance with the :background option on Podium.Slide.new/2,
and add presenter notes with Podium.set_notes/2.
Try it yourself
Run mix run demos/slide-backgrounds-and-notes.exs to generate a presentation with all the examples from this guide.
slide =
Podium.Slide.new(background: "003366")
|> Podium.set_notes("Discuss Q1 results and highlight the 20% growth.")Slide Backgrounds
By default, slides follow the slide master's background -- typically white.
Override this per-slide by passing the :background option to Podium.Slide.new/2.
Solid Color Background
Pass an RGB hex string:
slide =
Podium.Slide.new(background: "1A1A2E")
|> Podium.add_text_box("Dark Theme Slide",
x: {3, :inches}, y: {3, :inches},
width: {7, :inches}, height: {1.5, :inches},
font_size: 36, alignment: :center)
Gradient Background
Pass a {:gradient, stops, opts} tuple:
slide = Podium.Slide.new(
background: {:gradient, [{0, "000428"}, {100_000, "004E92"}], angle: 5_400_000})
The :angle option is in 60,000ths of a degree. 5_400_000 produces a top-to-bottom
gradient.
Pattern Background
Pass a {:pattern, preset, opts} tuple:
slide = Podium.Slide.new(
background: {:pattern, :lt_dn_diag, foreground: "CCCCCC", background: "FFFFFF"})
All 54 pattern presets from Podium.Pattern are available. See the
Shapes and Styling guide for common presets.
Picture Background
Pass a {:picture, binary} tuple with the image data:
bg_image = File.read!("conference_hall.jpg")
slide =
Podium.Slide.new(background: {:picture, bg_image})
|> Podium.add_text_box(
[{[{"Annual Conference 2026", bold: true, font_size: 44, color: "FFFFFF"}],
alignment: :center}],
x: {1, :inches}, y: {2.5, :inches},
width: {11, :inches}, height: {2, :inches})
Default Behavior
When no :background option is set, the slide inherits the slide master's
background. This is the standard behavior for consistent-looking presentations.
Speaker Notes
Speaker notes appear in PowerPoint's Presenter View and in the notes pane
below the slide editor. Add them with Podium.set_notes/2:
prs = Podium.new()
slide =
Podium.Slide.new(:title_content)
|> Podium.set_placeholder(:title, "Q1 Financial Results")
|> Podium.set_notes(
"Key talking points:\n" <>
"- Revenue grew 20% quarter-over-quarter\n" <>
"- New enterprise accounts: 15\n" <>
"- Churn rate decreased to 2.1%")
prs = Podium.add_slide(prs, slide)Notes text is a plain string. Use \n for line breaks within the notes.
Notes in Presenter View
Speaker notes appear below the current slide in Presenter View, which is visible only to the presenter (not the audience). They also print when you select "Notes Pages" in PowerPoint's print settings.
Tip
Use speaker notes to store talking points, data sources, and context that the audience doesn't need to see on the slide itself.
Podium automatically creates the notes master parts in the .pptx package
the first time set_notes/2 is called on any slide.
For end-to-end examples that combine backgrounds, notes, and other features, see the Building a Report recipe.