Bubble Docs
  • Introduction
  • New? Start Here
  • What is Bubble?
  • The Glossary
  • User manual
    • Getting started
      • What is Bubble?
      • Building for...
        • Web
        • Native iOS and Android
          • Mobile app quick start guide
          • What is a native mobile app?
          • Native mobile vs. web development
          • Differences in native and web elements
          • Native mobile app terminology
      • Building your first app
        • Planning features
        • Database structure
        • Design and UX
        • eCommerce and payments
          • Shopping cart
          • Checkout page
          • One-time payments
          • Subscriptions
          • Marketplace
      • Creating and managing apps
      • The Bubble editor
        • Tabs and sections
          • Design tab
            • The element tree
            • The property editor
          • Workflow tab
          • Data tab
          • Styles tab
          • Plugins tab
          • Settings tab
            • Application settings
              • Custom headers/body
              • Visual settings
              • Social media sharing
              • Translating your app
              • Email settings
              • Collaboration
            • Custom domain and DNS
          • Logs tab
        • Tools
          • Key features
          • The search tool
          • The Issue Checker
          • The element tree
          • The element property editor
          • The debugger
          • Notes
        • Previewing your app
      • Transitioning to Bubble from...
        • JavaScript
        • HTML and CSS
        • SQL
    • Design
      • Elements
        • Web app
          • The page
          • Containers
            • Groups
            • Repeating groups
            • Table elements
            • Popups
            • Floating groups
            • Group focus
          • Visual elements
          • Input forms
            • Text and numbers
            • Dates and time
            • File uploads
            • Selection controls
        • iOS and Android app
          • The view
          • Containers
          • Visual elements
          • Input forms
          • Mobile reusable elements
        • The element hierarchy
          • The element tree
        • Reusable Elements
      • Styling
        • Color variables
        • Font variables
        • Styles
        • Custom Fonts
      • Responsive design
        • Building responsive pages
        • Legacy articles
          • The Basics (Legacy)
          • Building Responsive Pages (Legacy)
          • Migrating Legacy Pages
          • Tips When Designing (Legacy)
      • Templates
      • The Component Library
      • Importing from Figma
    • Data
      • The database
        • Data types and fields
        • Creating, saving and deleting data
        • Finding data
        • Displaying data
        • Protecting data with privacy rules
        • The database editor
        • Export/import data
          • Exporting data
          • Importing data (CSV)
        • Working with location data
        • Using Algolia
        • Database structure by app type
          • Marketplace Apps
          • Directory & Listings Apps
          • Social Network Apps
          • SaaS Apps
          • Project Management Apps
          • CRM Apps
          • Professional Services Apps
          • On-demand Apps
          • Documentation/ CMS Apps
          • Applicant Tracking System (ATS) Apps
          • Portfolio Apps
          • Gallery Apps
          • Online Store / Ecommerce Apps
          • Blog Apps
          • Messaging App
          • Dashboards
          • Building Block Apps
          • Bubble as a backend
      • Files
      • Images
      • Static data
        • App texts (translations)
        • Option sets
      • Temporary data
        • Custom states
        • URL parameters
      • User accounts
        • Authentication plugins
          • Facebook plugin
          • Fitbit plugin
          • Google plugin
          • Instagram plugin
          • LinkedIn plugin
          • Pinterest plugin
          • Slack plugin
          • Wistia plugin
          • YouTube plugin
        • Cookies set by Bubble
      • Time, dates and time zones
    • Logic
      • The frontend and backend
      • Workflows
        • Events
          • Frontend events
            • Recurring workflows
            • Custom events
          • Backend events
            • Database trigger events
        • Actions
        • API Workflows
      • Dynamic expressions
      • Conditions
      • Navigation
        • Single-page applications (SPA)
        • Multi-page applications
        • Page slugs
      • Device resources
        • Location services
        • Camera/photo library
    • Workload
      • Understanding workload
        • Activity types
        • The workload calculation
        • Client-side and server-side processing
      • Tracking workload
        • Measuring
          • Using App Metrics
        • Monitoring
          • Workload notifications
          • Infinite recursion protection
      • Optimizing workload
        • Optimization framework
        • Optimization checklist
          • Page load
          • Searches
          • Workflows and actions
          • Backend workflows
        • Agency showcases
          • Minimum Studio
          • Neam
          • Support Dept
    • Security
      • Bubble's security features
      • Planning app security
      • Client-side and server-side
      • Bubble account security
      • App security
      • Page security
      • Database security
      • API security
        • API Connector security
        • Data API security
        • Workflow API security
      • Flusk
        • Overview
        • Flusk plan features
        • Getting started with Flusk
        • Flusk security tools
          • The Issues Explorer
          • Issue details
          • Tools and settings
            • Pages rating
            • Database rating
        • Flusk FAQ
      • Cookies
      • Security checklist
    • Previewing your app
      • Previewing a web app
      • Previewing a mobile app
    • Publishing your app
      • Web app
      • Native mobile app
        • Global native mobile settings
        • iOS App Store
        • Google Play Store
        • Publishing FAQ
    • AI
      • Generate apps with AI
        • About AI app generation
      • AI page designer
      • Connect to AI agents
    • Maintenance
      • Collaborators
      • Version control
        • Best practices: Version control
        • Transitioning from the legacy version control
        • Terminology: Version control
        • Version Control (legacy)
      • Commenting
      • Database maintenance
        • Copying the database
        • Restoring database backups
        • Bulk operations
          • Bulk operation methods compared
        • Wiping change history
      • Performance
        • Hard limits
        • Capacity Usage (legacy)
        • Notes on queries
      • SEO
        • Introduction to SEO
        • SEO: App
        • SEO: Page
      • Testing and debugging
        • Introduction to testing and debugging
        • The debugger
        • The server logs
        • Supported browsers
      • API workflow scheduler
    • Integrations
      • API
        • Introduction to APIs
          • What is a RESTful API?
        • The Bubble API
          • Bubble API terminology
          • Authentication
            • How to authenticate
            • No authentication
            • As a User
            • As an admin
          • The Data API
            • Data API Privacy Rules
            • Data API endpoints
            • Data API requests
          • The Workflow API
            • Workflow API privacy rules
            • Workflow API endpoints
            • API workflows
              • Creating API workflows
              • Scheduling API workflows
              • Recursive API workflows
              • API Workflow Scheduler
              • Case: Stripe notifications
        • The API Connector
          • Authentication
          • API Connector security
          • API guides
            • OpenAI
              • Authentication
              • Calls
                • ChatGPT
                  • Chat
            • Google Translate
              • How to setup Google API keys
          • Streaming API
        • API security
        • Plugins that connect to APIs
        • API Glossary
      • Plugins
        • What Plugins Can Do
        • Installing and using Plugins
        • Authentication plugins
        • Special Plugins
      • SQL Database Connector
      • Bubble App Connector
      • WorkOS
        • WorkOS SSO
        • WorkOS API
    • Infrastructure
      • Sub-apps
      • Bubble release tiers
      • Hosting and scaling
        • How Bubble hosting works
        • Scaling with Bubble
        • CDN (Cloudflare)
        • Bubble app names
        • Domain and DNS
      • Compliance
        • GDPR
        • SOC 2 Type II
        • HIPAA
        • Other frameworks and standards
    • Bubble for Enterprise
      • Hosting and infrastructure
        • Dedicated instance
          • The Dedicated editor experience
          • Technical specs
          • Main cluster dependencies
          • Customizable options
          • Migration process
            • Pre-migration
            • During migration
            • Post-migration
      • Security and compliance
        • Single sign-on (SSO)
        • GDPR
        • SOC 2 Type II
        • HIPAA
        • Other frameworks
        • Bubble's security features
      • Admin and collaboration
      • Priority support
      • Billing and Payment Guideline for Dedicated Instances
  • Core Reference
    • Using the core reference
    • Bubble's Interface
      • Design tab
      • Design tab (Legacy)
      • Workflow tab
      • Data tab
      • Styles tab
      • Styles tab (Legacy)
      • Plugins tab
      • Settings tab
      • Logs tab
      • Template tab
      • Toolbar
      • Top and context menu options
      • Deployment and version control
        • Deployment & Version Control Dropdown (legacy)
      • Notes
    • Elements
      • Native mobile elements
        • View element
        • List component
      • General properties
      • General properties (Legacy)
      • Styling properties
      • Styling Properties (Legacy)
      • Responsive Properties
      • Responsive Properties (Legacy)
      • Conditional formatting
      • States
      • Page Element
        • Page Element (Legacy)
      • Visual Elements
      • Containers
      • Container Layout Types
      • Containers (Legacy)
      • Input Forms
      • Reusable Elements
      • Element Templates (legacy)
    • Workflows
    • Events
      • General events
      • Element events
      • Custom events
      • Recurring event
      • Database trigger event
    • Actions
      • Account
      • Navigation
      • Data (things)
      • Email
      • Element
      • Custom
    • On-device resources
    • Data
      • Data Sources
      • Operators and comparisons
      • Search
      • Privacy
    • Styles
    • API
      • The Bubble API
        • The Data API
          • Authentication
          • Data API endpoints
          • Data API requests
        • The Workflow API
      • The API Connector
        • Authentication
        • Adding calls
    • Bubble-made Plugins
      • AddtoAny Share Buttons
      • Airtable
      • API Connector
      • Blockspring
      • Box
      • Braintree
      • Bubble App Connector
      • Chart.js
      • Circle Music Player
      • Draggable Elements
      • Dropzone
      • Facebook
      • Fitbit
      • Full Calendar
      • Google
      • Google Analytics
      • Google Optimize
      • Google Places
      • Ionic Elements
      • iTunes
      • Slidebar Menu
      • LinkedIn
      • Localize Translation
      • Mixpanel
      • Mouse & Keyboard Interactions
      • Multiselect Dropdown
      • Progress Bar
      • Rich Text Editor
      • Rich Text Editor (Legacy)
      • Screenshotlayer
      • SelectPDF
      • Slack
      • Segment
      • Slick Slideshow
      • SQL Database Connector
      • Star Rating
      • Stripe
      • Tinder-like Element
      • Twitter
      • YouTube
      • Zapier
    • Application Settings
      • App plan
      • General
      • Domain / email
      • Languages
      • SEO / metatags
      • API
      • Collaboration
      • Sub-apps
      • Versions
  • Account & Marketplace
    • Account and billing
      • Pricing and plans
        • Plans and billing
        • Billing cycle
        • FAQ: Pricing and Workload
      • Account Management
      • Building Apps for Others
      • Selling on the Marketplace
      • Plans & Billing (legacy)
    • Official Bubble Certification
      • Hiring certified developers
    • Building Plugins
      • The Plugin Editor
      • General Settings
      • Updating to Plugin API v4
      • Adding API Connections
      • Building Elements
      • Building Actions
      • Loading Data
      • Publishing and versioning
      • Github Integration
    • Building Templates
    • Application and data ownership
    • Marketplace policies
    • Bug reports
  • Vulnerability Disclosure Policy
  • Beta features
    • About the Beta features section
    • Native mobile apps
