Note on performance: Short lists load the entire data source at once, rather than using lazy loading. This makes them ideal for shorter lists, while longer lists may impact performance.
A short list is a container used to display a fixed list of items in a native mobile app. Like a vertical list, it repeats its child elements once for each item in the data source, but it loads all its data at once rather than lazy-loading as the user scrolls. This makes it well suited to short, predictable collections that fit naturally within a view.
Short lists are the right choice for compact, focused lists that live alongside other content in a view.
What short lists do
At the most basic level, a short list takes a list of things and repeats its child elements once for each item. If you show a list of five records, everything you add to the short list is duplicated five times, once per record.
Each of these repetitions is called an item. An item holds all the child elements and represents a single item from the list. Text elements can display data from that item, buttons can trigger actions on it, and containers can be styled to give each item its own look.
Short lists work similarly to regular groups: you set a Type of content, provide a Data source, and the elements inside can reference the data. The difference is that a regular group holds one item, while a short list holds many.
Short lists require a list as their data source, unlike most other containers, which work with a single item.
When to use a short list
Short lists are ideal for small, predictable collections that fit naturally within a view.
For larger lists or lists that grow unpredictably, use a vertical list instead. Vertical lists load data progressively as the user scrolls, which keeps performance smooth even with a lot of items.
Feature | Short list | Vertical list |
Data loading | Loads all data at once | Lazy-loads as the user scrolls |
Best for | Small to medium lists | Long or unpredictable lists |
Multiple per view | Yes | Only one per view |
Scroll behavior | Scrolls with the surrounding view | Scrolls independently within the view |
The rule of thumb: if the list is short and predictable, a short list is often the better fit. If the list can grow long or is the main focus of the view, use a vertical list.
Loading data into a short list
There are two main ways to load data into a short list:
Set the data source directly
The list loads as soon as the view opens, using an expression like Do a search for Posts. This is useful when the data is known in advance.
Filling in the short list's Type of content and Data source loads the data immediately.
Push data with a workflow
Use the Display list in a short list or selectable list action to load a list in response to a user action. This is useful when the data depends on something the user does.
Both methods behave the same way once the list is loaded.
Referencing data in an item
Because each item represents a different record in the list, referencing data inside an item uses the Current item expression. If the Type of content is Post, you'd reference Current item's Post's title to show the post's title.
Using Current item's Post's title, you can display the title of each post in the list.
One text element inside the short list displays all the names in the list, one per item.
Styling short lists
Short lists can be styled like any other element. You can style individual short lists by adjusting their different properties, or by connecting them to predefined styles and/or style variables.
You can style individual short lists by adjusting their different properties, or by connecting them to predefined styles and/or style variables.
Performance considerations
Because short lists load all data at once, they're best kept short. A few things to keep in mind:
Fewer than a dozen items is ideal. Short lists shine when they display a small, predictable set of records.
Item complexity matters. Items with many elements take longer to render, so keeping the item design simple helps performance.
Watch out for nested lists. Placing a short list inside another list runs the data query for every parent item, which can compound quickly.
If the list starts to grow beyond what a short list can comfortably handle, switch to a vertical list to take advantage of lazy loading.
FAQ: Short lists
How is a short list different from a vertical list?
How is a short list different from a vertical list?
A short list loads all its data at once and is designed for small, fixed lists. A vertical list lazy-loads data as the user scrolls, making it better for larger collections. You can also have multiple short lists in a single view, but only one vertical list.
How many items can a short list display?
How many items can a short list display?
There's no strict limit, but short lists work best with small collections. If the list grows beyond a dozen or so items, or if the data comes from a search that can grow over time, use a vertical list instead.
Can I have multiple short lists in the same view?
Can I have multiple short lists in the same view?
Yes. This is one of the main advantages of a short list. You can stack multiple short lists in a single view.
Can I sort or filter items in a short list?
Can I sort or filter items in a short list?
Yes. When using Do a search for as the data source, you can add constraints and sorting rules directly in the search. You can also chain operators like :sorted or :filtered to control the order and contents of the list.
How do I reference the record in an item?
How do I reference the record in an item?
Use the Current cell expression. For example, if the Type of content is User, Current cell's User's name references the name of the user in that specific cell.
Can I make the cells tappable?
Can I make the cells tappable?
Yes. Add a workflow triggered by a tap on any element inside the cell, or on the cell's parent group. Inside the workflow, reference Current cell's User (or whatever type of content the list uses) to act on that specific item.
What happens if the list is empty?
What happens if the list is empty?
The short list renders no cells and takes up no space. You can use conditions to show a placeholder message or graphic when the list is empty.
Can I display a list without loading it from the database?
Can I display a list without loading it from the database?
Yes. The data source can be any expression that returns a list, such as a list stored in an option set, a list returned by an API call, or a list constructed with :merged with. You aren't limited to database searches.
How do I find the position of an item in the list?
How do I find the position of an item in the list?
Use Current item's index to reference the position of the item within the short list. Bubble uses 1-indexing, so the first cell is index 1.
Are short lists available in web apps?
Are short lists available in web apps?
No. Short lists are mobile-only. On web, use repeating groups instead.
