The tab component

Build a tabbed interface, with each tab being a link to a page. Each tab can be in two states: active or inactive.

Introduced in SQLPage v0.9.5.

Top-level parameters

center

Whether the tabs should be centered or not. Defaults to false.

Row-level parameters

title

REQUIRED. Text to display on the tab.

active

Whether the tab is active or not. Defaults to false.

class

class attribute added to the container in HTML. It can be used to apply custom styling to this item through css. Added in v0.18.0.

color

Color of the tab. See preview.tabler.io/colors.html for a list of available colors.

description

Description of the tab. This is displayed when the user hovers over the tab.

icon

Name of the icon to display on the tab. See tabler-icons.io for a list of available icons.

id

id attribute added to the container in HTML. It can be used to target this item through css or for scrolling to this item through links (use "#id" in link url).

link

Link to the page to display when the tab is clicked. By default, the link refers to the current page, with a 'tab' parameter set to the tab's title and hash set to the id (if passed) - this brings us back to the location of the tab after submission.

Example 1

This example shows a very basic set of three tabs. The first tab is active. You could use this at the top of a page for easy navigation.

To implement contents that change based on the active tab, use the tab parameter in the page query string. For example, if the page is /my-page.sql, then the first tab will have a link of /my-page.sql?tab=My+First+tab.

You could then for instance display contents coming from the database based on the value of the tab parameter. For instance: SELECT 'text' AS component, contents_md FROM my_page_contents WHERE tab = $tab

Note that the example below is completely static, and does not use the tab parameter to actually switch between tabs. View the dynamic tabs example.

select 
    'tab' as component;
select 
    'My First tab' as title,
    TRUE           as active;
select 
    'This is tab two' as title;
select 
    'Third tab is crazy' as title;

Result

Example 2

This example shows a more sophisticated set of tabs. The tabs are centered, the active tab has a different color, and all the tabs have a custom link and icon.

select 
    'tab' as component,
    TRUE  as center;
select 
    'Hero'                      as title,
    '?component=hero#component' as link,
    'home'                      as icon,
    'The hero component is a full-width banner with a title and an image.' as description;
select 
    'Tab'                      as title,
    TRUE                       as active,
    '?component=tab#component' as link,
    'user'                     as icon,
    'dark'                     as color;
select 
    'Card'                      as title,
    '?component=card#component' as link,
    'credit-card'               as icon;

Result

See also: other components