Powered by GitBook
On this page
  • Show an element
  • Hide an element
  • Animation (native app)
  • Animation direction
  • Toggle an element
  • Scroll to an element
  • Offset (pixels)
  • Animate an element
  • Animation
  • Define a custom duration
  • Duration (ms)
  • Set state of an element
  • Custom state
  • Value
  • Set another state
  • Set focus to an input element
  • Reset relevant inputs
  • Cancel upload of a file uploader
  • Show message in an alert box
  • Fade in (ms)
  • Hold (ms)
  • Fade out (ms)
  • Change the alert message
  • Message
  • Display data in a group/popup
  • Data to display
  • Reset a group/popup
  • Display list in a repeating group
  • Data source
  • Clear list in a repeating group
  • Show next of a repeating group
  • Wrap around
  • Show previous of a repeating group
  • Wrap around
  • Go to page of a repeating group
  • Page
  • Scroll to entry of a repeating group
  • Entry to scroll to
  • Animate the scrolling
  • Vertical offset (pixels)
  • Display markers on a map
  • Data source
  • Set current map marker for a map
  • To select
  • Clear markers on a map
  • Adjust map zoom
  • Set center and zoom manually
  • Map centered on
  • Initial zoom

Was this helpful?

  1. Core Reference
  2. Actions

