How to make each template work across desktop, tablet, and mobile using Bubble's responsive engine.
Bubble uses a flexbox-based layout system with rows and columns. Key concepts:
If your Bubble app still uses the legacy fixed-width engine, you'll need to migrate to the responsive engine first. In the Bubble editor, go to Settings → General → check "Make this application responsive."
Bubble doesn't have explicit breakpoints like CSS media queries. Instead, you achieve responsive behavior through:
1. Flexible widths (min/max instead of fixed)
2. Row wrapping (children flow to next line)
3. Conditional visibility (hide elements at narrow widths)
| Device | Viewport Width | Layout Approach |
|---|---|---|
| Desktop | 1024px+ | Full layout — sidebar + main content, multi-column grids |
| Tablet | 768px – 1023px | Collapsed sidebar, 2-column grids |
| Mobile | < 768px | Single column, hamburger menu, stacked layout |
Desktop (1024px+):
Tablet (768px):
Mobile (<768px):
Implementation:
Desktop: 3-column listing grid, sidebar filters visible
Tablet: 2-column grid, filters collapse into a "Filters" button that opens a popup
Mobile: 1-column listing cards, search bar at top, filters in a bottom sheet
Key responsive elements:
Desktop: Calendar shows full week view, sidebar with service list
Tablet: Calendar shows 3-day view, service list above calendar
Mobile: Calendar shows day view only, available slots in a scrollable list
Key responsive elements:
Desktop: Map + list split view (60% list, 40% map), sidebar filters
Tablet: List view with map toggle button (not split)
Mobile: List view only, map accessible via "View Map" button, search bar sticky at top
Key responsive elements:
Desktop: Three-column layout (sidebar nav, main content, trending/leaderboard sidebar)
Tablet: Two columns (nav sidebar collapsed, main content + trending below)
Mobile: Single column, bottom navigation bar, trending hidden
Key responsive elements:
Works for: SaaS Dashboard, Booking System
1. Create the sidebar as a group with min-width 0 and max-width 240
2. Add a custom state sidebar_open (yes/no, default: yes)
3. When sidebar_open = yes → width = 240, show labels
4. When sidebar_open = no → width = 60, show icons only
5. On page load: If page width < 768, set sidebar_open = no
6. Add a hamburger icon that toggles the state
Convert horizontal rows to vertical columns on narrow screens:
1. Use a Row container with wrapping enabled
2. Set each child's min-width to approximately 50% of mobile viewport (e.g., 300px)
3. On desktop, children sit side by side
4. On mobile, wrapping causes them to stack vertically
This is the single most useful responsive pattern in Bubble.
Desktop: Horizontal nav bar or vertical sidebar with text labels
Mobile: Bottom tab bar (for apps) or hamburger menu (for content sites)
Implementation:
1. Create two navigation elements: desktop_nav and mobile_nav
2. desktop_nav: visible when page width >= 768
3. mobile_nav: visible when page width < 768
4. mobile_nav is a floating group pinned to the bottom with 4–5 icon tabs
Tables don't work well on mobile. Three alternatives:
1. Card layout: Each row becomes a card with fields stacked vertically
2. Horizontal scroll: Wrap the table in a group with horizontal scrolling
3. Priority columns: Show only essential columns on mobile, full table on desktop
Card layout is best for most cases:
Desktop: Repeating group layout = Full list (table rows)
Mobile: Repeating group layout = Extended (card-style cells)
Use Bubble's responsive text settings:
Set these in your app's Styles tab for consistency.
1. Bubble's responsive viewer: In the editor, click "Responsive" tab to drag the viewport width
2. Chrome DevTools: F12 → toggle device toolbar → select device presets
3. Real devices: Always test on at least one actual phone — emulators miss touch target size issues
"My sidebar overlaps the content on mobile"
Set the sidebar's min-width to 0 and use conditional width. Make sure the main content group doesn't have a fixed left margin — use the sidebar as a flex sibling instead.
"Text is too small on mobile"
Check your font sizes. Body text should be at least 14px on mobile. Don't rely on users pinch-zooming.
"Buttons are too small to tap"
Minimum touch target size is 44x44 pixels (Apple's guideline). Make sure buttons and clickable elements meet this on mobile.
"My repeating group is just one column on desktop"
Check that the repeating group's layout is set to Grid or Extended, not Full List. For Grid, verify the number of columns setting.
*Responsive design isn't about making things fit — it's about making things work on every device.*
Get the full Bubble App Templates and unlock everything.
Get the complete guide with every chapter unlocked, including code samples, diagrams, and best practices.
Access all interactive tools with complete data, all workload profiles, and the full scenario library.
Downloadable source code, configuration files, and working examples from every chapter.
Free updates for life. Every new chapter, tool, and improvement included.