Canvas Documentation
Bubble Best Practices
v6.0
v6.0
  • Introduction
  • Key Features
  • What's New
  • Canvas Design System Figma File
  • CANVAS FUNCTIONALITY
    • Getting Started
    • Branding & Design
    • Marketing Pages
    • Page
    • Bubble Pages & Blocks
    • Roles & Permissions
    • Menus & Navigation
    • Data & Workflows
    • Emails & Alerts
      • Mail merge terms
    • Miscellaneous
      • Setting up two factor authentication
      • Cookie and consent banner
      • Setting your password policy
      • Set up Payment info on Account page
      • Loading screen
      • Configuring multiple languages
      • Customizing your app's portal page colors
    • Reference
      • Pages
        • Index
        • Product homepage
        • Marketplace homepage
        • SaaS homepage
        • About us
        • Pricing
        • Admin Portal
        • Account
          • Account deletion
        • Login
        • Legal
        • Reset Password
        • 404
      • Reusable elements
        • Header
        • Footer
        • Signup & Log in
        • Cookies Permission
        • Widgets
          • App security
          • Header Widgets
          • Workflow Widgets
        • Admin Portal
          • Admin analytics
          • Admin email & templates
          • Admin header & footer
          • Admin legal popups
          • Admin branding, setup checklist, and settings
          • Admin options app variables
        • Menu Focus Elements
        • Sidebar tab
      • Data types
      • Option Sets
      • Backend Workflows
      • Design standards
        • Manually Building UI
  • Canvas library
    • Updating asset RG data source
    • UI Patterns
      • Simple Dashboard Page
      • Product Marketplace Dashboard Page
      • Labor Marketplace Profile Page
      • Social Network Profile Page
      • Simple Events Search Page
      • Events Search Page
      • Ecommerce Search Page
      • Labor Marketplace Search Page
    • Page templates
      • Basic Bubble Marketing Page
      • Chat Messenger Page
      • Form Builder Page
      • Centered Profile Page
      • Left-Justified Profile Page
      • Standard page
      • Toggle Tabs Page
      • Menu Page
      • Mobile Menu Page
      • Video List Page
      • Horizontal Tabs Portal / Dashboard Page
      • Standard Portal / Dashboard Page
      • Simple Portal / Dashboard Page with Icons
      • Double Sidebar Portal Page Template
      • Search Page
      • Map Search Page with Toggle and Filters
      • Floating Map Search Page
      • Search Bar Page
      • Multi-Step Page With Progress Bar
      • Standard Multi-Step Process Page
      • Multi-Step Process Page with Sidebar
      • Gallery Profile or Product Page
      • Sidebar Profile Page with Tabs
      • 2-Column Menu Tabs Page
      • 2-Column Checkout Page
      • 2-Column Video Chat Page
      • Vertical Multi-Step Page Template
    • Blocks
      • Pagination
      • Monthly Calendar Scheduling Widget
      • No Reply Comments Thread
      • Nested Comments Thread (with Like and Reply)
      • Placeholder Group
      • List with Circular Progress Bar Repeating Group
      • Top Input Chat Widget
      • Bottom Input Chat Widget
      • Toggle Tabs Group
      • Single-Select or Multi-Select Pill Tabs Group
      • Settings Group
      • Order Confirmation Group
      • To-Do List Repeating Group
      • Title Group with Button and Filters
      • Product Details Group With Progress Bar
      • Listing details with Icons and Menu Focus Group
      • Week Daily Availability Group
      • Frequently Asked Questions (FAQ) Repeating Group
      • Dismissible Module
      • Video Group
      • About Group
      • Add to Cart Group
      • Full Width Map with Directions Link
      • Location Module (Map and Directions)
      • Drag and Drop Repeating Group
      • Infinite Columns Horizontal Scroll Data Table with Fixed First Column (Repeating Group)
      • Nested Data Table (Repeating Group)
      • Standard Data Table (Repeating Group)
      • Standard Data Table (Table Element)
      • Mobile-Friendly Data Table (Repeating Group)
      • Mobile-Friendly Data Table (Table Element)
      • Infinite Columns Horizontal Scroll Data Table (Repeating Group)
      • Infinite Columns Horizontal Scroll Data Table (Table Element)
      • Activity Feed
      • Social Feed
      • Nested Repeating Group
      • Advanced Form Inputs Group
      • Reviews with Ratings Summary and Images
      • Reviews Repeating Group with User Images
      • Reviews (Text Only) Repeating Group
      • Standard Repeating Group with Image
      • Search Bar Group
      • Listing Details Group
      • Post Group with Upvoting UI
      • Large Chart Dashboard Widget
      • Chart With Key Metrics Dashboard Widget
      • 2-Column Table and Key Metrics Dashboard Widgets
      • 2-Column Large Metrics Dashboard Widgets
      • 4-Column Large Metrics Dashboard Widgets
      • Main Image with Thumbnails
      • Centered Profile Block
      • Left-justified Profile Block
      • Tile Image Gallery and Popup
      • Image Feed with Nested Comments Thread
      • 1-Column Standard Form Inputs Group
      • 2-Column Slideshow Tiles Repeating Group
      • 2-Column Repeating Group (Text, Link, Image, and Description)
      • 2-Column Repeating Group (Link, Text, and Button)
      • 2-Column Repeating Group with Actions
      • 2-Column Grid Tiles Repeating Group
      • 2-Column Form Group
      • 4-Column Tiles Repeating Group
      • Expiration timer
    • Popups
      • Edit Drawer
      • Map Location Details Drawer
      • Details and Comments Drawer
      • Confirmation Popup
      • Message Popup
      • Image Popup
      • Video Popup
      • Vertical Scroll Popup
      • Permissions popup
      • Multimedia Slideshow Popup
      • Edit Popup
      • Standard Form Popup
      • Subscribe Popup
      • Feedback / Contact Popup
      • Details Popup
      • Add List Popup
      • Advanced Form Popup
      • Rating Popup
      • Toggle Tabs Popup
      • Share Popup
      • Multi-Step Popup
      • Invoice Popup
      • Stripe Credit Card Purchase Popup
      • View Profile Popup
      • Send Message Popup
      • Multi-Select Pill Tabs Popup
      • Net Promoter Score (NPS) Popup
      • Pricing Plans Popup
    • Reusables
      • Multimage uploader
      • Sidebar_icontab
      • Doublesidebar_tab
