Components/Tabs

Feedback component

Tabs

Ink-bordered segmented switcher. Active tab fills with color and casts a hard shadow; inactive tabs sit flat. Controlled or uncontrolled. 4 fill colors, 3 sizes.

Interactive4 colorssm / md / lgSnap motion
components/feedback/Tabs.jsx
Colors — click to switch
4 fill colors
Sizes
size="sm" · size="md" (default) · size="lg"
With content panel
Tabs controlling a content area below
Overview content — summary stats, recent activity.
Props
PropTypeDefaultDescription
tabsstring[] | {value, label}[][]Tab definitions. Strings auto-convert to {value, label}.
valuestringControlled active tab value.
defaultValuestringtabs[0]Initial active tab for uncontrolled use.
onChange(value: string) => voidCalled when active tab changes.
color"lime"|"violet"|"pink"|"yellow""lime"Active tab fill color.
size"sm"|"md"|"lg""md"Tab button size. sm = compact, md = default, lg = prominent.
Usage
import { Tabs } from "components/feedback/Tabs";

// Uncontrolled
<Tabs tabs={["Overview", "Analytics", "Settings"]} />

// Controlled + content panel
<Tabs
  tabs={["Overview", "Analytics"]}
  value={activeTab}
  onChange={setActiveTab}
  color="violet"
/>
{activeTab === "Overview" && <Overview />}
{activeTab === "Analytics" && <Analytics />}