Tabs
panels behind tabs, one showing at a time. boxed, they are folder tabs.
usage
example
a biker bar out on the highway. quohog pours.
what is left of the town sinks a foot a year.
home of corley motors and its shareholders.
code
import { Tabs } from 'charcell/react';
export function TabsExample() {
return (
<Tabs
items={[
{ value: 'kickstand', label: 'kickstand' },
{ value: 'melonweed', label: 'melonweed' },
{ value: 'corville', label: 'corville', disabled: true },
]}
label="highway 9"
panel={({ value }) => (
<>
{value === 'kickstand' && (
<>
<p>a biker bar out on the highway. quohog pours.</p>
</>
)}
{value === 'melonweed' && (
<>
<p>what is left of the town sinks a foot a year.</p>
</>
)}
{value === 'corville' && (
<>
<p>home of corley motors and its shareholders.</p>
</>
)}
</>
)}
/>
);
}▴
▾
<script setup lang="ts">
import { Tabs } from 'charcell/vue';
</script>
<template>
<Tabs
:items="[
{ value: 'kickstand', label: 'kickstand' },
{ value: 'melonweed', label: 'melonweed' },
{ value: 'corville', label: 'corville', disabled: true },
]"
label="highway 9"
>
<template #panel="{ value }">
<template v-if="value === 'kickstand'"
><p>a biker bar out on the highway. quohog pours.</p></template
><template v-if="value === 'melonweed'"
><p>what is left of the town sinks a foot a year.</p></template
><template v-if="value === 'corville'"
><p>home of corley motors and its shareholders.</p></template
>
</template>
</Tabs>
</template>▴
▾
<script lang="ts">
import { Tabs } from 'charcell/svelte';
</script>
<Tabs
items={[
{ value: 'kickstand', label: 'kickstand' },
{ value: 'melonweed', label: 'melonweed' },
{ value: 'corville', label: 'corville', disabled: true },
]}
label="highway 9"
>
{#snippet panel({ value })}
{#if value === 'kickstand'}<p>
a biker bar out on the highway. quohog pours.
</p>{/if}{#if value === 'melonweed'}<p>
what is left of the town sinks a foot a year.
</p>{/if}{#if value === 'corville'}<p>
home of corley motors and its shareholders.
</p>{/if}
{/snippet}
</Tabs>▴
▾
<!-- component: TabsDriver (behavior not included) -->
<div class="CharcellTabs CharcellTabs--scripted">
<div class="CharcellTabList">
<button class="CharcellTabList__tab">kickstand</button
><button class="CharcellTabList__tab">melonweed</button
><button class="CharcellTabList__tab">corville</button
><span class="CharcellTabList__rest" aria-hidden="true"></span>
</div>
<div class="CharcellTabPanel">
<p>a biker bar out on the highway. quohog pours.</p>
</div>
<div class="CharcellTabPanel">
<p>what is left of the town sinks a foot a year.</p>
</div>
<div class="CharcellTabPanel">
<p>home of corley motors and its shareholders.</p>
</div>
</div>
<!-- /component -->▴
▾
import { Tabs } from 'charcell/react';
export function TabsExample() {
return (
<Tabs
items={[
{ value: 'kickstand', label: 'kickstand' },
{ value: 'melonweed', label: 'melonweed' },
{ value: 'corville', label: 'corville', disabled: true },
]}
label="highway 9"
variant="dense"
panel={({ value }) => (
<>
{value === 'kickstand' && (
<>
<p>a biker bar out on the highway. quohog pours.</p>
</>
)}
{value === 'melonweed' && (
<>
<p>what is left of the town sinks a foot a year.</p>
</>
)}
{value === 'corville' && (
<>
<p>home of corley motors and its shareholders.</p>
</>
)}
</>
)}
/>
);
}▴
▾
<script setup lang="ts">
import { Tabs } from 'charcell/vue';
</script>
<template>
<Tabs
:items="[
{ value: 'kickstand', label: 'kickstand' },
{ value: 'melonweed', label: 'melonweed' },
{ value: 'corville', label: 'corville', disabled: true },
]"
label="highway 9"
variant="dense"
>
<template #panel="{ value }">
<template v-if="value === 'kickstand'"
><p>a biker bar out on the highway. quohog pours.</p></template
><template v-if="value === 'melonweed'"
><p>what is left of the town sinks a foot a year.</p></template
><template v-if="value === 'corville'"
><p>home of corley motors and its shareholders.</p></template
>
</template>
</Tabs>
</template>▴
▾
<script lang="ts">
import { Tabs } from 'charcell/svelte';
</script>
<Tabs
items={[
{ value: 'kickstand', label: 'kickstand' },
{ value: 'melonweed', label: 'melonweed' },
{ value: 'corville', label: 'corville', disabled: true },
]}
label="highway 9"
variant="dense"
>
{#snippet panel({ value })}
{#if value === 'kickstand'}<p>
a biker bar out on the highway. quohog pours.
</p>{/if}{#if value === 'melonweed'}<p>
what is left of the town sinks a foot a year.
</p>{/if}{#if value === 'corville'}<p>
home of corley motors and its shareholders.
</p>{/if}
{/snippet}
</Tabs>▴
▾
<!-- component: TabsDriver (behavior not included) -->
<div class="CharcellTabs CharcellTabs--scripted">
<div class="CharcellTabList CharcellTabList--dense">
<button class="CharcellTabList__tab">kickstand</button
><button class="CharcellTabList__tab">melonweed</button
><button class="CharcellTabList__tab">corville</button
><span class="CharcellTabList__rest" aria-hidden="true"></span>
</div>
<div class="CharcellTabPanel CharcellTabPanel--dense">
<p>a biker bar out on the highway. quohog pours.</p>
</div>
<div class="CharcellTabPanel CharcellTabPanel--dense">
<p>what is left of the town sinks a foot a year.</p>
</div>
<div class="CharcellTabPanel CharcellTabPanel--dense">
<p>home of corley motors and its shareholders.</p>
</div>
</div>
<!-- /component -->▴
▾
import { Tabs } from 'charcell/react';
export function TabsExample() {
return (
<Tabs
items={[
{ value: 'kickstand', label: 'kickstand' },
{ value: 'melonweed', label: 'melonweed' },
{ value: 'corville', label: 'corville', disabled: true },
]}
label="highway 9"
border="none"
panel={({ value }) => (
<>
{value === 'kickstand' && (
<>
<p>a biker bar out on the highway. quohog pours.</p>
</>
)}
{value === 'melonweed' && (
<>
<p>what is left of the town sinks a foot a year.</p>
</>
)}
{value === 'corville' && (
<>
<p>home of corley motors and its shareholders.</p>
</>
)}
</>
)}
/>
);
}▴
▾
<script setup lang="ts">
import { Tabs } from 'charcell/vue';
</script>
<template>
<Tabs
:items="[
{ value: 'kickstand', label: 'kickstand' },
{ value: 'melonweed', label: 'melonweed' },
{ value: 'corville', label: 'corville', disabled: true },
]"
label="highway 9"
border="none"
>
<template #panel="{ value }">
<template v-if="value === 'kickstand'"
><p>a biker bar out on the highway. quohog pours.</p></template
><template v-if="value === 'melonweed'"
><p>what is left of the town sinks a foot a year.</p></template
><template v-if="value === 'corville'"
><p>home of corley motors and its shareholders.</p></template
>
</template>
</Tabs>
</template>▴
▾
<script lang="ts">
import { Tabs } from 'charcell/svelte';
</script>
<Tabs
items={[
{ value: 'kickstand', label: 'kickstand' },
{ value: 'melonweed', label: 'melonweed' },
{ value: 'corville', label: 'corville', disabled: true },
]}
label="highway 9"
border="none"
>
{#snippet panel({ value })}
{#if value === 'kickstand'}<p>
a biker bar out on the highway. quohog pours.
</p>{/if}{#if value === 'melonweed'}<p>
what is left of the town sinks a foot a year.
</p>{/if}{#if value === 'corville'}<p>
home of corley motors and its shareholders.
</p>{/if}
{/snippet}
</Tabs>▴
▾
<!-- component: TabsDriver (behavior not included) -->
<div class="CharcellTabs CharcellTabs--scripted">
<div class="CharcellTabList CharcellTabList--border-end-none">
<button class="CharcellTabList__tab">kickstand</button
><button class="CharcellTabList__tab">melonweed</button
><button class="CharcellTabList__tab">corville</button
><span class="CharcellTabList__rest" aria-hidden="true"></span>
</div>
<div
class="CharcellTabPanel CharcellTabPanel--border-end-none CharcellTabPanel--border-bottom-none"
>
<p>a biker bar out on the highway. quohog pours.</p>
</div>
<div
class="CharcellTabPanel CharcellTabPanel--border-end-none CharcellTabPanel--border-bottom-none"
>
<p>what is left of the town sinks a foot a year.</p>
</div>
<div
class="CharcellTabPanel CharcellTabPanel--border-end-none CharcellTabPanel--border-bottom-none"
>
<p>home of corley motors and its shareholders.</p>
</div>
</div>
<!-- /component -->▴
▾
import { Tabs } from 'charcell/react';
export function TabsExample() {
return (
<Tabs
items={[
{ value: 'kickstand', label: 'kickstand' },
{ value: 'melonweed', label: 'melonweed' },
{ value: 'corville', label: 'corville', disabled: true },
]}
label="highway 9"
border="rounded"
panel={({ value }) => (
<>
{value === 'kickstand' && (
<>
<p>a biker bar out on the highway. quohog pours.</p>
</>
)}
{value === 'melonweed' && (
<>
<p>what is left of the town sinks a foot a year.</p>
</>
)}
{value === 'corville' && (
<>
<p>home of corley motors and its shareholders.</p>
</>
)}
</>
)}
/>
);
}▴
▾
<script setup lang="ts">
import { Tabs } from 'charcell/vue';
</script>
<template>
<Tabs
:items="[
{ value: 'kickstand', label: 'kickstand' },
{ value: 'melonweed', label: 'melonweed' },
{ value: 'corville', label: 'corville', disabled: true },
]"
label="highway 9"
border="rounded"
>
<template #panel="{ value }">
<template v-if="value === 'kickstand'"
><p>a biker bar out on the highway. quohog pours.</p></template
><template v-if="value === 'melonweed'"
><p>what is left of the town sinks a foot a year.</p></template
><template v-if="value === 'corville'"
><p>home of corley motors and its shareholders.</p></template
>
</template>
</Tabs>
</template>▴
▾
<script lang="ts">
import { Tabs } from 'charcell/svelte';
</script>
<Tabs
items={[
{ value: 'kickstand', label: 'kickstand' },
{ value: 'melonweed', label: 'melonweed' },
{ value: 'corville', label: 'corville', disabled: true },
]}
label="highway 9"
border="rounded"
>
{#snippet panel({ value })}
{#if value === 'kickstand'}<p>
a biker bar out on the highway. quohog pours.
</p>{/if}{#if value === 'melonweed'}<p>
what is left of the town sinks a foot a year.
</p>{/if}{#if value === 'corville'}<p>
home of corley motors and its shareholders.
</p>{/if}
{/snippet}
</Tabs>▴
▾
<!-- component: TabsDriver (behavior not included) -->
<div class="CharcellTabs CharcellTabs--scripted">
<div class="CharcellTabList CharcellTabList--border-end-rounded">
<button class="CharcellTabList__tab">kickstand</button
><button class="CharcellTabList__tab">melonweed</button
><button class="CharcellTabList__tab">corville</button
><span class="CharcellTabList__rest" aria-hidden="true"></span>
</div>
<div
class="CharcellTabPanel CharcellTabPanel--border-end-rounded CharcellTabPanel--border-bottom-rounded"
>
<p>a biker bar out on the highway. quohog pours.</p>
</div>
<div
class="CharcellTabPanel CharcellTabPanel--border-end-rounded CharcellTabPanel--border-bottom-rounded"
>
<p>what is left of the town sinks a foot a year.</p>
</div>
<div
class="CharcellTabPanel CharcellTabPanel--border-end-rounded CharcellTabPanel--border-bottom-rounded"
>
<p>home of corley motors and its shareholders.</p>
</div>
</div>
<!-- /component -->▴
▾
import { Tabs } from 'charcell/react';
export function TabsExample() {
return (
<Tabs
items={[
{ value: 'kickstand', label: 'kickstand' },
{ value: 'melonweed', label: 'melonweed' },
{ value: 'corville', label: 'corville', disabled: true },
]}
label="highway 9"
border="heavy"
panel={({ value }) => (
<>
{value === 'kickstand' && (
<>
<p>a biker bar out on the highway. quohog pours.</p>
</>
)}
{value === 'melonweed' && (
<>
<p>what is left of the town sinks a foot a year.</p>
</>
)}
{value === 'corville' && (
<>
<p>home of corley motors and its shareholders.</p>
</>
)}
</>
)}
/>
);
}▴
▾
<script setup lang="ts">
import { Tabs } from 'charcell/vue';
</script>
<template>
<Tabs
:items="[
{ value: 'kickstand', label: 'kickstand' },
{ value: 'melonweed', label: 'melonweed' },
{ value: 'corville', label: 'corville', disabled: true },
]"
label="highway 9"
border="heavy"
>
<template #panel="{ value }">
<template v-if="value === 'kickstand'"
><p>a biker bar out on the highway. quohog pours.</p></template
><template v-if="value === 'melonweed'"
><p>what is left of the town sinks a foot a year.</p></template
><template v-if="value === 'corville'"
><p>home of corley motors and its shareholders.</p></template
>
</template>
</Tabs>
</template>▴
▾
<script lang="ts">
import { Tabs } from 'charcell/svelte';
</script>
<Tabs
items={[
{ value: 'kickstand', label: 'kickstand' },
{ value: 'melonweed', label: 'melonweed' },
{ value: 'corville', label: 'corville', disabled: true },
]}
label="highway 9"
border="heavy"
>
{#snippet panel({ value })}
{#if value === 'kickstand'}<p>
a biker bar out on the highway. quohog pours.
</p>{/if}{#if value === 'melonweed'}<p>
what is left of the town sinks a foot a year.
</p>{/if}{#if value === 'corville'}<p>
home of corley motors and its shareholders.
</p>{/if}
{/snippet}
</Tabs>▴
▾
<!-- component: TabsDriver (behavior not included) -->
<div class="CharcellTabs CharcellTabs--scripted">
<div class="CharcellTabList CharcellTabList--border-end-heavy">
<button class="CharcellTabList__tab">kickstand</button
><button class="CharcellTabList__tab">melonweed</button
><button class="CharcellTabList__tab">corville</button
><span class="CharcellTabList__rest" aria-hidden="true"></span>
</div>
<div
class="CharcellTabPanel CharcellTabPanel--border-end-heavy CharcellTabPanel--border-bottom-heavy"
>
<p>a biker bar out on the highway. quohog pours.</p>
</div>
<div
class="CharcellTabPanel CharcellTabPanel--border-end-heavy CharcellTabPanel--border-bottom-heavy"
>
<p>what is left of the town sinks a foot a year.</p>
</div>
<div
class="CharcellTabPanel CharcellTabPanel--border-end-heavy CharcellTabPanel--border-bottom-heavy"
>
<p>home of corley motors and its shareholders.</p>
</div>
</div>
<!-- /component -->▴
▾
import { Tabs } from 'charcell/react';
export function TabsExample() {
return (
<Tabs
items={[
{ value: 'kickstand', label: 'kickstand' },
{ value: 'melonweed', label: 'melonweed' },
{ value: 'corville', label: 'corville', disabled: true },
]}
label="highway 9"
border="double"
panel={({ value }) => (
<>
{value === 'kickstand' && (
<>
<p>a biker bar out on the highway. quohog pours.</p>
</>
)}
{value === 'melonweed' && (
<>
<p>what is left of the town sinks a foot a year.</p>
</>
)}
{value === 'corville' && (
<>
<p>home of corley motors and its shareholders.</p>
</>
)}
</>
)}
/>
);
}▴
▾
<script setup lang="ts">
import { Tabs } from 'charcell/vue';
</script>
<template>
<Tabs
:items="[
{ value: 'kickstand', label: 'kickstand' },
{ value: 'melonweed', label: 'melonweed' },
{ value: 'corville', label: 'corville', disabled: true },
]"
label="highway 9"
border="double"
>
<template #panel="{ value }">
<template v-if="value === 'kickstand'"
><p>a biker bar out on the highway. quohog pours.</p></template
><template v-if="value === 'melonweed'"
><p>what is left of the town sinks a foot a year.</p></template
><template v-if="value === 'corville'"
><p>home of corley motors and its shareholders.</p></template
>
</template>
</Tabs>
</template>▴
▾
<script lang="ts">
import { Tabs } from 'charcell/svelte';
</script>
<Tabs
items={[
{ value: 'kickstand', label: 'kickstand' },
{ value: 'melonweed', label: 'melonweed' },
{ value: 'corville', label: 'corville', disabled: true },
]}
label="highway 9"
border="double"
>
{#snippet panel({ value })}
{#if value === 'kickstand'}<p>
a biker bar out on the highway. quohog pours.
</p>{/if}{#if value === 'melonweed'}<p>
what is left of the town sinks a foot a year.
</p>{/if}{#if value === 'corville'}<p>
home of corley motors and its shareholders.
</p>{/if}
{/snippet}
</Tabs>▴
▾
<!-- component: TabsDriver (behavior not included) -->
<div class="CharcellTabs CharcellTabs--scripted">
<div class="CharcellTabList CharcellTabList--border-end-double">
<button class="CharcellTabList__tab">kickstand</button
><button class="CharcellTabList__tab">melonweed</button
><button class="CharcellTabList__tab">corville</button
><span class="CharcellTabList__rest" aria-hidden="true"></span>
</div>
<div
class="CharcellTabPanel CharcellTabPanel--border-end-double CharcellTabPanel--border-bottom-double"
>
<p>a biker bar out on the highway. quohog pours.</p>
</div>
<div
class="CharcellTabPanel CharcellTabPanel--border-end-double CharcellTabPanel--border-bottom-double"
>
<p>what is left of the town sinks a foot a year.</p>
</div>
<div
class="CharcellTabPanel CharcellTabPanel--border-end-double CharcellTabPanel--border-bottom-double"
>
<p>home of corley motors and its shareholders.</p>
</div>
</div>
<!-- /component -->▴
▾
as text
┌───────────┬───────────┬──────────┐ │ kickstand │ melonweed │ corville │ │ └───────────┴──────────┴───┐ │ a biker bar out on the highway. │ │ quohog pours. │ └──────────────────────────────────────┘
┌───────────┬───────────┬──────────┐ │ kickstand │ melonweed │ corville │ │ └───────────┴──────────┴───┐ │ a biker bar out on the highway. │ │ quohog pours. │ └──────────────────────────────────────┘
┌───────────┬───────────┬──────────┐ │❯kickstand │ melonweed │ corville │ │ └───────────┴──────────┴───┐ │ a biker bar out on the highway. │ │ quohog pours. │ └──────────────────────────────────────┘
┌───────────┬───────────┬──────────┐ │ kickstand │ melonweed │ corville │ │ └───────────┴──────────┴───┐ │❯a biker bar out on the highway. │ │ quohog pours. │ └──────────────────────────────────────┘
kickstand melonweed corville ──────────────────────────────────────── a biker bar out on the highway. quohog pours.
kickstand melonweed corville ──────────────────────────────────────── a biker bar out on the highway. quohog pours.
kickstand melonweed corville ──────────────────────────────────────── a biker bar out on the highway. quohog pours.
❯kickstand melonweed corville ──────────────────────────────────────── a biker bar out on the highway. quohog pours.
kickstand melonweed corville ──────────────────────────────────────── ❯a biker bar out on the highway. quohog pours.
┌───────────┬───────────┬──────────┐ │ kickstand │ melonweed │ corville │ │ └───────────┴──────────┴───╴ │ a biker bar out on the highway. │ quohog pours. ╵
┌───────────┬───────────┬──────────┐ │ kickstand │ melonweed │ corville │ │ └───────────┴──────────┴───╴ │ a biker bar out on the highway. │ quohog pours. ╵
┌───────────┬───────────┬──────────┐ │❯kickstand │ melonweed │ corville │ │ └───────────┴──────────┴───╴ │ a biker bar out on the highway. │ quohog pours. ╵
┌───────────┬───────────┬──────────┐ │ kickstand │ melonweed │ corville │ │ └───────────┴──────────┴───╴ │❯a biker bar out on the highway. │ quohog pours. ╵
┌───────────┬───────────┬──────────┐ │ kickstand │ melonweed │ corville │ │ └───────────┴──────────┴───┐ │ a biker bar out on the highway. │ │ quohog pours. │ └──────────────────────────────────────╯
┌───────────┬───────────┬──────────┐ │ kickstand │ melonweed │ corville │ │ └───────────┴──────────┴───┐ │ a biker bar out on the highway. │ │ quohog pours. │ └──────────────────────────────────────╯
┌───────────┬───────────┬──────────┐ │❯kickstand │ melonweed │ corville │ │ └───────────┴──────────┴───┐ │ a biker bar out on the highway. │ │ quohog pours. │ └──────────────────────────────────────╯
┌───────────┬───────────┬──────────┐ │ kickstand │ melonweed │ corville │ │ └───────────┴──────────┴───┐ │❯a biker bar out on the highway. │ │ quohog pours. │ └──────────────────────────────────────╯
┌───────────┬───────────┬──────────┐ │ kickstand │ melonweed │ corville │ │ └───────────┴──────────┴───┒ │ a biker bar out on the highway. ┃ │ quohog pours. ┃ ┕━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┌───────────┬───────────┬──────────┐ │ kickstand │ melonweed │ corville │ │ └───────────┴──────────┴───┒ │ a biker bar out on the highway. ┃ │ quohog pours. ┃ ┕━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┌───────────┬───────────┬──────────┐ │❯kickstand │ melonweed │ corville │ │ └───────────┴──────────┴───┒ │ a biker bar out on the highway. ┃ │ quohog pours. ┃ ┕━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┌───────────┬───────────┬──────────┐ │ kickstand │ melonweed │ corville │ │ └───────────┴──────────┴───┒ │❯a biker bar out on the highway. ┃ │ quohog pours. ┃ ┕━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┌───────────┬───────────┬──────────┐ │ kickstand │ melonweed │ corville │ │ └───────────┴──────────┴───╖ │ a biker bar out on the highway. ║ │ quohog pours. ║ ╘══════════════════════════════════════╝
┌───────────┬───────────┬──────────┐ │ kickstand │ melonweed │ corville │ │ └───────────┴──────────┴───╖ │ a biker bar out on the highway. ║ │ quohog pours. ║ ╘══════════════════════════════════════╝
┌───────────┬───────────┬──────────┐ │❯kickstand │ melonweed │ corville │ │ └───────────┴──────────┴───╖ │ a biker bar out on the highway. ║ │ quohog pours. ║ ╘══════════════════════════════════════╝
┌───────────┬───────────┬──────────┐ │ kickstand │ melonweed │ corville │ │ └───────────┴──────────┴───╖ │❯a biker bar out on the highway. ║ │ quohog pours. ║ ╘══════════════════════════════════════╝
props
Tabs
- direction'ltr' | 'rtl'
- The reading direction its keys and placement follow (
'rtl'mirrors the arrow keys); the page's, once mounted, when unset. - itemsTabItem[]
- The tabs, in order:
{ value, label, disabled }. - valuestring
- Controlled selected tab; pair it with
onValueChange. - binds with
v-model:valuein vue,bind:valuein svelte - defaultValuestring
- Uncontrolled initial tab; the first one when unset.
- onValueChange(value: string) => void
- Called with the newly selected tab's value.
- labelstring
- The tab list's accessible name.
- variant'boxed' | 'dense'= 'boxed'
boxed(the default) is the folder;denseis the bare tab row, its tabs 16px tall, which misses WCAG 2.5.8's 24px target; boxed meets it.- border'none' | 'single' | 'rounded' | 'heavy' | 'double'
- The style of the boxed panel's end and bottom sides:
single,rounded,heavy,doubleornone. Its top is the tabs, and its start meets theirs. - borderEnd'none' | 'single' | 'rounded' | 'heavy' | 'double'
- The style of the boxed panel's end side, over
border. - borderBottom'none' | 'single' | 'rounded' | 'heavy' | 'double'
- The style of the boxed panel's bottom side, over
border. - fillboolean
- Takes the container's box: grows in a flex or grid layout, and takes the full height of a block that has one; the selected panel takes the height the tab row leaves.
TabList
- variant'boxed' | 'dense'= 'boxed'
boxeddraws folder tabs over the panel;denseis the tabs over afaintrule.- border'none' | 'single' | 'rounded' | 'heavy' | 'double'
- The panel's border, which its right side follows: a double side's outer line sits a stroke gap further out, and the base runs on to meet it (╖).
- borderEnd'none' | 'single' | 'rounded' | 'heavy' | 'double'
- The panel's right side, over
border.
it also takes any other attribute of its <div>.
TabPanel
- variant'boxed' | 'dense'= 'boxed'
boxedis the folder's body, a ring open at the top;denseis bare.- border'none' | 'single' | 'rounded' | 'heavy' | 'double'
- The style of the boxed panel's end and bottom sides:
single,rounded,heavy,doubleornone. - borderEnd'none' | 'single' | 'rounded' | 'heavy' | 'double'
- The style of the boxed panel's end side, over
border. - borderBottom'none' | 'single' | 'rounded' | 'heavy' | 'double'
- The style of the boxed panel's bottom side, over
border. - fillboolean
- Takes the container's box: grows in a flex or grid layout, and takes the full height of a block that has one.
it also takes any other attribute of its <div>.
slots
in react, the default slot is children and each named slot a prop of its name, a function where the slot hands values; in vue, a slot; in svelte, a snippet.
Tabs
- panel{ value: string }
- A tab's content, given the tab's
value.
TabList
- default
TabPanel
- default
- The tab's content.
▴
▾