Element

Actions that manipulate elements on the page.

Last updated 23 days ago

Was this helpful?

This core reference entry is suited for beginner-level builders.

To learn about this topic more in-depth, we recommend reading the suggested articles below:

Workflows

  • Article series: Workflows

    • Article: Events

    • Article: Actions


Elements and design

Elements are the objects that you place on the page, such as text, inputs, buttons, images and icons.

  • Article series: Elements This article series covers the different element types and the tools at your disposal for placing them on the page and editing their properties.

  • Article series: Design This article series covers how to design your app, control its properties, as well as external tools and inspiration for deciding how you want your app to look and behave.


Logic

Workflows is a part of the Logic series in the user manual.

  • Article series: Logic

    • Article: The frontend and backend

    • Article: Dynamic expressions Dynamic expressions are used both to set up conditions, and are highly useful in different actions that you may want to add to your workflows.

    • Article: Conditions Conditions are used to determine whether a workflow or action should run or not, by checking whether something is true.

    • Article series: Navigation Using workflows to let the user navigate between pages and page sections.


Debugging

All apps have the occasional bug, and our debugging tools help you squish them efficiently. The debugger helps you go through workflows step by step to see how they perform and the values they return.

Article series: Debugging your application

  • Bubble Academy: The Workflow Tab: Bubble Introduction Series [4/10]

  • Bubble Academy: Understanding Workflow Execution Rules

  • Getting started with Bubble: Workflows and logic: Getting started with Bubble

