Shimoku docs
  • 🚀QuickStart
    • Installation & Setup
    • Minimal APP example
    • Extended Example
    • Templates & tutorials
  • 🤖Artificial Intelligence
    • Classification
      • Train Classification
        • Train Classification Outputs
      • Predict Classification
        • Predict Classification Outputs
    • Generate Insights
      • Generate Insights Outputs
  • 🛠️Building Web App
    • Environment
      • Overview
      • Environment Variables
    • Management
      • Managing Universes
      • Managing Workspaces
      • Managing Boards
    • Menu
      • Changing the Menu Path
      • Updating the Menu Path
      • Deleting the Menu Path
    • Grid
      • Using the Grid
    • Theming
      • Colors Usage
    • Actions
    • Modals
    • IO
  • 💡Elements
    • Summary
    • Charts
      • Table
        • Buttons Column
        • Filters
        • Search bars
        • Colored labels
      • HTML
        • Raw HTML
        • Beautiful Titles
        • Background Indicators
        • Click to New Tab
        • Box With Button
        • Panel
      • Indicators
        • Indicator
        • Grouped Indicators
        • Vertical Indicators
        • Color by Value
        • Gauge Indicator
        • Indicators with Header
      • Scatter Charts
        • Scatter
        • Scatter with Effect
      • Line Charts
        • Line
        • Predictive Line
        • Segmented Line
        • Marked Line
        • Line With Confidence Area
        • Top Bottom Line Charts
        • Summary Line
      • Area Charts
        • Area
        • Stacked Area
        • Segmented Area
        • Top Bottom Area Charts
      • Bar Charts
        • Bar
        • Stacked Bar
        • Horizontal Bar
        • Stacked Horizontal Bar
        • Zero Centered Bar
      • Pie Charts
        • Pie
        • Doughnut
        • Rose
      • Gauge Charts
        • Shimoku Gauge
        • Speed Gauge
      • Input forms
        • Group chained Inputs
        • List input search
        • Conditional inputs
        • Audio input
        • Drag & Drop
      • Line and Bar
      • Waterfall
      • Annotated Chart
      • Heatmap
      • Radar
      • Sunburst
      • Tree
      • Treemap
      • Sankey Diagram
      • Funnel chart
      • iFrame
    • Composite Template Charts
      • Infographics text bubble
      • Chart and Modal Button
      • Chart and Indicators
    • Data Sets
      • Data Set Filters
    • Create your own charts
      • Free Echarts
      • Bento box
    • Features & Navigation
      • Tabs
      • History navigation & Breadcrumb
  • 🔍Advanced usage
    • CLI
    • Workflow Triggers
    • Code Generation
  • 🌍Cloud & Community
    • Shimoku Cloud
    • Shared links
    • Handling Workspaces & Users
      • User authentication
      • Inviting users
      • Creating users
      • Users with multi-workspace access
  • 🌐Releases
    • 2024
      • v.2.6
      • v.2.5
      • v.2.4
      • v.2.3
        • v.2.3.1
      • v.2.2
        • v.2.2.3
        • v.2.2.2
        • v.2.2.1
      • v.2.1
        • v.2.1.2
        • v.2.1.1
      • v.2.0
        • v.2.0.(1..4)
      • v.1.6
        • v.1.6.1
      • v.1.5
    • 2023
      • v.1.4
        • v.1.4.1
        • v.1.4.2
      • v.1.3
      • v.1.2
        • v.1.2.1
      • v.1.1
        • v.1.1.1
      • v.1.0
        • v.1.0.2
        • v.1.0.1
      • v.0.20
      • v.0.19
      • v.0.18
      • v.0.17
        • v.0.17.1
      • v.0.16
        • v.0.16.3
        • v.0.16.2
        • v.0.16.1
      • v.0.15
      • v.0.14
    • 2022
      • v.0.13
        • v.0.13.3
      • v.0.12
      • v.0.11
      • v.0.10
        • v.0.10.4
        • v.0.10.3
        • v.0.10.1
      • v.0.9
      • v.0.8
      • v.0.7
        • v.0.7.1
      • v.0.6
      • v.0.5
      • v.0.4
      • v.0.3
        • v0.3.2
        • v0.3.1
      • v.0.2
