Unify Applications
Logo
Media, PDF Viewer & Lottie

Media, PDF Viewer & Lottie

Logo

7 mins READ

The Media block displays a set of images and videos as a gallery — a grid or list of tiles that open in a full-screen viewer on click. Content comes in two modes: Static (you supply URLs or bind an array) and Mapped (each media attribute is extracted from fields in your bound data).

media_pdf_lottie.png
media_pdf_lottie.png

Media Source Modes

ModeHow data is providedUse case
StaticSupply URLs directly or bind an array of URLsFixed asset lists, simple bound arrays from APIs
MappedBind an array in Data, then map each media attribute (Id, Name, url, Mime Type, Caption, Loading) to fields of its itemsRecords with attachment arrays, custom data shapes where URL/type/name are separate fields

Media — Content Properties

Setting

Type

Default

Appears When

Description

Type

Static | Mapped

Static

Always

Whether media items come from direct URLs or from mapped fields of bound records

Data

URL string, array of URLs, or array of objects (bindable)

—

Always

The media data. In Static mode, a single URL, a URL array, or an array of media objects. In Mapped mode, the array of records to show, one gallery tile per item

Id

field

—

Type = Mapped

Field that identifies each item

Name

field

—

Type = Mapped

Field with the item's display name

url

field

—

Type = Mapped

Field with the media URL

Mime Type

field

—

Type = Mapped

Field with the item's MIME type (for example, image/png or video/mp4), which tells the gallery whether it's an image or a video

Caption

field

—

Type = Mapped

Field with the item's caption

Loading

field

—

Type = Mapped

Field that marks an item as still loading

Permissions

permission rule

—

Always

Restrict who sees the block

The Media block has no events. Clicking a tile opens the built-in full-screen viewer.

Media — Appearance Properties

Setting

Type

Default

Description

Display

List | Grid

Grid

Grid shows tiles in a grid; List shows one item per row

Variant

Compact | Spacious

Spacious

Grid only. The tile style

Size

xs | sm | md | lg

lg (new blocks)

Grid only. The tile size

Columns

number

—

Compact variant only. Number of columns

Maximum Visible Items

number

4

How many items the gallery shows up front

Show Caption

boolean

Off (new blocks)

Spacious variant only. Show each item's caption

Visibility

conditions

—

Show or hide the block

Styles

style set

—

Padding, margin, height, width, max width and color

Media Example: Show a Record's Attachments (Mapped Mode)

  1. Add a Media block to the record's detail panel.

  2. Set Type to Mapped.

  3. Bind Data to the attachments array from your data source, for example {{ ds_ticket.data.attachments }}. The path depends on your data source's response.

  4. Under Mapped Media, map url to the field that holds each file's address and Mime Type to the field that holds its file type, so the gallery knows which items are videos. Map Name and Caption if your data has them.

  5. Preview the page. Each attachment shows as a tile, and clicking one opens the full-screen viewer.

Note: If your items already use the keys id, name, url, caption, mimeType and isLoading, you don't need to map anything. If Data holds plain URL strings, the mapping is skipped and each string is used as the URL.

Video Block

The Video block embeds a single video player. It supports hosted video URLs, autoplay, loop, a thumbnail image (web apps) and player controls. Use it for a full standalone video experience; for a mixed gallery of images and videos, use the Media block instead.

Video — Key Properties

Setting

Type

Default

Description

URL

URL string (bindable)

—

The video file URL. Supports mp4, WebM, and other browser-supported formats

Thumbnail URL

URL string (bindable)

—

Web apps only. Image shown before playback starts. Leave empty to use the first video frame when available

Autoplay

boolean

Off

Starts the video automatically when the page loads. Browser policies may restrict autoplay with sound

Loop

boolean

Off

Restarts the video automatically after it finishes

Simultaneous play

boolean

Off

On: multiple videos can play at the same time. Off: playing this video pauses others that are playing

Allow download

boolean

On

Web apps only. Shows "Download video" in the player settings. On by default while Show Controls is on; turning Show Controls off turns it off. Turning it on also turns on Show Controls

Events

event list

—

On Click

Permissions

permission rule

—

Restrict who sees the block

Show Controls

boolean (Appearance)

On

Show the player controls

Controls Size

xs | sm | md | lg (Appearance)

sm

Size of the player controls. Appears when Show Controls is on

Visibility

conditions (Appearance)

—

Show or hide the block

Video — Methods

Method

Description

Play Video

Start or resume playback

Pause Video

Pause playback

Restart Video

Play the video from the beginning

Change playback speed

Set the Playback Speed, from 0.25x to 2x

Note: Browsers may block autoplay with sound. If the video doesn't start on its own, let the user start it from the player controls, or call the Play Video method from a click action.

Audio Player Block

The Audio Player block plays an audio file from a URL and shows it as an interactive waveform. Users can play and pause, click the waveform to jump to a position, and click timestamp markers you place on the track. Use it for voice recordings, calls, podcasts, or any audio content bound from your data.

Audio Player — Key Properties

Setting

Type

Default

Description

URL

URL string (bindable)

—

The audio file to play

Marker Mode

Manual | Mapped

Manual

Where the timestamp markers come from: a list you build (Manual) or bound data (Mapped). Shown for the Expanded layout

Markers

marker list or mapped fields

—

