tabs
lyse/tabsFreeComponent
lyse publishes no description for this item.
Live preview
live · rendered by the registry
Rendered by lyse on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://ui.getlyse.com/r/tabs.jsonSource
1import * as React from "react"2import * as TabsPrimitive from "@radix-ui/react-tabs"3import { cva, type VariantProps } from "class-variance-authority"45import { cn } from "@/lib/utils"6import "./tabs.css"78/* ------------------------------------------------------------------ */9/* Context */10/* ------------------------------------------------------------------ */1112type TabsVariant = "underline" | "pill"1314const TabsContext = React.createContext<{15 variant: TabsVariant16 size: "sm" | "md"17}>({ variant: "underline", size: "md" })1819/* ------------------------------------------------------------------ */20/* CVA */21/* ------------------------------------------------------------------ */2223const tabsListVariants = cva("tabs-list inline-flex items-center", {24 variants: {25 variant: {26 underline: "tabs-list-underline gap-[var(--layout-gap-lg)]",27 pill: "tabs-list-pill w-fit gap-[var(--layout-gap-xs)] p-[var(--layout-padding-2xs)] rounded-[var(--layout-radius-lg)]",28 },29 },30 defaultVariants: {31 variant: "underline",32 },33})3435const tabsTriggerVariants = cva(36 "tabs-trigger inline-flex items-center justify-center whitespace-nowrap font-accent cursor-pointer",37 {38 variants: {39 variant: {40 underline: "tabs-trigger-underline",41 pill: "tabs-trigger-pill rounded-[var(--layout-radius-md)]",42 },43 size: {44 sm: "h-[var(--layout-size-lg)] px-[var(--layout-padding-xs)] text-content-caption",45 md: "h-[var(--layout-size-xl)] px-[var(--layout-padding-md)] text-content-note",46 },47 },48 compoundVariants: [49 { variant: "pill", size: "sm", className: "h-[var(--layout-size-md)]" },50 { variant: "pill", size: "md", className: "h-[var(--layout-size-lg)]" },51 ],52 defaultVariants: {53 variant: "underline",54 size: "md",55 },56 }57)5859/* ------------------------------------------------------------------ */60/* Tabs */61/* ------------------------------------------------------------------ */6263function Tabs({64 className,65 variant = "underline",66 size = "md",67 ...props68}: React.ComponentProps<typeof TabsPrimitive.Root> & {69 variant?: TabsVariant70 size?: "sm" | "md"71}) {72 return (73 <TabsContext.Provider value={{ variant, size }}>74 <TabsPrimitive.Root75 data-slot="tabs"76// … truncated
What it pulls in
npm packages
Other registry items
Files it writes
More from lyse
All 33 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| action-cardaction-card | lyse | Components | Free | no deps · 2 files | |
| alertalert | lyse | Components | Free | 2 deps · 2 files | |
| alert-dialogalert-dialog | lyse | Components | Free | 2 deps · 2 files | |
| avataravatar | lyse | Components | Free | 3 deps · 2 files | |
| badgebadge | lyse | Components | Free | 1 dep · 2 files | |
| banner-infobanner-info | lyse | Components | Free | 2 deps · 2 files | |
| breadcrumbbreadcrumb | lyse | Components | Free | 2 deps · 2 files | |
| buttonbutton | lyse | Components | Free | 2 deps · 2 files |