Powered by GitBook
On this page
  • Usage
  • Positioning & Style Variants
  • Recursive Inclusion

Was this helpful?

  1. Elements
  2. Features & Navigation

Tabs

PreviousFeatures & NavigationNextHistory navigation & Breadcrumb

Last updated 1 year ago

Was this helpful?

Tabs give the option to separate elements further by grouping them, and only showing a handfull each time. Tabs reset the order so they can be thinked of as subpaths but work as components so they are very versatile! In the following images we can see that groups of components with complex behaviour (bentobox and behaviour) are being rendered correctly:

Usage

To use it you just have to define the location of the chart the same way you define the menu, it needs a tabs group name and the name of the tab where it will be inserted:

s.plt.set_tabs_index((tabs_group_name, tab_name))
...  # Charts
s.plt.pop_out_of_tabs_group()

The function is called s.plt.set_tabs_index and it has the parameters:

tabs_index: Tuple[str, str]                          # The tab to be used
order: Optional[int] = None                          # The order in the menu path
parent_tabs_index: Optional[Tuple[str, str]] = None  # The parent tabs group
padding: Optional[str] = None                        # Padding in the view
cols_size: Optional[str] = None                      # Horizontal size
rows_size: Optional[int] = None                      # Vertical size
just_labels: Optional[bool] = None                   # Visual variant
sticky: Optional[bool] = None                        # Follow the scroll or not

To change the tab being used the function s.plt.change_current_tab has to be used, an example on how to use the tabs functionality:

s.plt.set_tabs_index(('Charts', 'Indicators Tab'), order=0)

s.plt.indicator(
    order=0, data={
        "description": "",
        "title": "",
        "value": "Indicator",
        "color": "warning"
    }
)
s.plt.change_current_tab('Bars Tab')
s.plt.bar(
    x='date', order=0, data=[
        {'date': dt.date(2021, 1, 1), 'x': 5, 'y': 5},
        {'date': dt.date(2021, 1, 2), 'x': 6, 'y': 5},
        {'date': dt.date(2021, 1, 3), 'x': 4, 'y': 5},
        {'date': dt.date(2021, 1, 4), 'x': 7, 'y': 5},
        {'date': dt.date(2021, 1, 5), 'x': 3, 'y': 5}
    ]
)

s.plt.pop_out_of_tabs_group()

Positioning & Style Variants

Tabs can stick to the top of the screen when scrolling by setting the parameter sticky to True. They also have two variants, one where they are enclosed:

and one where they are separated:

Recursive Inclusion

Tabs groups can be included in other tabs groups, this brings a lot of flexibility on the separation of information and distribution of elements. To use this functionality the parameter parent_tabs_index has to be used to inform where to include the tabs group.

The different styles of tabs can be useful to differentiate between shallower and deeper tabs, the following example uses two types of tabs:

s.plt.set_tabs_index(('Gauge Indicators Head', 'Lorem ispum'), order=0)

s.plt.gauge_indicator(
    order=0, value=random.randint(0, 100),
    title='Lorem ispum', description='Lorem ispum',
)
s.plt.set_tabs_index(('Gauge Indicators', 'Lorem ispum'), order=0, just_labels=True,
                     parent_tabs_index=('Gauge Indicators Head', 'Lorem ispum'))

s.plt.gauge_indicator(
    order=0, value=random.randint(0, 100),
    title='Lorem ispum', description='Lorem ispum',
)

s.plt.pop_out_of_tabs_group()
💡
grid
Indicators tab
Bars tab
Tabs group inside a tabs group