Özer

Tabs

Navigation 67

About

An accessible tabs component with an animated sliding indicator, keyboard navigation, and directional panel transitions.

Built with React and Tailwind. Copy the prompt and paste it into Claude Code, Cursor or Lovable: your agent adds Tabs to your project and fits it to your theme.

Code

How Tabs is used: the demo's code. The component's own source comes with a free account.

Usage.tsx

"use client";

import Tabs from "@/components/ui/tabs";
import { useState } from "react";

const items = [
  { value: "overview", label: "Overview" },
  { value: "activity", label: "Activity" },
  { value: "members", label: "Members" },
];

const panels: Record<string, { title: string; lines: string[] }> = {
  overview: {
    title: "Acme workspace",
    lines: ["4 projects, 2 archived", "Created 14 March"],
  },
  activity: {
    title: "Last 24 hours",
    lines: ["Dana deployed api-gateway", "Rui closed 3 issues"],
  },
  members: {
    title: "6 people",
    lines: ["2 admins, 4 editors", "1 invite pending"],
  },
};

export default function TabsDemo() {
  const [tab, setTab] = useState("overview");

  return (
    <div className="mx-auto w-full max-w-[440px]">
      <Tabs
        items={items}
        value={tab}
        onValueChange={setTab}
        label="Workspace sections"
        panelClassName="mt-3"
        renderPanel={(value) => (
          <div className="flex h-[86px] flex-col justify-center rounded-[11px] bg-sub px-3.5">
            <p className="text-[13px] font-medium text-ink">
              {panels[value].title}
            </p>
            {panels[value].lines.map((line) => (
              <p key={line} className="mt-1 text-[12.5px] text-ink-2">
                {line}
              </p>
            ))}
          </div>
        )}
      />
    </div>
  );
}

Dependencies

More by Özer

View all
  • Password Strength

    Password Strength

    1.3K
  • OTP Input

    OTP Input

    831
  • Loading Button

    Loading Button

    625
  • Progress Bar

    Progress Bar

    598
  • Reorder List

    Reorder List

    326
  • Task Steps

    Task Steps

    289
  • Hold to Confirm

    Hold to Confirm

    258
  • Reading Progress

    Reading Progress

    180

More in Navigation

View all
  • Sidebar

    Sidebar

    347
  • Tabs like bookmark

    Tabs like bookmark

    73
  • Pagination

    Pagination

    101
  • Oversized 404 Numeral

    Oversized 404 Numeral

    69
  • Navbar with Theme Toggle

    Navbar with Theme Toggle

    57
  • Stacked Circular Footer

    Stacked Circular Footer

    444
  • Tabs

    Tabs

    67
  • Dorpdown Navigation

    Dorpdown Navigation

    235