Transform your repeating groups with Draggable RG Pro
The most advanced and intuitive drag-and-drop reordering plugin for Bubble. Create seamless user experiences with smooth animations and professional touch interactions. Simply assign a Group ID to any repeating group, and instantly enable powerful drag-and-drop functionality with comprehensive customization options.
π DEMO LINKS:
Live Demo
https://emotix-plugins.bubbleapps.io/version-test/draggable_rg_proEditor View
https://bubble.io/page?id=emotix-plugins&tab=Design&name=draggable_rg_pro&type=pageπ WHAT MAKES IT SPECIAL:
- Zero coding required - works with any existing repeating group
- Real-time drag-and-drop with physics-based animations
- Complete visual customization (ghost styling, colors, opacity)
- Professional mobile-optimized touch interactions
-Multiple state tracking (visual order, drag status, position indices)
- Event triggers for advanced workflow automation
- Width preservation technology prevents layout issues
- Supports multiple draggable groups on the same page
- Advanced ghost styling with border and background options
π‘ PERFECT FOR:
- Task management and to-do lists
- Content management systems
- Priority ranking interfaces
- Portfolio and gallery reordering
- Shopping cart item arrangement
- Kanban-style project boards
- Any list that needs user-controlled ordering
βοΈ HOW TO USE DRAGGABLE RG PRO:
π 1. SETUP:
β’ Add "Draggable RG Pro" element to your page
β’ Create a repeating group with your content
β’ Make sure the repeating group is visible on page load before the plugin initializes
β’ Set a unique Group ID for your repeating group (e.g., "task-list")
β’ In Draggable RG Pro element, enter the Group ID: "task-list"
π¨ 2. CUSTOMIZATION:
β’ Ghost Styling: Enable borders, set colors and opacity
β’ Border Radius: Control ghost element corner roundness
β’ Ghost Background: Choose colors with transparency control
β’ Mobile Optimization: Touch-friendly interactions built-in
β‘ 3. WORKFLOW INTEGRATION:
β’ Use "order_changed" event to save new arrangements to database
β’ Access "visual_order" state for complete reordering data
β’ Monitor "is_dragging" state for conditional UI changes
β’ Track "from_index" and "to_index" for single-item movements
β’ Trigger "drag_started" event for custom drag initiation logic
π§ 4. ADVANCED FEATURES:
β’ Multiple state outputs for flexible workflow design
β’ Automatic width preservation prevents visual glitches
β’ Smart mobile detection for optimal touch experience
β’ Professional ghost styling matches your app's design
β’ Event-driven architecture for complex automation
π‘ TIPS:
- Test on both desktop and mobile devices for optimal experience
- Use visual_order state to update your database order fields
- Combine with Simple Looper plugin for efficient batch updates
- Set ghost opacity to 0.3-0.5 for best visual feedback
- Enable ghost borders to match your app's design language
=== PLEASE READ THIS!!! ====
The drag functionality doesn't work when your repeating group contains buttons, inputs, dropdowns, or similar interactive elements. This happens because both clicking a button and starting a drag use the same action (mouse click or touch), which creates a conflict. To prevent accidentally triggering buttons when you want to drag or accidentally starting a drag when you want to click a button, these elements are excluded from dragging.
The best solution is to replace your Button element with a Text element instead. You can make the text clickable by adding a workflow with 'When Text is clicked' and style it to look like a button using background colors, borders, and conditional formatting for hover effects. Text elements work perfectly with both dragging and clicking functionality. Alternatively, you can use a Group element and make it clickable, which also maintains compatibility with the drag feature.