Glide HomepageOpen Glide

Getting Started

Quickstart
Agent
Intro to Layout
Intro to the Data Editor
Data to Layout
Intro to Actions
Intro to Workflows
App Settings
Templates

Essentials

Data Sources
Basic Columns
Components
AI Custom
Action Row
Audio
Big Numbers
Breadcrumbs
Button
Charts
Checkbox and Switch
Choice
Collections
Contact Form
Container
Date Pickers
Dynamic Content
Entry
Fields
File and Image Pickers
Form Container
Hint
Image
Link
Location
Map
Notes
Progress Bar
Rating
Rich Text
Scanner
Separator
Signature
Spinner
Stopwatch
Tabs Container
Text
Title
Video
Voice Transcription
Web Embed
Security and User Data
Users
Publishing and Sharing

Automation

Actions
AI
Computed Columns
Integrations
Workflows
View API Docs

Use Cases

Forms
Images in Glide
Conditions, Filtering, and Visibility
Duplicating Apps

Reference

Account
User Experience
Values
A new Glide, built for the AI age

A new Glide, built for the AI age.

The new Glide combines the power of generative AI with the visibility and control of spreadsheets and no-code.

  • Components
  • Dynamic Content

Dynamic Content

Render UI components dynamically from JSON data stored in a column.

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

  1. In the Layout Editor, select the screen where the component should appear.

  2. Click the plus symbol in the Components panel.

  3. Select Dynamic Content from the Custom section.

  4. Configure the Descriptions field to point to a column containing JSON, or enter JSON manually.

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:

{ "kind": "text", "text": "Hello" }

Multiple components example:

[ { "kind": "text", "text": "Hello" }, { "kind": "image", "image": "https://example.com/photo.png" } ]

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 seven element types, each with specific properties and requirements.

text

text displays plain text with optional styling. The JSON has the following requirements:

  1. kind must be text.

  2. text content should be a string.

  3. Use style to change the text appearance. Valid options are:

  • large

  • regular

  • small

  • footnote

  • metaText

  • headlineXSmall

  • headlineSmall

  • headlineMedium

  • headlineLarge

  • headlineXLarge

{ "kind": "text", "text": "Welcome to Glide", "style": "headlineLarge" }

rich-text displays formatted text using HTML or Markdown. The JSON has the following requirements:

  1. kind must be rich-text.

  2. text should contain your HTML or Markdown content.

{ "kind": "rich-text", "text": "<b>Bold</b> and <i>italic</i>" }

image

image displays an image from a URL. The JSON has the following requirements:

  1. kind must be image.

  2. image should 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-rectilinear

  • image-style-circle

Size

  • size-small

  • size-medium

  • size-full

Aspet Ratio

  • aspect-auto

  • aspect-nine-by-sixteen

  • aspect-square

  • aspect-four-by-three

  • aspect-sixteen-by-nine

  • aspect-three-by-one

ImageFill

  • image-fill-cover

  • image-fill-contain

{ "kind": "image", "image": "https://example.com/banner.png", "size": "M", "aspectRatio": "16:9", "zoomable": true }

hint

hint displays a callout message. The JSON has the following requirements:

  1. kind must be hint.

  2. text should be a string containing the message content.

  3. Optionally, use mood to set the tone style of the hint (Default, neutral, success, warning, or danger).

{ "kind": "hint", "text": "This action cannot be undone.", "mood": "warning" }

big-numbers

big-numbers displays prominent numeric values. The JSON has the following requirements:

  1. kind must be big-numbers.

  2. items should be an array of objects. Each item can include more detail as a string:

    • name: the label for the value

    • value: the displayed number or value

    • description: additional context

  3. Optionally, use title to add a section heading.

{ "kind": "big-numbers", "title": "Monthly Stats", "items": [ { "name": "Users", "value": "1,204", "description": "+12% from last month" }, { "name": "Revenue", "value": "$45K" } ] }

list

list displays a list of items. The JSON has the following requirements:

  1. kind must be list.

  2. items should be an array of objects. Each item can include more detail as a string:

    • title: the item title

    • subtitle: the item subtitle

    • image: an image URL

    • emphasis: highlighted text

  3. Optionally, use title to add a heading to the list.

{ "kind": "list", "title": "Team Members", "items": [ { "title": "Alice", "subtitle": "Engineering", "image": "https://example.com/alice.png" }, { "title": "Bob", "subtitle": "Design" } ] }

table

table displays tabular data as rows of key-value records. The JSON has the following requirements:

  1. kind must be table.

  2. items should be an array of objects where keys are column names and values are strings or numbers.

  3. Optionally, use title to add a table heading.

{ "kind": "table", "title": "Inventory", "items": [ { "Product": "Widget", "Price": 9.99, "Stock": 142 }, { "Product": "Gadget", "Price": 24.99, "Stock": 38 } ] }

Frequently Asked Questions

Have a question about Dynamic Content? Ask the Glide community.
Need more help? Hire an Expert.

Updated more than a week ago

Previous

Date Pickers

Next

Entry

Was this article helpful?
Exit Preview Mode