Manual: each marker has a timestamp (in seconds), a color and a size. Mapped: bind Data and map Id and Timestamp, then set Color and Size. Shown for the Expanded layout

Slots

slots

—

Header, Left, Right and Footer areas of the player, where you can add your own blocks

Add-ons

add-on toggles

Panning Waveform on

Panning Waveform: a zoomed-out strip for moving around long audio. Expanded layout only

Interactions

event list

—

On Marker Click, On Current Time Change, On Seek

Permissions

permission rule

—

Restrict who sees the block

Layout

Expanded | Compact | Classic (Appearance)

Expanded

Expanded shows the full waveform player; Compact shows a single row with a play button, waveform and timer

Played Color / Unplayed Color

color (Appearance)

—

Waveform colors. Compact layout only

Visibility

conditions (Appearance)

—

Show or hide the block

Audio Player — Events

Event

Fires when

On Marker Click

The user clicks a timestamp marker

On Current Time Change

The playback position advances

On Seek

The user clicks the waveform to jump to a position

PDF Viewer Block

The PDF Viewer block embeds a PDF document directly in the page, allowing users to read, scroll, and navigate pages without leaving the app. Supports URL-sourced and uploaded PDFs, page navigation controls, and zoom.

PDF Viewer — Key Properties

Setting

Type

Default

Description

PDF Source

URL | Upload

URL

Whether the PDF comes from a URL (bindable) or a file you upload in the builder

Alt Text

string

—

Text alternative for the document

Slots

Toolbar

—

Toolbar area where you can add your own blocks

Add-ons

add-on toggles

—

Highlight, for marking areas of the document. Web apps only; not offered in mobile apps

Interactions

event list

—

On PDF Load

Permissions

permission rule

—

Restrict who sees the block

Scale Page To

Width | Height (Appearance)

—

Fit each page to the viewer's width or height

Page Layout

Continuous | Cards (Appearance)

Continuous

Show pages as one continuous scroll or as separate cards

Styles

style set (Appearance)

—

Width and height (set an explicit height so the viewer has a scrollable area), stroke, radius and more

Warning: Set an explicit height: The PDF Viewer needs a defined height to create a scrollable viewing area. Without a height, it may collapse to zero or show only a single page. Use Styles → Height (e.g., 600px or 80vh).

PDF Viewer — Methods

Method

Description

Go to Page

Jump to a page number

Go to Next Page / Go to Previous Page

Move one page forward or back

Zoom In / Zoom Out

Change the zoom level

Rotate Left / Rotate Right

Rotate the document

Download File

Download the PDF

Go to Highlight

Scroll to a highlight

PDF Viewer — Exposed State

Binding

Type

Description

{{ id.currentPage }}

number

The page in view, starting at 1. Updates as the reader scrolls and when a page method runs

{{ id.totalPages }}

number

Total number of pages. Set once, when the document loads

{{ id.currentZoom }}

string

The zoom level as text with a percent sign, for example "100%"

Replace id with your PDF Viewer's block ID. These values don't update in mobile apps.

Lottie Animation Block

The Lottie Animation block renders Lottie animations — lightweight, scalable vector animations — directly in the page. It starts playing automatically, and you control whether it plays once or loops, and how fast. Use for loading animations, success celebrations, empty-state illustrations, or any motion graphic.

Lottie Animation — Key Properties

Setting

Type

Default

Description

Lottie Animation Source

URL | Upload

URL

A URL to the animation file, or an uploaded .json or .lottie file

Permissions

permission rule

—

Restrict who sees the block

Animation Type

Once | Loop (Appearance)

Loop

Play the animation once, or loop it

Speed Multiplier

number (Appearance)

1

Playback speed. 1 = normal, 2 = double speed, 0.5 = half speed

Visibility

conditions (Appearance)

—

Show or hide the block

Styles

style set (Appearance)

—

Width and height of the animation canvas, margin, padding and more. Lottie scales to fit

The Lottie Animation block has no methods, so you can't play, pause or stop it from an action. It starts playing as soon as it appears on the page.

Which Block to Use for Media

You want to…Use
Display a browsable gallery of images and videosMedia
Show one standalone video with a full playerVideo
Play an audio file with controlsAudio Player
Embed a PDF document in the pagePDF Viewer
Display a Lottie JSON vector animationLottie Animation
Show one static imageImage
Display a swipeable set of media slidesCarousel
FAQs

My PDF Viewer shows only a blank area. What is wrong?

The most common cause is a missing explicit height. PDF Viewer does not auto-size to its content — you must set a fixed height (e.g., 600px or 80vh) on the block or its parent container. The second common cause is a CORS restriction on the PDF URL; host the PDF on the same origin or a CDN that sets permissive CORS headers.

Why doesn't my video autoplay?

Browser policies may block autoplay with sound. If the video doesn't start on its own, let the user start it from the player controls, or call the Play Video method from a button's On Click action.

How do I trigger a Lottie animation from a button click?

The Lottie Animation block has no play or stop methods, and it starts playing as soon as it appears. To run it on demand, hide the block with a visibility condition and make that condition true from the button's On Click action. Set Animation Type to Once if it should play a single time.

Can I show a thumbnail image before a Video block loads?

Yes, in web apps. Set Thumbnail URL on the Video block to the image you want shown before playback starts. If you leave it empty, the first video frame is used when available. Mobile apps don't have this setting.