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.
moreOrgsDataMoreOrgsTabDataData for the "more-orgs" tab panel (WorkListWithPreview).
moreOrgsTabIdstring"more-orgs"Id of the tab that triggers the WorkListWithPreview layout.

AutoplayTab

FieldTypeDefaultDescription
idstringUnique tab id.
titlestringShort label in the tab strip.
subtitlestringSmall subtitle under the title.
descriptionstringH3 heading in the content panel.
contentstringBody text in the content panel.
imagestringHero image URL (lazy-loaded).
rolestringRole label (e.g. "Lead Product Designer").
companyTypestringCompany type label (e.g. "B2B").
highlightsstring[][]Badge chips shown as "Worked On".
hrefstringNavigation target when content panel is clicked.
visibility'visible' | 'inert' | 'hidden''visible'Gating state.
ctaTextstring"View Projects"CTA button label.

On this page