@sveltestrap/sveltestrap
Version:
Bootstrap components for Svelte
216 lines (189 loc) • 5.67 kB
text/mdx
import { Meta, Canvas, Controls, Story, Source } from '@storybook/blocks';
import * as TabsStories from './Tabs.stories';
<Meta title="Components/Tabs" />
# Tabs <small class="bootstrap-docs">[Bootstrap Tabs](https://getbootstrap.com/docs/5.3/components/navs-tabs/#javascript-behavior)</small>
`Tabs` are a user interface design pattern that organizes content into distinct sections, allowing users to navigate between them seamlessly
<Canvas withSource="none">
<Story of={TabsStories.Basic} />
</Canvas>
<Source
dark
language="html"
code={`
<script lang="ts">
import { TabContent, TabPane } from '@sveltestrap/sveltestrap';
</script>
<TabContent>
<TabPane tabId="alpha" tab="Alpha" active>
<h2 class="text-content">Alpha</h2>
<img
alt="Alpha Flight"
src="https://upload.wikimedia.org/wikipedia/en/4/49/Alpha_Flight_cast_picture_%28John_Byrne_era%29.gif"
/>
</TabPane>
<TabPane tabId="bravo" tab="Bravo">
<h2 class="text-content">Bravo</h2>
<img
alt="Johnny Bravo"
src="https://upload.wikimedia.org/wikipedia/commons/thumb/b/be/Johnny_Bravo_series_logo.png/320px-Johnny_Bravo_series_logo.png"
/>
</TabPane>
<TabPane tabId="charlie" tab="Charlie">
<h2 class="text-content">Charlie</h2>
<img alt="Charlie Brown" src="https://upload.wikimedia.org/wikipedia/en/2/22/Charlie_Brown.png" />
</TabPane>
</TabContent>
`} />
## Pills
<Canvas withSource="none">
<Story of={TabsStories.Pills} />
</Canvas>
<Source
dark
language="html"
code={`
<script lang="ts">
import { TabContent, TabPane } from '@sveltestrap/sveltestrap';
</script>
<TabContent pills">
<TabPane tabId="alpha" tab="Alpha" active>
<img
alt="Alpha Flight"
src="https://upload.wikimedia.org/wikipedia/en/4/49/Alpha_Flight_cast_picture_%28John_Byrne_era%29.gif"
/>
</TabPane>
<TabPane tabId="bravo" tab="Bravo">
<img
alt="Johnny Bravo"
src="https://upload.wikimedia.org/wikipedia/commons/thumb/b/be/Johnny_Bravo_series_logo.png/320px-Johnny_Bravo_series_logo.png"
/>
</TabPane>
<TabPane tabId="charlie" tab="Charlie">
<img alt="Charlie Brown" src="https://upload.wikimedia.org/wikipedia/en/2/22/Charlie_Brown.png" />
</TabPane>
</TabContent>
`} />
## Disabled
<Canvas withSource="none">
<Story of={TabsStories.Disabled} />
</Canvas>
<Source
dark
language="html"
code={`
<script lang="ts">
import { TabContent, TabPane } from '@sveltestrap/sveltestrap';
</script>
<TabContent pills">
<TabPane tabId="alpha" tab="Alpha" active>
<img
alt="Alpha Flight"
src="https://upload.wikimedia.org/wikipedia/en/4/49/Alpha_Flight_cast_picture_%28John_Byrne_era%29.gif"
/>
</TabPane>
<TabPane tabId="bravo" tab="Bravo">
<img
alt="Johnny Bravo"
src="https://upload.wikimedia.org/wikipedia/commons/thumb/b/be/Johnny_Bravo_series_logo.png/320px-Johnny_Bravo_series_logo.png"
/>
</TabPane>
<TabPane tabId="charlie" tab="Charlie" disabled>
<img alt="Charlie Brown" src="https://upload.wikimedia.org/wikipedia/en/2/22/Charlie_Brown.png" />
</TabPane>
</TabContent>
`} />
## Slots
<Canvas withSource="none">
<Story of={TabsStories.Slots} />
</Canvas>
<Source
dark
language="html"
code={`
<script lang="ts">
import { Icon, TabContent, TabPane } from '@sveltestrap/sveltestrap';
</script>
<TabContent>
<TabPane tabId="alpha" active>
<span slot="tab">
Alpha <Icon name="gear" />
</span>
<img
alt="Alpha Flight"
src="https://upload.wikimedia.org/wikipedia/en/4/49/Alpha_Flight_cast_picture_%28John_Byrne_era%29.gif"
/>
</TabPane>
<TabPane tabId="bravo">
<span slot="tab">
Bravo <Icon name="hand-thumbs-up" />
</span>
<img
alt="Johnny Bravo"
src="https://upload.wikimedia.org/wikipedia/commons/thumb/b/be/Johnny_Bravo_series_logo.png/320px-Johnny_Bravo_series_logo.png"
/>
</TabPane>
<TabPane tabId="charlie">
<span slot="tab">
Charlie <Icon name="alarm" />
</span>
<img alt="Charlie Brown" src="https://upload.wikimedia.org/wikipedia/en/2/22/Charlie_Brown.png" />
</TabPane>
</TabContent>
`} />
## Vertical
<Canvas withSource="none">
<Story of={TabsStories.Vertical} />
</Canvas>
<Source
dark
language="html"
code={`
<script lang="ts">
import { TabContent, TabPane } from '@sveltestrap/sveltestrap';
</script>
<TabContent vertical pills>
<TabPane tabId="alpha" tab="Alpha" active>
<h2>Alpha</h2>
<img
alt="Alpha Flight"
src="https://upload.wikimedia.org/wikipedia/en/4/49/Alpha_Flight_cast_picture_%28John_Byrne_era%29.gif"
/>
</TabPane>
<TabPane tabId="bravo" tab="Bravo">
<h2>Bravo</h2>
<img
alt="Johnny Bravo"
src="https://upload.wikimedia.org/wikipedia/commons/thumb/b/be/Johnny_Bravo_series_logo.png/320px-Johnny_Bravo_series_logo.png"
/>
</TabPane>
<TabPane tabId="charlie" tab="Charlie">
<h2>Charlie</h2>
<img alt="Charlie Brown" src="https://upload.wikimedia.org/wikipedia/en/2/22/Charlie_Brown.png" />
</TabPane>
</TabContent>
`} />
## Events
<Canvas withSource="none">
<Story of={TabsStories.Events} />
</Canvas>
<Source
dark
language="html"
code={`
<script lang="ts">
import { TabContent, TabPane } from '@sveltestrap/sveltestrap';
let status = 'alpha';
</script>
<h5>Current state: {status}</h5>
<TabContent on:tab={(e) => (status = e.detail)}>
<TabPane tabId="alpha" tab="Alpha" active>
<h2>Alpha</h2>
</TabPane>
<TabPane tabId="bravo" tab="Bravo">
<h2>Bravo</h2>
</TabPane>
<TabPane tabId="charlie" tab="Charlie">
<h2>Charlie</h2>
</TabPane>
</TabContent>
`} />