Tabs
aqua/tabsFreeComponent
Aqua tab bar with glossy active state over a pinstripe content pane.
Live preview
live · rendered by the registry
Rendered by aqua on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://aqua.duca.dev/r/tabs.jsonSource
1"use client"23import * as React from "react"4import * as TabsPrimitive from "@radix-ui/react-tabs"56import { cn } from "@/lib/utils"78function Tabs({9 className,10 ...props11}: React.ComponentProps<typeof TabsPrimitive.Root>) {12 return (13 <TabsPrimitive.Root14 data-slot="tabs"15 className={cn("flex flex-col items-center", className)}16 {...props}17 />18 )19}2021function TabsList({22 className,23 ...props24}: React.ComponentProps<typeof TabsPrimitive.List>) {25 return (26 <TabsPrimitive.List27 data-slot="tabs-list"28 className={cn(29 "z-10 -mb-[14px] inline-flex rounded-full shadow-[0_1px_3px_rgba(20,30,50,0.25)]",30 className31 )}32 {...props}33 />34 )35}3637function TabsTrigger({38 className,39 ...props40}: React.ComponentProps<typeof TabsPrimitive.Trigger>) {41 return (42 <TabsPrimitive.Trigger43 data-slot="tabs-trigger"44 className={cn(45 "relative -ml-px border border-[#8b909a] bg-[linear-gradient(180deg,#fdfdfe_0%,#e4e7ec_48%,#d3d7de_52%,#eceef2_100%)] px-5 py-[5px] text-[13px] text-[#3a3f47] shadow-[inset_0_1px_0_rgba(255,255,255,0.9)] outline-none transition-[filter] first:ml-0 first:rounded-l-full last:rounded-r-full hover:brightness-103 focus-visible:z-10 focus-visible:ring-[3px] focus-visible:ring-[var(--aqua-ring,#6cb0f7)]/70 active:brightness-95 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:border-[var(--aqua-edge,#1c5fb8)] data-[state=active]:bg-[linear-gradient(180deg,var(--aqua-gel-hi,#a8d0f7)_0%,var(--aqua-gel-mid,#4a90ec)_50%,var(--aqua-gel-deep,#2a6fd0)_51%,var(--aqua-gel-light,#6aabf3)_100%)] data-[state=active]:text-white data-[state=active]:shadow-[inset_0_2px_4px_rgba(10,40,90,0.35),inset_0_1px_0_rgba(255,255,255,0.4)] data-[state=active]:[text-shadow:0_-1px_1px_rgba(10,40,90,0.4)]",46 className47 )}48 {...props}49 />50 )51}5253function TabsContent({54 className,55 ...props56}: React.ComponentProps<typeof TabsPrimitive.Content>) {57 return (58 <TabsPrimitive.Content59 data-slot="tabs-content"60 className={cn(61 "w-full rounded-lg border border-[#a9adb5] bg-[repeating-linear-gradient(180deg,#f4f6fa_0px,#f4f6fa_2px,#eaeef4_2px,#eaeef4_4px)] p-6 pt-8 shadow-[inset_0_1px_4px_rgba(20,30,50,0.12)] outline-none",62 className63 )}64 {...props}65 />66 )67}6869export { Tabs, TabsList, TabsTrigger, TabsContent }
What it pulls in
npm packages
Files it writes
More from aqua
All 26 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Alertalert | aqua | Components | Free | 1 dep | |
| Avataravatar | aqua | Components | Free | 1 dep | |
| Badgebadge | aqua | Components | Free | 2 deps | |
| Buttonbutton | aqua | Components | Free | 2 deps | |
| Chat Bubblechat-bubble | aqua | Components | Free | no deps | |
| Checkboxcheckbox | aqua | Components | Free | 2 deps | |
| Code Blockcode-block | aqua | Components | Free | 2 deps · 2 files | |
| Cursorcursor | aqua | Components | Free | no deps |
