From ef35b9e81daf06db0ab2a327139cb65e0047f3be Mon Sep 17 00:00:00 2001 From: zahid6999 Date: Wed, 14 Oct 2026 20:19:36 +0600 Subject: [PATCH 1/2] feat: add the arc carousel block --- apps/docs/components/nav/animated-icon.tsx | 1 + apps/docs/content/2.block/arc-carousel.mdx | 151 +++++ .../media/blocks/arc-carousel-poster.webp | Bin 0 -> 52750 bytes .../media/blocks/arc-carousel-preview.mp4 | Bin 0 -> 511693 bytes apps/docs/public/r/arc-carousel-demo.json | 22 + apps/docs/public/r/arc-carousel.json | 28 + apps/docs/public/r/cube-roll-item.json | 2 +- apps/docs/public/r/registry.json | 28 + apps/docs/registry/__index__.generated.tsx | 1 + apps/docs/registry/__media__.generated.ts | 1 + apps/docs/registry/__sources__.generated.ts | 23 +- apps/docs/registry/demos/arc-carousel.tsx | 11 + apps/docs/registry/registry-blocks.ts | 41 ++ apps/docs/registry/tweenui/arc-carousel.tsx | 542 ++++++++++++++++++ apps/docs/registry/tweenui/cube-roll-item.tsx | 2 +- apps/docs/tests/arc-carousel.test.tsx | 112 ++++ 16 files changed, 960 insertions(+), 5 deletions(-) create mode 100644 apps/docs/content/2.block/arc-carousel.mdx create mode 100644 apps/docs/public/media/blocks/arc-carousel-poster.webp create mode 100644 apps/docs/public/media/blocks/arc-carousel-preview.mp4 create mode 100644 apps/docs/public/r/arc-carousel-demo.json create mode 100644 apps/docs/public/r/arc-carousel.json create mode 100644 apps/docs/registry/demos/arc-carousel.tsx create mode 100644 apps/docs/registry/tweenui/arc-carousel.tsx create mode 100644 apps/docs/tests/arc-carousel.test.tsx diff --git a/apps/docs/components/nav/animated-icon.tsx b/apps/docs/components/nav/animated-icon.tsx index 7afa0fc..e105d3f 100644 --- a/apps/docs/components/nav/animated-icon.tsx +++ b/apps/docs/components/nav/animated-icon.tsx @@ -138,6 +138,7 @@ const PLAY: Record = { 'fold-horizontal': squeeze, 'flip-horizontal': flip, 'gallery-horizontal': flip, + 'gallery-horizontal-end': flip, cylinder: flip, images: flip, 'image-plus': flip, diff --git a/apps/docs/content/2.block/arc-carousel.mdx b/apps/docs/content/2.block/arc-carousel.mdx new file mode 100644 index 0000000..fa812c1 --- /dev/null +++ b/apps/docs/content/2.block/arc-carousel.mdx @@ -0,0 +1,151 @@ +--- +title: Arc Carousel +description: A showcase carousel whose cards hang on a downward arc and swing round it as you step. +icon: gallery-horizontal-end +--- + +A showcase for a handful of pieces, laid out on a curve. The cards **hang on a +downward arc**, each one further from the centre sitting a little lower and +**turned a little more**, three to a side. **Step** and the whole arc swings +round: every card glides to its neighbour's slot on a slow, weighted curve, +while the one arriving in the middle **eases up in size** and takes a **lime +outline**. A card that wraps past the edge **keeps travelling off-screen** +while it comes back in **from the far side**, so the loop never snaps. +**Swipe**, **drag**, use the **arrow keys**, or **click a side card** to bring +it to the centre. Plain CSS transitions, no animation library. + +::component-preview{name="arc-carousel" size="xl"} +:: + +## Installation + +::tabs +:::tabs-item{label="CLI" icon="i-lucide-terminal"} + +::install-tabs{item="arc-carousel"} +:: + +::: +:::tabs-item{label="Manual" icon="i-lucide-clipboard"} + +::component-source{name="arc-carousel"} +:: + +::: +:: + +## Usage + +::tabs +:::tabs-item{label="React" icon="i-lucide-atom"} + +```tsx [app/page.tsx] +import ArcCarousel from '@/components/tweenui/arc-carousel'; + +export default function Page() { + return ; +} +``` + +::: +:: + +It ships with eight sample projects. Pass your own as `items`, and point the +button wherever the full list lives: + +```tsx [app/page.tsx] +import ArcCarousel from '@/components/tweenui/arc-carousel'; + +export default function Page() { + return ( + + ); +} +``` + +The colors are the Tween UI theme tokens, used as Tailwind classes rather than +raw hex: `tween-ink-deep` (`#03110f`) for the stage and the edge fades, +`tween-ink` (`#071d1b`) under each photo, a `tween-teal` (`#045f64`) glow +behind the arc, `tween-teal-soft` (`#9fd4d6`) for the supporting text and +`tween-lime` (`#c6f56f`) on the badge, the centre card's outline and arrow, +and the button. The CLI adds them to your `@theme`; with a manual install, +copy the CSS block from the Manual tab into your global stylesheet. Change a +token there and the block follows. + +## Props + +| Prop | Type | Default | Description | +| ------------- | ----------------------------------------- | ------------------------------------ | -------------------------------------------------- | +| `items` | `ArcCarouselItem[]` | Eight sample projects | The cards on the arc. | +| `badge` | `string` | `'Featured work'` | Pill above the title. Pass `''` to drop it. | +| `title` | `string` | `'Projects we shipped this season.'` | Heading, and the carousel's accessible name. | +| `description` | `string` | How to browse | Line under the heading. Pass `''` to drop it. | +| `cta` | `{ label: string; href: string } \| null` | `View all projects` | Button between the arrows. Pass `null` to drop it. | + +Each item is `{ title, image, tag?, meta?, href? }`. The `tag` is the chip on +the top left of the card and `meta` the line under the title. With an `href` +the centre card is a link and shows a round arrow. Extends native `
` +attributes (`className`, `style`, …). + +## Behavior + +- **One card size, one arc.** Every card is 312 × 430px and the slots are + fixed offsets from the centre, so the curve keeps its shape whatever the + content. Below 1024px of container width the whole arc scales to 80%, and + below 768px to 62%, so it fits a phone without relaying out. +- **Wraps without a jump.** When a card has to move from one end of the loop + to the other, a copy of it carries on off the near edge and fades, while + the card itself is placed past the far edge and slides in. The copy is + removed once its move has finished. +- **Side cards step, the centre card opens.** A click on a side card moves + the arc one step toward it instead of following its link, and a swipe or + drag of more than 50px sideways steps it the other way and swallows the + click that ends it. Vertical swipes still scroll the page. +- **The centre card steps forward.** Side cards sit under a light shade of + the stage color; the centre card loses it, grows 5%, takes a lime outline + and turns its arrow lime, so the eye lands on it first. +- **The edges fade, the arc does not stop.** The soft fades on both sides sit + above the cards, so the outer ones run out into the background instead of + being cut off by the edge of the section. +- **Light on the browser.** Cards move on `transform` and `opacity` only, + with no blur. Photos come at 1x and 2x with fixed dimensions; the five + nearest the centre load first and the rest lazily. +- **It is in place before it runs.** The first layout is written into the + markup, so the arc renders already curved and nothing flashes into place + on load. + +## Accessibility + +::note +The carousel is a focusable group with `aria-roledescription="carousel"`, +named by the title, and the left and right arrow keys step it while it has +focus. Each card is a slide labelled `n of total: title`; cards off the +centre are hidden from screen readers and out of the tab order, so only the +card you are looking at can be reached. The current card is announced +politely after every step. The arrows are real buttons with labels and every +control has a visible lime focus ring. Under `prefers-reduced-motion: reduce` +the cards fade between slots instead of travelling, and the centre card does +not grow. +:: diff --git a/apps/docs/public/media/blocks/arc-carousel-poster.webp b/apps/docs/public/media/blocks/arc-carousel-poster.webp new file mode 100644 index 0000000000000000000000000000000000000000..cc0a626f3c29c1cb0cb337bd813ac344ea0303de GIT binary patch literal 52750 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 z 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 }i@lu)SV_IK=)l8v26_+En)j{+&O#Mzdt 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

+Tk~A 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

jayA#)tnEPq)}rE)pyi6kVqDh z2{mV$34WdVoFEVwTLL!lkD&c9$;feN9D)hr$Lh?@R!9w8DsLt9_$pJG2A(a~19lXKe|O^m z%31thcpU_&O=*{@#W0`O@g5!)0HC*LuJUsb0P+Vb&cE*?xH{n^niW=gJx zV12hU@J^nrlCyO(kd%g8qM5C$3N@X>}HMqOZDksfqM~WpQ{l9vJ z{Y%3>6o--eP^mha7u}A6s*Mt@g`!Yeb%cQr|50^rpj`C-w*j4XP9elWK`Z=# z&O!JAx?p7Z>?9t6)U6i6h)9SWq;J#ao@We+|1n+~C>Qg8mK*_m!v`CUa10dDb;~<= z?J6J2J9Lnc3PM~L(h#FS0b&tAiC(3V%j&ctyh23ALfAAEb8>+HoFLKUQMB@2r1yUS De8Wk? literal 0 HcmV?d00001 diff --git a/apps/docs/public/r/arc-carousel-demo.json b/apps/docs/public/r/arc-carousel-demo.json new file mode 100644 index 0000000..8bb064d --- /dev/null +++ b/apps/docs/public/r/arc-carousel-demo.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "arc-carousel-demo", + "type": "registry:example", + "title": "Arc Carousel Demo", + "description": "Usage examples for Arc Carousel.", + "registryDependencies": [ + "https://tween-ui.vercel.app/r/arc-carousel.json" + ], + "files": [ + { + "path": "examples/arc-carousel-demo.tsx", + "type": "registry:example", + "content": "import ArcCarousel from '@/components/tweenui/arc-carousel';\n\nexport default function Page() {\n return ;\n}" + }, + { + "path": "examples/arc-carousel-demo-2.tsx", + "type": "registry:example", + "content": "import ArcCarousel from '@/components/tweenui/arc-carousel';\n\nexport default function Page() {\n return (\n \n );\n}" + } + ] +} \ No newline at end of file diff --git a/apps/docs/public/r/arc-carousel.json b/apps/docs/public/r/arc-carousel.json new file mode 100644 index 0000000..d64850f --- /dev/null +++ b/apps/docs/public/r/arc-carousel.json @@ -0,0 +1,28 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "arc-carousel", + "type": "registry:block", + "title": "Arc Carousel", + "description": "A showcase carousel whose cards hang on a downward arc, each one further out turned a little more. Stepping swings the whole arc round, the centre card easing up in size under a lime outline, and a card that wraps past the edge keeps travelling off-screen while it comes back in from the far side. Swipe, drag, the arrow keys or a click on a side card all step it.", + "dependencies": [], + "registryDependencies": [], + "cssVars": { + "theme": { + "color-tween-teal": "#045f64", + "color-tween-teal-soft": "#9fd4d6", + "color-tween-lime": "#c6f56f", + "color-tween-ink": "#071d1b", + "color-tween-ink-deep": "#03110f", + "ease-tween": "cubic-bezier(0.32, 0.72, 0, 1)" + } + }, + "files": [ + { + "path": "components/tweenui/arc-carousel.tsx", + "type": "registry:component", + "target": "components/tweenui/arc-carousel.tsx", + "content": "'use client';\n\nimport {\n useCallback,\n useEffect,\n useId,\n useLayoutEffect,\n useRef,\n useState,\n type ComponentPropsWithoutRef,\n type KeyboardEvent,\n type MouseEvent,\n} from 'react';\nimport { cn } from '@/lib/utils';\n\nconst prefersReducedMotion = () =>\n typeof window !== 'undefined' && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n// Layout effects warn on the server; there is nothing to lay out there anyway\nconst useIsoLayoutEffect = typeof window === 'undefined' ? useEffect : useLayoutEffect;\n\nexport interface ArcCarouselItem {\n title: string;\n image: string;\n /** Category chip on the top left of the card, e.g. \"Brand identity\". */\n tag?: string;\n /** A short line under the title, e.g. a client and year or a price. */\n meta?: string;\n href?: string;\n}\n\nexport interface ArcCarouselProps extends ComponentPropsWithoutRef<'section'> {\n items?: ArcCarouselItem[];\n /** The pill above the title. Pass an empty string to drop it. */\n badge?: string;\n title?: string;\n /** A line under the title. Pass an empty string to drop it. */\n description?: string;\n cta?: { label: string; href: string } | null;\n}\n\n/**\n * Where a card sits by its distance from the centre: px across, px down and degrees of\n * turn. The steps grow as they go out, so the row bends down into an arc. Cards further\n * out than the last slot carry on along the same line, invisible, which is where a\n * wrapping card leaves to and comes back from.\n */\nconst SLOTS = [\n { x: 0, y: 0, r: 0 },\n { x: 359, y: 26, r: 8.77 },\n { x: 711, y: 113, r: 18.83 },\n { x: 1033, y: 243, r: 25.05 },\n];\nconst ACTIVE_SCALE = 1.05;\nconst ART = 'transform 470ms cubic-bezier(0.42, 1, 0.46, 1)';\nconst MOVE = 'transform 800ms cubic-bezier(0.98, 0.30, 0.30, 1), opacity 400ms ease';\n/** A swipe has to travel this far, mostly sideways, to count as one. */\nconst SWIPE = 50;\n/** How long a wrapping card's off-screen copy lives: the move, plus a frame or two. */\nconst GHOST_LIFE = 850;\n\nconst slot = (offset: number) => {\n const t = Math.abs(offset);\n const sign = Math.sign(offset);\n const last = SLOTS.length - 1;\n let p = SLOTS[Math.min(t, last)];\n if (t > last) {\n const prev = SLOTS[last - 1];\n const n = t - last;\n p = { x: p.x + (p.x - prev.x) * n, y: p.y + (p.y - prev.y) * n, r: p.r + (p.r - prev.r) * n };\n }\n return {\n transform: `translate(${p.x * sign}px, ${p.y}px) rotate(${p.r * sign}deg)`,\n opacity: t <= last ? '1' : '0',\n zIndex: String(100 - t),\n };\n};\n\n/** Signed distance of card `index` from the centre, wrapped to the shortest way round. */\nconst offsetOf = (index: number, position: number, count: number) => {\n let r = (((index - position) % count) + count) % count;\n if (r > Math.floor(count / 2)) r -= count;\n return r;\n};\n\nconst wrap = (position: number, count: number) => ((position % count) + count) % count;\nconst pad2 = (n: number) => String(n).padStart(2, '0');\n\n/** Unsplash, cropped to the card's 312 × 430 at 1x and 2x. */\nconst photo = (id: string, width = 640) =>\n `https://images.unsplash.com/photo-${id}?w=${width}&h=${Math.round(width * (430 / 312))}&fit=crop&q=80&auto=format`;\nconst srcSetOf = (src: string) =>\n src.includes('images.unsplash.com')\n ? `${src.replace(/([?&])w=\\d+&h=\\d+/, '$1w=320&h=441')} 1x, ${src} 2x`\n : undefined;\n\nconst DEFAULT_ITEMS: ArcCarouselItem[] = [\n {\n title: 'Nightfall',\n tag: 'Astronomy app',\n meta: 'Stellar Co. · 2026',\n image: photo('1519681393784-d120267933ba'),\n },\n {\n title: 'Chroma Identity',\n tag: 'Brand identity',\n meta: 'Chroma Studio · 2026',\n image: photo('1541701494587-cb58502866ab'),\n },\n {\n title: 'Alpine Lodge',\n tag: 'Hospitality',\n meta: 'Moraine Hotels · 2026',\n image: photo('1493246507139-91e8fad9978e'),\n },\n {\n title: 'Metro Pulse',\n tag: 'Data visualisation',\n meta: 'City of Lakes · 2025',\n image: photo('1477959858617-67f85cf4f1df'),\n },\n {\n title: 'Orbit Motion',\n tag: '3D & motion',\n meta: 'Orbit Labs · 2025',\n image: photo('1618005198919-d3d4b5a92ead'),\n },\n {\n title: 'Open Road',\n tag: 'Campaign film',\n meta: 'Westward · 2025',\n image: photo('1500530855697-b586d89ba3ee'),\n },\n {\n title: 'Still Water',\n tag: 'Wellness app',\n meta: 'Calm Harbor · 2024',\n image: photo('1534447677768-be436bb09401'),\n },\n {\n title: 'Lago Retreats',\n tag: 'Travel platform',\n meta: 'Lago Travel · 2024',\n image: photo('1501785888041-af3ef285b470'),\n },\n];\n\nconst STEP = cn(\n 'grid size-11 place-items-center rounded-full border border-tween-teal-soft/25 text-white',\n 'transition-[background-color,border-color,color] duration-300 ease-tween hover:border-tween-lime hover:bg-tween-lime hover:text-tween-ink-deep',\n 'focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-tween-lime motion-reduce:transition-none'\n);\n/** The soft edges the arc runs out under. They sit above the cards, below the copy. */\nconst FADE =\n 'pointer-events-none absolute inset-y-0 z-[2] w-[clamp(2.5rem,14cqw,12rem)] from-tween-ink-deep via-tween-ink-deep/70 to-transparent';\n\nconst Caret = ({ flip }: { flip?: boolean }) => (\n \n \n \n);\n\nconst ArrowUpRight = ({ className }: { className?: string }) => (\n \n \n \n);\n\nexport default function ArcCarousel({\n items = DEFAULT_ITEMS,\n badge = 'Featured work',\n title = 'Projects we shipped this season.',\n description = 'A rotating look at recent launches across brand, product and research. Swipe, drag or use the arrows to browse.',\n cta = { label: 'View all projects', href: '#' },\n className,\n ...props\n}: ArcCarouselProps) {\n const count = items.length;\n const [position, setPosition] = useState(0);\n const listRef = useRef(null);\n const itemRefs = useRef<(HTMLDivElement | null)[]>([]);\n const artRefs = useRef<(HTMLDivElement | null)[]>([]);\n const state = useRef({ last: 0, offsets: [] as (number | undefined)[], ghosts: [] as number[] });\n const swipe = useRef({ tracking: false, swiped: false, x: 0, y: 0 });\n const titleId = useId();\n const descriptionId = useId();\n\n const place = (item: HTMLElement, offset: number) => {\n const s = slot(offset);\n item.style.transform = s.transform;\n item.style.opacity = s.opacity;\n item.style.zIndex = s.zIndex;\n item.style.pointerEvents = s.opacity === '1' ? '' : 'none';\n };\n\n // Lay the cards out on their slots whenever the position changes (animated after the first layout)\n useIsoLayoutEffect(() => {\n const list = listRef.current;\n if (!list || !count) return;\n const reduced = prefersReducedMotion();\n const move = reduced ? 'opacity 0.3s ease' : MOVE;\n const art = reduced ? 'none' : ART;\n const st = state.current;\n const animate = st.offsets.length > 0;\n const delta = animate ? position - st.last : 0;\n st.last = position;\n\n itemRefs.current.forEach((item, i) => {\n if (!item) return;\n const next = offsetOf(i, position, count);\n const prev = st.offsets[i];\n\n const scaleEl = artRefs.current[i];\n if (scaleEl) {\n const scale = next === 0 && !reduced ? `scale(${ACTIVE_SCALE})` : 'scale(1)';\n scaleEl.style.transition = animate ? art : 'none';\n scaleEl.style.transform = scale;\n if (!animate) {\n void scaleEl.offsetWidth;\n scaleEl.style.transition = art;\n }\n }\n\n if (!animate || prev === undefined) {\n item.style.transition = 'none';\n place(item, next);\n } else if (prev - delta !== next) {\n // Wrapped round: a ghost keeps travelling off-screen, the card re-enters from the far side\n const last = SLOTS.length - 1;\n const entry = delta > 0 ? Math.max(next + 1, last + 1) : Math.min(next - 1, -(last + 1));\n const ghost = item.cloneNode(true) as HTMLElement;\n ghost.setAttribute('aria-hidden', 'true');\n ghost.inert = true;\n ghost.style.pointerEvents = 'none';\n ghost.style.transition = 'none';\n list.appendChild(ghost);\n const out = slot(prev - delta);\n void ghost.offsetWidth;\n ghost.style.transition = move;\n ghost.style.transform = out.transform;\n ghost.style.opacity = '0';\n st.ghosts.push(window.setTimeout(() => ghost.remove(), GHOST_LIFE));\n\n item.style.transition = 'none';\n place(item, entry);\n item.style.opacity = '0';\n void item.offsetWidth;\n item.style.transition = move;\n place(item, next);\n } else {\n item.style.transition = move;\n place(item, next);\n }\n st.offsets[i] = next;\n });\n }, [position, count]);\n\n useEffect(() => () => state.current.ghosts.forEach((id) => window.clearTimeout(id)), []);\n\n const step = useCallback((direction: number) => setPosition((p) => p + direction), []);\n\n // Swipe / drag: the release can happen outside the list\n useEffect(() => {\n const onUp = (event: PointerEvent) => {\n const s = swipe.current;\n if (!s.tracking) return;\n s.tracking = false;\n const dx = event.clientX - s.x;\n const dy = event.clientY - s.y;\n if (Math.abs(dx) > SWIPE && Math.abs(dx) > Math.abs(dy)) {\n s.swiped = true;\n step(dx < 0 ? 1 : -1);\n }\n };\n const onCancel = () => {\n swipe.current.tracking = false;\n };\n window.addEventListener('pointerup', onUp);\n window.addEventListener('pointercancel', onCancel);\n return () => {\n window.removeEventListener('pointerup', onUp);\n window.removeEventListener('pointercancel', onCancel);\n };\n }, [step]);\n\n // After a swipe, or on a side card, a click steps the arc instead of following the card's link\n const onClickCapture = (event: MouseEvent) => {\n const s = swipe.current;\n if (s.swiped) {\n s.swiped = false;\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n // Keyboard activation (detail 0) keeps its normal behaviour\n if (event.detail === 0) return;\n const index = itemRefs.current.findIndex((item) => item?.contains(event.target as Node));\n if (index < 0) return;\n const offset = offsetOf(index, position, count);\n if (offset !== 0) {\n event.preventDefault();\n event.stopPropagation();\n step(Math.sign(offset));\n }\n };\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') return;\n event.preventDefault();\n step(event.key === 'ArrowRight' ? 1 : -1);\n };\n\n const current = count ? wrap(position, count) : 0;\n const active = items[current];\n\n return (\n \n {/* The teal glow the arc hangs in */}\n \n\n

\n {badge && (\n \n \n {badge}\n \n )}\n \n {title}\n \n {description && (\n \n {description}\n

\n )}\n
\n\n {/* Its own stacking context, so the cards' z-indexes stay under the edge fades */}\n
\n
\n {\n swipe.current = { tracking: true, swiped: false, x: event.clientX, y: event.clientY };\n }}\n onDragStart={(event) => event.preventDefault()}\n onClickCapture={onClickCapture}\n onKeyDown={onKeyDown}\n >\n {items.map((item, i) => {\n const offset = offsetOf(i, position, count);\n const isActive = offset === 0;\n const Card = item.href ? 'a' : 'div';\n // The first frame is set here too, so the arc is in place before hydration\n const first = slot(offsetOf(i, 0, count));\n return (\n {\n itemRefs.current[i] = el;\n }}\n role=\"group\"\n aria-roledescription=\"slide\"\n aria-label={`${i + 1} of ${count}: ${item.title}`}\n aria-hidden={isActive ? undefined : true}\n data-active={isActive ? '' : undefined}\n className=\"group/card absolute top-0 left-0 h-107.5 w-78 will-change-transform\"\n style={{\n transform: first.transform,\n opacity: first.opacity,\n zIndex: first.zIndex,\n }}\n >\n {\n artRefs.current[i] = el;\n }}\n className=\"size-full origin-center\"\n >\n \n \n\n {/* Side cards sit back in shade; the centre card steps out of it */}\n \n {/* A scrim so the caption reads on any photo */}\n \n\n \n {item.tag ? (\n \n {item.tag}\n \n ) : (\n \n )}\n \n {pad2(i + 1)}\n / {pad2(count)}\n \n \n\n \n \n \n {item.title}\n \n {item.meta && (\n \n {item.meta}\n \n )}\n \n {item.href && (\n \n \n \n )}\n \n\n {/* The outline, drawn over the photo so it never gets clipped */}\n \n \n
\n
\n );\n })}\n \n \n \n\n
\n\n

\n {active ? `${current + 1} of ${count}: ${active.title}` : ''}\n

\n\n
\n
\n
\n );\n}\n" + } + ], + "docs": "Docs, props and examples: https://tween-ui.vercel.app/block/arc-carousel\nThe sample content loads images from images.unsplash.com. Replace them with your own before shipping.\nColors come from the Tween UI theme tokens (`tween-ink-deep`, `tween-lime`, …), which the CLI adds to your `@theme`. Pass your own `items`; seven or more keep the arc full, since three cards show on each side of the centre." +} \ No newline at end of file diff --git a/apps/docs/public/r/cube-roll-item.json b/apps/docs/public/r/cube-roll-item.json index 254ddeb..5d34f52 100644 --- a/apps/docs/public/r/cube-roll-item.json +++ b/apps/docs/public/r/cube-roll-item.json @@ -17,7 +17,7 @@ "path": "components/tweenui/cube-roll-item.tsx", "type": "registry:component", "target": "components/tweenui/cube-roll-item.tsx", - "content": "'use client';\n\nimport { useRef, type ComponentPropsWithoutRef, type FocusEvent, type MouseEvent } from 'react';\nimport { useGSAP } from '@gsap/react';\nimport gsap from 'gsap';\nimport { cn } from '@/lib/utils';\n\ngsap.registerPlugin(useGSAP);\n\nconst prefersReducedMotion = () =>\n typeof window !== 'undefined' && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n/** The roll follows the pointer — skip it on touch, where there is no hover. */\nconst canHover = () =>\n typeof window !== 'undefined' && window.matchMedia('(hover: hover) and (pointer: fine)').matches;\n\n/** Keyboard focus rolls the row; a mouse click that happens to focus it does not. */\nconst isFocusVisible = (el: HTMLElement) => {\n try {\n return el.matches(':focus-visible');\n } catch {\n return true;\n }\n};\n\n/** Settles a touch past the face, like a drum clicking into its detent. */\nconst ROLL_EASE = 'back.out(1.6)';\n\n/**\n * Each row is a four-sided drum turning on its X axis. Front and back carry the\n * resting face, top and bottom the filled one — so every quarter turn lands on\n * the opposite state, and the drum can keep rolling the way the pointer moves.\n * `--depth` matches the row height, which makes the drum a true square prism.\n */\nconst FACE_TRANSFORM = {\n front: '[transform:translateZ(calc(var(--depth)/2))]',\n back: '[transform:rotateX(180deg)_translateZ(calc(var(--depth)/2))]',\n top: '[transform:rotateX(90deg)_translateZ(calc(var(--depth)/2))]',\n bottom: '[transform:rotateX(-90deg)_translateZ(calc(var(--depth)/2))]',\n} as const;\n\ntype Side = keyof typeof FACE_TRANSFORM;\n\nconst SIDES: Side[] = ['front', 'back', 'top', 'bottom'];\n\nexport interface CubeRollItemEntry {\n /** Large title in the middle of the row. */\n title: string;\n /** Short line on the right. */\n label?: string;\n /** Link target for the row. */\n href: string;\n}\n\nexport interface CubeRollItemProps extends ComponentPropsWithoutRef<'nav'> {\n /** Rows in the list, numbered in order. Defaults to a four-row sample. */\n items?: CubeRollItemEntry[];\n}\n\nconst DEFAULT_ITEMS: CubeRollItemEntry[] = [\n { title: 'Components', label: 'Buttons, text & logos', href: '#components' },\n { title: 'Blocks', label: 'Ready-made sections', href: '#blocks' },\n { title: 'Installation', label: 'One command, no config', href: '#installation' },\n { title: 'Changelog', label: 'What shipped lately', href: '#changelog' },\n];\n\nfunction Face({ side, item, number }: { side: Side; item: CubeRollItemEntry; number: string }) {\n const filled = side === 'top' || side === 'bottom';\n\n return (\n \n {/* Equal side columns keep the title on the row's true center line. */}\n
\n \n {number}\n {filled && (\n \n \n \n )}\n \n {/* Leading above 1 keeps descenders (g, y, p) inside the overflow box. */}\n \n {item.title}\n \n {item.label && (\n \n {item.label}\n \n )}\n
\n \n );\n}\n\nexport default function CubeRollItem({\n items = DEFAULT_ITEMS,\n className,\n 'aria-label': ariaLabel = 'Sections',\n ...props\n}: CubeRollItemProps) {\n const rootRef = useRef(null);\n /** Accumulated drum angle per row, in quarter turns of ±90°. */\n const anglesRef = useRef([]);\n const activeRef = useRef([]);\n\n const { contextSafe } = useGSAP(\n (_context, contextSafe) => {\n anglesRef.current = items.map(() => 0);\n activeRef.current = items.map(() => false);\n\n if (prefersReducedMotion()) return;\n\n // Park every drum half a turn over with its back face blanked, so each row\n // starts as an empty slab and nothing shows in the fallback font.\n const backContent = '[data-roll-face=\"back\"] > *';\n gsap.set('[data-roll-rule]', { scaleX: 0 });\n gsap.set('[data-roll-drum]', { rotationX: 180 });\n gsap.set(backContent, { opacity: 0 });\n\n let cancelled = false;\n\n // Rules draw in while the drums flip over one after another, flashing\n // their filled face on the way past.\n const play = contextSafe!(() => {\n if (cancelled) return;\n gsap\n .timeline({ onComplete: () => gsap.set(backContent, { opacity: 1 }) })\n .to(\n '[data-roll-rule]',\n { scaleX: 1, duration: 0.9, ease: 'expo.inOut', stagger: 0.15 },\n 0\n )\n .to(\n '[data-roll-drum]',\n { rotationX: 0, duration: 0.9, ease: 'power4.inOut', stagger: 0.15 },\n 0.15\n );\n });\n\n // Wait for web fonts so the text never swaps mid-reveal; give up after a\n // beat so a slow or failed font can't hold the block hidden.\n const fonts = typeof document !== 'undefined' ? document.fonts?.ready : undefined;\n Promise.race([fonts, new Promise((resolve) => setTimeout(resolve, 1500))]).then(play);\n\n return () => {\n cancelled = true;\n };\n },\n { scope: rootRef, dependencies: [items] }\n );\n\n /** Turn a row a quarter — downward when `down`, upward otherwise. */\n const turn = contextSafe((link: HTMLElement, index: number, active: boolean, down: boolean) => {\n if (activeRef.current[index] === active) return;\n activeRef.current[index] = active;\n link.closest('li')?.setAttribute('data-active', String(active));\n\n const drum = link.querySelector('[data-roll-drum]');\n if (!drum) return;\n // Hovered before the intro finished: the back face may still be blank.\n gsap.set(link.querySelectorAll('[data-roll-face=\"back\"] > *'), { opacity: 1 });\n\n if (prefersReducedMotion()) {\n anglesRef.current[index] = active ? -90 : 0;\n gsap.set(drum, { rotationX: anglesRef.current[index], opacity: 1 });\n return;\n }\n\n anglesRef.current[index] = (anglesRef.current[index] ?? 0) + (down ? -90 : 90);\n // `auto` takes rotationX from this drum's intro flip only, so hovering\n // mid-reveal leaves the other rows' flips running.\n gsap.to(drum, {\n rotationX: anglesRef.current[index],\n duration: active ? 0.6 : 0.7,\n ease: ROLL_EASE,\n overwrite: 'auto',\n });\n });\n\n /** Did the pointer cross the top half of the row? */\n const fromTop = (event: MouseEvent) => {\n const rect = event.currentTarget.getBoundingClientRect();\n return event.clientY < rect.top + rect.height / 2;\n };\n\n return (\n \n {/* No gap between rows, so the filled face covers the whole row edge to edge. */}\n
    \n {items.map((item, index) => {\n const number = String(index + 1).padStart(3, '0');\n\n return (\n \n \n \n canHover() && turn(event.currentTarget, index, true, fromTop(event))\n }\n onMouseLeave={(event) =>\n canHover() && turn(event.currentTarget, index, false, !fromTop(event))\n }\n onFocus={(event: FocusEvent) =>\n isFocusVisible(event.currentTarget) &&\n turn(event.currentTarget, index, true, true)\n }\n onBlur={(event: FocusEvent) =>\n turn(event.currentTarget, index, false, true)\n }\n >\n
    \n {/* Under reduced motion the drum only snaps, so skip the layer promotion. */}\n \n {SIDES.map((side) => (\n \n ))}\n
    \n \n \n \n );\n })}\n
\n {/* Closing rule under the last row. */}\n \n \n );\n}\n" + "content": "'use client';\n\nimport { useRef, type ComponentPropsWithoutRef, type FocusEvent, type MouseEvent } from 'react';\nimport { useGSAP } from '@gsap/react';\nimport gsap from 'gsap';\nimport { cn } from '@/lib/utils';\n\ngsap.registerPlugin(useGSAP);\n\nconst prefersReducedMotion = () =>\n typeof window !== 'undefined' && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n/** The roll follows the pointer — skip it on touch, where there is no hover. */\nconst canHover = () =>\n typeof window !== 'undefined' && window.matchMedia('(hover: hover) and (pointer: fine)').matches;\n\n/** Keyboard focus rolls the row; a mouse click that happens to focus it does not. */\nconst isFocusVisible = (el: HTMLElement) => {\n try {\n return el.matches(':focus-visible');\n } catch {\n return true;\n }\n};\n\n/** Settles a touch past the face, like a drum clicking into its detent. */\nconst ROLL_EASE = 'back.out(1.6)';\n\n/**\n * Each row is a four-sided drum turning on its X axis. Front and back carry the\n * resting face, top and bottom the filled one — so every quarter turn lands on\n * the opposite state, and the drum can keep rolling the way the pointer moves.\n * `--depth` matches the row height, which makes the drum a true square prism.\n */\nconst FACE_TRANSFORM = {\n front: '[transform:translateZ(calc(var(--depth)/2))]',\n back: '[transform:rotateX(180deg)_translateZ(calc(var(--depth)/2))]',\n top: '[transform:rotateX(90deg)_translateZ(calc(var(--depth)/2))]',\n bottom: '[transform:rotateX(-90deg)_translateZ(calc(var(--depth)/2))]',\n} as const;\n\ntype Side = keyof typeof FACE_TRANSFORM;\n\nconst SIDES: Side[] = ['front', 'back', 'top', 'bottom'];\n\nexport interface CubeRollItemEntry {\n /** Large title in the middle of the row. */\n title: string;\n /** Short line on the right. */\n label?: string;\n /** Link target for the row. */\n href: string;\n}\n\nexport interface CubeRollItemProps extends ComponentPropsWithoutRef<'nav'> {\n /** Rows in the list, numbered in order. Defaults to a four-row sample. */\n items?: CubeRollItemEntry[];\n}\n\nconst DEFAULT_ITEMS: CubeRollItemEntry[] = [\n { title: 'Components', label: 'Buttons, text & logos', href: '#components' },\n { title: 'Blocks', label: 'Ready-made sections', href: '#blocks' },\n { title: 'Installation', label: 'One command, no config', href: '#installation' },\n { title: 'Changelog', label: 'What shipped lately', href: '#changelog' },\n];\n\nfunction Face({ side, item, number }: { side: Side; item: CubeRollItemEntry; number: string }) {\n const filled = side === 'top' || side === 'bottom';\n\n return (\n \n {/* Equal side columns keep the title on the row's true center line. */}\n
\n \n {number}\n {filled && (\n \n \n \n )}\n \n {/* Leading above 1 keeps descenders (g, y, p) inside the overflow box. */}\n \n {item.title}\n \n {item.label && (\n \n {item.label}\n \n )}\n
\n \n );\n}\n\nexport default function CubeRollItem({\n items = DEFAULT_ITEMS,\n className,\n 'aria-label': ariaLabel = 'Sections',\n ...props\n}: CubeRollItemProps) {\n const rootRef = useRef(null);\n /** Accumulated drum angle per row, in quarter turns of ±90°. */\n const anglesRef = useRef([]);\n const activeRef = useRef([]);\n\n const { contextSafe } = useGSAP(\n (_context, contextSafe) => {\n anglesRef.current = items.map(() => 0);\n activeRef.current = items.map(() => false);\n\n if (prefersReducedMotion()) return;\n\n // Park every drum half a turn over with its back face blanked, so each row\n // starts as an empty slab and nothing shows in the fallback font.\n const backContent = '[data-roll-face=\"back\"] > *';\n gsap.set('[data-roll-rule]', { scaleX: 0 });\n gsap.set('[data-roll-drum]', { rotationX: 180 });\n gsap.set(backContent, { opacity: 0 });\n\n let cancelled = false;\n\n // Rules draw in while the drums flip over one after another, flashing\n // their filled face on the way past.\n const play = contextSafe!(() => {\n if (cancelled) return;\n gsap\n .timeline({ onComplete: () => gsap.set(backContent, { opacity: 1 }) })\n .to(\n '[data-roll-rule]',\n { scaleX: 1, duration: 0.9, ease: 'expo.inOut', stagger: 0.15 },\n 0\n )\n .to(\n '[data-roll-drum]',\n { rotationX: 0, duration: 0.9, ease: 'power4.inOut', stagger: 0.15 },\n 0.15\n );\n });\n\n // Wait for web fonts so the text never swaps mid-reveal; give up after a\n // beat so a slow or failed font can't hold the block hidden.\n const fonts = typeof document !== 'undefined' ? document.fonts?.ready : undefined;\n Promise.race([fonts, new Promise((resolve) => setTimeout(resolve, 1500))]).then(play);\n\n return () => {\n cancelled = true;\n };\n },\n { scope: rootRef, dependencies: [items] }\n );\n\n /** Turn a row a quarter — downward when `down`, upward otherwise. */\n const turn = contextSafe((link: HTMLElement, index: number, active: boolean, down: boolean) => {\n if (activeRef.current[index] === active) return;\n activeRef.current[index] = active;\n link.closest('li')?.setAttribute('data-active', String(active));\n\n const drum = link.querySelector('[data-roll-drum]');\n if (!drum) return;\n // Hovered before the intro finished: the back face may still be blank.\n gsap.set(link.querySelectorAll('[data-roll-face=\"back\"] > *'), { opacity: 1 });\n\n if (prefersReducedMotion()) {\n anglesRef.current[index] = active ? -90 : 0;\n gsap.set(drum, { rotationX: anglesRef.current[index], opacity: 1 });\n return;\n }\n\n anglesRef.current[index] = (anglesRef.current[index] ?? 0) + (down ? -90 : 90);\n // `auto` takes rotationX from this drum's intro flip only, so hovering\n // mid-reveal leaves the other rows' flips running.\n gsap.to(drum, {\n rotationX: anglesRef.current[index],\n duration: active ? 0.6 : 0.7,\n ease: ROLL_EASE,\n overwrite: 'auto',\n });\n });\n\n /** Did the pointer cross the top half of the row? */\n const fromTop = (event: MouseEvent) => {\n const rect = event.currentTarget.getBoundingClientRect();\n return event.clientY < rect.top + rect.height / 2;\n };\n\n return (\n \n {/* No gap between rows, so the filled face covers the whole row edge to edge. */}\n
    \n {items.map((item, index) => {\n const number = String(index + 1).padStart(3, '0');\n\n return (\n \n \n \n canHover() && turn(event.currentTarget, index, true, fromTop(event))\n }\n onMouseLeave={(event) =>\n canHover() && turn(event.currentTarget, index, false, !fromTop(event))\n }\n onFocus={(event: FocusEvent) =>\n isFocusVisible(event.currentTarget) &&\n turn(event.currentTarget, index, true, true)\n }\n onBlur={(event: FocusEvent) =>\n turn(event.currentTarget, index, false, true)\n }\n >\n
    \n {/* Under reduced motion the drum only snaps, so skip the layer promotion. */}\n \n {SIDES.map((side) => (\n \n ))}\n
    \n \n \n \n );\n })}\n
\n {/* Closing rule under the last row. */}\n \n \n );\n}\n" } ], "docs": "Docs, props and examples: https://tween-ui.vercel.app/block/cube-roll-item" diff --git a/apps/docs/public/r/registry.json b/apps/docs/public/r/registry.json index ae7ee20..731be52 100644 --- a/apps/docs/public/r/registry.json +++ b/apps/docs/public/r/registry.json @@ -1498,6 +1498,34 @@ "type": "registry:example" } ] + }, + { + "name": "arc-carousel", + "type": "registry:block", + "title": "Arc Carousel", + "description": "A showcase carousel whose cards hang on a downward arc, each one further out turned a little more. Stepping swings the whole arc round, the centre card easing up in size under a lime outline, and a card that wraps past the edge keeps travelling off-screen while it comes back in from the far side. Swipe, drag, the arrow keys or a click on a side card all step it.", + "files": [ + { + "path": "components/tweenui/arc-carousel.tsx", + "type": "registry:component" + } + ] + }, + { + "name": "arc-carousel-demo", + "type": "registry:example", + "title": "Arc Carousel Demo", + "description": "Usage examples for Arc Carousel.", + "files": [ + { + "path": "examples/arc-carousel-demo.tsx", + "type": "registry:example" + }, + { + "path": "examples/arc-carousel-demo-2.tsx", + "type": "registry:example" + } + ] } ] } \ No newline at end of file diff --git a/apps/docs/registry/__index__.generated.tsx b/apps/docs/registry/__index__.generated.tsx index 4054920..91b3343 100644 --- a/apps/docs/registry/__index__.generated.tsx +++ b/apps/docs/registry/__index__.generated.tsx @@ -67,6 +67,7 @@ export const demos: Record = { 'navbar-pill-glide:default': dynamic(() => import('./demos/navbar-pill-glide')), 'navbar-corner-panel:default': dynamic(() => import('./demos/navbar-corner-panel')), 'footer-pulse-links:default': dynamic(() => import('./demos/footer-pulse-links')), + 'arc-carousel:default': dynamic(() => import('./demos/arc-carousel')), }; export function getDemo(component: string, variant: string): ComponentType | undefined { diff --git a/apps/docs/registry/__media__.generated.ts b/apps/docs/registry/__media__.generated.ts index 3474fd6..48270e4 100644 --- a/apps/docs/registry/__media__.generated.ts +++ b/apps/docs/registry/__media__.generated.ts @@ -63,4 +63,5 @@ export const discoveredMedia: Record = { 'navbar-pill-glide': {"image":"/media/blocks/navbar-pill-glide-poster.webp","video":"/media/blocks/navbar-pill-glide-preview.mp4"}, 'navbar-corner-panel': {"image":"/media/blocks/navbar-corner-panel-poster.webp","video":"/media/blocks/navbar-corner-panel-preview.mp4"}, 'footer-pulse-links': {"image":"/media/blocks/footer-pulse-links-poster.webp","video":"/media/blocks/footer-pulse-links-preview.mp4"}, + 'arc-carousel': {"image":"/media/blocks/arc-carousel-poster.webp","video":"/media/blocks/arc-carousel-preview.mp4"}, }; diff --git a/apps/docs/registry/__sources__.generated.ts b/apps/docs/registry/__sources__.generated.ts index 35e8616..2bb7b27 100644 --- a/apps/docs/registry/__sources__.generated.ts +++ b/apps/docs/registry/__sources__.generated.ts @@ -4,7 +4,12 @@ export interface Snippet { codeHtml: string; } -export const cssTokens: Record = {}; +export const cssTokens: Record = { + "arc-carousel": { + "code": "@theme {\n --color-tween-teal: #045f64;\n --color-tween-teal-soft: #9fd4d6;\n --color-tween-lime: #c6f56f;\n --color-tween-ink: #071d1b;\n --color-tween-ink-deep: #03110f;\n --ease-tween: cubic-bezier(0.32, 0.72, 0, 1);\n}", + "codeHtml": "
@theme {\n  --color-tween-teal: #045f64;\n  --color-tween-teal-soft: #9fd4d6;\n  --color-tween-lime: #c6f56f;\n  --color-tween-ink: #071d1b;\n  --color-tween-ink-deep: #03110f;\n  --ease-tween: cubic-bezier(0.32, 0.72, 0, 1);\n}
" + } +}; export const usage: Record = { "icon-trail-button": { @@ -342,6 +347,12 @@ export const usage: Record = { "code": "import FooterPulseLinks from '@/components/tweenui/footer-pulse-links';\n\nexport default function Example() {\n return ;\n}", "codeHtml": "
import FooterPulseLinks from '@/components/tweenui/footer-pulse-links';\n\nexport default function Example() {\n  return <FooterPulseLinks />;\n}
" } + }, + "arc-carousel": { + "react": { + "code": "import ArcCarousel from '@/components/tweenui/arc-carousel';\n\nexport default function Example() {\n return ;\n}", + "codeHtml": "
import ArcCarousel from '@/components/tweenui/arc-carousel';\n\nexport default function Example() {\n  return <ArcCarousel />;\n}
" + } } }; @@ -606,8 +617,8 @@ export const manual: Record = { }, "cube-roll-item": { "react": { - "code": "'use client';\n\nimport { useRef, type ComponentPropsWithoutRef, type FocusEvent, type MouseEvent } from 'react';\nimport { useGSAP } from '@gsap/react';\nimport gsap from 'gsap';\nimport { cn } from '@/lib/utils';\n\ngsap.registerPlugin(useGSAP);\n\nconst prefersReducedMotion = () =>\n typeof window !== 'undefined' && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n/** The roll follows the pointer — skip it on touch, where there is no hover. */\nconst canHover = () =>\n typeof window !== 'undefined' && window.matchMedia('(hover: hover) and (pointer: fine)').matches;\n\n/** Keyboard focus rolls the row; a mouse click that happens to focus it does not. */\nconst isFocusVisible = (el: HTMLElement) => {\n try {\n return el.matches(':focus-visible');\n } catch {\n return true;\n }\n};\n\n/** Settles a touch past the face, like a drum clicking into its detent. */\nconst ROLL_EASE = 'back.out(1.6)';\n\n/**\n * Each row is a four-sided drum turning on its X axis. Front and back carry the\n * resting face, top and bottom the filled one — so every quarter turn lands on\n * the opposite state, and the drum can keep rolling the way the pointer moves.\n * `--depth` matches the row height, which makes the drum a true square prism.\n */\nconst FACE_TRANSFORM = {\n front: '[transform:translateZ(calc(var(--depth)/2))]',\n back: '[transform:rotateX(180deg)_translateZ(calc(var(--depth)/2))]',\n top: '[transform:rotateX(90deg)_translateZ(calc(var(--depth)/2))]',\n bottom: '[transform:rotateX(-90deg)_translateZ(calc(var(--depth)/2))]',\n} as const;\n\ntype Side = keyof typeof FACE_TRANSFORM;\n\nconst SIDES: Side[] = ['front', 'back', 'top', 'bottom'];\n\nexport interface CubeRollItemEntry {\n /** Large title in the middle of the row. */\n title: string;\n /** Short line on the right. */\n label?: string;\n /** Link target for the row. */\n href: string;\n}\n\nexport interface CubeRollItemProps extends ComponentPropsWithoutRef<'nav'> {\n /** Rows in the list, numbered in order. Defaults to a four-row sample. */\n items?: CubeRollItemEntry[];\n}\n\nconst DEFAULT_ITEMS: CubeRollItemEntry[] = [\n { title: 'Components', label: 'Buttons, text & logos', href: '#components' },\n { title: 'Blocks', label: 'Ready-made sections', href: '#blocks' },\n { title: 'Installation', label: 'One command, no config', href: '#installation' },\n { title: 'Changelog', label: 'What shipped lately', href: '#changelog' },\n];\n\nfunction Face({ side, item, number }: { side: Side; item: CubeRollItemEntry; number: string }) {\n const filled = side === 'top' || side === 'bottom';\n\n return (\n \n {/* Equal side columns keep the title on the row's true center line. */}\n
\n \n {number}\n {filled && (\n \n \n \n )}\n \n {/* Leading above 1 keeps descenders (g, y, p) inside the overflow box. */}\n \n {item.title}\n \n {item.label && (\n \n {item.label}\n \n )}\n
\n \n );\n}\n\nexport default function CubeRollItem({\n items = DEFAULT_ITEMS,\n className,\n 'aria-label': ariaLabel = 'Sections',\n ...props\n}: CubeRollItemProps) {\n const rootRef = useRef(null);\n /** Accumulated drum angle per row, in quarter turns of ±90°. */\n const anglesRef = useRef([]);\n const activeRef = useRef([]);\n\n const { contextSafe } = useGSAP(\n (_context, contextSafe) => {\n anglesRef.current = items.map(() => 0);\n activeRef.current = items.map(() => false);\n\n if (prefersReducedMotion()) return;\n\n // Park every drum half a turn over with its back face blanked, so each row\n // starts as an empty slab and nothing shows in the fallback font.\n const backContent = '[data-roll-face=\"back\"] > *';\n gsap.set('[data-roll-rule]', { scaleX: 0 });\n gsap.set('[data-roll-drum]', { rotationX: 180 });\n gsap.set(backContent, { opacity: 0 });\n\n let cancelled = false;\n\n // Rules draw in while the drums flip over one after another, flashing\n // their filled face on the way past.\n const play = contextSafe!(() => {\n if (cancelled) return;\n gsap\n .timeline({ onComplete: () => gsap.set(backContent, { opacity: 1 }) })\n .to(\n '[data-roll-rule]',\n { scaleX: 1, duration: 0.9, ease: 'expo.inOut', stagger: 0.15 },\n 0\n )\n .to(\n '[data-roll-drum]',\n { rotationX: 0, duration: 0.9, ease: 'power4.inOut', stagger: 0.15 },\n 0.15\n );\n });\n\n // Wait for web fonts so the text never swaps mid-reveal; give up after a\n // beat so a slow or failed font can't hold the block hidden.\n const fonts = typeof document !== 'undefined' ? document.fonts?.ready : undefined;\n Promise.race([fonts, new Promise((resolve) => setTimeout(resolve, 1500))]).then(play);\n\n return () => {\n cancelled = true;\n };\n },\n { scope: rootRef, dependencies: [items] }\n );\n\n /** Turn a row a quarter — downward when `down`, upward otherwise. */\n const turn = contextSafe((link: HTMLElement, index: number, active: boolean, down: boolean) => {\n if (activeRef.current[index] === active) return;\n activeRef.current[index] = active;\n link.closest('li')?.setAttribute('data-active', String(active));\n\n const drum = link.querySelector('[data-roll-drum]');\n if (!drum) return;\n // Hovered before the intro finished: the back face may still be blank.\n gsap.set(link.querySelectorAll('[data-roll-face=\"back\"] > *'), { opacity: 1 });\n\n if (prefersReducedMotion()) {\n anglesRef.current[index] = active ? -90 : 0;\n gsap.set(drum, { rotationX: anglesRef.current[index], opacity: 1 });\n return;\n }\n\n anglesRef.current[index] = (anglesRef.current[index] ?? 0) + (down ? -90 : 90);\n // `auto` takes rotationX from this drum's intro flip only, so hovering\n // mid-reveal leaves the other rows' flips running.\n gsap.to(drum, {\n rotationX: anglesRef.current[index],\n duration: active ? 0.6 : 0.7,\n ease: ROLL_EASE,\n overwrite: 'auto',\n });\n });\n\n /** Did the pointer cross the top half of the row? */\n const fromTop = (event: MouseEvent) => {\n const rect = event.currentTarget.getBoundingClientRect();\n return event.clientY < rect.top + rect.height / 2;\n };\n\n return (\n \n {/* No gap between rows, so the filled face covers the whole row edge to edge. */}\n
    \n {items.map((item, index) => {\n const number = String(index + 1).padStart(3, '0');\n\n return (\n \n \n \n canHover() && turn(event.currentTarget, index, true, fromTop(event))\n }\n onMouseLeave={(event) =>\n canHover() && turn(event.currentTarget, index, false, !fromTop(event))\n }\n onFocus={(event: FocusEvent) =>\n isFocusVisible(event.currentTarget) &&\n turn(event.currentTarget, index, true, true)\n }\n onBlur={(event: FocusEvent) =>\n turn(event.currentTarget, index, false, true)\n }\n >\n
    \n {/* Under reduced motion the drum only snaps, so skip the layer promotion. */}\n \n {SIDES.map((side) => (\n \n ))}\n
    \n \n \n \n );\n })}\n
\n {/* Closing rule under the last row. */}\n \n \n );\n}\n", - "codeHtml": "
'use client';\n\nimport { useRef, type ComponentPropsWithoutRef, type FocusEvent, type MouseEvent } from 'react';\nimport { useGSAP } from '@gsap/react';\nimport gsap from 'gsap';\nimport { cn } from '@/lib/utils';\n\ngsap.registerPlugin(useGSAP);\n\nconst prefersReducedMotion = () =>\n  typeof window !== 'undefined' && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n/** The roll follows the pointer — skip it on touch, where there is no hover. */\nconst canHover = () =>\n  typeof window !== 'undefined' && window.matchMedia('(hover: hover) and (pointer: fine)').matches;\n\n/** Keyboard focus rolls the row; a mouse click that happens to focus it does not. */\nconst isFocusVisible = (el: HTMLElement) => {\n  try {\n    return el.matches(':focus-visible');\n  } catch {\n    return true;\n  }\n};\n\n/** Settles a touch past the face, like a drum clicking into its detent. */\nconst ROLL_EASE = 'back.out(1.6)';\n\n/**\n * Each row is a four-sided drum turning on its X axis. Front and back carry the\n * resting face, top and bottom the filled one — so every quarter turn lands on\n * the opposite state, and the drum can keep rolling the way the pointer moves.\n * `--depth` matches the row height, which makes the drum a true square prism.\n */\nconst FACE_TRANSFORM = {\n  front: '[transform:translateZ(calc(var(--depth)/2))]',\n  back: '[transform:rotateX(180deg)_translateZ(calc(var(--depth)/2))]',\n  top: '[transform:rotateX(90deg)_translateZ(calc(var(--depth)/2))]',\n  bottom: '[transform:rotateX(-90deg)_translateZ(calc(var(--depth)/2))]',\n} as const;\n\ntype Side = keyof typeof FACE_TRANSFORM;\n\nconst SIDES: Side[] = ['front', 'back', 'top', 'bottom'];\n\nexport interface CubeRollItemEntry {\n  /** Large title in the middle of the row. */\n  title: string;\n  /** Short line on the right. */\n  label?: string;\n  /** Link target for the row. */\n  href: string;\n}\n\nexport interface CubeRollItemProps extends ComponentPropsWithoutRef<'nav'> {\n  /** Rows in the list, numbered in order. Defaults to a four-row sample. */\n  items?: CubeRollItemEntry[];\n}\n\nconst DEFAULT_ITEMS: CubeRollItemEntry[] = [\n  { title: 'Components', label: 'Buttons, text & logos', href: '#components' },\n  { title: 'Blocks', label: 'Ready-made sections', href: '#blocks' },\n  { title: 'Installation', label: 'One command, no config', href: '#installation' },\n  { title: 'Changelog', label: 'What shipped lately', href: '#changelog' },\n];\n\nfunction Face({ side, item, number }: { side: Side; item: CubeRollItemEntry; number: string }) {\n  const filled = side === 'top' || side === 'bottom';\n\n  return (\n    <div\n      data-roll-face={side}\n      aria-hidden={side === 'front' ? undefined : true}\n      className={cn(\n        'absolute inset-0 backface-hidden',\n        FACE_TRANSFORM[side],\n        filled\n          ? 'bg-[#045f64] text-white dark:bg-[#c6f56f] dark:text-[#071d1b]'\n          : 'bg-white text-[#12161F] dark:bg-[#0d1117] dark:text-white'\n      )}\n    >\n      {/* Equal side columns keep the title on the row's true center line. */}\n      <div className=\"flex h-full flex-wrap items-start px-3 pt-3.5 md:grid md:grid-cols-[1fr_2fr_1fr] md:items-center md:gap-6 md:px-4 md:pt-0\">\n        <span\n          className={cn(\n            'order-1 flex items-center gap-1.5 text-xs tabular-nums',\n            filled ? 'text-[#c6f56f] dark:text-[#045f64]' : 'text-[#045f64] dark:text-[#9fd4d6]'\n          )}\n        >\n          {number}\n          {filled && (\n            <svg viewBox=\"0 0 12 12\" className=\"size-3\" fill=\"none\" aria-hidden=\"true\">\n              <path d=\"M1 6h9.5M6.5 2 10.5 6l-4 4\" stroke=\"currentColor\" strokeWidth=\"1.25\" />\n            </svg>\n          )}\n        </span>\n        {/* Leading above 1 keeps descenders (g, y, p) inside the overflow box. */}\n        <span className=\"order-3 mt-2.5 w-full min-w-0 overflow-hidden text-center text-3xl leading-[1.3] font-normal tracking-tight text-ellipsis whitespace-nowrap md:order-2 md:mt-0 md:w-auto md:text-4xl\">\n          {item.title}\n        </span>\n        {item.label && (\n          <span\n            className={cn(\n              'order-2 ml-auto text-right text-[13px] tracking-wide md:order-3 md:ml-0',\n              filled\n                ? 'text-white/80 dark:text-[#071d1b]/75'\n                : 'text-[#045f64]/75 dark:text-[#9fd4d6]/80'\n            )}\n          >\n            {item.label}\n          </span>\n        )}\n      </div>\n    </div>\n  );\n}\n\nexport default function CubeRollItem({\n  items = DEFAULT_ITEMS,\n  className,\n  'aria-label': ariaLabel = 'Sections',\n  ...props\n}: CubeRollItemProps) {\n  const rootRef = useRef<HTMLElement>(null);\n  /** Accumulated drum angle per row, in quarter turns of ±90°. */\n  const anglesRef = useRef<number[]>([]);\n  const activeRef = useRef<boolean[]>([]);\n\n  const { contextSafe } = useGSAP(\n    (_context, contextSafe) => {\n      anglesRef.current = items.map(() => 0);\n      activeRef.current = items.map(() => false);\n\n      if (prefersReducedMotion()) return;\n\n      // Park every drum half a turn over with its back face blanked, so each row\n      // starts as an empty slab and nothing shows in the fallback font.\n      const backContent = '[data-roll-face=\"back\"] > *';\n      gsap.set('[data-roll-rule]', { scaleX: 0 });\n      gsap.set('[data-roll-drum]', { rotationX: 180 });\n      gsap.set(backContent, { opacity: 0 });\n\n      let cancelled = false;\n\n      // Rules draw in while the drums flip over one after another, flashing\n      // their filled face on the way past.\n      const play = contextSafe!(() => {\n        if (cancelled) return;\n        gsap\n          .timeline({ onComplete: () => gsap.set(backContent, { opacity: 1 }) })\n          .to(\n            '[data-roll-rule]',\n            { scaleX: 1, duration: 0.9, ease: 'expo.inOut', stagger: 0.15 },\n            0\n          )\n          .to(\n            '[data-roll-drum]',\n            { rotationX: 0, duration: 0.9, ease: 'power4.inOut', stagger: 0.15 },\n            0.15\n          );\n      });\n\n      // Wait for web fonts so the text never swaps mid-reveal; give up after a\n      // beat so a slow or failed font can't hold the block hidden.\n      const fonts = typeof document !== 'undefined' ? document.fonts?.ready : undefined;\n      Promise.race([fonts, new Promise((resolve) => setTimeout(resolve, 1500))]).then(play);\n\n      return () => {\n        cancelled = true;\n      };\n    },\n    { scope: rootRef, dependencies: [items] }\n  );\n\n  /** Turn a row a quarter — downward when `down`, upward otherwise. */\n  const turn = contextSafe((link: HTMLElement, index: number, active: boolean, down: boolean) => {\n    if (activeRef.current[index] === active) return;\n    activeRef.current[index] = active;\n    link.closest('li')?.setAttribute('data-active', String(active));\n\n    const drum = link.querySelector('[data-roll-drum]');\n    if (!drum) return;\n    // Hovered before the intro finished: the back face may still be blank.\n    gsap.set(link.querySelectorAll('[data-roll-face=\"back\"] > *'), { opacity: 1 });\n\n    if (prefersReducedMotion()) {\n      anglesRef.current[index] = active ? -90 : 0;\n      gsap.set(drum, { rotationX: anglesRef.current[index], opacity: 1 });\n      return;\n    }\n\n    anglesRef.current[index] = (anglesRef.current[index] ?? 0) + (down ? -90 : 90);\n    // `auto` takes rotationX from this drum's intro flip only, so hovering\n    // mid-reveal leaves the other rows' flips running.\n    gsap.to(drum, {\n      rotationX: anglesRef.current[index],\n      duration: active ? 0.6 : 0.7,\n      ease: ROLL_EASE,\n      overwrite: 'auto',\n    });\n  });\n\n  /** Did the pointer cross the top half of the row? */\n  const fromTop = (event: MouseEvent<HTMLElement>) => {\n    const rect = event.currentTarget.getBoundingClientRect();\n    return event.clientY < rect.top + rect.height / 2;\n  };\n\n  return (\n    <nav\n      ref={rootRef}\n      data-cube-roll-item\n      aria-label={ariaLabel}\n      className={cn('mx-auto w-full max-w-[1100px] px-4 py-14 md:py-20', className)}\n      {...props}\n    >\n      {/* No gap between rows, so the filled face covers the whole row edge to edge. */}\n      <ul className=\"flex flex-col\">\n        {items.map((item, index) => {\n          const number = String(index + 1).padStart(3, '0');\n\n          return (\n            <li\n              key={item.href + item.title}\n              data-roll-row\n              data-active=\"false\"\n              className=\"relative h-[5.75rem] overflow-y-clip [--depth:5.75rem] md:h-[4.5rem] md:[--depth:4.5rem]\"\n            >\n              <span\n                data-roll-rule\n                aria-hidden=\"true\"\n                className=\"pointer-events-none absolute inset-x-0 top-0 z-10 h-px origin-left bg-[#045f64] dark:bg-[#9fd4d6]/60\"\n              />\n              <a\n                href={item.href}\n                className=\"block size-full outline-none perspective-[1200px]\"\n                // Enter from the top and the drum rolls down; leave through the\n                // bottom and it keeps rolling down rather than reversing.\n                onMouseEnter={(event) =>\n                  canHover() && turn(event.currentTarget, index, true, fromTop(event))\n                }\n                onMouseLeave={(event) =>\n                  canHover() && turn(event.currentTarget, index, false, !fromTop(event))\n                }\n                onFocus={(event: FocusEvent<HTMLAnchorElement>) =>\n                  isFocusVisible(event.currentTarget) &&\n                  turn(event.currentTarget, index, true, true)\n                }\n                onBlur={(event: FocusEvent<HTMLAnchorElement>) =>\n                  turn(event.currentTarget, index, false, true)\n                }\n              >\n                <div className=\"relative size-full [transform:translateZ(calc(var(--depth)/-2))] transform-3d\">\n                  {/* Under reduced motion the drum only snaps, so skip the layer promotion. */}\n                  <div\n                    data-roll-drum\n                    className=\"absolute inset-0 will-change-transform transform-3d motion-reduce:will-change-auto\"\n                  >\n                    {SIDES.map((side) => (\n                      <Face key={side} side={side} item={item} number={number} />\n                    ))}\n                  </div>\n                </div>\n              </a>\n            </li>\n          );\n        })}\n      </ul>\n      {/* Closing rule under the last row. */}\n      <span\n        data-roll-rule\n        aria-hidden=\"true\"\n        className=\"block h-px origin-left bg-[#045f64] dark:bg-[#9fd4d6]/60\"\n      />\n    </nav>\n  );\n}\n
" + "code": "'use client';\n\nimport { useRef, type ComponentPropsWithoutRef, type FocusEvent, type MouseEvent } from 'react';\nimport { useGSAP } from '@gsap/react';\nimport gsap from 'gsap';\nimport { cn } from '@/lib/utils';\n\ngsap.registerPlugin(useGSAP);\n\nconst prefersReducedMotion = () =>\n typeof window !== 'undefined' && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n/** The roll follows the pointer — skip it on touch, where there is no hover. */\nconst canHover = () =>\n typeof window !== 'undefined' && window.matchMedia('(hover: hover) and (pointer: fine)').matches;\n\n/** Keyboard focus rolls the row; a mouse click that happens to focus it does not. */\nconst isFocusVisible = (el: HTMLElement) => {\n try {\n return el.matches(':focus-visible');\n } catch {\n return true;\n }\n};\n\n/** Settles a touch past the face, like a drum clicking into its detent. */\nconst ROLL_EASE = 'back.out(1.6)';\n\n/**\n * Each row is a four-sided drum turning on its X axis. Front and back carry the\n * resting face, top and bottom the filled one — so every quarter turn lands on\n * the opposite state, and the drum can keep rolling the way the pointer moves.\n * `--depth` matches the row height, which makes the drum a true square prism.\n */\nconst FACE_TRANSFORM = {\n front: '[transform:translateZ(calc(var(--depth)/2))]',\n back: '[transform:rotateX(180deg)_translateZ(calc(var(--depth)/2))]',\n top: '[transform:rotateX(90deg)_translateZ(calc(var(--depth)/2))]',\n bottom: '[transform:rotateX(-90deg)_translateZ(calc(var(--depth)/2))]',\n} as const;\n\ntype Side = keyof typeof FACE_TRANSFORM;\n\nconst SIDES: Side[] = ['front', 'back', 'top', 'bottom'];\n\nexport interface CubeRollItemEntry {\n /** Large title in the middle of the row. */\n title: string;\n /** Short line on the right. */\n label?: string;\n /** Link target for the row. */\n href: string;\n}\n\nexport interface CubeRollItemProps extends ComponentPropsWithoutRef<'nav'> {\n /** Rows in the list, numbered in order. Defaults to a four-row sample. */\n items?: CubeRollItemEntry[];\n}\n\nconst DEFAULT_ITEMS: CubeRollItemEntry[] = [\n { title: 'Components', label: 'Buttons, text & logos', href: '#components' },\n { title: 'Blocks', label: 'Ready-made sections', href: '#blocks' },\n { title: 'Installation', label: 'One command, no config', href: '#installation' },\n { title: 'Changelog', label: 'What shipped lately', href: '#changelog' },\n];\n\nfunction Face({ side, item, number }: { side: Side; item: CubeRollItemEntry; number: string }) {\n const filled = side === 'top' || side === 'bottom';\n\n return (\n \n {/* Equal side columns keep the title on the row's true center line. */}\n
\n \n {number}\n {filled && (\n \n \n \n )}\n \n {/* Leading above 1 keeps descenders (g, y, p) inside the overflow box. */}\n \n {item.title}\n \n {item.label && (\n \n {item.label}\n \n )}\n
\n \n );\n}\n\nexport default function CubeRollItem({\n items = DEFAULT_ITEMS,\n className,\n 'aria-label': ariaLabel = 'Sections',\n ...props\n}: CubeRollItemProps) {\n const rootRef = useRef(null);\n /** Accumulated drum angle per row, in quarter turns of ±90°. */\n const anglesRef = useRef([]);\n const activeRef = useRef([]);\n\n const { contextSafe } = useGSAP(\n (_context, contextSafe) => {\n anglesRef.current = items.map(() => 0);\n activeRef.current = items.map(() => false);\n\n if (prefersReducedMotion()) return;\n\n // Park every drum half a turn over with its back face blanked, so each row\n // starts as an empty slab and nothing shows in the fallback font.\n const backContent = '[data-roll-face=\"back\"] > *';\n gsap.set('[data-roll-rule]', { scaleX: 0 });\n gsap.set('[data-roll-drum]', { rotationX: 180 });\n gsap.set(backContent, { opacity: 0 });\n\n let cancelled = false;\n\n // Rules draw in while the drums flip over one after another, flashing\n // their filled face on the way past.\n const play = contextSafe!(() => {\n if (cancelled) return;\n gsap\n .timeline({ onComplete: () => gsap.set(backContent, { opacity: 1 }) })\n .to(\n '[data-roll-rule]',\n { scaleX: 1, duration: 0.9, ease: 'expo.inOut', stagger: 0.15 },\n 0\n )\n .to(\n '[data-roll-drum]',\n { rotationX: 0, duration: 0.9, ease: 'power4.inOut', stagger: 0.15 },\n 0.15\n );\n });\n\n // Wait for web fonts so the text never swaps mid-reveal; give up after a\n // beat so a slow or failed font can't hold the block hidden.\n const fonts = typeof document !== 'undefined' ? document.fonts?.ready : undefined;\n Promise.race([fonts, new Promise((resolve) => setTimeout(resolve, 1500))]).then(play);\n\n return () => {\n cancelled = true;\n };\n },\n { scope: rootRef, dependencies: [items] }\n );\n\n /** Turn a row a quarter — downward when `down`, upward otherwise. */\n const turn = contextSafe((link: HTMLElement, index: number, active: boolean, down: boolean) => {\n if (activeRef.current[index] === active) return;\n activeRef.current[index] = active;\n link.closest('li')?.setAttribute('data-active', String(active));\n\n const drum = link.querySelector('[data-roll-drum]');\n if (!drum) return;\n // Hovered before the intro finished: the back face may still be blank.\n gsap.set(link.querySelectorAll('[data-roll-face=\"back\"] > *'), { opacity: 1 });\n\n if (prefersReducedMotion()) {\n anglesRef.current[index] = active ? -90 : 0;\n gsap.set(drum, { rotationX: anglesRef.current[index], opacity: 1 });\n return;\n }\n\n anglesRef.current[index] = (anglesRef.current[index] ?? 0) + (down ? -90 : 90);\n // `auto` takes rotationX from this drum's intro flip only, so hovering\n // mid-reveal leaves the other rows' flips running.\n gsap.to(drum, {\n rotationX: anglesRef.current[index],\n duration: active ? 0.6 : 0.7,\n ease: ROLL_EASE,\n overwrite: 'auto',\n });\n });\n\n /** Did the pointer cross the top half of the row? */\n const fromTop = (event: MouseEvent) => {\n const rect = event.currentTarget.getBoundingClientRect();\n return event.clientY < rect.top + rect.height / 2;\n };\n\n return (\n \n {/* No gap between rows, so the filled face covers the whole row edge to edge. */}\n
    \n {items.map((item, index) => {\n const number = String(index + 1).padStart(3, '0');\n\n return (\n \n \n \n canHover() && turn(event.currentTarget, index, true, fromTop(event))\n }\n onMouseLeave={(event) =>\n canHover() && turn(event.currentTarget, index, false, !fromTop(event))\n }\n onFocus={(event: FocusEvent) =>\n isFocusVisible(event.currentTarget) &&\n turn(event.currentTarget, index, true, true)\n }\n onBlur={(event: FocusEvent) =>\n turn(event.currentTarget, index, false, true)\n }\n >\n
    \n {/* Under reduced motion the drum only snaps, so skip the layer promotion. */}\n \n {SIDES.map((side) => (\n \n ))}\n
    \n \n \n \n );\n })}\n
\n {/* Closing rule under the last row. */}\n \n \n );\n}\n", + "codeHtml": "
'use client';\n\nimport { useRef, type ComponentPropsWithoutRef, type FocusEvent, type MouseEvent } from 'react';\nimport { useGSAP } from '@gsap/react';\nimport gsap from 'gsap';\nimport { cn } from '@/lib/utils';\n\ngsap.registerPlugin(useGSAP);\n\nconst prefersReducedMotion = () =>\n  typeof window !== 'undefined' && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n/** The roll follows the pointer — skip it on touch, where there is no hover. */\nconst canHover = () =>\n  typeof window !== 'undefined' && window.matchMedia('(hover: hover) and (pointer: fine)').matches;\n\n/** Keyboard focus rolls the row; a mouse click that happens to focus it does not. */\nconst isFocusVisible = (el: HTMLElement) => {\n  try {\n    return el.matches(':focus-visible');\n  } catch {\n    return true;\n  }\n};\n\n/** Settles a touch past the face, like a drum clicking into its detent. */\nconst ROLL_EASE = 'back.out(1.6)';\n\n/**\n * Each row is a four-sided drum turning on its X axis. Front and back carry the\n * resting face, top and bottom the filled one — so every quarter turn lands on\n * the opposite state, and the drum can keep rolling the way the pointer moves.\n * `--depth` matches the row height, which makes the drum a true square prism.\n */\nconst FACE_TRANSFORM = {\n  front: '[transform:translateZ(calc(var(--depth)/2))]',\n  back: '[transform:rotateX(180deg)_translateZ(calc(var(--depth)/2))]',\n  top: '[transform:rotateX(90deg)_translateZ(calc(var(--depth)/2))]',\n  bottom: '[transform:rotateX(-90deg)_translateZ(calc(var(--depth)/2))]',\n} as const;\n\ntype Side = keyof typeof FACE_TRANSFORM;\n\nconst SIDES: Side[] = ['front', 'back', 'top', 'bottom'];\n\nexport interface CubeRollItemEntry {\n  /** Large title in the middle of the row. */\n  title: string;\n  /** Short line on the right. */\n  label?: string;\n  /** Link target for the row. */\n  href: string;\n}\n\nexport interface CubeRollItemProps extends ComponentPropsWithoutRef<'nav'> {\n  /** Rows in the list, numbered in order. Defaults to a four-row sample. */\n  items?: CubeRollItemEntry[];\n}\n\nconst DEFAULT_ITEMS: CubeRollItemEntry[] = [\n  { title: 'Components', label: 'Buttons, text & logos', href: '#components' },\n  { title: 'Blocks', label: 'Ready-made sections', href: '#blocks' },\n  { title: 'Installation', label: 'One command, no config', href: '#installation' },\n  { title: 'Changelog', label: 'What shipped lately', href: '#changelog' },\n];\n\nfunction Face({ side, item, number }: { side: Side; item: CubeRollItemEntry; number: string }) {\n  const filled = side === 'top' || side === 'bottom';\n\n  return (\n    <div\n      data-roll-face={side}\n      aria-hidden={side === 'front' ? undefined : true}\n      className={cn(\n        'absolute inset-0 backface-hidden',\n        FACE_TRANSFORM[side],\n        filled\n          ? 'bg-[#045f64] text-white dark:bg-[#c6f56f] dark:text-[#071d1b]'\n          : 'bg-white text-[#12161F] dark:bg-[#0d1117] dark:text-white'\n      )}\n    >\n      {/* Equal side columns keep the title on the row's true center line. */}\n      <div className=\"flex h-full flex-wrap items-start px-3 pt-3.5 md:grid md:grid-cols-[1fr_2fr_1fr] md:items-center md:gap-6 md:px-4 md:pt-0\">\n        <span\n          className={cn(\n            'order-1 flex items-center gap-1.5 text-xs tabular-nums',\n            filled ? 'text-[#c6f56f] dark:text-[#045f64]' : 'text-[#045f64] dark:text-[#9fd4d6]'\n          )}\n        >\n          {number}\n          {filled && (\n            <svg viewBox=\"0 0 12 12\" className=\"size-3\" fill=\"none\" aria-hidden=\"true\">\n              <path d=\"M1 6h9.5M6.5 2 10.5 6l-4 4\" stroke=\"currentColor\" strokeWidth=\"1.25\" />\n            </svg>\n          )}\n        </span>\n        {/* Leading above 1 keeps descenders (g, y, p) inside the overflow box. */}\n        <span className=\"order-3 mt-2.5 w-full min-w-0 overflow-hidden text-center text-3xl leading-[1.3] font-normal tracking-tight text-ellipsis whitespace-nowrap md:order-2 md:mt-0 md:w-auto md:text-4xl\">\n          {item.title}\n        </span>\n        {item.label && (\n          <span\n            className={cn(\n              'order-2 ml-auto text-right text-[13px] tracking-wide md:order-3 md:ml-0',\n              filled\n                ? 'text-white/80 dark:text-[#071d1b]/75'\n                : 'text-[#045f64]/75 dark:text-[#9fd4d6]/80'\n            )}\n          >\n            {item.label}\n          </span>\n        )}\n      </div>\n    </div>\n  );\n}\n\nexport default function CubeRollItem({\n  items = DEFAULT_ITEMS,\n  className,\n  'aria-label': ariaLabel = 'Sections',\n  ...props\n}: CubeRollItemProps) {\n  const rootRef = useRef<HTMLElement>(null);\n  /** Accumulated drum angle per row, in quarter turns of ±90°. */\n  const anglesRef = useRef<number[]>([]);\n  const activeRef = useRef<boolean[]>([]);\n\n  const { contextSafe } = useGSAP(\n    (_context, contextSafe) => {\n      anglesRef.current = items.map(() => 0);\n      activeRef.current = items.map(() => false);\n\n      if (prefersReducedMotion()) return;\n\n      // Park every drum half a turn over with its back face blanked, so each row\n      // starts as an empty slab and nothing shows in the fallback font.\n      const backContent = '[data-roll-face=\"back\"] > *';\n      gsap.set('[data-roll-rule]', { scaleX: 0 });\n      gsap.set('[data-roll-drum]', { rotationX: 180 });\n      gsap.set(backContent, { opacity: 0 });\n\n      let cancelled = false;\n\n      // Rules draw in while the drums flip over one after another, flashing\n      // their filled face on the way past.\n      const play = contextSafe!(() => {\n        if (cancelled) return;\n        gsap\n          .timeline({ onComplete: () => gsap.set(backContent, { opacity: 1 }) })\n          .to(\n            '[data-roll-rule]',\n            { scaleX: 1, duration: 0.9, ease: 'expo.inOut', stagger: 0.15 },\n            0\n          )\n          .to(\n            '[data-roll-drum]',\n            { rotationX: 0, duration: 0.9, ease: 'power4.inOut', stagger: 0.15 },\n            0.15\n          );\n      });\n\n      // Wait for web fonts so the text never swaps mid-reveal; give up after a\n      // beat so a slow or failed font can't hold the block hidden.\n      const fonts = typeof document !== 'undefined' ? document.fonts?.ready : undefined;\n      Promise.race([fonts, new Promise((resolve) => setTimeout(resolve, 1500))]).then(play);\n\n      return () => {\n        cancelled = true;\n      };\n    },\n    { scope: rootRef, dependencies: [items] }\n  );\n\n  /** Turn a row a quarter — downward when `down`, upward otherwise. */\n  const turn = contextSafe((link: HTMLElement, index: number, active: boolean, down: boolean) => {\n    if (activeRef.current[index] === active) return;\n    activeRef.current[index] = active;\n    link.closest('li')?.setAttribute('data-active', String(active));\n\n    const drum = link.querySelector('[data-roll-drum]');\n    if (!drum) return;\n    // Hovered before the intro finished: the back face may still be blank.\n    gsap.set(link.querySelectorAll('[data-roll-face=\"back\"] > *'), { opacity: 1 });\n\n    if (prefersReducedMotion()) {\n      anglesRef.current[index] = active ? -90 : 0;\n      gsap.set(drum, { rotationX: anglesRef.current[index], opacity: 1 });\n      return;\n    }\n\n    anglesRef.current[index] = (anglesRef.current[index] ?? 0) + (down ? -90 : 90);\n    // `auto` takes rotationX from this drum's intro flip only, so hovering\n    // mid-reveal leaves the other rows' flips running.\n    gsap.to(drum, {\n      rotationX: anglesRef.current[index],\n      duration: active ? 0.6 : 0.7,\n      ease: ROLL_EASE,\n      overwrite: 'auto',\n    });\n  });\n\n  /** Did the pointer cross the top half of the row? */\n  const fromTop = (event: MouseEvent<HTMLElement>) => {\n    const rect = event.currentTarget.getBoundingClientRect();\n    return event.clientY < rect.top + rect.height / 2;\n  };\n\n  return (\n    <nav\n      ref={rootRef}\n      data-cube-roll-item\n      aria-label={ariaLabel}\n      className={cn('mx-auto w-full max-w-[1100px] px-4 py-14 md:py-20', className)}\n      {...props}\n    >\n      {/* No gap between rows, so the filled face covers the whole row edge to edge. */}\n      <ul className=\"flex flex-col\">\n        {items.map((item, index) => {\n          const number = String(index + 1).padStart(3, '0');\n\n          return (\n            <li\n              key={item.href + item.title}\n              data-roll-row\n              data-active=\"false\"\n              className=\"relative h-[5.75rem] overflow-y-clip [--depth:5.75rem] md:h-[4.5rem] md:[--depth:4.5rem]\"\n            >\n              <span\n                data-roll-rule\n                aria-hidden=\"true\"\n                className=\"pointer-events-none absolute inset-x-0 top-0 z-10 h-px origin-left bg-[#045f64] dark:bg-[#9fd4d6]/60\"\n              />\n              <a\n                href={item.href}\n                className=\"block size-full outline-none perspective-[1200px]\"\n                // Enter from the top and the drum rolls down; leave through the\n                // bottom and it keeps rolling down rather than reversing.\n                onMouseEnter={(event) =>\n                  canHover() && turn(event.currentTarget, index, true, fromTop(event))\n                }\n                onMouseLeave={(event) =>\n                  canHover() && turn(event.currentTarget, index, false, !fromTop(event))\n                }\n                onFocus={(event: FocusEvent<HTMLAnchorElement>) =>\n                  isFocusVisible(event.currentTarget) &&\n                  turn(event.currentTarget, index, true, true)\n                }\n                onBlur={(event: FocusEvent<HTMLAnchorElement>) =>\n                  turn(event.currentTarget, index, false, true)\n                }\n              >\n                <div className=\"relative size-full [transform:translateZ(calc(var(--depth)/-2))] transform-3d\">\n                  {/* Under reduced motion the drum only snaps, so skip the layer promotion. */}\n                  <div\n                    data-roll-drum\n                    className=\"absolute inset-0 will-change-transform transform-3d motion-reduce:will-change-auto\"\n                  >\n                    {SIDES.map((side) => (\n                      <Face key={side} side={side} item={item} number={number} />\n                    ))}\n                  </div>\n                </div>\n              </a>\n            </li>\n          );\n        })}\n      </ul>\n      {/* Closing rule under the last row. */}\n      <span\n        data-roll-rule\n        aria-hidden=\"true\"\n        className=\"bg-tween-teal dark:bg-tween-teal-soft/60 block h-px origin-left\"\n      />\n    </nav>\n  );\n}\n
" } }, "shutter-slider": { @@ -681,5 +692,11 @@ export const manual: Record = { "code": "'use client';\n\nimport { useId, useRef, type ComponentPropsWithoutRef, type ReactNode } from 'react';\nimport { useGSAP } from '@gsap/react';\nimport gsap from 'gsap';\nimport { ScrollTrigger } from 'gsap/ScrollTrigger';\nimport { cn } from '@/lib/utils';\n\ngsap.registerPlugin(useGSAP, ScrollTrigger);\n\nconst prefersReducedMotion = () =>\n typeof window !== 'undefined' && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\nconst canHover = () =>\n typeof window !== 'undefined' && window.matchMedia('(hover: hover) and (pointer: fine)').matches;\n\nexport type FooterPulseSocialIcon = 'x' | 'instagram' | 'linkedin' | 'dribbble' | 'github';\n\nexport interface FooterPulseLink {\n label: string;\n href: string;\n}\n\nexport interface FooterPulseColumn {\n heading: string;\n links: FooterPulseLink[];\n}\n\nexport interface FooterPulseSocial {\n label: string;\n href: string;\n icon: FooterPulseSocialIcon;\n}\n\nexport interface FooterPulseLinksProps extends ComponentPropsWithoutRef<'footer'> {\n brand?: string;\n logo?: ReactNode;\n description?: string;\n columns?: FooterPulseColumn[];\n socials?: FooterPulseSocial[];\n legal?: FooterPulseLink[];\n copyright?: string;\n}\n\nconst REPO = 'https://github.com/StaticMania/tween-ui';\n\nconst DEFAULT_COLUMNS: FooterPulseColumn[] = [\n {\n heading: 'Components',\n links: [\n { label: 'All components', href: '/components' },\n { label: 'Icon Trail Button', href: '/component/icon-trail-button' },\n { label: 'Sliding Tabs', href: '/component/sliding-tabs' },\n { label: 'Number Counter', href: '/component/number-counter' },\n ],\n },\n {\n heading: 'Blocks',\n links: [\n { label: 'All blocks', href: '/components#blocks' },\n { label: 'Kinetic Type Ring', href: '/block/kinetic-type-ring' },\n { label: 'Pricing Plan Switch', href: '/block/pricing-plan-switch' },\n { label: 'Shutter Slider', href: '/block/shutter-slider' },\n ],\n },\n {\n heading: 'Community',\n links: [\n { label: 'GitHub', href: REPO },\n { label: 'Report an issue', href: `${REPO}/issues` },\n ],\n },\n];\n\nconst DEFAULT_SOCIALS: FooterPulseSocial[] = [{ label: 'GitHub', href: REPO, icon: 'github' }];\n\nconst DEFAULT_LEGAL: FooterPulseLink[] = [\n { label: 'MIT License', href: `${REPO}/blob/main/LICENSE` },\n { label: 'Changelog', href: `${REPO}/blob/main/CHANGELOG.md` },\n { label: 'Contributing', href: `${REPO}/blob/main/CONTRIBUTING.md` },\n];\n\nconst TWEEN_MARK = (\n \n \n \n \n \n);\n\nconst EASE_OUT = 'ease-[cubic-bezier(0.16,1,0.3,1)]';\n\nconst EASE_ROLL = 'ease-[cubic-bezier(0.45,0,0.15,1)]';\n\nconst focusRing =\n 'rounded-xs focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-[#c6f56f]';\n\nconst SOCIAL_PATHS: Record = {\n x: (\n \n ),\n instagram: (\n <>\n \n \n \n \n ),\n linkedin: (\n <>\n \n \n \n \n ),\n dribbble: (\n <>\n \n \n \n \n \n ),\n github: (\n <>\n \n \n \n ),\n};\n\nconst isExternal = (href: string) => /^https?:/.test(href);\n\nconst externalProps = (href: string) =>\n isExternal(href) ? { target: '_blank', rel: 'noopener noreferrer' } : {};\n\nfunction RollLabel({ label }: { label: string }) {\n return (\n <>\n {label}\n \n {Array.from(label).map((char, index) => (\n \n {char}\n \n ))}\n \n \n );\n}\n\nfunction PulseUnderline() {\n return (\n \n \n \n );\n}\n\nfunction PulseLink({ link, className }: { link: FooterPulseLink; className?: string }) {\n return (\n \n \n \n \n );\n}\n\nfunction LinkGroup({ column }: { column: FooterPulseColumn }) {\n const headingId = useId();\n\n return (\n
\n

\n {column.heading}\n

\n
    \n {column.links.map((link) => (\n
  • \n \n
  • \n ))}\n
\n
\n );\n}\n\nconst LIFT_SETTLE_MS = 160;\n\nconst followPointer = (mark: HTMLElement, letters: HTMLElement[]) => {\n const lifts = letters.map(() => 0);\n const tilts = letters.map(() => 0);\n const pointer = { x: 0, y: 0, isInside: false };\n let centers: { x: number; y: number }[] = [];\n let frame = 0;\n let lastTime = 0;\n\n const measure = () => {\n centers = letters.map((letter) => ({\n x: letter.offsetLeft + letter.offsetWidth / 2,\n y: letter.offsetTop + letter.offsetHeight / 2,\n }));\n };\n\n const tick = (time: number) => {\n frame = 0;\n const elapsed = lastTime ? Math.min(64, time - lastTime) : 16;\n lastTime = time;\n const blend = 1 - Math.exp(-elapsed / LIFT_SETTLE_MS);\n if (centers.length !== letters.length) measure();\n\n const size = parseFloat(getComputedStyle(mark).fontSize) || 120;\n const maxLift = Math.min(70, size * 0.18);\n const radius = size * 1.9 + 170;\n const origin = mark.getBoundingClientRect();\n let isMoving = false;\n\n letters.forEach((letter, index) => {\n const center = centers[index] ?? { x: 0, y: 0 };\n const dx = pointer.x - (origin.left + center.x);\n const dy = pointer.y - (origin.top + center.y);\n const reach = pointer.isInside ? Math.max(0, 1 - Math.hypot(dx, dy) / radius) : 0;\n const eased = reach * reach * (3 - 2 * reach);\n const side = Math.max(-1, Math.min(1, dx / (radius * 0.35)));\n const lift = (lifts[index] ?? 0) + (eased * maxLift - (lifts[index] ?? 0)) * blend;\n const tilt = (tilts[index] ?? 0) + (-side * eased * 4.5 - (tilts[index] ?? 0)) * blend;\n if (Math.abs(eased * maxLift - lift) > 0.05 || Math.abs(-side * eased * 4.5 - tilt) > 0.01) {\n isMoving = true;\n }\n lifts[index] = lift;\n tilts[index] = tilt;\n letter.style.transform = `translate3d(0, ${(-lift).toFixed(3)}px, 0) rotate(${tilt.toFixed(3)}deg)`;\n });\n\n if (isMoving || pointer.isInside) {\n frame = requestAnimationFrame(tick);\n } else {\n lastTime = 0;\n }\n };\n\n const wake = () => {\n if (!frame) frame = requestAnimationFrame(tick);\n };\n\n const handleMove = (event: PointerEvent) => {\n pointer.x = event.clientX;\n pointer.y = event.clientY;\n pointer.isInside = true;\n wake();\n };\n\n const handleLeave = () => {\n pointer.isInside = false;\n wake();\n };\n\n const observer = new ResizeObserver(measure);\n observer.observe(mark);\n mark.addEventListener('pointermove', handleMove);\n mark.addEventListener('pointerleave', handleLeave);\n\n return () => {\n observer.disconnect();\n mark.removeEventListener('pointermove', handleMove);\n mark.removeEventListener('pointerleave', handleLeave);\n cancelAnimationFrame(frame);\n letters.forEach((letter) => {\n letter.style.transform = '';\n });\n };\n};\n\nexport default function FooterPulseLinks({\n brand = 'Tween UI',\n logo = TWEEN_MARK,\n description = 'GSAP & CSS animated components for React. Copy the source, own the animation.',\n columns = DEFAULT_COLUMNS,\n socials = DEFAULT_SOCIALS,\n legal = DEFAULT_LEGAL,\n copyright,\n className,\n ...props\n}: FooterPulseLinksProps) {\n const rootRef = useRef(null);\n const boxRef = useRef(null);\n const markRef = useRef(null);\n const wordRef = useRef(null);\n\n useGSAP(\n () => {\n const box = boxRef.current;\n const mark = markRef.current;\n const word = wordRef.current;\n if (!box || !mark || !word) return;\n\n let fittedFor = 0;\n const fit = () => {\n const width = box.clientWidth;\n if (!width || width === fittedFor) return;\n fittedFor = width;\n mark.style.fontSize = '';\n const size = parseFloat(getComputedStyle(mark).fontSize);\n const trailing = parseFloat(getComputedStyle(word).letterSpacing) || 0;\n const ink = word.offsetWidth - trailing;\n if (ink > 0) mark.style.fontSize = `${(size * width) / ink}px`;\n };\n const observer = new ResizeObserver(fit);\n observer.observe(box);\n fit();\n\n const fonts = typeof document !== 'undefined' ? document.fonts?.ready : undefined;\n fonts?.then(() => {\n fittedFor = 0;\n fit();\n });\n\n const letters = Array.from(word.querySelectorAll('[data-letter]'));\n let stopFollowing: (() => void) | null = null;\n const startFollowing = () => {\n if (canHover()) stopFollowing = followPointer(mark, letters);\n };\n\n const reduce = prefersReducedMotion();\n const entrance = reduce\n ? null\n : gsap.fromTo(\n letters,\n { autoAlpha: 0, y: 46 },\n {\n autoAlpha: 1,\n y: 0,\n duration: 0.62,\n ease: 'power3.out',\n stagger: 0.04,\n paused: true,\n onComplete: () => {\n gsap.set(letters, { clearProps: 'transform,opacity,visibility' });\n startFollowing();\n },\n }\n );\n\n const trigger = entrance\n ? ScrollTrigger.create({\n trigger: box,\n start: 'top 95%',\n once: true,\n onEnter: () => entrance.play(),\n })\n : null;\n\n if (reduce) startFollowing();\n\n return () => {\n observer.disconnect();\n trigger?.kill();\n entrance?.kill();\n stopFollowing?.();\n mark.style.fontSize = '';\n };\n },\n { scope: rootRef, dependencies: [brand] }\n );\n\n const notice = copyright ?? `© ${new Date().getFullYear()} ${brand}`;\n const lastWordStart = brand.lastIndexOf(' ') + 1;\n\n return (\n \n \n \n \n \n\n
\n
\n
\n \n {logo}\n {brand}\n \n

{description}

\n {socials.length > 0 ? (\n
    \n {socials.map((social) => (\n
  • \n \n \n {SOCIAL_PATHS[social.icon]}\n \n \n
  • \n ))}\n
\n ) : null}\n
\n\n \n
\n\n
\n \n \n {Array.from(brand).map((char, index) => (\n = lastWordStart\n ? 'bg-[linear-gradient(to_top,rgb(198_245_111/0.15)_13%,rgb(198_245_111/0.95)_100%)]'\n : 'bg-[linear-gradient(to_top,rgb(232_243_242/0.12)_4%,rgb(240_248_247/0.82)_38%,rgb(255_255_255/1)_100%)]'\n )}\n >\n {char}\n \n ))}\n \n

\n
\n\n
\n

\n {notice}\n

\n
    \n {legal.map((link) => (\n
  • \n \n
  • \n ))}\n
\n
\n
\n \n );\n}\n", "codeHtml": "
'use client';\n\nimport { useId, useRef, type ComponentPropsWithoutRef, type ReactNode } from 'react';\nimport { useGSAP } from '@gsap/react';\nimport gsap from 'gsap';\nimport { ScrollTrigger } from 'gsap/ScrollTrigger';\nimport { cn } from '@/lib/utils';\n\ngsap.registerPlugin(useGSAP, ScrollTrigger);\n\nconst prefersReducedMotion = () =>\n  typeof window !== 'undefined' && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\nconst canHover = () =>\n  typeof window !== 'undefined' && window.matchMedia('(hover: hover) and (pointer: fine)').matches;\n\nexport type FooterPulseSocialIcon = 'x' | 'instagram' | 'linkedin' | 'dribbble' | 'github';\n\nexport interface FooterPulseLink {\n  label: string;\n  href: string;\n}\n\nexport interface FooterPulseColumn {\n  heading: string;\n  links: FooterPulseLink[];\n}\n\nexport interface FooterPulseSocial {\n  label: string;\n  href: string;\n  icon: FooterPulseSocialIcon;\n}\n\nexport interface FooterPulseLinksProps extends ComponentPropsWithoutRef<'footer'> {\n  brand?: string;\n  logo?: ReactNode;\n  description?: string;\n  columns?: FooterPulseColumn[];\n  socials?: FooterPulseSocial[];\n  legal?: FooterPulseLink[];\n  copyright?: string;\n}\n\nconst REPO = 'https://github.com/StaticMania/tween-ui';\n\nconst DEFAULT_COLUMNS: FooterPulseColumn[] = [\n  {\n    heading: 'Components',\n    links: [\n      { label: 'All components', href: '/components' },\n      { label: 'Icon Trail Button', href: '/component/icon-trail-button' },\n      { label: 'Sliding Tabs', href: '/component/sliding-tabs' },\n      { label: 'Number Counter', href: '/component/number-counter' },\n    ],\n  },\n  {\n    heading: 'Blocks',\n    links: [\n      { label: 'All blocks', href: '/components#blocks' },\n      { label: 'Kinetic Type Ring', href: '/block/kinetic-type-ring' },\n      { label: 'Pricing Plan Switch', href: '/block/pricing-plan-switch' },\n      { label: 'Shutter Slider', href: '/block/shutter-slider' },\n    ],\n  },\n  {\n    heading: 'Community',\n    links: [\n      { label: 'GitHub', href: REPO },\n      { label: 'Report an issue', href: `${REPO}/issues` },\n    ],\n  },\n];\n\nconst DEFAULT_SOCIALS: FooterPulseSocial[] = [{ label: 'GitHub', href: REPO, icon: 'github' }];\n\nconst DEFAULT_LEGAL: FooterPulseLink[] = [\n  { label: 'MIT License', href: `${REPO}/blob/main/LICENSE` },\n  { label: 'Changelog', href: `${REPO}/blob/main/CHANGELOG.md` },\n  { label: 'Contributing', href: `${REPO}/blob/main/CONTRIBUTING.md` },\n];\n\nconst TWEEN_MARK = (\n  <svg aria-hidden=\"true\" viewBox=\"0 0 24 24\" className=\"size-7\">\n    <rect width=\"24\" height=\"24\" rx=\"6\" fill=\"#045f64\" />\n    <path\n      d=\"M5 19 C 9.5 8.9, 5 5, 19 5\"\n      fill=\"none\"\n      stroke=\"#c6f56f\"\n      strokeWidth=\"2\"\n      strokeLinecap=\"round\"\n    />\n    <circle cx=\"19\" cy=\"5\" r=\"1.8\" fill=\"#c6f56f\" />\n  </svg>\n);\n\nconst EASE_OUT = 'ease-[cubic-bezier(0.16,1,0.3,1)]';\n\nconst EASE_ROLL = 'ease-[cubic-bezier(0.45,0,0.15,1)]';\n\nconst focusRing =\n  'rounded-xs focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-[#c6f56f]';\n\nconst SOCIAL_PATHS: Record<FooterPulseSocialIcon, ReactNode> = {\n  x: (\n    <path d=\"M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z\" />\n  ),\n  instagram: (\n    <>\n      <rect width=\"20\" height=\"20\" x=\"2\" y=\"2\" rx=\"5\" ry=\"5\" />\n      <path d=\"M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z\" />\n      <line x1=\"17.5\" x2=\"17.51\" y1=\"6.5\" y2=\"6.5\" />\n    </>\n  ),\n  linkedin: (\n    <>\n      <path d=\"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z\" />\n      <rect width=\"4\" height=\"12\" x=\"2\" y=\"9\" />\n      <circle cx=\"4\" cy=\"4\" r=\"2\" />\n    </>\n  ),\n  dribbble: (\n    <>\n      <circle cx=\"12\" cy=\"12\" r=\"10\" />\n      <path d=\"M19.13 5.09C15.22 9.14 10 10.44 2.25 10.94\" />\n      <path d=\"M21.75 12.84c-6.62-1.41-12.14 1-16.38 6.32\" />\n      <path d=\"M8.56 2.75c4.37 6 6 9.42 8 17.72\" />\n    </>\n  ),\n  github: (\n    <>\n      <path d=\"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4\" />\n      <path d=\"M9 18c-4.51 2-5-2-7-2\" />\n    </>\n  ),\n};\n\nconst isExternal = (href: string) => /^https?:/.test(href);\n\nconst externalProps = (href: string) =>\n  isExternal(href) ? { target: '_blank', rel: 'noopener noreferrer' } : {};\n\nfunction RollLabel({ label }: { label: string }) {\n  return (\n    <>\n      <span className=\"sr-only\">{label}</span>\n      <span aria-hidden=\"true\" className=\"inline-flex h-[1.25em] overflow-hidden leading-[1.25em]\">\n        {Array.from(label).map((char, index) => (\n          <span\n            key={`${char}-${index}`}\n            data-char={char}\n            className={cn(\n              'relative inline-block whitespace-pre transition-[translate] duration-700',\n              EASE_ROLL,\n              'after:absolute after:top-full after:left-0 after:text-[#c6f56f] after:content-[attr(data-char)]',\n              'group-hover/link:-translate-y-full group-focus-visible/link:-translate-y-full',\n              'motion-reduce:transition-none'\n            )}\n            style={{ transitionDelay: `${index * 22}ms` }}\n          >\n            {char}\n          </span>\n        ))}\n      </span>\n    </>\n  );\n}\n\nfunction PulseUnderline() {\n  return (\n    <svg\n      aria-hidden=\"true\"\n      viewBox=\"0 0 100 10\"\n      preserveAspectRatio=\"none\"\n      className=\"pointer-events-none absolute inset-x-0 -bottom-1.5 h-2 w-full overflow-visible\"\n    >\n      <path\n        d=\"M0 5 H40 L45 1 L51 9 L56 5 H100\"\n        fill=\"none\"\n        stroke=\"#c6f56f\"\n        strokeWidth=\"1.4\"\n        strokeLinejoin=\"round\"\n        pathLength={1}\n        className={cn(\n          'transition-[stroke-dashoffset] duration-900 [stroke-dasharray:1_2] [stroke-dashoffset:1]',\n          EASE_ROLL,\n          'group-hover/link:[stroke-dashoffset:0] group-focus-visible/link:[stroke-dashoffset:0]',\n          'motion-reduce:transition-none'\n        )}\n      />\n    </svg>\n  );\n}\n\nfunction PulseLink({ link, className }: { link: FooterPulseLink; className?: string }) {\n  return (\n    <a\n      href={link.href}\n      {...externalProps(link.href)}\n      className={cn('group/link relative inline-flex whitespace-nowrap', focusRing, className)}\n    >\n      <RollLabel label={link.label} />\n      <PulseUnderline />\n    </a>\n  );\n}\n\nfunction LinkGroup({ column }: { column: FooterPulseColumn }) {\n  const headingId = useId();\n\n  return (\n    <div className=\"grid content-start gap-4\">\n      <p id={headingId} className=\"text-xs tracking-[0.14em] text-[#9fd4d6]/60 uppercase\">\n        {column.heading}\n      </p>\n      <ul aria-labelledby={headingId} className=\"grid justify-items-start gap-3\">\n        {column.links.map((link) => (\n          <li key={`${link.label}-${link.href}`}>\n            <PulseLink link={link} className=\"text-[15px] text-[#e8f3f2]/85\" />\n          </li>\n        ))}\n      </ul>\n    </div>\n  );\n}\n\nconst LIFT_SETTLE_MS = 160;\n\nconst followPointer = (mark: HTMLElement, letters: HTMLElement[]) => {\n  const lifts = letters.map(() => 0);\n  const tilts = letters.map(() => 0);\n  const pointer = { x: 0, y: 0, isInside: false };\n  let centers: { x: number; y: number }[] = [];\n  let frame = 0;\n  let lastTime = 0;\n\n  const measure = () => {\n    centers = letters.map((letter) => ({\n      x: letter.offsetLeft + letter.offsetWidth / 2,\n      y: letter.offsetTop + letter.offsetHeight / 2,\n    }));\n  };\n\n  const tick = (time: number) => {\n    frame = 0;\n    const elapsed = lastTime ? Math.min(64, time - lastTime) : 16;\n    lastTime = time;\n    const blend = 1 - Math.exp(-elapsed / LIFT_SETTLE_MS);\n    if (centers.length !== letters.length) measure();\n\n    const size = parseFloat(getComputedStyle(mark).fontSize) || 120;\n    const maxLift = Math.min(70, size * 0.18);\n    const radius = size * 1.9 + 170;\n    const origin = mark.getBoundingClientRect();\n    let isMoving = false;\n\n    letters.forEach((letter, index) => {\n      const center = centers[index] ?? { x: 0, y: 0 };\n      const dx = pointer.x - (origin.left + center.x);\n      const dy = pointer.y - (origin.top + center.y);\n      const reach = pointer.isInside ? Math.max(0, 1 - Math.hypot(dx, dy) / radius) : 0;\n      const eased = reach * reach * (3 - 2 * reach);\n      const side = Math.max(-1, Math.min(1, dx / (radius * 0.35)));\n      const lift = (lifts[index] ?? 0) + (eased * maxLift - (lifts[index] ?? 0)) * blend;\n      const tilt = (tilts[index] ?? 0) + (-side * eased * 4.5 - (tilts[index] ?? 0)) * blend;\n      if (Math.abs(eased * maxLift - lift) > 0.05 || Math.abs(-side * eased * 4.5 - tilt) > 0.01) {\n        isMoving = true;\n      }\n      lifts[index] = lift;\n      tilts[index] = tilt;\n      letter.style.transform = `translate3d(0, ${(-lift).toFixed(3)}px, 0) rotate(${tilt.toFixed(3)}deg)`;\n    });\n\n    if (isMoving || pointer.isInside) {\n      frame = requestAnimationFrame(tick);\n    } else {\n      lastTime = 0;\n    }\n  };\n\n  const wake = () => {\n    if (!frame) frame = requestAnimationFrame(tick);\n  };\n\n  const handleMove = (event: PointerEvent) => {\n    pointer.x = event.clientX;\n    pointer.y = event.clientY;\n    pointer.isInside = true;\n    wake();\n  };\n\n  const handleLeave = () => {\n    pointer.isInside = false;\n    wake();\n  };\n\n  const observer = new ResizeObserver(measure);\n  observer.observe(mark);\n  mark.addEventListener('pointermove', handleMove);\n  mark.addEventListener('pointerleave', handleLeave);\n\n  return () => {\n    observer.disconnect();\n    mark.removeEventListener('pointermove', handleMove);\n    mark.removeEventListener('pointerleave', handleLeave);\n    cancelAnimationFrame(frame);\n    letters.forEach((letter) => {\n      letter.style.transform = '';\n    });\n  };\n};\n\nexport default function FooterPulseLinks({\n  brand = 'Tween UI',\n  logo = TWEEN_MARK,\n  description = 'GSAP & CSS animated components for React. Copy the source, own the animation.',\n  columns = DEFAULT_COLUMNS,\n  socials = DEFAULT_SOCIALS,\n  legal = DEFAULT_LEGAL,\n  copyright,\n  className,\n  ...props\n}: FooterPulseLinksProps) {\n  const rootRef = useRef<HTMLElement>(null);\n  const boxRef = useRef<HTMLDivElement>(null);\n  const markRef = useRef<HTMLParagraphElement>(null);\n  const wordRef = useRef<HTMLSpanElement>(null);\n\n  useGSAP(\n    () => {\n      const box = boxRef.current;\n      const mark = markRef.current;\n      const word = wordRef.current;\n      if (!box || !mark || !word) return;\n\n      let fittedFor = 0;\n      const fit = () => {\n        const width = box.clientWidth;\n        if (!width || width === fittedFor) return;\n        fittedFor = width;\n        mark.style.fontSize = '';\n        const size = parseFloat(getComputedStyle(mark).fontSize);\n        const trailing = parseFloat(getComputedStyle(word).letterSpacing) || 0;\n        const ink = word.offsetWidth - trailing;\n        if (ink > 0) mark.style.fontSize = `${(size * width) / ink}px`;\n      };\n      const observer = new ResizeObserver(fit);\n      observer.observe(box);\n      fit();\n\n      const fonts = typeof document !== 'undefined' ? document.fonts?.ready : undefined;\n      fonts?.then(() => {\n        fittedFor = 0;\n        fit();\n      });\n\n      const letters = Array.from(word.querySelectorAll<HTMLElement>('[data-letter]'));\n      let stopFollowing: (() => void) | null = null;\n      const startFollowing = () => {\n        if (canHover()) stopFollowing = followPointer(mark, letters);\n      };\n\n      const reduce = prefersReducedMotion();\n      const entrance = reduce\n        ? null\n        : gsap.fromTo(\n            letters,\n            { autoAlpha: 0, y: 46 },\n            {\n              autoAlpha: 1,\n              y: 0,\n              duration: 0.62,\n              ease: 'power3.out',\n              stagger: 0.04,\n              paused: true,\n              onComplete: () => {\n                gsap.set(letters, { clearProps: 'transform,opacity,visibility' });\n                startFollowing();\n              },\n            }\n          );\n\n      const trigger = entrance\n        ? ScrollTrigger.create({\n            trigger: box,\n            start: 'top 95%',\n            once: true,\n            onEnter: () => entrance.play(),\n          })\n        : null;\n\n      if (reduce) startFollowing();\n\n      return () => {\n        observer.disconnect();\n        trigger?.kill();\n        entrance?.kill();\n        stopFollowing?.();\n        mark.style.fontSize = '';\n      };\n    },\n    { scope: rootRef, dependencies: [brand] }\n  );\n\n  const notice = copyright ?? `© ${new Date().getFullYear()} ${brand}`;\n  const lastWordStart = brand.lastIndexOf(' ') + 1;\n\n  return (\n    <footer\n      ref={rootRef}\n      className={cn(\n        'relative isolate w-full overflow-hidden border-t border-[#9fd4d6]/12 bg-[#03110f] pt-16 pb-8 text-[#e8f3f2] max-sm:pt-12',\n        className\n      )}\n      {...props}\n    >\n      <div\n        aria-hidden=\"true\"\n        className=\"pointer-events-none absolute inset-x-0 bottom-0 -z-10 h-[420px] max-sm:h-[300px]\"\n      >\n        <span className=\"absolute top-full left-1/2 h-[200%] w-[150%] -translate-x-1/2 -translate-y-1/2 rounded-[50%] bg-[radial-gradient(closest-side,rgb(4_95_100/0.6)_0%,rgb(4_95_100/0.24)_45%,rgb(4_95_100/0)_100%)]\" />\n        <span className=\"absolute top-full left-1/2 h-[110%] w-[70%] -translate-x-1/2 -translate-y-1/2 rounded-[50%] bg-[radial-gradient(closest-side,rgb(198_245_111/0.16)_0%,rgb(198_245_111/0.05)_55%,rgb(198_245_111/0)_100%)] mix-blend-plus-lighter\" />\n      </div>\n\n      <div className=\"mx-auto grid w-full max-w-[1320px] gap-4 px-5 max-sm:gap-10 sm:px-8\">\n        <div className=\"flex flex-wrap items-start justify-between gap-12 max-md:flex-col max-md:gap-10\">\n          <div className=\"grid w-[300px] justify-items-start gap-6 max-md:w-full\">\n            <a href=\"/\" className={cn('flex items-center gap-2.5', focusRing)}>\n              {logo}\n              <span className=\"text-lg font-semibold tracking-tight\">{brand}</span>\n            </a>\n            <p className=\"text-[15px] leading-relaxed text-[#9fd4d6]/70\">{description}</p>\n            {socials.length > 0 ? (\n              <ul aria-label=\"Social links\" className=\"flex gap-3\">\n                {socials.map((social) => (\n                  <li key={social.href}>\n                    <a\n                      href={social.href}\n                      target=\"_blank\"\n                      rel=\"noopener noreferrer\"\n                      aria-label={`${brand} on ${social.label}`}\n                      className={cn(\n                        'group/social relative flex size-11 items-center justify-center rounded-full opacity-70',\n                        'bg-[linear-gradient(175deg,rgb(159_212_214/0.36)_0%,rgb(159_212_214/0)_19%,rgb(159_212_214/1)_41%,rgb(159_212_214/0)_77%,rgb(159_212_214/0.05)_100%)]',\n                        \"before:absolute before:inset-px before:rounded-full before:bg-[#03110f] before:transition-colors before:duration-300 before:content-['']\",\n                        'transition-[opacity,translate] duration-500 hover:-translate-y-0.5 hover:opacity-100 hover:before:bg-[#071d1b]',\n                        EASE_OUT,\n                        'focus-visible:opacity-100 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#c6f56f]',\n                        'motion-reduce:transition-none motion-reduce:hover:translate-y-0'\n                      )}\n                    >\n                      <svg\n                        aria-hidden=\"true\"\n                        viewBox=\"0 0 24 24\"\n                        fill=\"none\"\n                        stroke=\"currentColor\"\n                        strokeWidth=\"2\"\n                        strokeLinecap=\"round\"\n                        strokeLinejoin=\"round\"\n                        className=\"relative size-4 text-[#e8f3f2] transition-colors duration-300 group-hover/social:text-[#c6f56f] motion-reduce:transition-none\"\n                      >\n                        {SOCIAL_PATHS[social.icon]}\n                      </svg>\n                    </a>\n                  </li>\n                ))}\n              </ul>\n            ) : null}\n          </div>\n\n          <nav aria-label=\"Footer\" className=\"flex flex-wrap gap-x-20 gap-y-10 max-lg:gap-x-12\">\n            {columns.map((column) => (\n              <LinkGroup key={column.heading} column={column} />\n            ))}\n          </nav>\n        </div>\n\n        <div ref={boxRef} className=\"min-w-0\">\n          <p\n            ref={markRef}\n            aria-hidden=\"true\"\n            className=\"relative pt-6 pb-2 text-center text-[length:min(20vw,240px)] leading-none font-bold tracking-[0.02em] whitespace-nowrap uppercase select-none\"\n          >\n            <span ref={wordRef} className=\"-mr-[0.02em] inline-block\">\n              {Array.from(brand).map((char, index) => (\n                <span\n                  key={`${char}-${index}`}\n                  data-letter=\"\"\n                  className={cn(\n                    'inline-block bg-clip-text whitespace-pre text-transparent will-change-transform',\n                    index >= lastWordStart\n                      ? 'bg-[linear-gradient(to_top,rgb(198_245_111/0.15)_13%,rgb(198_245_111/0.95)_100%)]'\n                      : 'bg-[linear-gradient(to_top,rgb(232_243_242/0.12)_4%,rgb(240_248_247/0.82)_38%,rgb(255_255_255/1)_100%)]'\n                  )}\n                >\n                  {char}\n                </span>\n              ))}\n            </span>\n          </p>\n        </div>\n\n        <div className=\"flex flex-wrap items-center justify-between gap-x-8 gap-y-3 border-t border-[#9fd4d6]/12 pt-6 max-sm:flex-col max-sm:items-start\">\n          <p className=\"text-xs tracking-[0.14em] whitespace-nowrap text-[#9fd4d6]/65 uppercase\">\n            {notice}\n          </p>\n          <ul className=\"flex flex-wrap items-center gap-x-8 gap-y-3 max-sm:gap-x-6\">\n            {legal.map((link) => (\n              <li key={`${link.label}-${link.href}`}>\n                <PulseLink\n                  link={link}\n                  className=\"text-xs tracking-[0.14em] text-[#9fd4d6]/65 uppercase\"\n                />\n              </li>\n            ))}\n          </ul>\n        </div>\n      </div>\n    </footer>\n  );\n}\n
" } + }, + "arc-carousel": { + "react": { + "code": "'use client';\n\nimport {\n useCallback,\n useEffect,\n useId,\n useLayoutEffect,\n useRef,\n useState,\n type ComponentPropsWithoutRef,\n type KeyboardEvent,\n type MouseEvent,\n} from 'react';\nimport { cn } from '@/lib/utils';\n\nconst prefersReducedMotion = () =>\n typeof window !== 'undefined' && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n// Layout effects warn on the server; there is nothing to lay out there anyway\nconst useIsoLayoutEffect = typeof window === 'undefined' ? useEffect : useLayoutEffect;\n\nexport interface ArcCarouselItem {\n title: string;\n image: string;\n /** Category chip on the top left of the card, e.g. \"Brand identity\". */\n tag?: string;\n /** A short line under the title, e.g. a client and year or a price. */\n meta?: string;\n href?: string;\n}\n\nexport interface ArcCarouselProps extends ComponentPropsWithoutRef<'section'> {\n items?: ArcCarouselItem[];\n /** The pill above the title. Pass an empty string to drop it. */\n badge?: string;\n title?: string;\n /** A line under the title. Pass an empty string to drop it. */\n description?: string;\n cta?: { label: string; href: string } | null;\n}\n\n/**\n * Where a card sits by its distance from the centre: px across, px down and degrees of\n * turn. The steps grow as they go out, so the row bends down into an arc. Cards further\n * out than the last slot carry on along the same line, invisible, which is where a\n * wrapping card leaves to and comes back from.\n */\nconst SLOTS = [\n { x: 0, y: 0, r: 0 },\n { x: 359, y: 26, r: 8.77 },\n { x: 711, y: 113, r: 18.83 },\n { x: 1033, y: 243, r: 25.05 },\n];\nconst ACTIVE_SCALE = 1.05;\nconst ART = 'transform 470ms cubic-bezier(0.42, 1, 0.46, 1)';\nconst MOVE = 'transform 800ms cubic-bezier(0.98, 0.30, 0.30, 1), opacity 400ms ease';\n/** A swipe has to travel this far, mostly sideways, to count as one. */\nconst SWIPE = 50;\n/** How long a wrapping card's off-screen copy lives: the move, plus a frame or two. */\nconst GHOST_LIFE = 850;\n\nconst slot = (offset: number) => {\n const t = Math.abs(offset);\n const sign = Math.sign(offset);\n const last = SLOTS.length - 1;\n let p = SLOTS[Math.min(t, last)];\n if (t > last) {\n const prev = SLOTS[last - 1];\n const n = t - last;\n p = { x: p.x + (p.x - prev.x) * n, y: p.y + (p.y - prev.y) * n, r: p.r + (p.r - prev.r) * n };\n }\n return {\n transform: `translate(${p.x * sign}px, ${p.y}px) rotate(${p.r * sign}deg)`,\n opacity: t <= last ? '1' : '0',\n zIndex: String(100 - t),\n };\n};\n\n/** Signed distance of card `index` from the centre, wrapped to the shortest way round. */\nconst offsetOf = (index: number, position: number, count: number) => {\n let r = (((index - position) % count) + count) % count;\n if (r > Math.floor(count / 2)) r -= count;\n return r;\n};\n\nconst wrap = (position: number, count: number) => ((position % count) + count) % count;\nconst pad2 = (n: number) => String(n).padStart(2, '0');\n\n/** Unsplash, cropped to the card's 312 × 430 at 1x and 2x. */\nconst photo = (id: string, width = 640) =>\n `https://images.unsplash.com/photo-${id}?w=${width}&h=${Math.round(width * (430 / 312))}&fit=crop&q=80&auto=format`;\nconst srcSetOf = (src: string) =>\n src.includes('images.unsplash.com')\n ? `${src.replace(/([?&])w=\\d+&h=\\d+/, '$1w=320&h=441')} 1x, ${src} 2x`\n : undefined;\n\nconst DEFAULT_ITEMS: ArcCarouselItem[] = [\n {\n title: 'Nightfall',\n tag: 'Astronomy app',\n meta: 'Stellar Co. · 2026',\n image: photo('1519681393784-d120267933ba'),\n },\n {\n title: 'Chroma Identity',\n tag: 'Brand identity',\n meta: 'Chroma Studio · 2026',\n image: photo('1541701494587-cb58502866ab'),\n },\n {\n title: 'Alpine Lodge',\n tag: 'Hospitality',\n meta: 'Moraine Hotels · 2026',\n image: photo('1493246507139-91e8fad9978e'),\n },\n {\n title: 'Metro Pulse',\n tag: 'Data visualisation',\n meta: 'City of Lakes · 2025',\n image: photo('1477959858617-67f85cf4f1df'),\n },\n {\n title: 'Orbit Motion',\n tag: '3D & motion',\n meta: 'Orbit Labs · 2025',\n image: photo('1618005198919-d3d4b5a92ead'),\n },\n {\n title: 'Open Road',\n tag: 'Campaign film',\n meta: 'Westward · 2025',\n image: photo('1500530855697-b586d89ba3ee'),\n },\n {\n title: 'Still Water',\n tag: 'Wellness app',\n meta: 'Calm Harbor · 2024',\n image: photo('1534447677768-be436bb09401'),\n },\n {\n title: 'Lago Retreats',\n tag: 'Travel platform',\n meta: 'Lago Travel · 2024',\n image: photo('1501785888041-af3ef285b470'),\n },\n];\n\nconst STEP = cn(\n 'grid size-11 place-items-center rounded-full border border-tween-teal-soft/25 text-white',\n 'transition-[background-color,border-color,color] duration-300 ease-tween hover:border-tween-lime hover:bg-tween-lime hover:text-tween-ink-deep',\n 'focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-tween-lime motion-reduce:transition-none'\n);\n/** The soft edges the arc runs out under. They sit above the cards, below the copy. */\nconst FADE =\n 'pointer-events-none absolute inset-y-0 z-[2] w-[clamp(2.5rem,14cqw,12rem)] from-tween-ink-deep via-tween-ink-deep/70 to-transparent';\n\nconst Caret = ({ flip }: { flip?: boolean }) => (\n \n \n \n);\n\nconst ArrowUpRight = ({ className }: { className?: string }) => (\n \n \n \n);\n\nexport default function ArcCarousel({\n items = DEFAULT_ITEMS,\n badge = 'Featured work',\n title = 'Projects we shipped this season.',\n description = 'A rotating look at recent launches across brand, product and research. Swipe, drag or use the arrows to browse.',\n cta = { label: 'View all projects', href: '#' },\n className,\n ...props\n}: ArcCarouselProps) {\n const count = items.length;\n const [position, setPosition] = useState(0);\n const listRef = useRef(null);\n const itemRefs = useRef<(HTMLDivElement | null)[]>([]);\n const artRefs = useRef<(HTMLDivElement | null)[]>([]);\n const state = useRef({ last: 0, offsets: [] as (number | undefined)[], ghosts: [] as number[] });\n const swipe = useRef({ tracking: false, swiped: false, x: 0, y: 0 });\n const titleId = useId();\n const descriptionId = useId();\n\n const place = (item: HTMLElement, offset: number) => {\n const s = slot(offset);\n item.style.transform = s.transform;\n item.style.opacity = s.opacity;\n item.style.zIndex = s.zIndex;\n item.style.pointerEvents = s.opacity === '1' ? '' : 'none';\n };\n\n // Lay the cards out on their slots whenever the position changes (animated after the first layout)\n useIsoLayoutEffect(() => {\n const list = listRef.current;\n if (!list || !count) return;\n const reduced = prefersReducedMotion();\n const move = reduced ? 'opacity 0.3s ease' : MOVE;\n const art = reduced ? 'none' : ART;\n const st = state.current;\n const animate = st.offsets.length > 0;\n const delta = animate ? position - st.last : 0;\n st.last = position;\n\n itemRefs.current.forEach((item, i) => {\n if (!item) return;\n const next = offsetOf(i, position, count);\n const prev = st.offsets[i];\n\n const scaleEl = artRefs.current[i];\n if (scaleEl) {\n const scale = next === 0 && !reduced ? `scale(${ACTIVE_SCALE})` : 'scale(1)';\n scaleEl.style.transition = animate ? art : 'none';\n scaleEl.style.transform = scale;\n if (!animate) {\n void scaleEl.offsetWidth;\n scaleEl.style.transition = art;\n }\n }\n\n if (!animate || prev === undefined) {\n item.style.transition = 'none';\n place(item, next);\n } else if (prev - delta !== next) {\n // Wrapped round: a ghost keeps travelling off-screen, the card re-enters from the far side\n const last = SLOTS.length - 1;\n const entry = delta > 0 ? Math.max(next + 1, last + 1) : Math.min(next - 1, -(last + 1));\n const ghost = item.cloneNode(true) as HTMLElement;\n ghost.setAttribute('aria-hidden', 'true');\n ghost.inert = true;\n ghost.style.pointerEvents = 'none';\n ghost.style.transition = 'none';\n list.appendChild(ghost);\n const out = slot(prev - delta);\n void ghost.offsetWidth;\n ghost.style.transition = move;\n ghost.style.transform = out.transform;\n ghost.style.opacity = '0';\n st.ghosts.push(window.setTimeout(() => ghost.remove(), GHOST_LIFE));\n\n item.style.transition = 'none';\n place(item, entry);\n item.style.opacity = '0';\n void item.offsetWidth;\n item.style.transition = move;\n place(item, next);\n } else {\n item.style.transition = move;\n place(item, next);\n }\n st.offsets[i] = next;\n });\n }, [position, count]);\n\n useEffect(() => () => state.current.ghosts.forEach((id) => window.clearTimeout(id)), []);\n\n const step = useCallback((direction: number) => setPosition((p) => p + direction), []);\n\n // Swipe / drag: the release can happen outside the list\n useEffect(() => {\n const onUp = (event: PointerEvent) => {\n const s = swipe.current;\n if (!s.tracking) return;\n s.tracking = false;\n const dx = event.clientX - s.x;\n const dy = event.clientY - s.y;\n if (Math.abs(dx) > SWIPE && Math.abs(dx) > Math.abs(dy)) {\n s.swiped = true;\n step(dx < 0 ? 1 : -1);\n }\n };\n const onCancel = () => {\n swipe.current.tracking = false;\n };\n window.addEventListener('pointerup', onUp);\n window.addEventListener('pointercancel', onCancel);\n return () => {\n window.removeEventListener('pointerup', onUp);\n window.removeEventListener('pointercancel', onCancel);\n };\n }, [step]);\n\n // After a swipe, or on a side card, a click steps the arc instead of following the card's link\n const onClickCapture = (event: MouseEvent) => {\n const s = swipe.current;\n if (s.swiped) {\n s.swiped = false;\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n // Keyboard activation (detail 0) keeps its normal behaviour\n if (event.detail === 0) return;\n const index = itemRefs.current.findIndex((item) => item?.contains(event.target as Node));\n if (index < 0) return;\n const offset = offsetOf(index, position, count);\n if (offset !== 0) {\n event.preventDefault();\n event.stopPropagation();\n step(Math.sign(offset));\n }\n };\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') return;\n event.preventDefault();\n step(event.key === 'ArrowRight' ? 1 : -1);\n };\n\n const current = count ? wrap(position, count) : 0;\n const active = items[current];\n\n return (\n \n {/* The teal glow the arc hangs in */}\n \n\n
\n {badge && (\n \n \n {badge}\n \n )}\n \n {title}\n \n {description && (\n \n {description}\n

\n )}\n
\n\n {/* Its own stacking context, so the cards' z-indexes stay under the edge fades */}\n
\n
\n {\n swipe.current = { tracking: true, swiped: false, x: event.clientX, y: event.clientY };\n }}\n onDragStart={(event) => event.preventDefault()}\n onClickCapture={onClickCapture}\n onKeyDown={onKeyDown}\n >\n {items.map((item, i) => {\n const offset = offsetOf(i, position, count);\n const isActive = offset === 0;\n const Card = item.href ? 'a' : 'div';\n // The first frame is set here too, so the arc is in place before hydration\n const first = slot(offsetOf(i, 0, count));\n return (\n {\n itemRefs.current[i] = el;\n }}\n role=\"group\"\n aria-roledescription=\"slide\"\n aria-label={`${i + 1} of ${count}: ${item.title}`}\n aria-hidden={isActive ? undefined : true}\n data-active={isActive ? '' : undefined}\n className=\"group/card absolute top-0 left-0 h-107.5 w-78 will-change-transform\"\n style={{\n transform: first.transform,\n opacity: first.opacity,\n zIndex: first.zIndex,\n }}\n >\n {\n artRefs.current[i] = el;\n }}\n className=\"size-full origin-center\"\n >\n \n \n\n {/* Side cards sit back in shade; the centre card steps out of it */}\n \n {/* A scrim so the caption reads on any photo */}\n \n\n \n {item.tag ? (\n \n {item.tag}\n \n ) : (\n \n )}\n \n {pad2(i + 1)}\n / {pad2(count)}\n \n \n\n \n \n \n {item.title}\n \n {item.meta && (\n \n {item.meta}\n \n )}\n \n {item.href && (\n \n \n \n )}\n \n\n {/* The outline, drawn over the photo so it never gets clipped */}\n \n \n
\n
\n );\n })}\n \n \n \n\n
\n step(-1)}\n >\n \n \n {cta && (\n \n {cta.label}\n \n \n )}\n \n
\n\n

\n {active ? `${current + 1} of ${count}: ${active.title}` : ''}\n

\n\n
\n
\n \n );\n}\n", + "codeHtml": "
'use client';\n\nimport {\n  useCallback,\n  useEffect,\n  useId,\n  useLayoutEffect,\n  useRef,\n  useState,\n  type ComponentPropsWithoutRef,\n  type KeyboardEvent,\n  type MouseEvent,\n} from 'react';\nimport { cn } from '@/lib/utils';\n\nconst prefersReducedMotion = () =>\n  typeof window !== 'undefined' && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n// Layout effects warn on the server; there is nothing to lay out there anyway\nconst useIsoLayoutEffect = typeof window === 'undefined' ? useEffect : useLayoutEffect;\n\nexport interface ArcCarouselItem {\n  title: string;\n  image: string;\n  /** Category chip on the top left of the card, e.g. \"Brand identity\". */\n  tag?: string;\n  /** A short line under the title, e.g. a client and year or a price. */\n  meta?: string;\n  href?: string;\n}\n\nexport interface ArcCarouselProps extends ComponentPropsWithoutRef<'section'> {\n  items?: ArcCarouselItem[];\n  /** The pill above the title. Pass an empty string to drop it. */\n  badge?: string;\n  title?: string;\n  /** A line under the title. Pass an empty string to drop it. */\n  description?: string;\n  cta?: { label: string; href: string } | null;\n}\n\n/**\n * Where a card sits by its distance from the centre: px across, px down and degrees of\n * turn. The steps grow as they go out, so the row bends down into an arc. Cards further\n * out than the last slot carry on along the same line, invisible, which is where a\n * wrapping card leaves to and comes back from.\n */\nconst SLOTS = [\n  { x: 0, y: 0, r: 0 },\n  { x: 359, y: 26, r: 8.77 },\n  { x: 711, y: 113, r: 18.83 },\n  { x: 1033, y: 243, r: 25.05 },\n];\nconst ACTIVE_SCALE = 1.05;\nconst ART = 'transform 470ms cubic-bezier(0.42, 1, 0.46, 1)';\nconst MOVE = 'transform 800ms cubic-bezier(0.98, 0.30, 0.30, 1), opacity 400ms ease';\n/** A swipe has to travel this far, mostly sideways, to count as one. */\nconst SWIPE = 50;\n/** How long a wrapping card's off-screen copy lives: the move, plus a frame or two. */\nconst GHOST_LIFE = 850;\n\nconst slot = (offset: number) => {\n  const t = Math.abs(offset);\n  const sign = Math.sign(offset);\n  const last = SLOTS.length - 1;\n  let p = SLOTS[Math.min(t, last)];\n  if (t > last) {\n    const prev = SLOTS[last - 1];\n    const n = t - last;\n    p = { x: p.x + (p.x - prev.x) * n, y: p.y + (p.y - prev.y) * n, r: p.r + (p.r - prev.r) * n };\n  }\n  return {\n    transform: `translate(${p.x * sign}px, ${p.y}px) rotate(${p.r * sign}deg)`,\n    opacity: t <= last ? '1' : '0',\n    zIndex: String(100 - t),\n  };\n};\n\n/** Signed distance of card `index` from the centre, wrapped to the shortest way round. */\nconst offsetOf = (index: number, position: number, count: number) => {\n  let r = (((index - position) % count) + count) % count;\n  if (r > Math.floor(count / 2)) r -= count;\n  return r;\n};\n\nconst wrap = (position: number, count: number) => ((position % count) + count) % count;\nconst pad2 = (n: number) => String(n).padStart(2, '0');\n\n/** Unsplash, cropped to the card's 312 × 430 at 1x and 2x. */\nconst photo = (id: string, width = 640) =>\n  `https://images.unsplash.com/photo-${id}?w=${width}&h=${Math.round(width * (430 / 312))}&fit=crop&q=80&auto=format`;\nconst srcSetOf = (src: string) =>\n  src.includes('images.unsplash.com')\n    ? `${src.replace(/([?&])w=\\d+&h=\\d+/, '$1w=320&h=441')} 1x, ${src} 2x`\n    : undefined;\n\nconst DEFAULT_ITEMS: ArcCarouselItem[] = [\n  {\n    title: 'Nightfall',\n    tag: 'Astronomy app',\n    meta: 'Stellar Co. · 2026',\n    image: photo('1519681393784-d120267933ba'),\n  },\n  {\n    title: 'Chroma Identity',\n    tag: 'Brand identity',\n    meta: 'Chroma Studio · 2026',\n    image: photo('1541701494587-cb58502866ab'),\n  },\n  {\n    title: 'Alpine Lodge',\n    tag: 'Hospitality',\n    meta: 'Moraine Hotels · 2026',\n    image: photo('1493246507139-91e8fad9978e'),\n  },\n  {\n    title: 'Metro Pulse',\n    tag: 'Data visualisation',\n    meta: 'City of Lakes · 2025',\n    image: photo('1477959858617-67f85cf4f1df'),\n  },\n  {\n    title: 'Orbit Motion',\n    tag: '3D & motion',\n    meta: 'Orbit Labs · 2025',\n    image: photo('1618005198919-d3d4b5a92ead'),\n  },\n  {\n    title: 'Open Road',\n    tag: 'Campaign film',\n    meta: 'Westward · 2025',\n    image: photo('1500530855697-b586d89ba3ee'),\n  },\n  {\n    title: 'Still Water',\n    tag: 'Wellness app',\n    meta: 'Calm Harbor · 2024',\n    image: photo('1534447677768-be436bb09401'),\n  },\n  {\n    title: 'Lago Retreats',\n    tag: 'Travel platform',\n    meta: 'Lago Travel · 2024',\n    image: photo('1501785888041-af3ef285b470'),\n  },\n];\n\nconst STEP = cn(\n  'grid size-11 place-items-center rounded-full border border-tween-teal-soft/25 text-white',\n  'transition-[background-color,border-color,color] duration-300 ease-tween hover:border-tween-lime hover:bg-tween-lime hover:text-tween-ink-deep',\n  'focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-tween-lime motion-reduce:transition-none'\n);\n/** The soft edges the arc runs out under. They sit above the cards, below the copy. */\nconst FADE =\n  'pointer-events-none absolute inset-y-0 z-[2] w-[clamp(2.5rem,14cqw,12rem)] from-tween-ink-deep via-tween-ink-deep/70 to-transparent';\n\nconst Caret = ({ flip }: { flip?: boolean }) => (\n  <svg\n    viewBox=\"0 0 9 16\"\n    aria-hidden=\"true\"\n    className={cn('h-4 w-[8.5px]', flip && 'rotate-180')}\n    fill=\"none\"\n    stroke=\"currentColor\"\n    strokeWidth=\"1.6\"\n    strokeLinecap=\"round\"\n    strokeLinejoin=\"round\"\n  >\n    <path d=\"M7.5 1.5 1.5 8l6 6.5\" />\n  </svg>\n);\n\nconst ArrowUpRight = ({ className }: { className?: string }) => (\n  <svg\n    viewBox=\"0 0 16 16\"\n    aria-hidden=\"true\"\n    className={className}\n    fill=\"none\"\n    stroke=\"currentColor\"\n    strokeWidth=\"1.6\"\n    strokeLinecap=\"round\"\n    strokeLinejoin=\"round\"\n  >\n    <path d=\"M4.5 11.5 11.5 4.5M5.5 4.5h6v6\" />\n  </svg>\n);\n\nexport default function ArcCarousel({\n  items = DEFAULT_ITEMS,\n  badge = 'Featured work',\n  title = 'Projects we shipped this season.',\n  description = 'A rotating look at recent launches across brand, product and research. Swipe, drag or use the arrows to browse.',\n  cta = { label: 'View all projects', href: '#' },\n  className,\n  ...props\n}: ArcCarouselProps) {\n  const count = items.length;\n  const [position, setPosition] = useState(0);\n  const listRef = useRef<HTMLDivElement>(null);\n  const itemRefs = useRef<(HTMLDivElement | null)[]>([]);\n  const artRefs = useRef<(HTMLDivElement | null)[]>([]);\n  const state = useRef({ last: 0, offsets: [] as (number | undefined)[], ghosts: [] as number[] });\n  const swipe = useRef({ tracking: false, swiped: false, x: 0, y: 0 });\n  const titleId = useId();\n  const descriptionId = useId();\n\n  const place = (item: HTMLElement, offset: number) => {\n    const s = slot(offset);\n    item.style.transform = s.transform;\n    item.style.opacity = s.opacity;\n    item.style.zIndex = s.zIndex;\n    item.style.pointerEvents = s.opacity === '1' ? '' : 'none';\n  };\n\n  // Lay the cards out on their slots whenever the position changes (animated after the first layout)\n  useIsoLayoutEffect(() => {\n    const list = listRef.current;\n    if (!list || !count) return;\n    const reduced = prefersReducedMotion();\n    const move = reduced ? 'opacity 0.3s ease' : MOVE;\n    const art = reduced ? 'none' : ART;\n    const st = state.current;\n    const animate = st.offsets.length > 0;\n    const delta = animate ? position - st.last : 0;\n    st.last = position;\n\n    itemRefs.current.forEach((item, i) => {\n      if (!item) return;\n      const next = offsetOf(i, position, count);\n      const prev = st.offsets[i];\n\n      const scaleEl = artRefs.current[i];\n      if (scaleEl) {\n        const scale = next === 0 && !reduced ? `scale(${ACTIVE_SCALE})` : 'scale(1)';\n        scaleEl.style.transition = animate ? art : 'none';\n        scaleEl.style.transform = scale;\n        if (!animate) {\n          void scaleEl.offsetWidth;\n          scaleEl.style.transition = art;\n        }\n      }\n\n      if (!animate || prev === undefined) {\n        item.style.transition = 'none';\n        place(item, next);\n      } else if (prev - delta !== next) {\n        // Wrapped round: a ghost keeps travelling off-screen, the card re-enters from the far side\n        const last = SLOTS.length - 1;\n        const entry = delta > 0 ? Math.max(next + 1, last + 1) : Math.min(next - 1, -(last + 1));\n        const ghost = item.cloneNode(true) as HTMLElement;\n        ghost.setAttribute('aria-hidden', 'true');\n        ghost.inert = true;\n        ghost.style.pointerEvents = 'none';\n        ghost.style.transition = 'none';\n        list.appendChild(ghost);\n        const out = slot(prev - delta);\n        void ghost.offsetWidth;\n        ghost.style.transition = move;\n        ghost.style.transform = out.transform;\n        ghost.style.opacity = '0';\n        st.ghosts.push(window.setTimeout(() => ghost.remove(), GHOST_LIFE));\n\n        item.style.transition = 'none';\n        place(item, entry);\n        item.style.opacity = '0';\n        void item.offsetWidth;\n        item.style.transition = move;\n        place(item, next);\n      } else {\n        item.style.transition = move;\n        place(item, next);\n      }\n      st.offsets[i] = next;\n    });\n  }, [position, count]);\n\n  useEffect(() => () => state.current.ghosts.forEach((id) => window.clearTimeout(id)), []);\n\n  const step = useCallback((direction: number) => setPosition((p) => p + direction), []);\n\n  // Swipe / drag: the release can happen outside the list\n  useEffect(() => {\n    const onUp = (event: PointerEvent) => {\n      const s = swipe.current;\n      if (!s.tracking) return;\n      s.tracking = false;\n      const dx = event.clientX - s.x;\n      const dy = event.clientY - s.y;\n      if (Math.abs(dx) > SWIPE && Math.abs(dx) > Math.abs(dy)) {\n        s.swiped = true;\n        step(dx < 0 ? 1 : -1);\n      }\n    };\n    const onCancel = () => {\n      swipe.current.tracking = false;\n    };\n    window.addEventListener('pointerup', onUp);\n    window.addEventListener('pointercancel', onCancel);\n    return () => {\n      window.removeEventListener('pointerup', onUp);\n      window.removeEventListener('pointercancel', onCancel);\n    };\n  }, [step]);\n\n  // After a swipe, or on a side card, a click steps the arc instead of following the card's link\n  const onClickCapture = (event: MouseEvent<HTMLDivElement>) => {\n    const s = swipe.current;\n    if (s.swiped) {\n      s.swiped = false;\n      event.preventDefault();\n      event.stopPropagation();\n      return;\n    }\n    // Keyboard activation (detail 0) keeps its normal behaviour\n    if (event.detail === 0) return;\n    const index = itemRefs.current.findIndex((item) => item?.contains(event.target as Node));\n    if (index < 0) return;\n    const offset = offsetOf(index, position, count);\n    if (offset !== 0) {\n      event.preventDefault();\n      event.stopPropagation();\n      step(Math.sign(offset));\n    }\n  };\n\n  const onKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n    if (event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') return;\n    event.preventDefault();\n    step(event.key === 'ArrowRight' ? 1 : -1);\n  };\n\n  const current = count ? wrap(position, count) : 0;\n  const active = items[current];\n\n  return (\n    <section\n      aria-labelledby={titleId}\n      aria-describedby={description ? descriptionId : undefined}\n      className={cn(\n        'bg-tween-ink-deep @container relative isolate flex w-full flex-col items-center gap-4 overflow-hidden pt-28 pb-24 text-white',\n        '@max-[64rem]:pt-24 @max-[64rem]:pb-18 @max-[48rem]:gap-8 @max-[48rem]:py-16',\n        className\n      )}\n      {...props}\n    >\n      {/* The teal glow the arc hangs in */}\n      <div\n        aria-hidden=\"true\"\n        className=\"pointer-events-none absolute top-[62%] left-1/2 -z-10 size-[min(120cqw,70rem)] -translate-x-1/2 -translate-y-1/2 rounded-full bg-[radial-gradient(closest-side,color-mix(in_oklch,var(--color-tween-teal)_45%,transparent),color-mix(in_oklch,var(--color-tween-teal)_10%,transparent)_55%,transparent)]\"\n      />\n\n      <header className=\"relative z-[3] flex w-full max-w-2xl flex-col items-center gap-5 px-6 text-center @max-[48rem]:gap-3\">\n        {badge && (\n          <span className=\"border-tween-lime/30 bg-tween-lime/10 text-tween-lime inline-flex items-center gap-2 rounded-full border px-3 py-1 text-xs font-medium tracking-[0.14em] uppercase\">\n            <span aria-hidden=\"true\" className=\"bg-tween-lime size-1.5 rounded-full\" />\n            {badge}\n          </span>\n        )}\n        <h2\n          id={titleId}\n          className=\"text-[clamp(2.25rem,5.5cqw,4rem)] leading-[1.02] font-semibold tracking-[-0.045em] text-balance\"\n        >\n          {title}\n        </h2>\n        {description && (\n          <p\n            id={descriptionId}\n            className=\"text-tween-teal-soft/75 max-w-lg text-[15px] leading-relaxed text-pretty @max-[48rem]:text-sm\"\n          >\n            {description}\n          </p>\n        )}\n      </header>\n\n      {/* Its own stacking context, so the cards' z-indexes stay under the edge fades */}\n      <div className=\"relative isolate z-[1] h-150 w-78 @max-[64rem]:h-134 @max-[48rem]:h-72.5\">\n        <div className=\"absolute inset-0 origin-[50%_0] @max-[64rem]:scale-80 @max-[48rem]:scale-62\">\n          <div\n            ref={listRef}\n            role=\"group\"\n            tabIndex={0}\n            aria-roledescription=\"carousel\"\n            aria-label={title}\n            className=\"focus-visible:ring-tween-lime focus-visible:ring-offset-tween-ink-deep absolute top-16 left-0 h-107.5 w-78 touch-pan-y rounded-[8px] outline-none select-none focus-visible:ring-2 focus-visible:ring-offset-8 @max-[48rem]:top-2\"\n            onPointerDown={(event) => {\n              swipe.current = { tracking: true, swiped: false, x: event.clientX, y: event.clientY };\n            }}\n            onDragStart={(event) => event.preventDefault()}\n            onClickCapture={onClickCapture}\n            onKeyDown={onKeyDown}\n          >\n            {items.map((item, i) => {\n              const offset = offsetOf(i, position, count);\n              const isActive = offset === 0;\n              const Card = item.href ? 'a' : 'div';\n              // The first frame is set here too, so the arc is in place before hydration\n              const first = slot(offsetOf(i, 0, count));\n              return (\n                <div\n                  key={`${item.title}-${i}`}\n                  ref={(el) => {\n                    itemRefs.current[i] = el;\n                  }}\n                  role=\"group\"\n                  aria-roledescription=\"slide\"\n                  aria-label={`${i + 1} of ${count}: ${item.title}`}\n                  aria-hidden={isActive ? undefined : true}\n                  data-active={isActive ? '' : undefined}\n                  className=\"group/card absolute top-0 left-0 h-107.5 w-78 will-change-transform\"\n                  style={{\n                    transform: first.transform,\n                    opacity: first.opacity,\n                    zIndex: first.zIndex,\n                  }}\n                >\n                  <div\n                    ref={(el) => {\n                      artRefs.current[i] = el;\n                    }}\n                    className=\"size-full origin-center\"\n                  >\n                    <Card\n                      {...(item.href ? { href: item.href } : {})}\n                      tabIndex={item.href && isActive ? 0 : -1}\n                      draggable={false}\n                      className={cn(\n                        'bg-tween-ink relative block size-full overflow-hidden rounded-[8px]',\n                        'shadow-[0_30px_60px_-24px_rgb(0_0_0/0.75)]',\n                        'focus-visible:outline-tween-lime focus-visible:outline-2 focus-visible:outline-offset-4'\n                      )}\n                    >\n                      <img\n                        src={item.image}\n                        srcSet={srcSetOf(item.image)}\n                        alt=\"\"\n                        width={312}\n                        height={430}\n                        draggable={false}\n                        decoding=\"async\"\n                        loading={Math.abs(offsetOf(i, 0, count)) <= 2 ? 'eager' : 'lazy'}\n                        className=\"absolute inset-0 size-full object-cover\"\n                      />\n\n                      {/* Side cards sit back in shade; the centre card steps out of it */}\n                      <span\n                        aria-hidden=\"true\"\n                        className=\"bg-tween-ink-deep/40 ease-tween absolute inset-0 transition-opacity duration-500 group-data-active/card:opacity-0 motion-reduce:transition-none\"\n                      />\n                      {/* A scrim so the caption reads on any photo */}\n                      <span\n                        aria-hidden=\"true\"\n                        className=\"from-tween-ink-deep via-tween-ink-deep/60 absolute inset-x-0 bottom-0 h-3/5 bg-linear-to-t to-transparent\"\n                      />\n\n                      <span className=\"absolute inset-x-4 top-4 flex items-center justify-between gap-3\">\n                        {item.tag ? (\n                          <span className=\"bg-tween-ink-deep/70 truncate rounded-full px-3 py-1.5 text-[11px] leading-none font-medium tracking-[0.12em] text-white uppercase ring-1 ring-white/10\">\n                            {item.tag}\n                          </span>\n                        ) : (\n                          <span />\n                        )}\n                        <span className=\"shrink-0 text-xs font-medium text-white/70 tabular-nums\">\n                          {pad2(i + 1)}\n                          <span className=\"text-white/35\"> / {pad2(count)}</span>\n                        </span>\n                      </span>\n\n                      <span className=\"absolute inset-x-0 bottom-0 flex items-end justify-between gap-4 p-5\">\n                        <span className=\"grid min-w-0 gap-1.5\">\n                          <span className=\"truncate text-[22px] leading-tight font-semibold tracking-[-0.025em] text-white\">\n                            {item.title}\n                          </span>\n                          {item.meta && (\n                            <span className=\"text-tween-teal-soft/80 truncate text-sm\">\n                              {item.meta}\n                            </span>\n                          )}\n                        </span>\n                        {item.href && (\n                          <span\n                            aria-hidden=\"true\"\n                            className={cn(\n                              'grid size-11 shrink-0 place-items-center rounded-full bg-white/10 text-white ring-1 ring-white/20',\n                              'ease-tween transition-[background-color,color,box-shadow] duration-500 motion-reduce:transition-none',\n                              'group-data-active/card:bg-tween-lime group-data-active/card:text-tween-ink-deep group-data-active/card:ring-transparent'\n                            )}\n                          >\n                            <ArrowUpRight className=\"ease-tween size-4 transition-transform duration-300 group-hover/card:rotate-45 motion-reduce:transition-none\" />\n                          </span>\n                        )}\n                      </span>\n\n                      {/* The outline, drawn over the photo so it never gets clipped */}\n                      <span\n                        aria-hidden=\"true\"\n                        className=\"ease-tween group-data-active/card:ring-tween-lime/80 pointer-events-none absolute inset-0 rounded-[8px] ring-1 ring-white/10 transition-shadow duration-500 ring-inset group-data-active/card:ring-2 motion-reduce:transition-none\"\n                      />\n                    </Card>\n                  </div>\n                </div>\n              );\n            })}\n          </div>\n        </div>\n      </div>\n\n      <div className=\"relative z-[3] flex items-center gap-2\">\n        <button\n          className={STEP}\n          type=\"button\"\n          aria-label=\"Previous project\"\n          onClick={() => step(-1)}\n        >\n          <Caret />\n        </button>\n        {cta && (\n          <a\n            href={cta.href}\n            className={cn(\n              'bg-tween-lime text-tween-ink-deep inline-flex h-11 items-center gap-2 rounded-full px-6 text-sm font-semibold',\n              'ease-tween transition-[filter,transform] duration-300 hover:brightness-110 active:scale-[0.97]',\n              'focus-visible:outline-tween-lime focus-visible:outline-2 focus-visible:outline-offset-2 motion-reduce:transition-none'\n            )}\n          >\n            {cta.label}\n            <ArrowUpRight className=\"size-3.5\" />\n          </a>\n        )}\n        <button className={STEP} type=\"button\" aria-label=\"Next project\" onClick={() => step(1)}>\n          <Caret flip />\n        </button>\n      </div>\n\n      <p aria-live=\"polite\" className=\"sr-only\">\n        {active ? `${current + 1} of ${count}: ${active.title}` : ''}\n      </p>\n\n      <div aria-hidden=\"true\" className={cn(FADE, 'left-0 bg-linear-to-r')} />\n      <div aria-hidden=\"true\" className={cn(FADE, 'right-0 bg-linear-to-l')} />\n    </section>\n  );\n}\n
" + } } }; diff --git a/apps/docs/registry/demos/arc-carousel.tsx b/apps/docs/registry/demos/arc-carousel.tsx new file mode 100644 index 0000000..eb67dc5 --- /dev/null +++ b/apps/docs/registry/demos/arc-carousel.tsx @@ -0,0 +1,11 @@ +'use client'; + +import ArcCarousel from '@/registry/tweenui/arc-carousel'; + +export default function ArcCarouselDemo() { + return ( +
+ +
+ ); +} diff --git a/apps/docs/registry/registry-blocks.ts b/apps/docs/registry/registry-blocks.ts index 919cf6d..75d5f47 100644 --- a/apps/docs/registry/registry-blocks.ts +++ b/apps/docs/registry/registry-blocks.ts @@ -1112,4 +1112,45 @@ export default function Example() { }, docs: 'Pass your own `columns`, `socials` and `legal` links; the link hover is plain CSS and only the wordmark uses GSAP.', }, + { + name: 'arc-carousel', + type: 'block', + addedAt: '2026-10-14', + title: 'Arc Carousel', + description: + 'A showcase carousel whose cards hang on a downward arc, each one further out turned a little more. Stepping swings the whole arc round, the centre card easing up in size under a lime outline, and a card that wraps past the edge keeps travelling off-screen while it comes back in from the far side. Swipe, drag, the arrow keys or a click on a side card all step it.', + media: {}, + dependencies: [], + registryDependencies: [], + cssVars: { + '--color-tween-teal': '#045f64', + '--color-tween-teal-soft': '#9fd4d6', + '--color-tween-lime': '#c6f56f', + '--color-tween-ink': '#071d1b', + '--color-tween-ink-deep': '#03110f', + '--ease-tween': 'cubic-bezier(0.32, 0.72, 0, 1)', + }, + files: [ + { + path: 'registry/tweenui/arc-carousel.tsx', + target: 'components/tweenui/arc-carousel.tsx', + kind: 'react', + }, + ], + variants: [ + { + id: 'default', + label: 'Preview', + reactSource: 'registry/tweenui/arc-carousel.tsx', + }, + ], + usage: { + react: `import ArcCarousel from '@/components/tweenui/arc-carousel'; + +export default function Example() { + return ; +}`, + }, + docs: 'Colors come from the Tween UI theme tokens (`tween-ink-deep`, `tween-lime`, …), which the CLI adds to your `@theme`. Pass your own `items`; seven or more keep the arc full, since three cards show on each side of the centre.', + }, ]; diff --git a/apps/docs/registry/tweenui/arc-carousel.tsx b/apps/docs/registry/tweenui/arc-carousel.tsx new file mode 100644 index 0000000..117f58e --- /dev/null +++ b/apps/docs/registry/tweenui/arc-carousel.tsx @@ -0,0 +1,542 @@ +'use client'; + +import { + useCallback, + useEffect, + useId, + useLayoutEffect, + useRef, + useState, + type ComponentPropsWithoutRef, + type KeyboardEvent, + type MouseEvent, +} from 'react'; +import { cn } from '@/lib/utils'; + +const prefersReducedMotion = () => + typeof window !== 'undefined' && window.matchMedia('(prefers-reduced-motion: reduce)').matches; + +// Layout effects warn on the server; there is nothing to lay out there anyway +const useIsoLayoutEffect = typeof window === 'undefined' ? useEffect : useLayoutEffect; + +export interface ArcCarouselItem { + title: string; + image: string; + /** Category chip on the top left of the card, e.g. "Brand identity". */ + tag?: string; + /** A short line under the title, e.g. a client and year or a price. */ + meta?: string; + href?: string; +} + +export interface ArcCarouselProps extends ComponentPropsWithoutRef<'section'> { + items?: ArcCarouselItem[]; + /** The pill above the title. Pass an empty string to drop it. */ + badge?: string; + title?: string; + /** A line under the title. Pass an empty string to drop it. */ + description?: string; + cta?: { label: string; href: string } | null; +} + +/** + * Where a card sits by its distance from the centre: px across, px down and degrees of + * turn. The steps grow as they go out, so the row bends down into an arc. Cards further + * out than the last slot carry on along the same line, invisible, which is where a + * wrapping card leaves to and comes back from. + */ +const SLOTS = [ + { x: 0, y: 0, r: 0 }, + { x: 359, y: 26, r: 8.77 }, + { x: 711, y: 113, r: 18.83 }, + { x: 1033, y: 243, r: 25.05 }, +]; +const ACTIVE_SCALE = 1.05; +const ART = 'transform 470ms cubic-bezier(0.42, 1, 0.46, 1)'; +const MOVE = 'transform 800ms cubic-bezier(0.98, 0.30, 0.30, 1), opacity 400ms ease'; +/** A swipe has to travel this far, mostly sideways, to count as one. */ +const SWIPE = 50; +/** How long a wrapping card's off-screen copy lives: the move, plus a frame or two. */ +const GHOST_LIFE = 850; + +const slot = (offset: number) => { + const t = Math.abs(offset); + const sign = Math.sign(offset); + const last = SLOTS.length - 1; + let p = SLOTS[Math.min(t, last)]; + if (t > last) { + const prev = SLOTS[last - 1]; + const n = t - last; + p = { x: p.x + (p.x - prev.x) * n, y: p.y + (p.y - prev.y) * n, r: p.r + (p.r - prev.r) * n }; + } + return { + transform: `translate(${p.x * sign}px, ${p.y}px) rotate(${p.r * sign}deg)`, + opacity: t <= last ? '1' : '0', + zIndex: String(100 - t), + }; +}; + +/** Signed distance of card `index` from the centre, wrapped to the shortest way round. */ +const offsetOf = (index: number, position: number, count: number) => { + let r = (((index - position) % count) + count) % count; + if (r > Math.floor(count / 2)) r -= count; + return r; +}; + +const wrap = (position: number, count: number) => ((position % count) + count) % count; +const pad2 = (n: number) => String(n).padStart(2, '0'); + +/** Unsplash, cropped to the card's 312 × 430 at 1x and 2x. */ +const photo = (id: string, width = 640) => + `https://images.unsplash.com/photo-${id}?w=${width}&h=${Math.round(width * (430 / 312))}&fit=crop&q=80&auto=format`; +const srcSetOf = (src: string) => + src.includes('images.unsplash.com') + ? `${src.replace(/([?&])w=\d+&h=\d+/, '$1w=320&h=441')} 1x, ${src} 2x` + : undefined; + +const DEFAULT_ITEMS: ArcCarouselItem[] = [ + { + title: 'Nightfall', + tag: 'Astronomy app', + meta: 'Stellar Co. · 2026', + image: photo('1519681393784-d120267933ba'), + }, + { + title: 'Chroma Identity', + tag: 'Brand identity', + meta: 'Chroma Studio · 2026', + image: photo('1541701494587-cb58502866ab'), + }, + { + title: 'Alpine Lodge', + tag: 'Hospitality', + meta: 'Moraine Hotels · 2026', + image: photo('1493246507139-91e8fad9978e'), + }, + { + title: 'Metro Pulse', + tag: 'Data visualisation', + meta: 'City of Lakes · 2025', + image: photo('1477959858617-67f85cf4f1df'), + }, + { + title: 'Orbit Motion', + tag: '3D & motion', + meta: 'Orbit Labs · 2025', + image: photo('1618005198919-d3d4b5a92ead'), + }, + { + title: 'Open Road', + tag: 'Campaign film', + meta: 'Westward · 2025', + image: photo('1500530855697-b586d89ba3ee'), + }, + { + title: 'Still Water', + tag: 'Wellness app', + meta: 'Calm Harbor · 2024', + image: photo('1534447677768-be436bb09401'), + }, + { + title: 'Lago Retreats', + tag: 'Travel platform', + meta: 'Lago Travel · 2024', + image: photo('1501785888041-af3ef285b470'), + }, +]; + +const STEP = cn( + 'grid size-11 place-items-center rounded-full border border-tween-teal-soft/25 text-white', + 'transition-[background-color,border-color,color] duration-300 ease-tween hover:border-tween-lime hover:bg-tween-lime hover:text-tween-ink-deep', + 'focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-tween-lime motion-reduce:transition-none' +); +/** The soft edges the arc runs out under. They sit above the cards, below the copy. */ +const FADE = + 'pointer-events-none absolute inset-y-0 z-[2] w-[clamp(2.5rem,14cqw,12rem)] from-tween-ink-deep via-tween-ink-deep/70 to-transparent'; + +const Caret = ({ flip }: { flip?: boolean }) => ( + +); + +const ArrowUpRight = ({ className }: { className?: string }) => ( + +); + +export default function ArcCarousel({ + items = DEFAULT_ITEMS, + badge = 'Featured work', + title = 'Projects we shipped this season.', + description = 'A rotating look at recent launches across brand, product and research. Swipe, drag or use the arrows to browse.', + cta = { label: 'View all projects', href: '#' }, + className, + ...props +}: ArcCarouselProps) { + const count = items.length; + const [position, setPosition] = useState(0); + const listRef = useRef(null); + const itemRefs = useRef<(HTMLDivElement | null)[]>([]); + const artRefs = useRef<(HTMLDivElement | null)[]>([]); + const state = useRef({ last: 0, offsets: [] as (number | undefined)[], ghosts: [] as number[] }); + const swipe = useRef({ tracking: false, swiped: false, x: 0, y: 0 }); + const titleId = useId(); + const descriptionId = useId(); + + const place = (item: HTMLElement, offset: number) => { + const s = slot(offset); + item.style.transform = s.transform; + item.style.opacity = s.opacity; + item.style.zIndex = s.zIndex; + item.style.pointerEvents = s.opacity === '1' ? '' : 'none'; + }; + + // Lay the cards out on their slots whenever the position changes (animated after the first layout) + useIsoLayoutEffect(() => { + const list = listRef.current; + if (!list || !count) return; + const reduced = prefersReducedMotion(); + const move = reduced ? 'opacity 0.3s ease' : MOVE; + const art = reduced ? 'none' : ART; + const st = state.current; + const animate = st.offsets.length > 0; + const delta = animate ? position - st.last : 0; + st.last = position; + + itemRefs.current.forEach((item, i) => { + if (!item) return; + const next = offsetOf(i, position, count); + const prev = st.offsets[i]; + + const scaleEl = artRefs.current[i]; + if (scaleEl) { + const scale = next === 0 && !reduced ? `scale(${ACTIVE_SCALE})` : 'scale(1)'; + scaleEl.style.transition = animate ? art : 'none'; + scaleEl.style.transform = scale; + if (!animate) { + void scaleEl.offsetWidth; + scaleEl.style.transition = art; + } + } + + if (!animate || prev === undefined) { + item.style.transition = 'none'; + place(item, next); + } else if (prev - delta !== next) { + // Wrapped round: a ghost keeps travelling off-screen, the card re-enters from the far side + const last = SLOTS.length - 1; + const entry = delta > 0 ? Math.max(next + 1, last + 1) : Math.min(next - 1, -(last + 1)); + const ghost = item.cloneNode(true) as HTMLElement; + ghost.setAttribute('aria-hidden', 'true'); + ghost.inert = true; + ghost.style.pointerEvents = 'none'; + ghost.style.transition = 'none'; + list.appendChild(ghost); + const out = slot(prev - delta); + void ghost.offsetWidth; + ghost.style.transition = move; + ghost.style.transform = out.transform; + ghost.style.opacity = '0'; + st.ghosts.push(window.setTimeout(() => ghost.remove(), GHOST_LIFE)); + + item.style.transition = 'none'; + place(item, entry); + item.style.opacity = '0'; + void item.offsetWidth; + item.style.transition = move; + place(item, next); + } else { + item.style.transition = move; + place(item, next); + } + st.offsets[i] = next; + }); + }, [position, count]); + + useEffect(() => () => state.current.ghosts.forEach((id) => window.clearTimeout(id)), []); + + const step = useCallback((direction: number) => setPosition((p) => p + direction), []); + + // Swipe / drag: the release can happen outside the list + useEffect(() => { + const onUp = (event: PointerEvent) => { + const s = swipe.current; + if (!s.tracking) return; + s.tracking = false; + const dx = event.clientX - s.x; + const dy = event.clientY - s.y; + if (Math.abs(dx) > SWIPE && Math.abs(dx) > Math.abs(dy)) { + s.swiped = true; + step(dx < 0 ? 1 : -1); + } + }; + const onCancel = () => { + swipe.current.tracking = false; + }; + window.addEventListener('pointerup', onUp); + window.addEventListener('pointercancel', onCancel); + return () => { + window.removeEventListener('pointerup', onUp); + window.removeEventListener('pointercancel', onCancel); + }; + }, [step]); + + // After a swipe, or on a side card, a click steps the arc instead of following the card's link + const onClickCapture = (event: MouseEvent) => { + const s = swipe.current; + if (s.swiped) { + s.swiped = false; + event.preventDefault(); + event.stopPropagation(); + return; + } + // Keyboard activation (detail 0) keeps its normal behaviour + if (event.detail === 0) return; + const index = itemRefs.current.findIndex((item) => item?.contains(event.target as Node)); + if (index < 0) return; + const offset = offsetOf(index, position, count); + if (offset !== 0) { + event.preventDefault(); + event.stopPropagation(); + step(Math.sign(offset)); + } + }; + + const onKeyDown = (event: KeyboardEvent) => { + if (event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') return; + event.preventDefault(); + step(event.key === 'ArrowRight' ? 1 : -1); + }; + + const current = count ? wrap(position, count) : 0; + const active = items[current]; + + return ( +
+ {/* The teal glow the arc hangs in */} +
+ ); +} diff --git a/apps/docs/registry/tweenui/cube-roll-item.tsx b/apps/docs/registry/tweenui/cube-roll-item.tsx index 4b8a4e3..45526c6 100644 --- a/apps/docs/registry/tweenui/cube-roll-item.tsx +++ b/apps/docs/registry/tweenui/cube-roll-item.tsx @@ -270,7 +270,7 @@ export default function CubeRollItem({
\n
\n \n\n
\n step(-1)}\n >\n \n \n {cta && (\n \n {cta.label}\n \n \n )}\n \n
\n\n

\n {active ? `${current + 1} of ${count}: ${active.title}` : ''}\n

\n\n
\n
\n \n );\n}\n" + "content": "'use client';\n\nimport {\n useCallback,\n useEffect,\n useId,\n useLayoutEffect,\n useRef,\n useState,\n type ComponentPropsWithoutRef,\n type KeyboardEvent,\n type MouseEvent,\n} from 'react';\nimport { cn } from '@/lib/utils';\n\nconst prefersReducedMotion = () =>\n typeof window !== 'undefined' && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n// Layout effects warn on the server; there is nothing to lay out there anyway\nconst useIsoLayoutEffect = typeof window === 'undefined' ? useEffect : useLayoutEffect;\n\nexport interface ArcCarouselItem {\n title: string;\n image: string;\n /** Category chip on the top left of the card, e.g. \"Brand identity\". */\n tag?: string;\n /** A short line under the title, e.g. a client and year or a price. */\n meta?: string;\n href?: string;\n}\n\nexport interface ArcCarouselProps extends ComponentPropsWithoutRef<'section'> {\n items?: ArcCarouselItem[];\n /** The pill above the title. Pass an empty string to drop it. */\n badge?: string;\n title?: string;\n /** A line under the title. Pass an empty string to drop it. */\n description?: string;\n cta?: { label: string; href: string } | null;\n /**\n * Step to the next card on its own. On by default; pass `false` to turn it off. It\n * pauses while the pointer is over the cards, while they have keyboard focus and\n * while the block is off-screen, and adds a pause / play button with a progress ring.\n */\n autoplay?: boolean;\n /** Time each card holds the centre while autoplaying, in ms. */\n interval?: number;\n}\n\n/**\n * Where a card sits by its distance from the centre: px across, px down and degrees of\n * turn. The steps grow as they go out, so the row bends down into an arc. Cards further\n * out than the last slot carry on along the same line, invisible, which is where a\n * wrapping card leaves to and comes back from.\n */\nconst SLOTS = [\n { x: 0, y: 0, r: 0 },\n { x: 359, y: 26, r: 8.77 },\n { x: 711, y: 113, r: 18.83 },\n { x: 1033, y: 243, r: 25.05 },\n];\nconst ACTIVE_SCALE = 1.05;\nconst ART = 'transform 470ms cubic-bezier(0.42, 1, 0.46, 1)';\nconst MOVE = 'transform 800ms cubic-bezier(0.98, 0.30, 0.30, 1), opacity 400ms ease';\n/** A swipe has to travel this far, mostly sideways, to count as one. */\nconst SWIPE = 50;\n/** How long a wrapping card's off-screen copy lives: the move, plus a frame or two. */\nconst GHOST_LIFE = 850;\n/** Autoplay never counts more than this per frame, so a backgrounded tab does not skip ahead. */\nconst MAX_FRAME = 100;\n\nconst slot = (offset: number) => {\n const t = Math.abs(offset);\n const sign = Math.sign(offset);\n const last = SLOTS.length - 1;\n let p = SLOTS[Math.min(t, last)];\n if (t > last) {\n const prev = SLOTS[last - 1];\n const n = t - last;\n p = { x: p.x + (p.x - prev.x) * n, y: p.y + (p.y - prev.y) * n, r: p.r + (p.r - prev.r) * n };\n }\n return {\n transform: `translate(${p.x * sign}px, ${p.y}px) rotate(${p.r * sign}deg)`,\n opacity: t <= last ? '1' : '0',\n zIndex: String(100 - t),\n };\n};\n\n/** Signed distance of card `index` from the centre, wrapped to the shortest way round. */\nconst offsetOf = (index: number, position: number, count: number) => {\n let r = (((index - position) % count) + count) % count;\n if (r > Math.floor(count / 2)) r -= count;\n return r;\n};\n\nconst wrap = (position: number, count: number) => ((position % count) + count) % count;\nconst pad2 = (n: number) => String(n).padStart(2, '0');\n\n/** Unsplash, cropped to the card's 312 × 430 at 1x and 2x. */\nconst photo = (id: string, width = 640) =>\n `https://images.unsplash.com/photo-${id}?w=${width}&h=${Math.round(width * (430 / 312))}&fit=crop&q=80&auto=format`;\nconst srcSetOf = (src: string) =>\n src.includes('images.unsplash.com')\n ? `${src.replace(/([?&])w=\\d+&h=\\d+/, '$1w=320&h=441')} 1x, ${src} 2x`\n : undefined;\n\nconst DEFAULT_ITEMS: ArcCarouselItem[] = [\n {\n title: 'Nightfall',\n tag: 'Astronomy app',\n meta: 'Stellar Co. · 2026',\n image: photo('1519681393784-d120267933ba'),\n },\n {\n title: 'Chroma Identity',\n tag: 'Brand identity',\n meta: 'Chroma Studio · 2026',\n image: photo('1541701494587-cb58502866ab'),\n },\n {\n title: 'Alpine Lodge',\n tag: 'Hospitality',\n meta: 'Moraine Hotels · 2026',\n image: photo('1493246507139-91e8fad9978e'),\n },\n {\n title: 'Metro Pulse',\n tag: 'Data visualisation',\n meta: 'City of Lakes · 2025',\n image: photo('1477959858617-67f85cf4f1df'),\n },\n {\n title: 'Orbit Motion',\n tag: '3D & motion',\n meta: 'Orbit Labs · 2025',\n image: photo('1618005198919-d3d4b5a92ead'),\n },\n {\n title: 'Open Road',\n tag: 'Campaign film',\n meta: 'Westward · 2025',\n image: photo('1500530855697-b586d89ba3ee'),\n },\n {\n title: 'Still Water',\n tag: 'Wellness app',\n meta: 'Calm Harbor · 2024',\n image: photo('1534447677768-be436bb09401'),\n },\n {\n title: 'Lago Retreats',\n tag: 'Travel platform',\n meta: 'Lago Travel · 2024',\n image: photo('1501785888041-af3ef285b470'),\n },\n];\n\nconst STEP = cn(\n 'grid size-11 place-items-center rounded-full border border-tween-teal-soft/25 text-white',\n 'transition-[background-color,border-color,color] duration-300 ease-tween hover:border-tween-lime hover:bg-tween-lime hover:text-tween-ink-deep',\n 'focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-tween-lime motion-reduce:transition-none'\n);\n/** The soft edges the arc runs out under. They sit above the cards, below the copy. */\nconst FADE =\n 'pointer-events-none absolute inset-y-0 z-2 w-[clamp(2.5rem,14cqw,12rem)] from-tween-ink-deep via-tween-ink-deep/70 to-transparent';\n\nconst Caret = ({ flip }: { flip?: boolean }) => (\n \n \n \n);\n\nconst PauseIcon = () => (\n \n \n \n \n);\n\nconst PlayIcon = () => (\n \n \n \n);\n\nconst ArrowUpRight = ({ className }: { className?: string }) => (\n \n \n \n);\n\nexport default function ArcCarousel({\n items = DEFAULT_ITEMS,\n badge = 'Featured work',\n title = 'Projects we shipped this season.',\n description = 'A rotating look at recent launches across brand, product and research. Swipe, drag or use the arrows to browse.',\n cta = { label: 'View all projects', href: '#' },\n autoplay = true,\n interval = 5000,\n className,\n ...props\n}: ArcCarouselProps) {\n const count = items.length;\n const [position, setPosition] = useState(0);\n const listRef = useRef(null);\n const itemRefs = useRef<(HTMLDivElement | null)[]>([]);\n const artRefs = useRef<(HTMLDivElement | null)[]>([]);\n const state = useRef({ last: 0, offsets: [] as (number | undefined)[], ghosts: [] as number[] });\n const swipe = useRef({ tracking: false, swiped: false, x: 0, y: 0 });\n const titleId = useId();\n const descriptionId = useId();\n const sectionRef = useRef(null);\n const ringRef = useRef(null);\n const progress = useRef(0);\n // `playing` is the viewer's choice; `held` is a pause they did not ask for (hover, focus, off-screen)\n const [playing, setPlaying] = useState(autoplay);\n const holds = useRef({ hover: false, focus: false, offscreen: false });\n const [held, setHeld] = useState(false);\n const hold = (key: keyof typeof holds.current, on: boolean) => {\n holds.current[key] = on;\n setHeld(Object.values(holds.current).some(Boolean));\n };\n\n const place = (item: HTMLElement, offset: number) => {\n const s = slot(offset);\n item.style.transform = s.transform;\n item.style.opacity = s.opacity;\n item.style.zIndex = s.zIndex;\n item.style.pointerEvents = s.opacity === '1' ? '' : 'none';\n };\n\n // Lay the cards out on their slots whenever the position changes (animated after the first layout)\n useIsoLayoutEffect(() => {\n const list = listRef.current;\n if (!list || !count) return;\n const reduced = prefersReducedMotion();\n const move = reduced ? 'opacity 0.3s ease' : MOVE;\n const art = reduced ? 'none' : ART;\n const st = state.current;\n const animate = st.offsets.length > 0;\n const delta = animate ? position - st.last : 0;\n st.last = position;\n\n itemRefs.current.forEach((item, i) => {\n if (!item) return;\n const next = offsetOf(i, position, count);\n const prev = st.offsets[i];\n\n const scaleEl = artRefs.current[i];\n if (scaleEl) {\n const scale = next === 0 && !reduced ? `scale(${ACTIVE_SCALE})` : 'scale(1)';\n scaleEl.style.transition = animate ? art : 'none';\n scaleEl.style.transform = scale;\n if (!animate) {\n void scaleEl.offsetWidth;\n scaleEl.style.transition = art;\n }\n }\n\n if (!animate || prev === undefined) {\n item.style.transition = 'none';\n place(item, next);\n } else if (prev - delta !== next) {\n // Wrapped round: a ghost keeps travelling off-screen, the card re-enters from the far side\n const last = SLOTS.length - 1;\n const entry = delta > 0 ? Math.max(next + 1, last + 1) : Math.min(next - 1, -(last + 1));\n const ghost = item.cloneNode(true) as HTMLElement;\n ghost.setAttribute('aria-hidden', 'true');\n ghost.inert = true;\n ghost.style.pointerEvents = 'none';\n ghost.style.transition = 'none';\n list.appendChild(ghost);\n const out = slot(prev - delta);\n void ghost.offsetWidth;\n ghost.style.transition = move;\n ghost.style.transform = out.transform;\n ghost.style.opacity = '0';\n st.ghosts.push(window.setTimeout(() => ghost.remove(), GHOST_LIFE));\n\n item.style.transition = 'none';\n place(item, entry);\n item.style.opacity = '0';\n void item.offsetWidth;\n item.style.transition = move;\n place(item, next);\n } else {\n item.style.transition = move;\n place(item, next);\n }\n st.offsets[i] = next;\n });\n }, [position, count]);\n\n useEffect(() => () => state.current.ghosts.forEach((id) => window.clearTimeout(id)), []);\n\n const step = useCallback((direction: number) => setPosition((p) => p + direction), []);\n\n // Autoplay starts off for viewers who asked the system for less motion; they can still press play\n useEffect(() => {\n setPlaying(autoplay && !prefersReducedMotion());\n }, [autoplay]);\n\n // Any step, by hand or on its own, gives the new card a full interval\n useEffect(() => {\n progress.current = 0;\n ringRef.current?.style.setProperty('stroke-dashoffset', '1');\n }, [position, playing]);\n\n // The clock: counts only while playing and not held, so a pause resumes where it left off\n useEffect(() => {\n if (!playing || held || count < 2) return;\n let frame = 0;\n let last = performance.now();\n const tick = (now: number) => {\n progress.current += Math.min(now - last, MAX_FRAME) / interval;\n last = now;\n if (progress.current >= 1) {\n progress.current = 0;\n step(1);\n }\n ringRef.current?.style.setProperty('stroke-dashoffset', String(1 - progress.current));\n frame = requestAnimationFrame(tick);\n };\n frame = requestAnimationFrame(tick);\n return () => cancelAnimationFrame(frame);\n }, [playing, held, interval, count, step]);\n\n // Off-screen, autoplay waits\n useEffect(() => {\n const section = sectionRef.current;\n if (!autoplay || !section || typeof IntersectionObserver === 'undefined') return;\n const observer = new IntersectionObserver(([entry]) =>\n hold('offscreen', !entry.isIntersecting)\n );\n observer.observe(section);\n return () => observer.disconnect();\n }, [autoplay]);\n\n // Swipe / drag: the release can happen outside the list\n useEffect(() => {\n const onUp = (event: PointerEvent) => {\n const s = swipe.current;\n if (!s.tracking) return;\n s.tracking = false;\n const dx = event.clientX - s.x;\n const dy = event.clientY - s.y;\n if (Math.abs(dx) > SWIPE && Math.abs(dx) > Math.abs(dy)) {\n s.swiped = true;\n step(dx < 0 ? 1 : -1);\n }\n };\n const onCancel = () => {\n swipe.current.tracking = false;\n };\n window.addEventListener('pointerup', onUp);\n window.addEventListener('pointercancel', onCancel);\n return () => {\n window.removeEventListener('pointerup', onUp);\n window.removeEventListener('pointercancel', onCancel);\n };\n }, [step]);\n\n // After a swipe, or on a side card, a click steps the arc instead of following the card's link\n const onClickCapture = (event: MouseEvent) => {\n const s = swipe.current;\n if (s.swiped) {\n s.swiped = false;\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n // Keyboard activation (detail 0) keeps its normal behaviour\n if (event.detail === 0) return;\n const index = itemRefs.current.findIndex((item) => item?.contains(event.target as Node));\n if (index < 0) return;\n const offset = offsetOf(index, position, count);\n if (offset !== 0) {\n event.preventDefault();\n event.stopPropagation();\n step(Math.sign(offset));\n }\n };\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') return;\n event.preventDefault();\n step(event.key === 'ArrowRight' ? 1 : -1);\n };\n\n const current = count ? wrap(position, count) : 0;\n const active = items[current];\n\n return (\n \n {/* The teal glow the arc hangs in */}\n \n\n
\n {badge && (\n \n \n {badge}\n \n )}\n \n {title}\n \n {description && (\n \n {description}\n

\n )}\n
\n\n {/* Its own stacking context, so the cards' z-indexes stay under the edge fades */}\n {/* A mouse or pen resting on the cards holds autoplay; a finger lifts at once, so it never does */}\n event.pointerType !== 'touch' && hold('hover', true)}\n onPointerLeave={() => hold('hover', false)}\n >\n
\n {\n swipe.current = { tracking: true, swiped: false, x: event.clientX, y: event.clientY };\n }}\n onDragStart={(event) => event.preventDefault()}\n onClickCapture={onClickCapture}\n onKeyDown={onKeyDown}\n // Keyboard focus on the cards holds autoplay, so nothing moves while you read\n onFocus={(event) => {\n let visible = true;\n try {\n visible = event.target.matches(':focus-visible');\n } catch {\n // Older engines without :focus-visible: treat every focus as visible\n }\n if (visible) hold('focus', true);\n }}\n onBlur={(event) => {\n if (!event.currentTarget.contains(event.relatedTarget as Node | null)) {\n hold('focus', false);\n }\n }}\n >\n {items.map((item, i) => {\n const offset = offsetOf(i, position, count);\n const isActive = offset === 0;\n const Card = item.href ? 'a' : 'div';\n // The first frame is set here too, so the arc is in place before hydration\n const first = slot(offsetOf(i, 0, count));\n return (\n {\n itemRefs.current[i] = el;\n }}\n role=\"group\"\n aria-roledescription=\"slide\"\n aria-label={`${i + 1} of ${count}: ${item.title}`}\n aria-hidden={isActive ? undefined : true}\n data-active={isActive ? '' : undefined}\n className=\"group/card absolute top-0 left-0 h-107.5 w-78 will-change-transform\"\n style={{\n transform: first.transform,\n opacity: first.opacity,\n zIndex: first.zIndex,\n }}\n >\n {\n artRefs.current[i] = el;\n }}\n className=\"size-full origin-center\"\n >\n \n \n\n {/* Side cards sit back in shade; the centre card steps out of it */}\n \n {/* A scrim so the caption reads on any photo */}\n \n\n \n {item.tag ? (\n \n {item.tag}\n \n ) : (\n \n )}\n \n {pad2(i + 1)}\n / {pad2(count)}\n \n \n\n \n \n \n {item.title}\n \n {item.meta && (\n \n {item.meta}\n \n )}\n \n {item.href && (\n \n \n \n )}\n \n\n {/* The outline, drawn over the photo so it never gets clipped */}\n \n \n
\n
\n );\n })}\n
\n \n \n\n
\n step(-1)}\n >\n \n \n {cta && (\n \n {cta.label}\n \n \n )}\n \n {autoplay && (\n setPlaying((on) => !on)}\n >\n {playing ? : }\n {/* Time left on the current card */}\n \n \n \n \n )}\n
\n\n {/* Quiet while it plays itself, so a screen reader is not interrupted every few seconds */}\n

