Dynamic Content
Feature in preview mode
This feature is in preview mode. To enable it, you must turn it on in the Previews menu on your team settings. Features in preview mode are experimental and may be volatile. Proceed with caution when using experimental features in apps with users.
The Dynamic Content component renders UI elements based on JSON. This enables programmatic control over what content appears in an app, making it ideal for displaying AI-generated responses, API results, or data-driven layouts.
Adding a Dynamic Content component
In the Layout Editor, select the screen where the component should appear.
Click the plus symbol in the Components panel.
Configuring Dynamic Content
The Descriptions field accepts a column containing JSON that defines which components to render. The JSON can be a single component object or an array of multiple components.
Single component example:
Multiple components example:
Visibility Conditions control when the component appears. Add conditions based on column values or user properties to show the component only when specific criteria are met.
Use the Notes field to add internal documentation about the component’s purpose or the expected JSON format.
Component types
The Dynamic Content component supports six element types, each with specific properties and requirements.
text
text displays plain text with optional styling. The JSON has the following requirements:
kindmust betext.textcontent should be a string.- Use
styleto change the text appearance. Valid options are:
largeregularsmallfootnotemetaTextheadlineXSmallheadlineSmallheadlineMediumheadlineLargeheadlineXLarge
rich-text displays formatted text using HTML or Markdown. The JSON has the following requirements:
kindmust berich-text.textshould contain your HTML or Markdown content.
image
image displays an image from a URL. The JSON has the following requirements:
kindmust beimage.imageshould be the image URL.
There are several optional parameters you can add. style, size , aspectRatio, and imageFill can all be specified as a string. fullWidthOnMobile and zoomable can be specified as a true/false boolean value. Valid values for each option that accepts a string are:
Style
image-style-rectilinearimage-style-circle
Size
size-smallsize-mediumsize-full
Aspet Ratio
aspect-autoaspect-nine-by-sixteenaspect-squareaspect-four-by-threeaspect-sixteen-by-nineaspect-three-by-one
ImageFill
image-fill-coverimage-fill-contain
hint
hint displays a callout message. The JSON has the following requirements:
kindmust behint.textshould be a string containing the message content.- Optionally, use
moodto set the tone style of the hint (Default, neutral, success, warning, or danger).
big-numbers
big-numbers displays prominent numeric values. The JSON has the following requirements:
kindmust bebig-numbers.itemsshould be an array of objects. Each item can include more detail as a string:name: the label for the valuevalue: the displayed number or valuedescription: additional context
- Optionally, use
titleto add a section heading.
list
list displays a list of items. The JSON has the following requirements:
kindmust belist.itemsshould be an array of objects. Each item can include more detail as a string:title: the item titlesubtitle: the item subtitleimage: an image URLemphasis: highlighted text
- Optionally, use
titleto add a heading to the list.
table
table displays tabular data as rows of key-value records. The JSON has the following requirements:
kindmust betable.itemsshould be an array of objects where keys are column names and values are strings or numbers.- Optionally, use
titleto add a table heading.
Frequently Asked Questions
Which plans include Dynamic Content?
Dynamic Content is available on business and enterprise plans. Check out our pricing to find the right plan for you.
What happens if the JSON is invalid?
The component displays an error message: “Could not parse Glide components from your descriptions.” Verify the JSON syntax and ensure all required fields are present.
Can I nest components inside each other?
No, the Dynamic Content component renders a flat list of components. Each element in the JSON array is rendered sequentially.