Powered by GitBook
On this page
  • Overview
  • Structure
  • How to set up

Was this helpful?

  1. Canvas library
  2. Page templates

Horizontal Tabs Portal / Dashboard Page

Use this for dashboards that require only one-level menu navigation

PreviousVideo List PageNextStandard Portal / Dashboard Page

Was this helpful?

Overview

This dashboard / portal page includes a sticky top bar with different sections: page-level tabs for toggling between content groups, a more menu dropdown, link, toggle, search input, and buttons. Ideal for dashboards where users need to be able to quickly access different types of content on the same page. On mobile, the tabs will be horizontally scrollable.

Extending the page template

For simple dashboards, utilize the page-level horizontal tabs to showcase important tabs. Secondary tabs can be nested under the more menu dropdown.

For more complex dashboards that may require subtabs, utilize the main content group area and add vertical tabs or content-level horizontal tabs to further breakdown the page.

Structure

When this page is added to your app, it will come with three main groups:

FloatingGroup Horizontal tabs

  • Group Inner other actions contains various UI components such as a link, toggle, search input, and buttons. Hide or unhide these elements by checking/unchecking the box for This element is visible on page load in the layout tab.

Group main content - Paste group This group contains the responsive settings for all additional blocks added to the page.

Popup Hidden Variables

This popup includes various variables that are referenced in workflows or conditionals on the page.

  • var - ⚙️ app settings - This group stores the App settings (e.g., app name, primary color, and etc.)

  • ⚙️ var - tab url parameter - This group stores the url parameter for tab.

  • var - placeholder - This is a placeholder group for users to add their own variable.

This page will also include a menufocus_sections_template reusable template.

How to set up

Update the data source for RepeatingGroup tabs

There's various ways that you can set up the data source for the tabs repeating group. If you want your navigational tabs to be dynamic, you making consider updating the data source and linking it to an existing app data type or creating a new tabs option set. For demo purpose, we use Arbitrary text as the data source which works well when you have static tabs.

As a refreasher, Arbitrary text allows us to pass a string of text that is concatenated and :split by allows us to define a delimiter to separate the text string. Using this method, we can generate dummy content for the repeating group without referencing any app data types.

When you click on a tab, it will trigger the navigate tab custom workflow (with a tab parameter of type text that you pass when triggered). This will update the page url to website.com/page?tab=tab-name.

If you're using arbitrary text as the data source, the current text that you pass will look like users~Contractors but we do not want to include the feather icon name in the url tab parameter so we filter that out by split by (~):item #2. The workflow evaluates the text string like this: item #1: users item #2: Contractors

If you're not using Arbitrary text as the data source for the repeating group, you may want to tweak the workflows. Or, if you're not using icons in your tabs, you can have your repeating group Arbitrary text structured like this: Contractors*Tasks*Projects*Calengar*placeholder

Then, in the workflows and conditional statements, you'll remove any split by(~):item# references.

Showing or hiding a content block

On the layout tab, uncheck the box for This element is visible on page load.

Set the block's type to text and store the content block tab's name (either as static text or referencing some dynamic text like an Option set).

Add a conditional statement to display the content group when the page tab url parameter matches the content group's tab name.

RepeatingGroup tabs is used to display a list of page-level tabs, including the menufocus_sections_template reusable element (more menu dropdown). For demo purpose, we're using as the repeating group's data source. Clicking on Group Main tab_text will trigger the navigate tab custom workflow.

In the above example, we are passing the tab structure as a text string: []~[tab name] ~ denotes a field in a single entry and * denotes a new entry At the end of the text string you see "*placeholder" which is used to display the more menu dropdown in the repeating group.

Arbitrary text
feather icon type name
Sticky top bar
Arbitrary text data source
Navigate to tab
navigate tab custom workflow
Imported content block