Freedom and Flexibility
Create dynamic, flexible and reorderable layouts without complex workflows or layout restrictions.
Swapeasy simplifies the creation of dynamic, reorderable layouts in Bubble, allowing you to turn groups and repeating groups into intuitive drag-and-drop structures with minimal configuration. Visually reorder elements, control their position, and persist ordering without complex workflows or manual state management.
No data collected This plugin does not collect user data.
The documentation and the examples for this plugin are being updated. Open the current documentation
Create dynamic, flexible and reorderable layouts without complex workflows or layout restrictions.
Draggable elements and drop areas are automatically recognized based on the structure.
Control animations, movement behavior, and interaction modes.
Triggers events on drag start, drop, and order change.
Works smoothly on both desktop and mobile devices.
Designed to run smoothly while avoiding WU consumption, depending on the save method.
In detail
Provide the ID that was assigned to the target element (the main container, which will contain all the required structure).
defaultno default
Enables or disables the drag and swap interaction.
defaultyes
The default behavior is to swap elements as soon as you hover the dragging element on any drop area, but you can change that to make them swap when you drop the element.
hoverdropdefaulthover
Sets the type of animation when dragging and swapping elements. Dynamic: swap with smooth transition effect. Spring: swap with elastic transition effect. None: instantaneous swap, no transition effect.
dynamicspringnonedefaultdynamic
By default the dragging action starts as soon as the element is clicked/touched, but when enabling this property the dragging action will require clicking/touching and holding for a moment to start. Useful mainly on touch interfaces, such as cell phones and tablets, it reinforces security by preventing accidental movements.
defaultno
Sets the direction of movement, restricting the dragging interaction to a specific axis: vertical, horizontal, or both.
xybothdefaultboth
Enables automatic scrolling in the main container when an element is dragged over a long list that requires scrolling.
defaultyes
Sets the save method that Swapeasy should use to handle order storage and persistence. If set to "automatic" Swapeasy will manage everything automatically, saving the order on each new change and restoring the order on each initialization to make it persist. If set to "manual", the order saving and restoring actions must be configured manually.
automaticmanualdefaultautomatic
Sets the relationship between the border radius of the drop area and the draggable element.
generalindividualinheriteddefaultindividual
If border radius correlation is set to "general", this value sets a default border radius for all drop areas and draggable elements.
default0
Sets the background color of the currently hovered drop area (while an element is being dragged).
default#EEEEEE
Sets the border style of the currently hovered drop area (while an element is being dragged).
nonehiddensoliddotteddasheddoublegrooveridgeinsetoutsetdefaultnone
Sets the border width (in pixels) of the currently hovered drop area (while an element is being dragged).
default0
Sets the border color of the currently hovered drop area (while an element is being dragged).
default#EEEEEE
Sets the opacity of the element currently being dragged.
20%40%60%80%100%default100%
Values the element exposes for the rest of the page to read.
Evaluates whether the order has been changed after the draggable element is dropped (yes/no).
Returns the current order value (numeric string) whenever a position swap is completed or initially set (E.g.: 1,2,3,4).
Where a workflow can start.
Event that can be triggered when an element starts to be dragged.
Event that can be triggered when the element being dragged is dropped.
Event that can be triggered when a swap occurs and the current order is different from the previous one. Use this event to trigger actions to save the new order.
Event that can be triggered when the order provided in the element or action does not have the correct format or the number of items (numeric elements in the string) does not correspond to the structure within the main container.
Event that can be triggered when Swapeasy is initialized.
What a workflow can tell the element to do.
Sets the item order based on a provided numeric string.
The value of this field must be a valid string (numbers separated by comma) and must correspond to the number of draggable elements in the created structure (E.g.: 1,2,3,4).
defaultno default
Remaps the structure and applies the corresponding item order.
Where a workflow can start.
Event that can be triggered when the element is loaded.
No. Swapeasy was designed to be easy to implement. Just follow the step-by-step instructions in the documentation and choose the structure that best fits your use case.
Yes. Drag actions are automatically mapped to touch interactions on mobile devices. For a better mobile experience and to avoid accidental dragging, we recommend enabling the Drag on hold option. This ensures the drag action only starts after pressing and holding the element for a few milliseconds.
Yes. Swapeasy now supports static lists (Option Sets, text, number, date, etc.) or dynamic lists. But it does not yet support nested lists. Nested lists will be supported in a future version (under development).
This depends on your layout and data structure. Both approaches are supported, and the best choice varies by use case. For more details, see the Structure Settings section in the documentation.
No. You only need to assign a unique ID to the main container. All other elements follow the defined structure automatically. For more details, see the Structure Settings section in the documentation.
Make sure the plugin element is visible on the page, which is required for it to work. Then verify that the Swap enabled property is turned on, that the main container ID matches the ID set in the plugin, that the ID is valid and does not start with a number, and that each drop area, when your layout uses them, contains only one draggable element.
Review the Save Settings section to ensure order saving and restoring are configured correctly.