Tabs
adn-ui/tabsFreeComponent
A component for toggling between related panels on the same page.
Live preview
live · rendered by the registry
Rendered by adn-ui on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://ui.awaiden.com/r/tabs.jsonSource
1"use client";23import "./tabs.css";4import { Tabs as BaseTabs } from "@base-ui/react/tabs";5import type React from "react";6import { cn } from "tailwind-variants";78import { TabsContext, useTabsContext } from "./tabs.context";9import { tabsVariants, type TabsVariants } from "./tabs.variants";1011export type TabsProps = TabsVariants & React.ComponentProps<typeof BaseTabs.Root>;1213export const TabsRoot = ({ children, className, variant, size, ...props }: TabsProps) => {14 const slots = tabsVariants({ variant, size });1516 return (17 <TabsContext.Provider value={{ slots }}>18 <BaseTabs.Root className={cn(slots.root(), className)} {...props}>19 {children}20 </BaseTabs.Root>21 </TabsContext.Provider>22 );23};2425export type TabsListProps = React.ComponentProps<typeof BaseTabs.List>;2627export const TabsList = ({ className, ...props }: TabsListProps) => {28 const { slots } = useTabsContext();29 return <BaseTabs.List className={cn(slots.list(), className)} {...props} />;30};3132export type TabsTabProps = React.ComponentProps<typeof BaseTabs.Tab>;3334export const TabsTab = ({ className, ...props }: TabsTabProps) => {35 const { slots } = useTabsContext();36 return <BaseTabs.Tab className={cn(slots.tab(), className)} {...props} />;37};3839export type TabsIndicatorProps = React.ComponentProps<typeof BaseTabs.Indicator>;4041export const TabsIndicator = ({ className, ...props }: TabsIndicatorProps) => {42 const { slots } = useTabsContext();43 return <BaseTabs.Indicator className={cn(slots.indicator(), className)} {...props} />;44};4546export type TabsPanelProps = React.ComponentProps<typeof BaseTabs.Panel>;4748export const TabsPanel = ({ className, ...props }: TabsPanelProps) => {49 const { slots } = useTabsContext();50 return <BaseTabs.Panel className={cn(slots.panel(), className)} {...props} />;51};
What it pulls in
npm packages
Files it writes
More from adn-ui
All 46 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Accordionaccordion | adn-ui | Components | Free | 2 deps · 5 files | |
| Alert Dialogalert-dialog | adn-ui | Components | Free | 2 deps · 5 files | |
| Aspect Ratioaspect-ratio | adn-ui | Components | Free | 1 dep · 5 files | |
| Autocompleteautocomplete | adn-ui | Components | Free | 2 deps · 5 files | |
| Avataravatar | adn-ui | Components | Free | 2 deps · 5 files | |
| Badgebadge | adn-ui | Components | Free | 1 dep · 5 files | |
| Breadcrumbbreadcrumb | adn-ui | Components | Free | 1 dep · 5 files | |
| Buttonbutton | adn-ui | Components | Free | 1 dep · 4 files |