There are also relevant videos listed below the header in some entries below.

Show an element

Shows an element or popup. If the element is a container, the elements inside will be shown as well.

Hide an element

Hides an element or popup. If the element is a container, the elements inside will be hidden as well.

Animation (native app)

When building a native app, use native animations when a group is hidden, like sliding, etc. This provides a more native experience. Choose from None, Slide, and Flip.

Animation direction

Select the direction of the animation. Choose from Left, Right, Up, and Down.

Toggle an element

Use this action to toggle an element or popup. If the element is visible, it will be hidden. If the element is hidden, it will become visible.

Scroll to an element

Use this action to scroll the page to a specific element. The page will be scrolled so that it is at the top of the browser window. This is useful for navigation buttons.

Offset (pixels)

Enter a number in pixels to offset the scroll position. This is useful for a floating header that is near the top of the screen.

Animate an element

Use this action to animate elements on the page. The 'transition' animation hides or shows the element as an action would do.

Animation

Choose the animation to use. A thumbnail shows allowing you to preview the animation.

Define a custom duration

By default, animations have a preset length. Check this box to override this setting.

Duration (ms)

Enter the animation duration in milliseconds.

Set state of an element

Assign custom states to elements to store additional information. For example, the current tab that a group shows, etc. This action modifies the value of the state. Use the state of an element in the Conditional section in the Property Editor to change how it displays based on the value of the custom state.

Custom state

Select the state to modify. Create a new state by selecting 'Create a new custom state...' in the dropdown menu.

Value

This is the value to assign to the custom state. It should be of the type of the custom state defined when the state was created.

Set another state

Click this button to set another custom state for this element.

Set focus to an input element

This action sets the focus to an input. If the input is not currently visible on the screen, the page will automatically scroll to the input.

On an iOS device, even if this action is used, the keyboard will not appear until the user interacts with the page in some way.

Reset relevant inputs

This action wipes the content of the inputs that were used in the workflow with this action. This is useful if you do not want users to click twice and run the workflow twice. The result inputs will either be empty or contain the default value defined for each of them.

Understanding the Reset relevant inputs action logic
  • Purpose: This action clears the values of certain input elements on a page, resetting them to empty or to their default values (if defined).

  • "Relevant" inputs: Inputs are only considered relevant if they are referenced somewhere in the same workflow. This includes any step or condition within the workflow that directly mentions the input's value.

  • Examples of relevance:

    • If a step says Create a new Thing and pulls its value from Input A, then Input A is relevant and will be reset.

    • If a condition in the workflow says Only when Input A's value is not empty, that input becomes relevant—even if the value isn't directly used in an action.

  • Selective reset: You can use dummy conditions or references in the workflow to deliberately make certain inputs relevant (and reset), while excluding others.

  • Use case: This is useful when you want to clear input fields after an action (like submitting a form), but only for the fields involved in that action.

  • Not affected: Inputs not referenced anywhere in the workflow will not be reset.

If you want to completely reset all fields within a group, you can also consider using the Reset a group/popup action.

Cancel upload of a file uploader

Cancel an in-progress upload of a file uploader. You can check if an upload is in progress using the 'is loading' state on the uploader.

Show message in an alert box

