Tabs
Tabs that switch between views.
Show one of several views in the same place. For a two-to-four-way toggle,
SegmentedControl takes less room.
export const client = "only";
import { Tabs, TabsList, TabsTrigger, TabsContent } from "@squadbase/vantage/ui";
export default function Example() {
return (
<div className="flex w-[28rem] flex-col gap-8">
<Tabs defaultValue="chart">
<TabsList>
<TabsTrigger value="chart">グラフ</TabsTrigger>
<TabsTrigger value="table">表</TabsTrigger>
<TabsTrigger value="sql">SQL</TabsTrigger>
</TabsList>
<TabsContent value="chart">月次の推移をグラフで表示します。</TabsContent>
<TabsContent value="table">同じデータを表で表示します。</TabsContent>
<TabsContent value="sql">この画面が発行しているクエリです。</TabsContent>
</Tabs>
<Tabs defaultValue="day">
<TabsList variant="line">
<TabsTrigger value="day">日次</TabsTrigger>
<TabsTrigger value="week">週次</TabsTrigger>
<TabsTrigger value="month">月次</TabsTrigger>
</TabsList>
<TabsContent value="day">variant="line" の見た目です。</TabsContent>
<TabsContent value="week">下線だけのタブ。</TabsContent>
<TabsContent value="month">画面の幅いっぱいに置くときに向きます。</TabsContent>
</Tabs>
</div>
);
}
import { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants } from "@squadbase/vantage/ui";
Parts
| Part | Role |
|---|---|
Tabs |
The state: value / defaultValue / onValueChange, plus orientation |
TabsList |
The strip. variant: default (filled) | line (underline) |
TabsTrigger |
One tab; value is required |
TabsContent |
The matching panel |
To keep the active tab in the URL, wire value to a search param — see Routing.
orientation="vertical" stacks them.