Adventureland Registry

Auto Play Tabs

An autoplay tab strip with a GSAP progress bar, per-tab visibility gating, a custom cyberpunk cursor on content hover, and an optional "more orgs" WorkListWithPreview panel.

AutoplayTabs renders a sticky, horizontally-scrollable tab strip that auto-advances on a configurable interval. Each tab reveals a two-column panel: text + highlights on the left, a lazy-loaded hero image on the right. A custom cursor (AnimatedCyberpunkCursor) appears when hovering navigable content. Tabs with visibility: 'inert' display a "soon" badge; 'hidden' tabs are excluded from the strip. A special "more-orgs" tab can render a WorkListWithPreview instead.

Installation

npx shadcn@latest add @adv/auto-play-tabs

Usage

import { AutoplayTabs } from '@/components/autoPlayTabs/AutoplayTabs';

<AutoplayTabs
  tabs={tabs}
  autoplayConfig={{ enabled: true, interval: 5000 }}
  shouldStartAutoplay
  onSelect={(tab) => router.push(tab.href!)}
/>

Example

Props

PropTypeDefaultDescription
tabsAutoplayTab[]—Tab definitions (see below).
autoplayConfigAutoplayTabsConfig{ enabled: true, interval: 5000, pauseOnHover: true }Autoplay settings.
shouldStartAutoplaybooleantrueDelay autoplay start (e.g. until hero animation completes).
classNamestring""Outer wrapper className.
onSelect(tab) => voidwindow.location.href = tab.hrefNavigation callback for content panel clicks.
moreOrgsDataMoreOrgsTabData—Data for the "more-orgs" tab panel (WorkListWithPreview).
moreOrgsTabIdstring"more-orgs"Id of the tab that triggers the WorkListWithPreview layout.

AutoplayTab

FieldTypeDefaultDescription
idstring—Unique tab id.
titlestring—Short label in the tab strip.
subtitlestring—Small subtitle under the title.
descriptionstring—H3 heading in the content panel.
contentstring—Body text in the content panel.
imagestring—Hero image URL (lazy-loaded).
rolestring—Role label (e.g. "Lead Product Designer").
companyTypestring—Company type label (e.g. "B2B").
highlightsstring[][]Badge chips shown as "Worked On".
hrefstring—Navigation target when content panel is clicked.
visibility'visible' | 'inert' | 'hidden''visible'Gating state.
ctaTextstring"View Projects"CTA button label.

On this page