This action shows an alert. It is different from the Show element action because the element is shown with a fade in and fade out animation.

Fade in (ms)

Enter the length of the fade-in animation in milliseconds.

Hold (ms)

Enter the number of milliseconds to keep the alert visible.

Fade out (ms)

Enter the length of the fade-out animation in milliseconds.

Change the alert message

Check this box to overwrite the message defined at the Alert element level.

Message

Enter the new message to display.

Display data in a group/popup

This action defines which data a group or popup should use, provided a type of content was defined at the element level. It overwrites the data source set at the group/popup level. It also resets the data of any inputs or groups that are children of this element.

Data to display

Select the thing to be displayed in this group or popup. If the type isn't consistent with the element's type, the expression will be red or a popup will prompt you to change the element's type.

Reset a group/popup

This action resets a group or popup. When this happens, the data source reverts to what was initially set at the element's level, and the inputs are deleted.

Display list in a repeating group

This action defines which list of things a repeating group displays. It overwrites the data source set at the element level.

Data source

This defines the list of things that should be displayed in the repeating group. If the type isn't consistent with the element's type, the expression will be red or a popup will prompt you to change the element's type.

Known Issue

With large repeating groups, especially ones showing a lot of data per cell (e.g. images), if the data source changes while the repeating group is visible, what's shown in the repeating group might have a visual lag as it refreshes in chunks. To mitigate this, consider hiding the repeating group, then changing the data source, then showing the repeating group again.

Clear list in a repeating group

Reset the list of a repeating group to what is defined at the repeating group's level. If no data source was defined at the element's level, the list will be empty.

Show next of a repeating group

When using the group in a 'Fixed number of cells' layout, use this action to go to the next page in the repeating group.

Wrap around

If checked, the repeating group will display the first page after displaying the last one so that users can keep moving through the pages.

Show previous of a repeating group

When using the group in a 'Fixed number of cells' layout, use this action to go to the previous page in the repeating group.

Wrap around

If checked, the repeating group will display the first page after displaying the last one so that users can keep moving through the pages.

Go to page of a repeating group

When using the group in a 'Fixed number of cells' layout, use this action to jump to a given page in the repeating group.

Page

This number, which can be dynamic, is the page to go to. If the length is shorter than the entered number, it will go to the last page.

Scroll to entry of a repeating group

Scrolls a repeating group so that a given entry is at the top of the list. This doesn't work with repeating groups in the 'Fixed number of cells' layout. In Infinite scroll mode, the list is scrolled to the correct position. In Full list mode, the entire page will be scrolled so that the entry is at the top of the screen.

Entry to scroll to

This is the entry to scroll to. If it is not in the list, nothing will happen. It should be of the same type as the repeating group.

Animate the scrolling

Check this box to apply a 300-milliseconds animation as the page/list scrolls.

Vertical offset (pixels)

By default, this action will scroll so that the entry is at the top of the element (or the screen). If you need to add an offset, for instance if a header is at the top of the screen, you can enter a number of pixels there.

Display markers on a map

This action overwrites the list of places a map shows. It takes a list of things that contain a geographic address and displays them on the map. When doing so, the zoom of the map is adjusted automatically to show all markers.

Data source

Define the list of things that should be displayed on the map. If the type isn't consistent with the map's type, the expression will be red or a popup will prompt you to change the element's type.

Set current map marker for a map

This action sets the currently selected map marker on a map. Only works for maps that are displaying a list of markers. When this action is run, the map's 'current marker' will change to the value of 'To select'. If the map is configured to display custom map markers for the selected item, and the value of 'To select' corresponds with a marker currently visible on the map, that marker will be visibly selected. Also, if 'Show title window' is turned on, the title window will be shown if it was currently hidden. Otherwise, there won't be a visible change to the map.

To select

The map marker to select. Must be the same type of thing currently displayed as the map's list.

Clear markers on a map

This action clears the map and uses the data source defined at the map level.

Adjust map zoom

This action automatically adjusts the map zoom so that all markers are visible.

Set center and zoom manually

By default, the action adjusts the zoom and center so that all markers on the map are shown. Check this box to define the zoom and center manually.

Map centered on

This is the address used to center the map.

Initial zoom

This is the zoom level applied to the map.

Our Academy quick tip on how to toggle an element
Our Academy quick tip on how to scroll to an element
Our Academy quick tip on how to animate elements