\n {active ? `${current + 1} of ${count}: ${active.title}` : ''}\n

\n\n
\n
\n \n );\n}\n" } ], "docs": "Docs, props and examples: https://tween-ui.vercel.app/block/arc-carousel\nThe sample content loads images from images.unsplash.com. Replace them with your own before shipping.\nColors come from the Tween UI theme tokens (`tween-ink-deep`, `tween-lime`, …), which the CLI adds to your `@theme`. Pass your own `items`; seven or more keep the arc full, since three cards show on each side of the centre." diff --git a/apps/docs/public/r/registry.json b/apps/docs/public/r/registry.json index 731be52..ed4d11e 100644 --- a/apps/docs/public/r/registry.json +++ b/apps/docs/public/r/registry.json @@ -1524,6 +1524,10 @@ { "path": "examples/arc-carousel-demo-2.tsx", "type": "registry:example" + }, + { + "path": "examples/arc-carousel-demo-3.tsx", + "type": "registry:example" } ] } diff --git a/apps/docs/registry/__sources__.generated.ts b/apps/docs/registry/__sources__.generated.ts index 2bb7b27..17d44db 100644 --- a/apps/docs/registry/__sources__.generated.ts +++ b/apps/docs/registry/__sources__.generated.ts @@ -695,8 +695,8 @@ export const manual: Record = { }, "arc-carousel": { "react": { - "code": "'use client';\n\nimport {\n useCallback,\n useEffect,\n useId,\n useLayoutEffect,\n useRef,\n useState,\n type ComponentPropsWithoutRef,\n type KeyboardEvent,\n type MouseEvent,\n} from 'react';\nimport { cn } from '@/lib/utils';\n\nconst prefersReducedMotion = () =>\n typeof window !== 'undefined' && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n// Layout effects warn on the server; there is nothing to lay out there anyway\nconst useIsoLayoutEffect = typeof window === 'undefined' ? useEffect : useLayoutEffect;\n\nexport interface ArcCarouselItem {\n title: string;\n image: string;\n /** Category chip on the top left of the card, e.g. \"Brand identity\". */\n tag?: string;\n /** A short line under the title, e.g. a client and year or a price. */\n meta?: string;\n href?: string;\n}\n\nexport interface ArcCarouselProps extends ComponentPropsWithoutRef<'section'> {\n items?: ArcCarouselItem[];\n /** The pill above the title. Pass an empty string to drop it. */\n badge?: string;\n title?: string;\n /** A line under the title. Pass an empty string to drop it. */\n description?: string;\n cta?: { label: string; href: string } | null;\n}\n\n/**\n * Where a card sits by its distance from the centre: px across, px down and degrees of\n * turn. The steps grow as they go out, so the row bends down into an arc. Cards further\n * out than the last slot carry on along the same line, invisible, which is where a\n * wrapping card leaves to and comes back from.\n */\nconst SLOTS = [\n { x: 0, y: 0, r: 0 },\n { x: 359, y: 26, r: 8.77 },\n { x: 711, y: 113, r: 18.83 },\n { x: 1033, y: 243, r: 25.05 },\n];\nconst ACTIVE_SCALE = 1.05;\nconst ART = 'transform 470ms cubic-bezier(0.42, 1, 0.46, 1)';\nconst MOVE = 'transform 800ms cubic-bezier(0.98, 0.30, 0.30, 1), opacity 400ms ease';\n/** A swipe has to travel this far, mostly sideways, to count as one. */\nconst SWIPE = 50;\n/** How long a wrapping card's off-screen copy lives: the move, plus a frame or two. */\nconst GHOST_LIFE = 850;\n\nconst slot = (offset: number) => {\n const t = Math.abs(offset);\n const sign = Math.sign(offset);\n const last = SLOTS.length - 1;\n let p = SLOTS[Math.min(t, last)];\n if (t > last) {\n const prev = SLOTS[last - 1];\n const n = t - last;\n p = { x: p.x + (p.x - prev.x) * n, y: p.y + (p.y - prev.y) * n, r: p.r + (p.r - prev.r) * n };\n }\n return {\n transform: `translate(${p.x * sign}px, ${p.y}px) rotate(${p.r * sign}deg)`,\n opacity: t <= last ? '1' : '0',\n zIndex: String(100 - t),\n };\n};\n\n/** Signed distance of card `index` from the centre, wrapped to the shortest way round. */\nconst offsetOf = (index: number, position: number, count: number) => {\n let r = (((index - position) % count) + count) % count;\n if (r > Math.floor(count / 2)) r -= count;\n return r;\n};\n\nconst wrap = (position: number, count: number) => ((position % count) + count) % count;\nconst pad2 = (n: number) => String(n).padStart(2, '0');\n\n/** Unsplash, cropped to the card's 312 × 430 at 1x and 2x. */\nconst photo = (id: string, width = 640) =>\n `https://images.unsplash.com/photo-${id}?w=${width}&h=${Math.round(width * (430 / 312))}&fit=crop&q=80&auto=format`;\nconst srcSetOf = (src: string) =>\n src.includes('images.unsplash.com')\n ? `${src.replace(/([?&])w=\\d+&h=\\d+/, '$1w=320&h=441')} 1x, ${src} 2x`\n : undefined;\n\nconst DEFAULT_ITEMS: ArcCarouselItem[] = [\n {\n title: 'Nightfall',\n tag: 'Astronomy app',\n meta: 'Stellar Co. · 2026',\n image: photo('1519681393784-d120267933ba'),\n },\n {\n title: 'Chroma Identity',\n tag: 'Brand identity',\n meta: 'Chroma Studio · 2026',\n image: photo('1541701494587-cb58502866ab'),\n },\n {\n title: 'Alpine Lodge',\n tag: 'Hospitality',\n meta: 'Moraine Hotels · 2026',\n image: photo('1493246507139-91e8fad9978e'),\n },\n {\n title: 'Metro Pulse',\n tag: 'Data visualisation',\n meta: 'City of Lakes · 2025',\n image: photo('1477959858617-67f85cf4f1df'),\n },\n {\n title: 'Orbit Motion',\n tag: '3D & motion',\n meta: 'Orbit Labs · 2025',\n image: photo('1618005198919-d3d4b5a92ead'),\n },\n {\n title: 'Open Road',\n tag: 'Campaign film',\n meta: 'Westward · 2025',\n image: photo('1500530855697-b586d89ba3ee'),\n },\n {\n title: 'Still Water',\n tag: 'Wellness app',\n meta: 'Calm Harbor · 2024',\n image: photo('1534447677768-be436bb09401'),\n },\n {\n title: 'Lago Retreats',\n tag: 'Travel platform',\n meta: 'Lago Travel · 2024',\n image: photo('1501785888041-af3ef285b470'),\n },\n];\n\nconst STEP = cn(\n 'grid size-11 place-items-center rounded-full border border-tween-teal-soft/25 text-white',\n 'transition-[background-color,border-color,color] duration-300 ease-tween hover:border-tween-lime hover:bg-tween-lime hover:text-tween-ink-deep',\n 'focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-tween-lime motion-reduce:transition-none'\n);\n/** The soft edges the arc runs out under. They sit above the cards, below the copy. */\nconst FADE =\n 'pointer-events-none absolute inset-y-0 z-[2] w-[clamp(2.5rem,14cqw,12rem)] from-tween-ink-deep via-tween-ink-deep/70 to-transparent';\n\nconst Caret = ({ flip }: { flip?: boolean }) => (\n \n \n \n);\n\nconst ArrowUpRight = ({ className }: { className?: string }) => (\n \n \n \n);\n\nexport default function ArcCarousel({\n items = DEFAULT_ITEMS,\n badge = 'Featured work',\n title = 'Projects we shipped this season.',\n description = 'A rotating look at recent launches across brand, product and research. Swipe, drag or use the arrows to browse.',\n cta = { label: 'View all projects', href: '#' },\n className,\n ...props\n}: ArcCarouselProps) {\n const count = items.length;\n const [position, setPosition] = useState(0);\n const listRef = useRef(null);\n const itemRefs = useRef<(HTMLDivElement | null)[]>([]);\n const artRefs = useRef<(HTMLDivElement | null)[]>([]);\n const state = useRef({ last: 0, offsets: [] as (number | undefined)[], ghosts: [] as number[] });\n const swipe = useRef({ tracking: false, swiped: false, x: 0, y: 0 });\n const titleId = useId();\n const descriptionId = useId();\n\n const place = (item: HTMLElement, offset: number) => {\n const s = slot(offset);\n item.style.transform = s.transform;\n item.style.opacity = s.opacity;\n item.style.zIndex = s.zIndex;\n item.style.pointerEvents = s.opacity === '1' ? '' : 'none';\n };\n\n // Lay the cards out on their slots whenever the position changes (animated after the first layout)\n useIsoLayoutEffect(() => {\n const list = listRef.current;\n if (!list || !count) return;\n const reduced = prefersReducedMotion();\n const move = reduced ? 'opacity 0.3s ease' : MOVE;\n const art = reduced ? 'none' : ART;\n const st = state.current;\n const animate = st.offsets.length > 0;\n const delta = animate ? position - st.last : 0;\n st.last = position;\n\n itemRefs.current.forEach((item, i) => {\n if (!item) return;\n const next = offsetOf(i, position, count);\n const prev = st.offsets[i];\n\n const scaleEl = artRefs.current[i];\n if (scaleEl) {\n const scale = next === 0 && !reduced ? `scale(${ACTIVE_SCALE})` : 'scale(1)';\n scaleEl.style.transition = animate ? art : 'none';\n scaleEl.style.transform = scale;\n if (!animate) {\n void scaleEl.offsetWidth;\n scaleEl.style.transition = art;\n }\n }\n\n if (!animate || prev === undefined) {\n item.style.transition = 'none';\n place(item, next);\n } else if (prev - delta !== next) {\n // Wrapped round: a ghost keeps travelling off-screen, the card re-enters from the far side\n const last = SLOTS.length - 1;\n const entry = delta > 0 ? Math.max(next + 1, last + 1) : Math.min(next - 1, -(last + 1));\n const ghost = item.cloneNode(true) as HTMLElement;\n ghost.setAttribute('aria-hidden', 'true');\n ghost.inert = true;\n ghost.style.pointerEvents = 'none';\n ghost.style.transition = 'none';\n list.appendChild(ghost);\n const out = slot(prev - delta);\n void ghost.offsetWidth;\n ghost.style.transition = move;\n ghost.style.transform = out.transform;\n ghost.style.opacity = '0';\n st.ghosts.push(window.setTimeout(() => ghost.remove(), GHOST_LIFE));\n\n item.style.transition = 'none';\n place(item, entry);\n item.style.opacity = '0';\n void item.offsetWidth;\n item.style.transition = move;\n place(item, next);\n } else {\n item.style.transition = move;\n place(item, next);\n }\n st.offsets[i] = next;\n });\n }, [position, count]);\n\n useEffect(() => () => state.current.ghosts.forEach((id) => window.clearTimeout(id)), []);\n\n const step = useCallback((direction: number) => setPosition((p) => p + direction), []);\n\n // Swipe / drag: the release can happen outside the list\n useEffect(() => {\n const onUp = (event: PointerEvent) => {\n const s = swipe.current;\n if (!s.tracking) return;\n s.tracking = false;\n const dx = event.clientX - s.x;\n const dy = event.clientY - s.y;\n if (Math.abs(dx) > SWIPE && Math.abs(dx) > Math.abs(dy)) {\n s.swiped = true;\n step(dx < 0 ? 1 : -1);\n }\n };\n const onCancel = () => {\n swipe.current.tracking = false;\n };\n window.addEventListener('pointerup', onUp);\n window.addEventListener('pointercancel', onCancel);\n return () => {\n window.removeEventListener('pointerup', onUp);\n window.removeEventListener('pointercancel', onCancel);\n };\n }, [step]);\n\n // After a swipe, or on a side card, a click steps the arc instead of following the card's link\n const onClickCapture = (event: MouseEvent) => {\n const s = swipe.current;\n if (s.swiped) {\n s.swiped = false;\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n // Keyboard activation (detail 0) keeps its normal behaviour\n if (event.detail === 0) return;\n const index = itemRefs.current.findIndex((item) => item?.contains(event.target as Node));\n if (index < 0) return;\n const offset = offsetOf(index, position, count);\n if (offset !== 0) {\n event.preventDefault();\n event.stopPropagation();\n step(Math.sign(offset));\n }\n };\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') return;\n event.preventDefault();\n step(event.key === 'ArrowRight' ? 1 : -1);\n };\n\n const current = count ? wrap(position, count) : 0;\n const active = items[current];\n\n return (\n \n {/* The teal glow the arc hangs in */}\n \n\n
\n {badge && (\n \n \n {badge}\n \n )}\n \n {title}\n \n {description && (\n \n {description}\n

\n )}\n
\n\n {/* Its own stacking context, so the cards' z-indexes stay under the edge fades */}\n
\n
\n {\n swipe.current = { tracking: true, swiped: false, x: event.clientX, y: event.clientY };\n }}\n onDragStart={(event) => event.preventDefault()}\n onClickCapture={onClickCapture}\n onKeyDown={onKeyDown}\n >\n {items.map((item, i) => {\n const offset = offsetOf(i, position, count);\n const isActive = offset === 0;\n const Card = item.href ? 'a' : 'div';\n // The first frame is set here too, so the arc is in place before hydration\n const first = slot(offsetOf(i, 0, count));\n return (\n {\n itemRefs.current[i] = el;\n }}\n role=\"group\"\n aria-roledescription=\"slide\"\n aria-label={`${i + 1} of ${count}: ${item.title}`}\n aria-hidden={isActive ? undefined : true}\n data-active={isActive ? '' : undefined}\n className=\"group/card absolute top-0 left-0 h-107.5 w-78 will-change-transform\"\n style={{\n transform: first.transform,\n opacity: first.opacity,\n zIndex: first.zIndex,\n }}\n >\n {\n artRefs.current[i] = el;\n }}\n className=\"size-full origin-center\"\n >\n \n \n\n {/* Side cards sit back in shade; the centre card steps out of it */}\n \n {/* A scrim so the caption reads on any photo */}\n \n\n \n {item.tag ? (\n \n {item.tag}\n \n ) : (\n \n )}\n \n {pad2(i + 1)}\n / {pad2(count)}\n \n \n\n \n \n \n {item.title}\n \n {item.meta && (\n \n {item.meta}\n \n )}\n \n {item.href && (\n \n \n \n )}\n \n\n {/* The outline, drawn over the photo so it never gets clipped */}\n \n \n
\n
\n );\n })}\n
\n
\n \n\n
\n step(-1)}\n >\n \n \n {cta && (\n \n {cta.label}\n \n \n )}\n \n
\n\n

