Navigation & Overlays

Direction Aware Tabs

Animated tabs for React and shadcn/ui that slide content left or right based on direction and smoothly resize to fit.

Updated

DirectionAwareTabs is a React tabs component for shadcn/ui built with Motion. Use it for settings panels, pricing toggles, or feature walkthroughs.

Installation

pnpm dlx shadcn@latest add @cult-ui/direction-aware-tabs

Usage

const DirectionAwareTabsDemo = ({}) => { const tabs = [ { id: 0, label: "ocean", content: ( <div className="border border-black/10 w-full flex flex-col items-center p-4 rounded-lg gap-3"> <BgAnimateButton animation="spin-fast" gradient="ocean"> Button </BgAnimateButton> <BgAnimateButton animation="spin" gradient="ocean"> Button </BgAnimateButton> <BgAnimateButton animation="spin-slow" gradient="ocean"> Button </BgAnimateButton> </div> ), }, { id: 1, label: "forest", content: ( <div className="border border-black/10 w-full flex flex-col items-center p-4 rounded-lg gap-3"> <BgAnimateButton animation="spin-fast" gradient="forest"> Button </BgAnimateButton> <BgAnimateButton animation="spin" gradient="forest"> Button </BgAnimateButton> <BgAnimateButton animation="spin-slow" gradient="forest"> Button </BgAnimateButton> </div> ), }, { id: 2, label: "default", content: ( <div className="border border-black/10 w-full flex flex-col items-center gap-3 p-4"> <BgAnimateButton animation="spin-fast" gradient="default"> Button </BgAnimateButton> <BgAnimateButton animation="spin" gradient="default"> Button </BgAnimateButton> <BgAnimateButton animation="spin-slow" gradient="default"> Button </BgAnimateButton> </div> ), }, { id: 3, label: "sunset", content: ( <div className="border border-black/10 w-full flex flex-col items-center p-4 rounded-lg gap-3"> <BgAnimateButton animation="spin-fast" gradient="sunset"> Button </BgAnimateButton> <BgAnimateButton animation="spin" gradient="sunset"> Button </BgAnimateButton> <BgAnimateButton animation="spin-slow" gradient="sunset"> Button </BgAnimateButton> </div> ), }, ]; return ( <div className=""> <DirectionAwareTabs tabs={tabs} /> </div> ); }; export default DirectionAwareTabsDemo;