react98

Tabs

Windows 98 tab primitives for controlled tab layouts.

Preview

tabs.exe
General settings appear here.

Installation

pnpm dlx shadcn@latest add https://react98-ui.vercel.app/r/tabs.json
npx shadcn@latest add https://react98-ui.vercel.app/r/tabs.json
yarn dlx shadcn@latest add https://react98-ui.vercel.app/r/tabs.json
bunx shadcn@latest add https://react98-ui.vercel.app/r/tabs.json

Usage

import { useState } from "react";
import { Tab, Tabs, TabsList, TabsPanel } from "@/components/ui/98/tabs";

export function Example() {
  const [selected, setSelected] = useState<"general" | "advanced">("general");

  return (
    <Tabs>
      <TabsList>
        <Tab
          selected={selected === "general"}
          onClick={() => setSelected("general")}
        >
          General
        </Tab>
        <Tab
          selected={selected === "advanced"}
          onClick={() => setSelected("advanced")}
        >
          Advanced
        </Tab>
      </TabsList>
      <TabsPanel>
        {selected === "general" ? "General settings" : "Advanced settings"}
      </TabsPanel>
    </Tabs>
  );
}

Props

ComponentPropsDescription
TabsHTMLAttributes<HTMLDivElement>Root wrapper.
TabsListHTMLAttributes<HTMLDivElement>Tab row with role="tablist".
TabButtonHTMLAttributes<HTMLButtonElement> & { selected?: boolean }Tab button with controlled selected state.
TabsPanelHTMLAttributes<HTMLDivElement>Panel with role="tabpanel".

On this page