\n {active ? `${current + 1} of ${count}: ${active.title}` : ''}\n

\n\n
\n
\n \n );\n}\n", - "codeHtml": "
'use client';\n\nimport {\n  useCallback,\n  useEffect,\n  useId,\n  useLayoutEffect,\n  useRef,\n  useState,\n  type ComponentPropsWithoutRef,\n  type KeyboardEvent,\n  type MouseEvent,\n} from 'react';\nimport { cn } from '@/lib/utils';\n\nconst prefersReducedMotion = () =>\n  typeof window !== 'undefined' && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n// Layout effects warn on the server; there is nothing to lay out there anyway\nconst useIsoLayoutEffect = typeof window === 'undefined' ? useEffect : useLayoutEffect;\n\nexport interface ArcCarouselItem {\n  title: string;\n  image: string;\n  /** Category chip on the top left of the card, e.g. \"Brand identity\". */\n  tag?: string;\n  /** A short line under the title, e.g. a client and year or a price. */\n  meta?: string;\n  href?: string;\n}\n\nexport interface ArcCarouselProps extends ComponentPropsWithoutRef<'section'> {\n  items?: ArcCarouselItem[];\n  /** The pill above the title. Pass an empty string to drop it. */\n  badge?: string;\n  title?: string;\n  /** A line under the title. Pass an empty string to drop it. */\n  description?: string;\n  cta?: { label: string; href: string } | null;\n}\n\n/**\n * Where a card sits by its distance from the centre: px across, px down and degrees of\n * turn. The steps grow as they go out, so the row bends down into an arc. Cards further\n * out than the last slot carry on along the same line, invisible, which is where a\n * wrapping card leaves to and comes back from.\n */\nconst SLOTS = [\n  { x: 0, y: 0, r: 0 },\n  { x: 359, y: 26, r: 8.77 },\n  { x: 711, y: 113, r: 18.83 },\n  { x: 1033, y: 243, r: 25.05 },\n];\nconst ACTIVE_SCALE = 1.05;\nconst ART = 'transform 470ms cubic-bezier(0.42, 1, 0.46, 1)';\nconst MOVE = 'transform 800ms cubic-bezier(0.98, 0.30, 0.30, 1), opacity 400ms ease';\n/** A swipe has to travel this far, mostly sideways, to count as one. */\nconst SWIPE = 50;\n/** How long a wrapping card's off-screen copy lives: the move, plus a frame or two. */\nconst GHOST_LIFE = 850;\n\nconst slot = (offset: number) => {\n  const t = Math.abs(offset);\n  const sign = Math.sign(offset);\n  const last = SLOTS.length - 1;\n  let p = SLOTS[Math.min(t, last)];\n  if (t > last) {\n    const prev = SLOTS[last - 1];\n    const n = t - last;\n    p = { x: p.x + (p.x - prev.x) * n, y: p.y + (p.y - prev.y) * n, r: p.r + (p.r - prev.r) * n };\n  }\n  return {\n    transform: `translate(${p.x * sign}px, ${p.y}px) rotate(${p.r * sign}deg)`,\n    opacity: t <= last ? '1' : '0',\n    zIndex: String(100 - t),\n  };\n};\n\n/** Signed distance of card `index` from the centre, wrapped to the shortest way round. */\nconst offsetOf = (index: number, position: number, count: number) => {\n  let r = (((index - position) % count) + count) % count;\n  if (r > Math.floor(count / 2)) r -= count;\n  return r;\n};\n\nconst wrap = (position: number, count: number) => ((position % count) + count) % count;\nconst pad2 = (n: number) => String(n).padStart(2, '0');\n\n/** Unsplash, cropped to the card's 312 × 430 at 1x and 2x. */\nconst photo = (id: string, width = 640) =>\n  `https://images.unsplash.com/photo-${id}?w=${width}&h=${Math.round(width * (430 / 312))}&fit=crop&q=80&auto=format`;\nconst srcSetOf = (src: string) =>\n  src.includes('images.unsplash.com')\n    ? `${src.replace(/([?&])w=\\d+&h=\\d+/, '$1w=320&h=441')} 1x, ${src} 2x`\n    : undefined;\n\nconst DEFAULT_ITEMS: ArcCarouselItem[] = [\n  {\n    title: 'Nightfall',\n    tag: 'Astronomy app',\n    meta: 'Stellar Co. · 2026',\n    image: photo('1519681393784-d120267933ba'),\n  },\n  {\n    title: 'Chroma Identity',\n    tag: 'Brand identity',\n    meta: 'Chroma Studio · 2026',\n    image: photo('1541701494587-cb58502866ab'),\n  },\n  {\n    title: 'Alpine Lodge',\n    tag: 'Hospitality',\n    meta: 'Moraine Hotels · 2026',\n    image: photo('1493246507139-91e8fad9978e'),\n  },\n  {\n    title: 'Metro Pulse',\n    tag: 'Data visualisation',\n    meta: 'City of Lakes · 2025',\n    image: photo('1477959858617-67f85cf4f1df'),\n  },\n  {\n    title: 'Orbit Motion',\n    tag: '3D & motion',\n    meta: 'Orbit Labs · 2025',\n    image: photo('1618005198919-d3d4b5a92ead'),\n  },\n  {\n    title: 'Open Road',\n    tag: 'Campaign film',\n    meta: 'Westward · 2025',\n    image: photo('1500530855697-b586d89ba3ee'),\n  },\n  {\n    title: 'Still Water',\n    tag: 'Wellness app',\n    meta: 'Calm Harbor · 2024',\n    image: photo('1534447677768-be436bb09401'),\n  },\n  {\n    title: 'Lago Retreats',\n    tag: 'Travel platform',\n    meta: 'Lago Travel · 2024',\n    image: photo('1501785888041-af3ef285b470'),\n  },\n];\n\nconst STEP = cn(\n  'grid size-11 place-items-center rounded-full border border-tween-teal-soft/25 text-white',\n  'transition-[background-color,border-color,color] duration-300 ease-tween hover:border-tween-lime hover:bg-tween-lime hover:text-tween-ink-deep',\n  'focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-tween-lime motion-reduce:transition-none'\n);\n/** The soft edges the arc runs out under. They sit above the cards, below the copy. */\nconst FADE =\n  'pointer-events-none absolute inset-y-0 z-[2] w-[clamp(2.5rem,14cqw,12rem)] from-tween-ink-deep via-tween-ink-deep/70 to-transparent';\n\nconst Caret = ({ flip }: { flip?: boolean }) => (\n  <svg\n    viewBox=\"0 0 9 16\"\n    aria-hidden=\"true\"\n    className={cn('h-4 w-[8.5px]', flip && 'rotate-180')}\n    fill=\"none\"\n    stroke=\"currentColor\"\n    strokeWidth=\"1.6\"\n    strokeLinecap=\"round\"\n    strokeLinejoin=\"round\"\n  >\n    <path d=\"M7.5 1.5 1.5 8l6 6.5\" />\n  </svg>\n);\n\nconst ArrowUpRight = ({ className }: { className?: string }) => (\n  <svg\n    viewBox=\"0 0 16 16\"\n    aria-hidden=\"true\"\n    className={className}\n    fill=\"none\"\n    stroke=\"currentColor\"\n    strokeWidth=\"1.6\"\n    strokeLinecap=\"round\"\n    strokeLinejoin=\"round\"\n  >\n    <path d=\"M4.5 11.5 11.5 4.5M5.5 4.5h6v6\" />\n  </svg>\n);\n\nexport default function ArcCarousel({\n  items = DEFAULT_ITEMS,\n  badge = 'Featured work',\n  title = 'Projects we shipped this season.',\n  description = 'A rotating look at recent launches across brand, product and research. Swipe, drag or use the arrows to browse.',\n  cta = { label: 'View all projects', href: '#' },\n  className,\n  ...props\n}: ArcCarouselProps) {\n  const count = items.length;\n  const [position, setPosition] = useState(0);\n  const listRef = useRef<HTMLDivElement>(null);\n  const itemRefs = useRef<(HTMLDivElement | null)[]>([]);\n  const artRefs = useRef<(HTMLDivElement | null)[]>([]);\n  const state = useRef({ last: 0, offsets: [] as (number | undefined)[], ghosts: [] as number[] });\n  const swipe = useRef({ tracking: false, swiped: false, x: 0, y: 0 });\n  const titleId = useId();\n  const descriptionId = useId();\n\n  const place = (item: HTMLElement, offset: number) => {\n    const s = slot(offset);\n    item.style.transform = s.transform;\n    item.style.opacity = s.opacity;\n    item.style.zIndex = s.zIndex;\n    item.style.pointerEvents = s.opacity === '1' ? '' : 'none';\n  };\n\n  // Lay the cards out on their slots whenever the position changes (animated after the first layout)\n  useIsoLayoutEffect(() => {\n    const list = listRef.current;\n    if (!list || !count) return;\n    const reduced = prefersReducedMotion();\n    const move = reduced ? 'opacity 0.3s ease' : MOVE;\n    const art = reduced ? 'none' : ART;\n    const st = state.current;\n    const animate = st.offsets.length > 0;\n    const delta = animate ? position - st.last : 0;\n    st.last = position;\n\n    itemRefs.current.forEach((item, i) => {\n      if (!item) return;\n      const next = offsetOf(i, position, count);\n      const prev = st.offsets[i];\n\n      const scaleEl = artRefs.current[i];\n      if (scaleEl) {\n        const scale = next === 0 && !reduced ? `scale(${ACTIVE_SCALE})` : 'scale(1)';\n        scaleEl.style.transition = animate ? art : 'none';\n        scaleEl.style.transform = scale;\n        if (!animate) {\n          void scaleEl.offsetWidth;\n          scaleEl.style.transition = art;\n        }\n      }\n\n      if (!animate || prev === undefined) {\n        item.style.transition = 'none';\n        place(item, next);\n      } else if (prev - delta !== next) {\n        // Wrapped round: a ghost keeps travelling off-screen, the card re-enters from the far side\n        const last = SLOTS.length - 1;\n        const entry = delta > 0 ? Math.max(next + 1, last + 1) : Math.min(next - 1, -(last + 1));\n        const ghost = item.cloneNode(true) as HTMLElement;\n        ghost.setAttribute('aria-hidden', 'true');\n        ghost.inert = true;\n        ghost.style.pointerEvents = 'none';\n        ghost.style.transition = 'none';\n        list.appendChild(ghost);\n        const out = slot(prev - delta);\n        void ghost.offsetWidth;\n        ghost.style.transition = move;\n        ghost.style.transform = out.transform;\n        ghost.style.opacity = '0';\n        st.ghosts.push(window.setTimeout(() => ghost.remove(), GHOST_LIFE));\n\n        item.style.transition = 'none';\n        place(item, entry);\n        item.style.opacity = '0';\n        void item.offsetWidth;\n        item.style.transition = move;\n        place(item, next);\n      } else {\n        item.style.transition = move;\n        place(item, next);\n      }\n      st.offsets[i] = next;\n    });\n  }, [position, count]);\n\n  useEffect(() => () => state.current.ghosts.forEach((id) => window.clearTimeout(id)), []);\n\n  const step = useCallback((direction: number) => setPosition((p) => p + direction), []);\n\n  // Swipe / drag: the release can happen outside the list\n  useEffect(() => {\n    const onUp = (event: PointerEvent) => {\n      const s = swipe.current;\n      if (!s.tracking) return;\n      s.tracking = false;\n      const dx = event.clientX - s.x;\n      const dy = event.clientY - s.y;\n      if (Math.abs(dx) > SWIPE && Math.abs(dx) > Math.abs(dy)) {\n        s.swiped = true;\n        step(dx < 0 ? 1 : -1);\n      }\n    };\n    const onCancel = () => {\n      swipe.current.tracking = false;\n    };\n    window.addEventListener('pointerup', onUp);\n    window.addEventListener('pointercancel', onCancel);\n    return () => {\n      window.removeEventListener('pointerup', onUp);\n      window.removeEventListener('pointercancel', onCancel);\n    };\n  }, [step]);\n\n  // After a swipe, or on a side card, a click steps the arc instead of following the card's link\n  const onClickCapture = (event: MouseEvent<HTMLDivElement>) => {\n    const s = swipe.current;\n    if (s.swiped) {\n      s.swiped = false;\n      event.preventDefault();\n      event.stopPropagation();\n      return;\n    }\n    // Keyboard activation (detail 0) keeps its normal behaviour\n    if (event.detail === 0) return;\n    const index = itemRefs.current.findIndex((item) => item?.contains(event.target as Node));\n    if (index < 0) return;\n    const offset = offsetOf(index, position, count);\n    if (offset !== 0) {\n      event.preventDefault();\n      event.stopPropagation();\n      step(Math.sign(offset));\n    }\n  };\n\n  const onKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n    if (event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') return;\n    event.preventDefault();\n    step(event.key === 'ArrowRight' ? 1 : -1);\n  };\n\n  const current = count ? wrap(position, count) : 0;\n  const active = items[current];\n\n  return (\n    <section\n      aria-labelledby={titleId}\n      aria-describedby={description ? descriptionId : undefined}\n      className={cn(\n        'bg-tween-ink-deep @container relative isolate flex w-full flex-col items-center gap-4 overflow-hidden pt-28 pb-24 text-white',\n        '@max-[64rem]:pt-24 @max-[64rem]:pb-18 @max-[48rem]:gap-8 @max-[48rem]:py-16',\n        className\n      )}\n      {...props}\n    >\n      {/* The teal glow the arc hangs in */}\n      <div\n        aria-hidden=\"true\"\n        className=\"pointer-events-none absolute top-[62%] left-1/2 -z-10 size-[min(120cqw,70rem)] -translate-x-1/2 -translate-y-1/2 rounded-full bg-[radial-gradient(closest-side,color-mix(in_oklch,var(--color-tween-teal)_45%,transparent),color-mix(in_oklch,var(--color-tween-teal)_10%,transparent)_55%,transparent)]\"\n      />\n\n      <header className=\"relative z-[3] flex w-full max-w-2xl flex-col items-center gap-5 px-6 text-center @max-[48rem]:gap-3\">\n        {badge && (\n          <span className=\"border-tween-lime/30 bg-tween-lime/10 text-tween-lime inline-flex items-center gap-2 rounded-full border px-3 py-1 text-xs font-medium tracking-[0.14em] uppercase\">\n            <span aria-hidden=\"true\" className=\"bg-tween-lime size-1.5 rounded-full\" />\n            {badge}\n          </span>\n        )}\n        <h2\n          id={titleId}\n          className=\"text-[clamp(2.25rem,5.5cqw,4rem)] leading-[1.02] font-semibold tracking-[-0.045em] text-balance\"\n        >\n          {title}\n        </h2>\n        {description && (\n          <p\n            id={descriptionId}\n            className=\"text-tween-teal-soft/75 max-w-lg text-[15px] leading-relaxed text-pretty @max-[48rem]:text-sm\"\n          >\n            {description}\n          </p>\n        )}\n      </header>\n\n      {/* Its own stacking context, so the cards' z-indexes stay under the edge fades */}\n      <div className=\"relative isolate z-[1] h-150 w-78 @max-[64rem]:h-134 @max-[48rem]:h-72.5\">\n        <div className=\"absolute inset-0 origin-[50%_0] @max-[64rem]:scale-80 @max-[48rem]:scale-62\">\n          <div\n            ref={listRef}\n            role=\"group\"\n            tabIndex={0}\n            aria-roledescription=\"carousel\"\n            aria-label={title}\n            className=\"focus-visible:ring-tween-lime focus-visible:ring-offset-tween-ink-deep absolute top-16 left-0 h-107.5 w-78 touch-pan-y rounded-[8px] outline-none select-none focus-visible:ring-2 focus-visible:ring-offset-8 @max-[48rem]:top-2\"\n            onPointerDown={(event) => {\n              swipe.current = { tracking: true, swiped: false, x: event.clientX, y: event.clientY };\n            }}\n            onDragStart={(event) => event.preventDefault()}\n            onClickCapture={onClickCapture}\n            onKeyDown={onKeyDown}\n          >\n            {items.map((item, i) => {\n              const offset = offsetOf(i, position, count);\n              const isActive = offset === 0;\n              const Card = item.href ? 'a' : 'div';\n              // The first frame is set here too, so the arc is in place before hydration\n              const first = slot(offsetOf(i, 0, count));\n              return (\n                <div\n                  key={`${item.title}-${i}`}\n                  ref={(el) => {\n                    itemRefs.current[i] = el;\n                  }}\n                  role=\"group\"\n                  aria-roledescription=\"slide\"\n                  aria-label={`${i + 1} of ${count}: ${item.title}`}\n                  aria-hidden={isActive ? undefined : true}\n                  data-active={isActive ? '' : undefined}\n                  className=\"group/card absolute top-0 left-0 h-107.5 w-78 will-change-transform\"\n                  style={{\n                    transform: first.transform,\n                    opacity: first.opacity,\n                    zIndex: first.zIndex,\n                  }}\n                >\n                  <div\n                    ref={(el) => {\n                      artRefs.current[i] = el;\n                    }}\n                    className=\"size-full origin-center\"\n                  >\n                    <Card\n                      {...(item.href ? { href: item.href } : {})}\n                      tabIndex={item.href && isActive ? 0 : -1}\n                      draggable={false}\n                      className={cn(\n                        'bg-tween-ink relative block size-full overflow-hidden rounded-[8px]',\n                        'shadow-[0_30px_60px_-24px_rgb(0_0_0/0.75)]',\n                        'focus-visible:outline-tween-lime focus-visible:outline-2 focus-visible:outline-offset-4'\n                      )}\n                    >\n                      <img\n                        src={item.image}\n                        srcSet={srcSetOf(item.image)}\n                        alt=\"\"\n                        width={312}\n                        height={430}\n                        draggable={false}\n                        decoding=\"async\"\n                        loading={Math.abs(offsetOf(i, 0, count)) <= 2 ? 'eager' : 'lazy'}\n                        className=\"absolute inset-0 size-full object-cover\"\n                      />\n\n                      {/* Side cards sit back in shade; the centre card steps out of it */}\n                      <span\n                        aria-hidden=\"true\"\n                        className=\"bg-tween-ink-deep/40 ease-tween absolute inset-0 transition-opacity duration-500 group-data-active/card:opacity-0 motion-reduce:transition-none\"\n                      />\n                      {/* A scrim so the caption reads on any photo */}\n                      <span\n                        aria-hidden=\"true\"\n                        className=\"from-tween-ink-deep via-tween-ink-deep/60 absolute inset-x-0 bottom-0 h-3/5 bg-linear-to-t to-transparent\"\n                      />\n\n                      <span className=\"absolute inset-x-4 top-4 flex items-center justify-between gap-3\">\n                        {item.tag ? (\n                          <span className=\"bg-tween-ink-deep/70 truncate rounded-full px-3 py-1.5 text-[11px] leading-none font-medium tracking-[0.12em] text-white uppercase ring-1 ring-white/10\">\n                            {item.tag}\n                          </span>\n                        ) : (\n                          <span />\n                        )}\n                        <span className=\"shrink-0 text-xs font-medium text-white/70 tabular-nums\">\n                          {pad2(i + 1)}\n                          <span className=\"text-white/35\"> / {pad2(count)}</span>\n                        </span>\n                      </span>\n\n                      <span className=\"absolute inset-x-0 bottom-0 flex items-end justify-between gap-4 p-5\">\n                        <span className=\"grid min-w-0 gap-1.5\">\n                          <span className=\"truncate text-[22px] leading-tight font-semibold tracking-[-0.025em] text-white\">\n                            {item.title}\n                          </span>\n                          {item.meta && (\n                            <span className=\"text-tween-teal-soft/80 truncate text-sm\">\n                              {item.meta}\n                            </span>\n                          )}\n                        </span>\n                        {item.href && (\n                          <span\n                            aria-hidden=\"true\"\n                            className={cn(\n                              'grid size-11 shrink-0 place-items-center rounded-full bg-white/10 text-white ring-1 ring-white/20',\n                              'ease-tween transition-[background-color,color,box-shadow] duration-500 motion-reduce:transition-none',\n                              'group-data-active/card:bg-tween-lime group-data-active/card:text-tween-ink-deep group-data-active/card:ring-transparent'\n                            )}\n                          >\n                            <ArrowUpRight className=\"ease-tween size-4 transition-transform duration-300 group-hover/card:rotate-45 motion-reduce:transition-none\" />\n                          </span>\n                        )}\n                      </span>\n\n                      {/* The outline, drawn over the photo so it never gets clipped */}\n                      <span\n                        aria-hidden=\"true\"\n                        className=\"ease-tween group-data-active/card:ring-tween-lime/80 pointer-events-none absolute inset-0 rounded-[8px] ring-1 ring-white/10 transition-shadow duration-500 ring-inset group-data-active/card:ring-2 motion-reduce:transition-none\"\n                      />\n                    </Card>\n                  </div>\n                </div>\n              );\n            })}\n          </div>\n        </div>\n      </div>\n\n      <div className=\"relative z-[3] flex items-center gap-2\">\n        <button\n          className={STEP}\n          type=\"button\"\n          aria-label=\"Previous project\"\n          onClick={() => step(-1)}\n        >\n          <Caret />\n        </button>\n        {cta && (\n          <a\n            href={cta.href}\n            className={cn(\n              'bg-tween-lime text-tween-ink-deep inline-flex h-11 items-center gap-2 rounded-full px-6 text-sm font-semibold',\n              'ease-tween transition-[filter,transform] duration-300 hover:brightness-110 active:scale-[0.97]',\n              'focus-visible:outline-tween-lime focus-visible:outline-2 focus-visible:outline-offset-2 motion-reduce:transition-none'\n            )}\n          >\n            {cta.label}\n            <ArrowUpRight className=\"size-3.5\" />\n          </a>\n        )}\n        <button className={STEP} type=\"button\" aria-label=\"Next project\" onClick={() => step(1)}>\n          <Caret flip />\n        </button>\n      </div>\n\n      <p aria-live=\"polite\" className=\"sr-only\">\n        {active ? `${current + 1} of ${count}: ${active.title}` : ''}\n      </p>\n\n      <div aria-hidden=\"true\" className={cn(FADE, 'left-0 bg-linear-to-r')} />\n      <div aria-hidden=\"true\" className={cn(FADE, 'right-0 bg-linear-to-l')} />\n    </section>\n  );\n}\n
" + "code": "'use client';\n\nimport {\n useCallback,\n useEffect,\n useId,\n useLayoutEffect,\n useRef,\n useState,\n type ComponentPropsWithoutRef,\n type KeyboardEvent,\n type MouseEvent,\n} from 'react';\nimport { cn } from '@/lib/utils';\n\nconst prefersReducedMotion = () =>\n typeof window !== 'undefined' && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n// Layout effects warn on the server; there is nothing to lay out there anyway\nconst useIsoLayoutEffect = typeof window === 'undefined' ? useEffect : useLayoutEffect;\n\nexport interface ArcCarouselItem {\n title: string;\n image: string;\n /** Category chip on the top left of the card, e.g. \"Brand identity\". */\n tag?: string;\n /** A short line under the title, e.g. a client and year or a price. */\n meta?: string;\n href?: string;\n}\n\nexport interface ArcCarouselProps extends ComponentPropsWithoutRef<'section'> {\n items?: ArcCarouselItem[];\n /** The pill above the title. Pass an empty string to drop it. */\n badge?: string;\n title?: string;\n /** A line under the title. Pass an empty string to drop it. */\n description?: string;\n cta?: { label: string; href: string } | null;\n /**\n * Step to the next card on its own. On by default; pass `false` to turn it off. It\n * pauses while the pointer is over the cards, while they have keyboard focus and\n * while the block is off-screen, and adds a pause / play button with a progress ring.\n */\n autoplay?: boolean;\n /** Time each card holds the centre while autoplaying, in ms. */\n interval?: number;\n}\n\n/**\n * Where a card sits by its distance from the centre: px across, px down and degrees of\n * turn. The steps grow as they go out, so the row bends down into an arc. Cards further\n * out than the last slot carry on along the same line, invisible, which is where a\n * wrapping card leaves to and comes back from.\n */\nconst SLOTS = [\n { x: 0, y: 0, r: 0 },\n { x: 359, y: 26, r: 8.77 },\n { x: 711, y: 113, r: 18.83 },\n { x: 1033, y: 243, r: 25.05 },\n];\nconst ACTIVE_SCALE = 1.05;\nconst ART = 'transform 470ms cubic-bezier(0.42, 1, 0.46, 1)';\nconst MOVE = 'transform 800ms cubic-bezier(0.98, 0.30, 0.30, 1), opacity 400ms ease';\n/** A swipe has to travel this far, mostly sideways, to count as one. */\nconst SWIPE = 50;\n/** How long a wrapping card's off-screen copy lives: the move, plus a frame or two. */\nconst GHOST_LIFE = 850;\n/** Autoplay never counts more than this per frame, so a backgrounded tab does not skip ahead. */\nconst MAX_FRAME = 100;\n\nconst slot = (offset: number) => {\n const t = Math.abs(offset);\n const sign = Math.sign(offset);\n const last = SLOTS.length - 1;\n let p = SLOTS[Math.min(t, last)];\n if (t > last) {\n const prev = SLOTS[last - 1];\n const n = t - last;\n p = { x: p.x + (p.x - prev.x) * n, y: p.y + (p.y - prev.y) * n, r: p.r + (p.r - prev.r) * n };\n }\n return {\n transform: `translate(${p.x * sign}px, ${p.y}px) rotate(${p.r * sign}deg)`,\n opacity: t <= last ? '1' : '0',\n zIndex: String(100 - t),\n };\n};\n\n/** Signed distance of card `index` from the centre, wrapped to the shortest way round. */\nconst offsetOf = (index: number, position: number, count: number) => {\n let r = (((index - position) % count) + count) % count;\n if (r > Math.floor(count / 2)) r -= count;\n return r;\n};\n\nconst wrap = (position: number, count: number) => ((position % count) + count) % count;\nconst pad2 = (n: number) => String(n).padStart(2, '0');\n\n/** Unsplash, cropped to the card's 312 × 430 at 1x and 2x. */\nconst photo = (id: string, width = 640) =>\n `https://images.unsplash.com/photo-${id}?w=${width}&h=${Math.round(width * (430 / 312))}&fit=crop&q=80&auto=format`;\nconst srcSetOf = (src: string) =>\n src.includes('images.unsplash.com')\n ? `${src.replace(/([?&])w=\\d+&h=\\d+/, '$1w=320&h=441')} 1x, ${src} 2x`\n : undefined;\n\nconst DEFAULT_ITEMS: ArcCarouselItem[] = [\n {\n title: 'Nightfall',\n tag: 'Astronomy app',\n meta: 'Stellar Co. · 2026',\n image: photo('1519681393784-d120267933ba'),\n },\n {\n title: 'Chroma Identity',\n tag: 'Brand identity',\n meta: 'Chroma Studio · 2026',\n image: photo('1541701494587-cb58502866ab'),\n },\n {\n title: 'Alpine Lodge',\n tag: 'Hospitality',\n meta: 'Moraine Hotels · 2026',\n image: photo('1493246507139-91e8fad9978e'),\n },\n {\n title: 'Metro Pulse',\n tag: 'Data visualisation',\n meta: 'City of Lakes · 2025',\n image: photo('1477959858617-67f85cf4f1df'),\n },\n {\n title: 'Orbit Motion',\n tag: '3D & motion',\n meta: 'Orbit Labs · 2025',\n image: photo('1618005198919-d3d4b5a92ead'),\n },\n {\n title: 'Open Road',\n tag: 'Campaign film',\n meta: 'Westward · 2025',\n image: photo('1500530855697-b586d89ba3ee'),\n },\n {\n title: 'Still Water',\n tag: 'Wellness app',\n meta: 'Calm Harbor · 2024',\n image: photo('1534447677768-be436bb09401'),\n },\n {\n title: 'Lago Retreats',\n tag: 'Travel platform',\n meta: 'Lago Travel · 2024',\n image: photo('1501785888041-af3ef285b470'),\n },\n];\n\nconst STEP = cn(\n 'grid size-11 place-items-center rounded-full border border-tween-teal-soft/25 text-white',\n 'transition-[background-color,border-color,color] duration-300 ease-tween hover:border-tween-lime hover:bg-tween-lime hover:text-tween-ink-deep',\n 'focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-tween-lime motion-reduce:transition-none'\n);\n/** The soft edges the arc runs out under. They sit above the cards, below the copy. */\nconst FADE =\n 'pointer-events-none absolute inset-y-0 z-2 w-[clamp(2.5rem,14cqw,12rem)] from-tween-ink-deep via-tween-ink-deep/70 to-transparent';\n\nconst Caret = ({ flip }: { flip?: boolean }) => (\n \n \n \n);\n\nconst PauseIcon = () => (\n \n \n \n \n);\n\nconst PlayIcon = () => (\n \n \n \n);\n\nconst ArrowUpRight = ({ className }: { className?: string }) => (\n \n \n \n);\n\nexport default function ArcCarousel({\n items = DEFAULT_ITEMS,\n badge = 'Featured work',\n title = 'Projects we shipped this season.',\n description = 'A rotating look at recent launches across brand, product and research. Swipe, drag or use the arrows to browse.',\n cta = { label: 'View all projects', href: '#' },\n autoplay = true,\n interval = 5000,\n className,\n ...props\n}: ArcCarouselProps) {\n const count = items.length;\n const [position, setPosition] = useState(0);\n const listRef = useRef(null);\n const itemRefs = useRef<(HTMLDivElement | null)[]>([]);\n const artRefs = useRef<(HTMLDivElement | null)[]>([]);\n const state = useRef({ last: 0, offsets: [] as (number | undefined)[], ghosts: [] as number[] });\n const swipe = useRef({ tracking: false, swiped: false, x: 0, y: 0 });\n const titleId = useId();\n const descriptionId = useId();\n const sectionRef = useRef(null);\n const ringRef = useRef(null);\n const progress = useRef(0);\n // `playing` is the viewer's choice; `held` is a pause they did not ask for (hover, focus, off-screen)\n const [playing, setPlaying] = useState(autoplay);\n const holds = useRef({ hover: false, focus: false, offscreen: false });\n const [held, setHeld] = useState(false);\n const hold = (key: keyof typeof holds.current, on: boolean) => {\n holds.current[key] = on;\n setHeld(Object.values(holds.current).some(Boolean));\n };\n\n const place = (item: HTMLElement, offset: number) => {\n const s = slot(offset);\n item.style.transform = s.transform;\n item.style.opacity = s.opacity;\n item.style.zIndex = s.zIndex;\n item.style.pointerEvents = s.opacity === '1' ? '' : 'none';\n };\n\n // Lay the cards out on their slots whenever the position changes (animated after the first layout)\n useIsoLayoutEffect(() => {\n const list = listRef.current;\n if (!list || !count) return;\n const reduced = prefersReducedMotion();\n const move = reduced ? 'opacity 0.3s ease' : MOVE;\n const art = reduced ? 'none' : ART;\n const st = state.current;\n const animate = st.offsets.length > 0;\n const delta = animate ? position - st.last : 0;\n st.last = position;\n\n itemRefs.current.forEach((item, i) => {\n if (!item) return;\n const next = offsetOf(i, position, count);\n const prev = st.offsets[i];\n\n const scaleEl = artRefs.current[i];\n if (scaleEl) {\n const scale = next === 0 && !reduced ? `scale(${ACTIVE_SCALE})` : 'scale(1)';\n scaleEl.style.transition = animate ? art : 'none';\n scaleEl.style.transform = scale;\n if (!animate) {\n void scaleEl.offsetWidth;\n scaleEl.style.transition = art;\n }\n }\n\n if (!animate || prev === undefined) {\n item.style.transition = 'none';\n place(item, next);\n } else if (prev - delta !== next) {\n // Wrapped round: a ghost keeps travelling off-screen, the card re-enters from the far side\n const last = SLOTS.length - 1;\n const entry = delta > 0 ? Math.max(next + 1, last + 1) : Math.min(next - 1, -(last + 1));\n const ghost = item.cloneNode(true) as HTMLElement;\n ghost.setAttribute('aria-hidden', 'true');\n ghost.inert = true;\n ghost.style.pointerEvents = 'none';\n ghost.style.transition = 'none';\n list.appendChild(ghost);\n const out = slot(prev - delta);\n void ghost.offsetWidth;\n ghost.style.transition = move;\n ghost.style.transform = out.transform;\n ghost.style.opacity = '0';\n st.ghosts.push(window.setTimeout(() => ghost.remove(), GHOST_LIFE));\n\n item.style.transition = 'none';\n place(item, entry);\n item.style.opacity = '0';\n void item.offsetWidth;\n item.style.transition = move;\n place(item, next);\n } else {\n item.style.transition = move;\n place(item, next);\n }\n st.offsets[i] = next;\n });\n }, [position, count]);\n\n useEffect(() => () => state.current.ghosts.forEach((id) => window.clearTimeout(id)), []);\n\n const step = useCallback((direction: number) => setPosition((p) => p + direction), []);\n\n // Autoplay starts off for viewers who asked the system for less motion; they can still press play\n useEffect(() => {\n setPlaying(autoplay && !prefersReducedMotion());\n }, [autoplay]);\n\n // Any step, by hand or on its own, gives the new card a full interval\n useEffect(() => {\n progress.current = 0;\n ringRef.current?.style.setProperty('stroke-dashoffset', '1');\n }, [position, playing]);\n\n // The clock: counts only while playing and not held, so a pause resumes where it left off\n useEffect(() => {\n if (!playing || held || count < 2) return;\n let frame = 0;\n let last = performance.now();\n const tick = (now: number) => {\n progress.current += Math.min(now - last, MAX_FRAME) / interval;\n last = now;\n if (progress.current >= 1) {\n progress.current = 0;\n step(1);\n }\n ringRef.current?.style.setProperty('stroke-dashoffset', String(1 - progress.current));\n frame = requestAnimationFrame(tick);\n };\n frame = requestAnimationFrame(tick);\n return () => cancelAnimationFrame(frame);\n }, [playing, held, interval, count, step]);\n\n // Off-screen, autoplay waits\n useEffect(() => {\n const section = sectionRef.current;\n if (!autoplay || !section || typeof IntersectionObserver === 'undefined') return;\n const observer = new IntersectionObserver(([entry]) =>\n hold('offscreen', !entry.isIntersecting)\n );\n observer.observe(section);\n return () => observer.disconnect();\n }, [autoplay]);\n\n // Swipe / drag: the release can happen outside the list\n useEffect(() => {\n const onUp = (event: PointerEvent) => {\n const s = swipe.current;\n if (!s.tracking) return;\n s.tracking = false;\n const dx = event.clientX - s.x;\n const dy = event.clientY - s.y;\n if (Math.abs(dx) > SWIPE && Math.abs(dx) > Math.abs(dy)) {\n s.swiped = true;\n step(dx < 0 ? 1 : -1);\n }\n };\n const onCancel = () => {\n swipe.current.tracking = false;\n };\n window.addEventListener('pointerup', onUp);\n window.addEventListener('pointercancel', onCancel);\n return () => {\n window.removeEventListener('pointerup', onUp);\n window.removeEventListener('pointercancel', onCancel);\n };\n }, [step]);\n\n // After a swipe, or on a side card, a click steps the arc instead of following the card's link\n const onClickCapture = (event: MouseEvent) => {\n const s = swipe.current;\n if (s.swiped) {\n s.swiped = false;\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n // Keyboard activation (detail 0) keeps its normal behaviour\n if (event.detail === 0) return;\n const index = itemRefs.current.findIndex((item) => item?.contains(event.target as Node));\n if (index < 0) return;\n const offset = offsetOf(index, position, count);\n if (offset !== 0) {\n event.preventDefault();\n event.stopPropagation();\n step(Math.sign(offset));\n }\n };\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') return;\n event.preventDefault();\n step(event.key === 'ArrowRight' ? 1 : -1);\n };\n\n const current = count ? wrap(position, count) : 0;\n const active = items[current];\n\n return (\n \n {/* The teal glow the arc hangs in */}\n \n\n
\n {badge && (\n \n \n {badge}\n \n )}\n \n {title}\n \n {description && (\n \n {description}\n

\n )}\n
\n\n {/* Its own stacking context, so the cards' z-indexes stay under the edge fades */}\n {/* A mouse or pen resting on the cards holds autoplay; a finger lifts at once, so it never does */}\n event.pointerType !== 'touch' && hold('hover', true)}\n onPointerLeave={() => hold('hover', false)}\n >\n
\n {\n swipe.current = { tracking: true, swiped: false, x: event.clientX, y: event.clientY };\n }}\n onDragStart={(event) => event.preventDefault()}\n onClickCapture={onClickCapture}\n onKeyDown={onKeyDown}\n // Keyboard focus on the cards holds autoplay, so nothing moves while you read\n onFocus={(event) => {\n let visible = true;\n try {\n visible = event.target.matches(':focus-visible');\n } catch {\n // Older engines without :focus-visible: treat every focus as visible\n }\n if (visible) hold('focus', true);\n }}\n onBlur={(event) => {\n if (!event.currentTarget.contains(event.relatedTarget as Node | null)) {\n hold('focus', false);\n }\n }}\n >\n {items.map((item, i) => {\n const offset = offsetOf(i, position, count);\n const isActive = offset === 0;\n const Card = item.href ? 'a' : 'div';\n // The first frame is set here too, so the arc is in place before hydration\n const first = slot(offsetOf(i, 0, count));\n return (\n {\n itemRefs.current[i] = el;\n }}\n role=\"group\"\n aria-roledescription=\"slide\"\n aria-label={`${i + 1} of ${count}: ${item.title}`}\n aria-hidden={isActive ? undefined : true}\n data-active={isActive ? '' : undefined}\n className=\"group/card absolute top-0 left-0 h-107.5 w-78 will-change-transform\"\n style={{\n transform: first.transform,\n opacity: first.opacity,\n zIndex: first.zIndex,\n }}\n >\n {\n artRefs.current[i] = el;\n }}\n className=\"size-full origin-center\"\n >\n \n \n\n {/* Side cards sit back in shade; the centre card steps out of it */}\n \n {/* A scrim so the caption reads on any photo */}\n \n\n \n {item.tag ? (\n \n {item.tag}\n \n ) : (\n \n )}\n \n {pad2(i + 1)}\n / {pad2(count)}\n \n \n\n \n \n \n {item.title}\n \n {item.meta && (\n \n {item.meta}\n \n )}\n \n {item.href && (\n \n \n \n )}\n \n\n {/* The outline, drawn over the photo so it never gets clipped */}\n \n \n
\n
\n );\n })}\n
\n \n \n\n
\n step(-1)}\n >\n \n \n {cta && (\n \n {cta.label}\n \n \n )}\n \n {autoplay && (\n setPlaying((on) => !on)}\n >\n {playing ? : }\n {/* Time left on the current card */}\n \n \n \n \n )}\n
\n\n {/* Quiet while it plays itself, so a screen reader is not interrupted every few seconds */}\n

