Skip to content

Elements and styles (advanced)

For most slides, use the Slide() builder (title, text, code, image, fragment, etc.). This page covers low-level Element subclasses when you need extra control.

When to use elements

Need Prefer
Title, text, bullets slide.title, slide.text, slide.bullets
Code slide.code()
Image slide.image()
Fragment slide.fragment()
Custom HTML structure Element, Stack, HStack, …

Image elements

from pyreveal import ImageElement, Presentation, Slide, Style

slide = Slide()
slide.heading("Chart")
slide.element(
    ImageElement(
        image_url="assets/chart.png",
        alt_text="Sales chart",
        style=Style(width="480px", margin="0 auto"),
    )
)
Presentation("Talk").add(slide).save("deck.html")

When you call save(), image paths referenced by elements are copied into the output assets/ directory.

Video elements

from pyreveal import Slide, VideoElement

slide = Slide()
slide.heading("Demo")
slide.element(VideoElement(video_url="assets/demo.mp4"))

Code and fragments via elements

from pyreveal import CodeElement, Fragment, FragmentEffect

slide.element(CodeElement("print(1)", language="python", line_numbers=True))
slide.element(Fragment("Step one", effect=FragmentEffect.GROW))

Requires Plugin.HIGHLIGHT for code blocks.

Generic elements

Element supports arbitrary tags, attributes, nested children, data_id for auto-animate, and inline CSS via Style.

See Layouts for Stack, HStack, VStack, and FitText.