> For the complete documentation index, see [llms.txt](https://docs.quantumbyte.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.quantumbyte.ai/home/quantumbyte-v2.0/3.microsites-1/8.ui/4.components/37.tabbar.md).

# Tabbar

### Tabbar Props <a href="#tabbar-props" id="tabbar-props"></a>

`Tabbar` component extends `Toolbar` component, it supports all `Toolbar` props and the following additional props:

| Name   | Type    | Default | Description                |
| ------ | ------- | ------- | -------------------------- |
| icons  | boolean | false   | Enables Tabbar with icons  |
| labels | boolean | false   | Enables Tabbar with labels |

### TabbarLink Props

`TabbarLink` component extends `Link` component, it supports all `Link` props and the following additional props:

| Name      | Type    | Default | Description                                                          |
| --------- | ------- | ------- | -------------------------------------------------------------------- |
| active    | boolean | false   | Makes this tabbar link active                                        |
| component | string  | 'a'     | Component's HTML Element                                             |
| label     | string  |         | Link label content                                                   |
| linkProps | any     |         | Object with additional props (attributes) to pass to the Link/Button |

### TabbarLink Slots

| Name  | Description        |
| ----- | ------------------ |
| icon  | Link icon content  |
| label | Link label content |

###

### Examples

{% tabs %}
{% tab title="Vue" %}

```typescript
<template>
  <i-page>
    <i-navbar title="Tabbar" />

    <i-tabbar
      :labels="isTabbarLabels"
      :icons="isTabbarIcons"
      class="left-0 bottom-0 fixed"
    >
      <i-tabbar-link
        :active="activeTab === 'tab-1'"
        @click="() => (activeTab = 'tab-1')"
      >
        <template v-if="isTabbarLabels" #label> Tab 1 </template>
        <template v-if="isTabbarIcons" #icon>
          <i-icon>
            <template #ios>
              <EnvelopeFill class="w-7 h-7" />
            </template>
            <template #material>
              <MdEmail class="w-6 h-6" />
            </template>
          </i-icon>
        </template>
      </i-tabbar-link>
      <i-tabbar-link
        :active="activeTab === 'tab-2'"
        @click="() => (activeTab = 'tab-2')"
      >
        <template v-if="isTabbarLabels" #label> Tab 2 </template>
        <template v-if="isTabbarIcons" #icon>
          <i-icon>
            <template #ios>
              <Calendar class="w-7 h-7" />
            </template>
            <template #material>
              <MdToday class="w-6 h-6" />
            </template>
          </i-icon>
        </template>
      </i-tabbar-link>
      <i-tabbar-link
        :active="activeTab === 'tab-3'"
        @click="() => (activeTab = 'tab-3')"
      >
        <template v-if="isTabbarLabels" #label> Tab 3 </template>
        <template v-if="isTabbarIcons" #icon>
          <i-icon>
            <template #ios>
              <CloudUploadFill class="w-7 h-7" />
            </template>
            <template #material>
              <MdFileUpload class="w-6 h-6" />
            </template>
          </i-icon>
        </template>
      </i-tabbar-link>
    </i-tabbar>

    <i-list strong inset>
      <i-list-item title="Tabbar Labels">
        <template #after>
          <i-toggle
            :checked="isTabbarLabels"
            @change="() => (isTabbarLabels = !isTabbarLabels)"
          />
        </template>
      </i-list-item>
      <i-list-item title="Tabbar Icons">
        <template #after>
          <i-toggle
            :checked="isTabbarIcons"
            @change="() => (isTabbarIcons = !isTabbarIcons)"
          />
        </template>
      </i-list-item>
    </i-list>

    <i-block v-if="activeTab === 'tab-1'" strong inset class="space-y-4">
      <p>
        <b>Tab 1</b>
      </p>
      <p>
        <span>
          Lorem ipsum dolor sit amet, consectetur adipisicing elit. Alias
          accusantium necessitatibus, nihil quas praesentium at quibusdam
          cupiditate possimus et repudiandae dolorum delectus quo, similique
          voluptatem magni explicabo adipisci magnam ratione!
        </span>
        <span>
          Quod praesentium consequatur autem veritatis, magni alias consectetur
          ut quo, voluptatum earum in repellat! Id, autem! Minus suscipit, ad
          possimus non voluptatem aliquam praesentium earum corrupti optio velit
          tenetur numquam?
        </span>
        <span>
          Illo id ipsa natus quidem dignissimos odio dolore veniam, accusamus
          vel assumenda nulla aliquam amet distinctio! Debitis deserunt, et, cum
          voluptate similique culpa assumenda inventore, facilis eveniet iure
          optio velit.
        </span>
        <span>
          Maiores minus laborum placeat harum impedit, saepe veniam iusto
          voluptates delectus omnis consectetur tenetur ex ipsa error debitis
          aspernatur amet et alias! Sit odit cum voluptas quae? Est, omnis eos?
        </span>
      </p>
    </i-block>

    <i-block v-if="activeTab === 'tab-2'" strong inset class="space-y-4">
      <p>
        <b>Tab 2</b>
      </p>
      <p>
        <span>
          Dicta beatae repudiandae ab pariatur mollitia praesentium fuga ipsum
          adipisci, quia nam expedita, est dolore eveniet, dolorum obcaecati?
          Veniam repellendus mollitia sapiente minus saepe voluptatibus
          necessitatibus laboriosam incidunt nihil autem.
        </span>
        <span>
          Officia pariatur qui, deleniti eum, et minus nisi aliquam nobis hic
          provident quisquam quidem voluptatem eveniet ducimus. Commodi ea
          dolorem, impedit eaque dolor, sint blanditiis magni accusantium natus
          reprehenderit minima?
        </span>
        <span>
          Dicta reiciendis ut vitae laborum aut repellendus quasi beatae nulla
          sapiente et. Quod distinctio velit, modi ipsam exercitationem iste
          quia eaque blanditiis neque rerum optio, nulla tenetur pariatur ex
          officiis.
        </span>
        <span>
          Consectetur accusamus delectus sit voluptatem at esse! Aperiam unde
          maxime est nemo dicta minus autem esse nobis quibusdam iusto,
          reprehenderit harum, perferendis quae. Ipsum sit fugit similique
          recusandae quas inventore?
        </span>
      </p>
    </i-block>

    <i-block v-if="activeTab === 'tab-3'" strong inset class="space-y-4">
      <p>
        <b>Tab 3</b>
      </p>
      <p>
        <span>
          Vero esse ab natus neque commodi aut quidem nobis. Unde, quam
          asperiores. A labore quod commodi autem explicabo distinctio saepe ex
          amet iste recusandae porro consectetur, sed dolorum sapiente
          voluptatibus?
        </span>
        <span>
          Commodi ipsum, voluptatem obcaecati voluptatibus illum hic aliquam
          veritatis modi natus unde, assumenda expedita, esse eum fugit? Saepe
          aliquam ipsam illum nihil facilis, laborum quia, eius ea dolores
          molestias dicta.
        </span>
        <span>
          Consequatur quam laudantium, magnam facere ducimus tempora temporibus
          omnis cupiditate obcaecati tempore? Odit qui a, voluptas eveniet
          similique, doloribus eum dolorum ad, enim ea itaque voluptates porro
          minima. Omnis, magnam.
        </span>
        <span>
          Debitis, delectus! Eligendi excepturi rem veritatis, ad exercitationem
          tempore eveniet voluptates aut labore harum dolorem nemo repellendus
          accusantium quibusdam neque? Itaque iusto quisquam reprehenderit
          aperiam maiores dicta iure necessitatibus est.
        </span>
      </p>
    </i-block>
  </i-page>
</template>
<script>
  import { ref } from 'vue';
  import {
    iPage,
    iNavbar,
    iNavbarBackLink,
    iTabbar,
    iTabbarLink,
    iBlock,
    iIcon,
    iList,
    iListItem,
    iToggle,
  } from 'ina-ui/vue';
  import {
    EnvelopeFill,
    Calendar,
    CloudUploadFill,
  } from 'framework7-icons/vue';
  import MdEmail from '../components/MdEmail.vue';
  import MdToday from '../components/MdToday.vue';
  import MdFileUpload from '../components/MdFileUpload.vue';

  export default {
    components: {
      iPage,
      iNavbar,
      iNavbarBackLink,
      iTabbar,
      iTabbarLink,
      iBlock,
      iIcon,
      iList,
      iListItem,
      iToggle,

      EnvelopeFill,
      Calendar,
      CloudUploadFill,
      MdEmail,
      MdToday,
      MdFileUpload,
    },
    setup() {
      const activeTab = ref('tab-1');
      const isTabbarLabels = ref(true);
      const isTabbarIcons = ref(true);

      return {
        activeTab,
        isTabbarLabels,
        isTabbarIcons,
      };
    },
  };
</script>
```

{% endtab %}

{% tab title="React" %}

<pre class="language-js"><code class="lang-js">import React, { useState } from 'react';
import {
  Page,
  Navbar,
  NavbarBackLink,
  Tabbar,
  TabbarLink,
  Block,
  Icon,
  List,
  ListItem,
  Toggle,
} from 'ina-ui/react';
import {
  EnvelopeFill,
  Calendar,
  CloudUploadFill,
} from 'framework7-icons/react';
import { MdEmail, MdToday, MdFileUpload } from 'react-icons/md';

export default function TabbarPage() {
  const [activeTab, setActiveTab] = useState('tab-1');
  const [isTabbarLabels, setIsTabbarLabels] = useState(true);
  const [isTabbarIcons, setIsTabbarIcons] = useState(false);
  return (
    &#x3C;Page>
      &#x3C;Navbar
        title="Tabbar"
        />

      &#x3C;Tabbar
        labels={isTabbarLabels}
        icons={isTabbarIcons}
        className="left-0 bottom-0 fixed"
      >
        &#x3C;TabbarLink
          active={activeTab === 'tab-1'}
          onClick={() => setActiveTab('tab-1')}
          icon={
            isTabbarIcons &#x26;&#x26; (
              &#x3C;Icon
                ios={&#x3C;EnvelopeFill className="w-7 h-7" />}
                material={&#x3C;MdEmail className="w-6 h-6" />}
              />
            )
          }
          label={isTabbarLabels &#x26;&#x26; 'Tab 1'}
        />
        &#x3C;TabbarLink
          active={activeTab === 'tab-2'}
          onClick={() => setActiveTab('tab-2')}
          icon={
            isTabbarIcons &#x26;&#x26; (
              &#x3C;Icon
                ios={&#x3C;Calendar className="w-7 h-7" />}
                material={&#x3C;MdToday className="w-6 h-6" />}
              />
            )
          }
          label={isTabbarLabels &#x26;&#x26; 'Tab 2'}
        />
        &#x3C;TabbarLink
          active={activeTab === 'tab-3'}
          onClick={() => setActiveTab('tab-3')}
          icon={
            isTabbarIcons &#x26;&#x26; (
              &#x3C;Icon
                ios={&#x3C;CloudUploadFill className="w-7 h-7" />}
                material={&#x3C;MdFileUpload className="w-6 h-6" />}
              />
            )
          }
          label={isTabbarLabels &#x26;&#x26; 'Tab 3'}
        />
      &#x3C;/Tabbar>

      &#x3C;List strong inset>
        &#x3C;ListItem
          title="Tabbar Labels"
          after={
            &#x3C;Toggle
              checked={isTabbarLabels}
              onChange={() => setIsTabbarLabels(!isTabbarLabels)}
            />
          }
        />
        &#x3C;ListItem
          title="Tabbar Icons"
          after={
            &#x3C;Toggle
              checked={isTabbarIcons}
              onChange={() => setIsTabbarIcons(!isTabbarIcons)}
            />
          }
        />
      &#x3C;/List>

      {activeTab === 'tab-1' &#x26;&#x26; (
        &#x3C;Block strong inset className="space-y-4">
          &#x3C;p>
            &#x3C;b>Tab 1&#x3C;/b>
          &#x3C;/p>
          &#x3C;p>
            &#x3C;span>
              Lorem ipsum dolor sit amet, consectetur adipisicing elit. Alias
              accusantium necessitatibus, nihil quas praesentium at quibusdam
              cupiditate possimus et repudiandae dolorum delectus quo, similique
              voluptatem magni explicabo adipisci magnam ratione!
            &#x3C;/span>
            &#x3C;span>
              Quod praesentium consequatur autem veritatis, magni alias
              consectetur ut quo, voluptatum earum in repellat! Id, autem! Minus
              suscipit, ad possimus non voluptatem aliquam praesentium earum
              corrupti optio velit tenetur numquam?
            &#x3C;/span>
            &#x3C;span>
              Illo id ipsa natus quidem dignissimos odio dolore veniam,
              accusamus vel assumenda nulla aliquam amet distinctio! Debitis
              deserunt, et, cum voluptate similique culpa assumenda inventore,
              facilis eveniet iure optio velit.
            &#x3C;/span>
            &#x3C;span>
              Maiores minus laborum placeat harum impedit, saepe veniam iusto
              voluptates delectus omnis consectetur tenetur ex ipsa error
              debitis aspernatur amet et alias! Sit odit cum voluptas quae? Est,
              omnis eos?
            &#x3C;/span>
          &#x3C;/p>
        &#x3C;/Block>
      )}
      {activeTab === 'tab-2' &#x26;&#x26; (
        &#x3C;Block strong inset className="space-y-4">
          &#x3C;p>
            &#x3C;b>Tab 2&#x3C;/b>
          &#x3C;/p>
          &#x3C;p>
            &#x3C;span>
              Dicta beatae repudiandae ab pariatur mollitia praesentium fuga
              ipsum adipisci, quia nam expedita, est dolore eveniet, dolorum
              obcaecati? Veniam repellendus mollitia sapiente minus saepe
              voluptatibus necessitatibus laboriosam incidunt nihil autem.
            &#x3C;/span>
            &#x3C;span>
              Officia pariatur qui, deleniti eum, et minus nisi aliquam nobis
              hic provident quisquam quidem voluptatem eveniet ducimus. Commodi
              ea dolorem, impedit eaque dolor, sint blanditiis magni accusantium
              natus reprehenderit minima?
            &#x3C;/span>
            &#x3C;span>
              Dicta reiciendis ut vitae laborum aut repellendus quasi beatae
              nulla sapiente et. Quod distinctio velit, modi ipsam
              exercitationem iste quia eaque blanditiis neque rerum optio, nulla
              tenetur pariatur ex officiis.
            &#x3C;/span>
            &#x3C;span>
              Consectetur accusamus delectus sit voluptatem at esse! Aperiam
              unde maxime est nemo dicta minus autem esse nobis quibusdam iusto,
              reprehenderit harum, perferendis quae. Ipsum sit fugit similique
              recusandae quas inventore?
            &#x3C;/span>
          &#x3C;/p>
        &#x3C;/Block>
      )}
      {activeTab === 'tab-3' &#x26;&#x26; (
        &#x3C;Block strong inset className="space-y-4">
          &#x3C;p>
            &#x3C;b>Tab 3&#x3C;/b>
          &#x3C;/p>
          &#x3C;p>
            &#x3C;span>
              Vero esse ab natus neque commodi aut quidem nobis. Unde, quam
              asperiores. A labore quod commodi autem explicabo distinctio saepe
              ex amet iste recusandae porro consectetur, sed dolorum sapiente
              voluptatibus?
            &#x3C;/span>
            &#x3C;span>
              Commodi ipsum, voluptatem obcaecati voluptatibus illum hic aliquam
              veritatis modi natus unde, assumenda expedita, esse eum fugit?
              Saepe aliquam ipsam illum nihil facilis, laborum quia, eius ea
              dolores molestias dicta.
            &#x3C;/span>
<strong>            &#x3C;span>
</strong>              Consequatur quam laudantium, magnam facere ducimus tempora
              temporibus omnis cupiditate obcaecati tempore? Odit qui a,
              voluptas eveniet similique, doloribus eum dolorum ad, enim ea
              itaque voluptates porro minima. Omnis, magnam.
            &#x3C;/span>
            &#x3C;span>
              Debitis, delectus! Eligendi excepturi rem veritatis, ad
              exercitationem tempore eveniet voluptates aut labore harum dolorem
              nemo repellendus accusantium quibusdam neque? Itaque iusto
              quisquam reprehenderit aperiam maiores dicta iure necessitatibus
              est.
            &#x3C;/span>
          &#x3C;/p>
        &#x3C;/Block>
      )}
    &#x3C;/Page>
  );
}
</code></pre>

{% endtab %}
{% endtabs %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.quantumbyte.ai/home/quantumbyte-v2.0/3.microsites-1/8.ui/4.components/37.tabbar.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