\n {active ? `${current + 1} of ${count}: ${active.title}` : ''}\n

\n\n
\n
\n \n );\n}\n", + "codeHtml": "
'use client';\n\nimport {\n  useCallback,\n  useEffect,\n  useId,\n  useLayoutEffect,\n  useRef,\n  useState,\n  type ComponentPropsWithoutRef,\n  type KeyboardEvent,\n  type MouseEvent,\n} from 'react';\nimport { cn } from '@/lib/utils';\n\nconst prefersReducedMotion = () =>\n  typeof window !== 'undefined' && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n// Layout effects warn on the server; there is nothing to lay out there anyway\nconst useIsoLayoutEffect = typeof window === 'undefined' ? useEffect : useLayoutEffect;\n\nexport interface ArcCarouselItem {\n  title: string;\n  image: string;\n  /** Category chip on the top left of the card, e.g. \"Brand identity\". */\n  tag?: string;\n  /** A short line under the title, e.g. a client and year or a price. */\n  meta?: string;\n  href?: string;\n}\n\nexport interface ArcCarouselProps extends ComponentPropsWithoutRef<'section'> {\n  items?: ArcCarouselItem[];\n  /** The pill above the title. Pass an empty string to drop it. */\n  badge?: string;\n  title?: string;\n  /** A line under the title. Pass an empty string to drop it. */\n  description?: string;\n  cta?: { label: string; href: string } | null;\n  /**\n   * Step to the next card on its own. On by default; pass `false` to turn it off. It\n   * pauses while the pointer is over the cards, while they have keyboard focus and\n   * while the block is off-screen, and adds a pause / play button with a progress ring.\n   */\n  autoplay?: boolean;\n  /** Time each card holds the centre while autoplaying, in ms. */\n  interval?: number;\n}\n\n/**\n * Where a card sits by its distance from the centre: px across, px down and degrees of\n * turn. The steps grow as they go out, so the row bends down into an arc. Cards further\n * out than the last slot carry on along the same line, invisible, which is where a\n * wrapping card leaves to and comes back from.\n */\nconst SLOTS = [\n  { x: 0, y: 0, r: 0 },\n  { x: 359, y: 26, r: 8.77 },\n  { x: 711, y: 113, r: 18.83 },\n  { x: 1033, y: 243, r: 25.05 },\n];\nconst ACTIVE_SCALE = 1.05;\nconst ART = 'transform 470ms cubic-bezier(0.42, 1, 0.46, 1)';\nconst MOVE = 'transform 800ms cubic-bezier(0.98, 0.30, 0.30, 1), opacity 400ms ease';\n/** A swipe has to travel this far, mostly sideways, to count as one. */\nconst SWIPE = 50;\n/** How long a wrapping card's off-screen copy lives: the move, plus a frame or two. */\nconst GHOST_LIFE = 850;\n/** Autoplay never counts more than this per frame, so a backgrounded tab does not skip ahead. */\nconst MAX_FRAME = 100;\n\nconst slot = (offset: number) => {\n  const t = Math.abs(offset);\n  const sign = Math.sign(offset);\n  const last = SLOTS.length - 1;\n  let p = SLOTS[Math.min(t, last)];\n  if (t > last) {\n    const prev = SLOTS[last - 1];\n    const n = t - last;\n    p = { x: p.x + (p.x - prev.x) * n, y: p.y + (p.y - prev.y) * n, r: p.r + (p.r - prev.r) * n };\n  }\n  return {\n    transform: `translate(${p.x * sign}px, ${p.y}px) rotate(${p.r * sign}deg)`,\n    opacity: t <= last ? '1' : '0',\n    zIndex: String(100 - t),\n  };\n};\n\n/** Signed distance of card `index` from the centre, wrapped to the shortest way round. */\nconst offsetOf = (index: number, position: number, count: number) => {\n  let r = (((index - position) % count) + count) % count;\n  if (r > Math.floor(count / 2)) r -= count;\n  return r;\n};\n\nconst wrap = (position: number, count: number) => ((position % count) + count) % count;\nconst pad2 = (n: number) => String(n).padStart(2, '0');\n\n/** Unsplash, cropped to the card's 312 × 430 at 1x and 2x. */\nconst photo = (id: string, width = 640) =>\n  `https://images.unsplash.com/photo-${id}?w=${width}&h=${Math.round(width * (430 / 312))}&fit=crop&q=80&auto=format`;\nconst srcSetOf = (src: string) =>\n  src.includes('images.unsplash.com')\n    ? `${src.replace(/([?&])w=\\d+&h=\\d+/, '$1w=320&h=441')} 1x, ${src} 2x`\n    : undefined;\n\nconst DEFAULT_ITEMS: ArcCarouselItem[] = [\n  {\n    title: 'Nightfall',\n    tag: 'Astronomy app',\n    meta: 'Stellar Co. · 2026',\n    image: photo('1519681393784-d120267933ba'),\n  },\n  {\n    title: 'Chroma Identity',\n    tag: 'Brand identity',\n    meta: 'Chroma Studio · 2026',\n    image: photo('1541701494587-cb58502866ab'),\n  },\n  {\n    title: 'Alpine Lodge',\n    tag: 'Hospitality',\n    meta: 'Moraine Hotels · 2026',\n    image: photo('1493246507139-91e8fad9978e'),\n  },\n  {\n    title: 'Metro Pulse',\n    tag: 'Data visualisation',\n    meta: 'City of Lakes · 2025',\n    image: photo('1477959858617-67f85cf4f1df'),\n  },\n  {\n    title: 'Orbit Motion',\n    tag: '3D & motion',\n    meta: 'Orbit Labs · 2025',\n    image: photo('1618005198919-d3d4b5a92ead'),\n  },\n  {\n    title: 'Open Road',\n    tag: 'Campaign film',\n    meta: 'Westward · 2025',\n    image: photo('1500530855697-b586d89ba3ee'),\n  },\n  {\n    title: 'Still Water',\n    tag: 'Wellness app',\n    meta: 'Calm Harbor · 2024',\n    image: photo('1534447677768-be436bb09401'),\n  },\n  {\n    title: 'Lago Retreats',\n    tag: 'Travel platform',\n    meta: 'Lago Travel · 2024',\n    image: photo('1501785888041-af3ef285b470'),\n  },\n];\n\nconst STEP = cn(\n  'grid size-11 place-items-center rounded-full border border-tween-teal-soft/25 text-white',\n  'transition-[background-color,border-color,color] duration-300 ease-tween hover:border-tween-lime hover:bg-tween-lime hover:text-tween-ink-deep',\n  'focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-tween-lime motion-reduce:transition-none'\n);\n/** The soft edges the arc runs out under. They sit above the cards, below the copy. */\nconst FADE =\n  'pointer-events-none absolute inset-y-0 z-2 w-[clamp(2.5rem,14cqw,12rem)] from-tween-ink-deep via-tween-ink-deep/70 to-transparent';\n\nconst Caret = ({ flip }: { flip?: boolean }) => (\n  <svg\n    viewBox=\"0 0 9 16\"\n    aria-hidden=\"true\"\n    className={cn('h-4 w-[8.5px]', flip && 'rotate-180')}\n    fill=\"none\"\n    stroke=\"currentColor\"\n    strokeWidth=\"1.6\"\n    strokeLinecap=\"round\"\n    strokeLinejoin=\"round\"\n  >\n    <path d=\"M7.5 1.5 1.5 8l6 6.5\" />\n  </svg>\n);\n\nconst PauseIcon = () => (\n  <svg viewBox=\"0 0 16 16\" aria-hidden=\"true\" className=\"size-3.5\" fill=\"currentColor\">\n    <rect x=\"3.5\" y=\"2.5\" width=\"3\" height=\"11\" rx=\"1\" />\n    <rect x=\"9.5\" y=\"2.5\" width=\"3\" height=\"11\" rx=\"1\" />\n  </svg>\n);\n\nconst PlayIcon = () => (\n  <svg viewBox=\"0 0 16 16\" aria-hidden=\"true\" className=\"size-3.5\" fill=\"currentColor\">\n    <path d=\"M4.5 2.9v10.2a1 1 0 0 0 1.53.85l8.1-5.1a1 1 0 0 0 0-1.7l-8.1-5.1A1 1 0 0 0 4.5 2.9Z\" />\n  </svg>\n);\n\nconst ArrowUpRight = ({ className }: { className?: string }) => (\n  <svg\n    viewBox=\"0 0 16 16\"\n    aria-hidden=\"true\"\n    className={className}\n    fill=\"none\"\n    stroke=\"currentColor\"\n    strokeWidth=\"1.6\"\n    strokeLinecap=\"round\"\n    strokeLinejoin=\"round\"\n  >\n    <path d=\"M4.5 11.5 11.5 4.5M5.5 4.5h6v6\" />\n  </svg>\n);\n\nexport default function ArcCarousel({\n  items = DEFAULT_ITEMS,\n  badge = 'Featured work',\n  title = 'Projects we shipped this season.',\n  description = 'A rotating look at recent launches across brand, product and research. Swipe, drag or use the arrows to browse.',\n  cta = { label: 'View all projects', href: '#' },\n  autoplay = true,\n  interval = 5000,\n  className,\n  ...props\n}: ArcCarouselProps) {\n  const count = items.length;\n  const [position, setPosition] = useState(0);\n  const listRef = useRef<HTMLDivElement>(null);\n  const itemRefs = useRef<(HTMLDivElement | null)[]>([]);\n  const artRefs = useRef<(HTMLDivElement | null)[]>([]);\n  const state = useRef({ last: 0, offsets: [] as (number | undefined)[], ghosts: [] as number[] });\n  const swipe = useRef({ tracking: false, swiped: false, x: 0, y: 0 });\n  const titleId = useId();\n  const descriptionId = useId();\n  const sectionRef = useRef<HTMLElement>(null);\n  const ringRef = useRef<SVGCircleElement>(null);\n  const progress = useRef(0);\n  // `playing` is the viewer's choice; `held` is a pause they did not ask for (hover, focus, off-screen)\n  const [playing, setPlaying] = useState(autoplay);\n  const holds = useRef({ hover: false, focus: false, offscreen: false });\n  const [held, setHeld] = useState(false);\n  const hold = (key: keyof typeof holds.current, on: boolean) => {\n    holds.current[key] = on;\n    setHeld(Object.values(holds.current).some(Boolean));\n  };\n\n  const place = (item: HTMLElement, offset: number) => {\n    const s = slot(offset);\n    item.style.transform = s.transform;\n    item.style.opacity = s.opacity;\n    item.style.zIndex = s.zIndex;\n    item.style.pointerEvents = s.opacity === '1' ? '' : 'none';\n  };\n\n  // Lay the cards out on their slots whenever the position changes (animated after the first layout)\n  useIsoLayoutEffect(() => {\n    const list = listRef.current;\n    if (!list || !count) return;\n    const reduced = prefersReducedMotion();\n    const move = reduced ? 'opacity 0.3s ease' : MOVE;\n    const art = reduced ? 'none' : ART;\n    const st = state.current;\n    const animate = st.offsets.length > 0;\n    const delta = animate ? position - st.last : 0;\n    st.last = position;\n\n    itemRefs.current.forEach((item, i) => {\n      if (!item) return;\n      const next = offsetOf(i, position, count);\n      const prev = st.offsets[i];\n\n      const scaleEl = artRefs.current[i];\n      if (scaleEl) {\n        const scale = next === 0 && !reduced ? `scale(${ACTIVE_SCALE})` : 'scale(1)';\n        scaleEl.style.transition = animate ? art : 'none';\n        scaleEl.style.transform = scale;\n        if (!animate) {\n          void scaleEl.offsetWidth;\n          scaleEl.style.transition = art;\n        }\n      }\n\n      if (!animate || prev === undefined) {\n        item.style.transition = 'none';\n        place(item, next);\n      } else if (prev - delta !== next) {\n        // Wrapped round: a ghost keeps travelling off-screen, the card re-enters from the far side\n        const last = SLOTS.length - 1;\n        const entry = delta > 0 ? Math.max(next + 1, last + 1) : Math.min(next - 1, -(last + 1));\n        const ghost = item.cloneNode(true) as HTMLElement;\n        ghost.setAttribute('aria-hidden', 'true');\n        ghost.inert = true;\n        ghost.style.pointerEvents = 'none';\n        ghost.style.transition = 'none';\n        list.appendChild(ghost);\n        const out = slot(prev - delta);\n        void ghost.offsetWidth;\n        ghost.style.transition = move;\n        ghost.style.transform = out.transform;\n        ghost.style.opacity = '0';\n        st.ghosts.push(window.setTimeout(() => ghost.remove(), GHOST_LIFE));\n\n        item.style.transition = 'none';\n        place(item, entry);\n        item.style.opacity = '0';\n        void item.offsetWidth;\n        item.style.transition = move;\n        place(item, next);\n      } else {\n        item.style.transition = move;\n        place(item, next);\n      }\n      st.offsets[i] = next;\n    });\n  }, [position, count]);\n\n  useEffect(() => () => state.current.ghosts.forEach((id) => window.clearTimeout(id)), []);\n\n  const step = useCallback((direction: number) => setPosition((p) => p + direction), []);\n\n  // Autoplay starts off for viewers who asked the system for less motion; they can still press play\n  useEffect(() => {\n    setPlaying(autoplay && !prefersReducedMotion());\n  }, [autoplay]);\n\n  // Any step, by hand or on its own, gives the new card a full interval\n  useEffect(() => {\n    progress.current = 0;\n    ringRef.current?.style.setProperty('stroke-dashoffset', '1');\n  }, [position, playing]);\n\n  // The clock: counts only while playing and not held, so a pause resumes where it left off\n  useEffect(() => {\n    if (!playing || held || count < 2) return;\n    let frame = 0;\n    let last = performance.now();\n    const tick = (now: number) => {\n      progress.current += Math.min(now - last, MAX_FRAME) / interval;\n      last = now;\n      if (progress.current >= 1) {\n        progress.current = 0;\n        step(1);\n      }\n      ringRef.current?.style.setProperty('stroke-dashoffset', String(1 - progress.current));\n      frame = requestAnimationFrame(tick);\n    };\n    frame = requestAnimationFrame(tick);\n    return () => cancelAnimationFrame(frame);\n  }, [playing, held, interval, count, step]);\n\n  // Off-screen, autoplay waits\n  useEffect(() => {\n    const section = sectionRef.current;\n    if (!autoplay || !section || typeof IntersectionObserver === 'undefined') return;\n    const observer = new IntersectionObserver(([entry]) =>\n      hold('offscreen', !entry.isIntersecting)\n    );\n    observer.observe(section);\n    return () => observer.disconnect();\n  }, [autoplay]);\n\n  // Swipe / drag: the release can happen outside the list\n  useEffect(() => {\n    const onUp = (event: PointerEvent) => {\n      const s = swipe.current;\n      if (!s.tracking) return;\n      s.tracking = false;\n      const dx = event.clientX - s.x;\n      const dy = event.clientY - s.y;\n      if (Math.abs(dx) > SWIPE && Math.abs(dx) > Math.abs(dy)) {\n        s.swiped = true;\n        step(dx < 0 ? 1 : -1);\n      }\n    };\n    const onCancel = () => {\n      swipe.current.tracking = false;\n    };\n    window.addEventListener('pointerup', onUp);\n    window.addEventListener('pointercancel', onCancel);\n    return () => {\n      window.removeEventListener('pointerup', onUp);\n      window.removeEventListener('pointercancel', onCancel);\n    };\n  }, [step]);\n\n  // After a swipe, or on a side card, a click steps the arc instead of following the card's link\n  const onClickCapture = (event: MouseEvent<HTMLDivElement>) => {\n    const s = swipe.current;\n    if (s.swiped) {\n      s.swiped = false;\n      event.preventDefault();\n      event.stopPropagation();\n      return;\n    }\n    // Keyboard activation (detail 0) keeps its normal behaviour\n    if (event.detail === 0) return;\n    const index = itemRefs.current.findIndex((item) => item?.contains(event.target as Node));\n    if (index < 0) return;\n    const offset = offsetOf(index, position, count);\n    if (offset !== 0) {\n      event.preventDefault();\n      event.stopPropagation();\n      step(Math.sign(offset));\n    }\n  };\n\n  const onKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n    if (event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') return;\n    event.preventDefault();\n    step(event.key === 'ArrowRight' ? 1 : -1);\n  };\n\n  const current = count ? wrap(position, count) : 0;\n  const active = items[current];\n\n  return (\n    <section\n      ref={sectionRef}\n      aria-labelledby={titleId}\n      aria-describedby={description ? descriptionId : undefined}\n      className={cn(\n        'bg-tween-ink-deep @container relative isolate flex w-full flex-col items-center gap-4 overflow-hidden pt-28 pb-24 text-white',\n        '@max-[64rem]:pt-24 @max-[64rem]:pb-18 @max-[48rem]:gap-8 @max-[48rem]:py-16',\n        className\n      )}\n      {...props}\n    >\n      {/* The teal glow the arc hangs in */}\n      <div\n        aria-hidden=\"true\"\n        className=\"pointer-events-none absolute top-[62%] left-1/2 -z-10 size-[min(120cqw,70rem)] -translate-x-1/2 -translate-y-1/2 rounded-full bg-[radial-gradient(closest-side,color-mix(in_oklch,var(--color-tween-teal)_45%,transparent),color-mix(in_oklch,var(--color-tween-teal)_10%,transparent)_55%,transparent)]\"\n      />\n\n      <header className=\"relative z-3 flex w-full max-w-2xl flex-col items-center gap-5 px-6 text-center @max-[48rem]:gap-3\">\n        {badge && (\n          <span className=\"border-tween-lime/30 bg-tween-lime/10 text-tween-lime inline-flex items-center gap-2 rounded-full border px-3 py-1 text-xs font-medium tracking-[0.14em] uppercase\">\n            <span aria-hidden=\"true\" className=\"bg-tween-lime size-1.5 rounded-full\" />\n            {badge}\n          </span>\n        )}\n        <h2\n          id={titleId}\n          className=\"text-[clamp(2.25rem,5.5cqw,4rem)] leading-[1.02] font-semibold tracking-[-0.045em] text-balance\"\n        >\n          {title}\n        </h2>\n        {description && (\n          <p\n            id={descriptionId}\n            className=\"text-tween-teal-soft/75 max-w-lg text-[15px] leading-relaxed text-pretty @max-[48rem]:text-sm\"\n          >\n            {description}\n          </p>\n        )}\n      </header>\n\n      {/* Its own stacking context, so the cards' z-indexes stay under the edge fades */}\n      {/* A mouse or pen resting on the cards holds autoplay; a finger lifts at once, so it never does */}\n      <div\n        className=\"relative isolate z-1 h-150 w-78 @max-[64rem]:h-134 @max-[48rem]:h-72.5\"\n        onPointerEnter={(event) => event.pointerType !== 'touch' && hold('hover', true)}\n        onPointerLeave={() => hold('hover', false)}\n      >\n        <div className=\"absolute inset-0 origin-[50%_0] @max-[64rem]:scale-80 @max-[48rem]:scale-62\">\n          <div\n            ref={listRef}\n            role=\"group\"\n            tabIndex={0}\n            aria-roledescription=\"carousel\"\n            aria-label={title}\n            className=\"focus-visible:ring-tween-lime focus-visible:ring-offset-tween-ink-deep absolute top-16 left-0 h-107.5 w-78 touch-pan-y rounded-[8px] outline-none select-none focus-visible:ring-2 focus-visible:ring-offset-8 @max-[48rem]:top-2\"\n            onPointerDown={(event) => {\n              swipe.current = { tracking: true, swiped: false, x: event.clientX, y: event.clientY };\n            }}\n            onDragStart={(event) => event.preventDefault()}\n            onClickCapture={onClickCapture}\n            onKeyDown={onKeyDown}\n            // Keyboard focus on the cards holds autoplay, so nothing moves while you read\n            onFocus={(event) => {\n              let visible = true;\n              try {\n                visible = event.target.matches(':focus-visible');\n              } catch {\n                // Older engines without :focus-visible: treat every focus as visible\n              }\n              if (visible) hold('focus', true);\n            }}\n            onBlur={(event) => {\n              if (!event.currentTarget.contains(event.relatedTarget as Node | null)) {\n                hold('focus', false);\n              }\n            }}\n          >\n            {items.map((item, i) => {\n              const offset = offsetOf(i, position, count);\n              const isActive = offset === 0;\n              const Card = item.href ? 'a' : 'div';\n              // The first frame is set here too, so the arc is in place before hydration\n              const first = slot(offsetOf(i, 0, count));\n              return (\n                <div\n                  key={`${item.title}-${i}`}\n                  ref={(el) => {\n                    itemRefs.current[i] = el;\n                  }}\n                  role=\"group\"\n                  aria-roledescription=\"slide\"\n                  aria-label={`${i + 1} of ${count}: ${item.title}`}\n                  aria-hidden={isActive ? undefined : true}\n                  data-active={isActive ? '' : undefined}\n                  className=\"group/card absolute top-0 left-0 h-107.5 w-78 will-change-transform\"\n                  style={{\n                    transform: first.transform,\n                    opacity: first.opacity,\n                    zIndex: first.zIndex,\n                  }}\n                >\n                  <div\n                    ref={(el) => {\n                      artRefs.current[i] = el;\n                    }}\n                    className=\"size-full origin-center\"\n                  >\n                    <Card\n                      {...(item.href ? { href: item.href } : {})}\n                      tabIndex={item.href && isActive ? 0 : -1}\n                      draggable={false}\n                      className={cn(\n                        'bg-tween-ink relative block size-full overflow-hidden rounded-[8px]',\n                        'shadow-[0_30px_60px_-24px_rgb(0_0_0/0.75)]',\n                        'focus-visible:outline-tween-lime focus-visible:outline-2 focus-visible:outline-offset-4'\n                      )}\n                    >\n                      <img\n                        src={item.image}\n                        srcSet={srcSetOf(item.image)}\n                        alt=\"\"\n                        width={312}\n                        height={430}\n                        draggable={false}\n                        decoding=\"async\"\n                        loading={Math.abs(offsetOf(i, 0, count)) <= 2 ? 'eager' : 'lazy'}\n                        className=\"absolute inset-0 size-full object-cover\"\n                      />\n\n                      {/* Side cards sit back in shade; the centre card steps out of it */}\n                      <span\n                        aria-hidden=\"true\"\n                        className=\"bg-tween-ink-deep/40 ease-tween absolute inset-0 transition-opacity duration-500 group-data-active/card:opacity-0 motion-reduce:transition-none\"\n                      />\n                      {/* A scrim so the caption reads on any photo */}\n                      <span\n                        aria-hidden=\"true\"\n                        className=\"from-tween-ink-deep via-tween-ink-deep/60 absolute inset-x-0 bottom-0 h-3/5 bg-linear-to-t to-transparent\"\n                      />\n\n                      <span className=\"absolute inset-x-4 top-4 flex items-center justify-between gap-3\">\n                        {item.tag ? (\n                          <span className=\"bg-tween-ink-deep/70 truncate rounded-full px-3 py-1.5 text-[11px] leading-none font-medium tracking-[0.12em] text-white uppercase ring-1 ring-white/10\">\n                            {item.tag}\n                          </span>\n                        ) : (\n                          <span />\n                        )}\n                        <span className=\"shrink-0 text-xs font-medium text-white/70 tabular-nums\">\n                          {pad2(i + 1)}\n                          <span className=\"text-white/35\"> / {pad2(count)}</span>\n                        </span>\n                      </span>\n\n                      <span className=\"absolute inset-x-0 bottom-0 flex items-end justify-between gap-4 p-5\">\n                        <span className=\"grid min-w-0 gap-1.5\">\n                          <span className=\"truncate text-[22px] leading-tight font-semibold tracking-[-0.025em] text-white\">\n                            {item.title}\n                          </span>\n                          {item.meta && (\n                            <span className=\"text-tween-teal-soft/80 truncate text-sm\">\n                              {item.meta}\n                            </span>\n                          )}\n                        </span>\n                        {item.href && (\n                          <span\n                            aria-hidden=\"true\"\n                            className={cn(\n                              'grid size-11 shrink-0 place-items-center rounded-full bg-white/10 text-white ring-1 ring-white/20',\n                              'ease-tween transition-[background-color,color,box-shadow] duration-500 motion-reduce:transition-none',\n                              'group-data-active/card:bg-tween-lime group-data-active/card:text-tween-ink-deep group-data-active/card:ring-transparent'\n                            )}\n                          >\n                            <ArrowUpRight className=\"ease-tween size-4 transition-transform duration-300 group-hover/card:rotate-45 motion-reduce:transition-none\" />\n                          </span>\n                        )}\n                      </span>\n\n                      {/* The outline, drawn over the photo so it never gets clipped */}\n                      <span\n                        aria-hidden=\"true\"\n                        className=\"ease-tween group-data-active/card:ring-tween-lime/80 pointer-events-none absolute inset-0 rounded-[8px] ring-1 ring-white/10 transition-shadow duration-500 ring-inset group-data-active/card:ring-2 motion-reduce:transition-none\"\n                      />\n                    </Card>\n                  </div>\n                </div>\n              );\n            })}\n          </div>\n        </div>\n      </div>\n\n      <div className=\"relative z-3 flex items-center gap-2\">\n        <button\n          className={STEP}\n          type=\"button\"\n          aria-label=\"Previous project\"\n          onClick={() => step(-1)}\n        >\n          <Caret />\n        </button>\n        {cta && (\n          <a\n            href={cta.href}\n            className={cn(\n              'bg-tween-lime text-tween-ink-deep inline-flex h-11 items-center gap-2 rounded-full px-6 text-sm font-semibold',\n              'ease-tween transition-[filter,transform] duration-300 hover:brightness-110 active:scale-[0.97]',\n              'focus-visible:outline-tween-lime focus-visible:outline-2 focus-visible:outline-offset-2 motion-reduce:transition-none'\n            )}\n          >\n            {cta.label}\n            <ArrowUpRight className=\"size-3.5\" />\n          </a>\n        )}\n        <button className={STEP} type=\"button\" aria-label=\"Next project\" onClick={() => step(1)}>\n          <Caret flip />\n        </button>\n        {autoplay && (\n          <button\n            className={cn(STEP, 'relative ml-2')}\n            type=\"button\"\n            aria-label={playing ? 'Pause autoplay' : 'Start autoplay'}\n            onClick={() => setPlaying((on) => !on)}\n          >\n            {playing ? <PauseIcon /> : <PlayIcon />}\n            {/* Time left on the current card */}\n            <svg\n              aria-hidden=\"true\"\n              viewBox=\"0 0 44 44\"\n              className={cn(\n                'pointer-events-none absolute -inset-px -rotate-90 transition-opacity duration-300',\n                playing ? 'opacity-100' : 'opacity-0'\n              )}\n            >\n              <circle\n                ref={ringRef}\n                cx=\"22\"\n                cy=\"22\"\n                r=\"21\"\n                fill=\"none\"\n                stroke=\"currentColor\"\n                strokeWidth=\"1.5\"\n                pathLength={1}\n                strokeDasharray=\"1\"\n                strokeDashoffset=\"1\"\n                className=\"text-tween-lime\"\n              />\n            </svg>\n          </button>\n        )}\n      </div>\n\n      {/* Quiet while it plays itself, so a screen reader is not interrupted every few seconds */}\n      <p aria-live={playing && !held ? 'off' : 'polite'} className=\"sr-only\">\n        {active ? `${current + 1} of ${count}: ${active.title}` : ''}\n      </p>\n\n      <div aria-hidden=\"true\" className={cn(FADE, 'left-0 bg-linear-to-r')} />\n      <div aria-hidden=\"true\" className={cn(FADE, 'right-0 bg-linear-to-l')} />\n    </section>\n  );\n}\n
" } } }; diff --git a/apps/docs/registry/tweenui/arc-carousel.tsx b/apps/docs/registry/tweenui/arc-carousel.tsx index 117f58e..6341529 100644 --- a/apps/docs/registry/tweenui/arc-carousel.tsx +++ b/apps/docs/registry/tweenui/arc-carousel.tsx @@ -37,6 +37,14 @@ export interface ArcCarouselProps extends ComponentPropsWithoutRef<'section'> { /** A line under the title. Pass an empty string to drop it. */ description?: string; cta?: { label: string; href: string } | null; + /** + * Step to the next card on its own. On by default; pass `false` to turn it off. It + * pauses while the pointer is over the cards, while they have keyboard focus and + * while the block is off-screen, and adds a pause / play button with a progress ring. + */ + autoplay?: boolean; + /** Time each card holds the centre while autoplaying, in ms. */ + interval?: number; } /** @@ -58,6 +66,8 @@ const MOVE = 'transform 800ms cubic-bezier(0.98, 0.30, 0.30, 1), opacity 400ms e const SWIPE = 50; /** How long a wrapping card's off-screen copy lives: the move, plus a frame or two. */ const GHOST_LIFE = 850; +/** Autoplay never counts more than this per frame, so a backgrounded tab does not skip ahead. */ +const MAX_FRAME = 100; const slot = (offset: number) => { const t = Math.abs(offset); @@ -152,7 +162,7 @@ const STEP = cn( ); /** The soft edges the arc runs out under. They sit above the cards, below the copy. */ const FADE = - 'pointer-events-none absolute inset-y-0 z-[2] w-[clamp(2.5rem,14cqw,12rem)] from-tween-ink-deep via-tween-ink-deep/70 to-transparent'; + 'pointer-events-none absolute inset-y-0 z-2 w-[clamp(2.5rem,14cqw,12rem)] from-tween-ink-deep via-tween-ink-deep/70 to-transparent'; const Caret = ({ flip }: { flip?: boolean }) => ( ( ); +const PauseIcon = () => ( + +); + +const PlayIcon = () => ( + +); + const ArrowUpRight = ({ className }: { className?: string }) => ( (null); + const ringRef = useRef(null); + const progress = useRef(0); + // `playing` is the viewer's choice; `held` is a pause they did not ask for (hover, focus, off-screen) + const [playing, setPlaying] = useState(autoplay); + const holds = useRef({ hover: false, focus: false, offscreen: false }); + const [held, setHeld] = useState(false); + const hold = (key: keyof typeof holds.current, on: boolean) => { + holds.current[key] = on; + setHeld(Object.values(holds.current).some(Boolean)); + }; const place = (item: HTMLElement, offset: number) => { const s = slot(offset); @@ -277,6 +313,47 @@ export default function ArcCarousel({ const step = useCallback((direction: number) => setPosition((p) => p + direction), []); + // Autoplay starts off for viewers who asked the system for less motion; they can still press play + useEffect(() => { + setPlaying(autoplay && !prefersReducedMotion()); + }, [autoplay]); + + // Any step, by hand or on its own, gives the new card a full interval + useEffect(() => { + progress.current = 0; + ringRef.current?.style.setProperty('stroke-dashoffset', '1'); + }, [position, playing]); + + // The clock: counts only while playing and not held, so a pause resumes where it left off + useEffect(() => { + if (!playing || held || count < 2) return; + let frame = 0; + let last = performance.now(); + const tick = (now: number) => { + progress.current += Math.min(now - last, MAX_FRAME) / interval; + last = now; + if (progress.current >= 1) { + progress.current = 0; + step(1); + } + ringRef.current?.style.setProperty('stroke-dashoffset', String(1 - progress.current)); + frame = requestAnimationFrame(tick); + }; + frame = requestAnimationFrame(tick); + return () => cancelAnimationFrame(frame); + }, [playing, held, interval, count, step]); + + // Off-screen, autoplay waits + useEffect(() => { + const section = sectionRef.current; + if (!autoplay || !section || typeof IntersectionObserver === 'undefined') return; + const observer = new IntersectionObserver(([entry]) => + hold('offscreen', !entry.isIntersecting) + ); + observer.observe(section); + return () => observer.disconnect(); + }, [autoplay]); + // Swipe / drag: the release can happen outside the list useEffect(() => { const onUp = (event: PointerEvent) => { @@ -333,6 +410,7 @@ export default function ArcCarousel({ return (
-
+
{badge && (