tween
ComponentsTemplatesShowcaseContact

Command Palette

Search for a command to run...

Getting Started
  • Introduction
  • Installation
  • StoryNew
Guides
  • Motion Principles
  • Scroll and Smooth Scroll
  • Performance and Accessibility
Scroll Animations
  • Sticky Cards Scroll
  • Rise Fan Cards Scroll
  • Rotate Stack Scroll
  • Doodle Lens ScrollNew
  • Slit Open Hero ScrollNew
  • Logo Mask Zoom ScrollNew
  • ASCII Dissolve ScrollNew
  • Lottie Flight ScrollNew
  • Inline Icon Text ScrollNew
  • Starfield ScrollNew
  • Name Swap ScrollNew
  • Spotlight Gallery HeroNew
  • Slit Rotate Hero ScrollNew
  • Stroke Cover ScrollNew
  • Stroke Rows ScrollNew
Text Animations
  • Text Skew Reveal
  • Block Text Reveal
Hover & Cursor
  • Image Trail Cursor
  • Cursor Depth Logo
  • Physics Tag Drop
  • Elastic Card ListNew
  • Magnetic Cards SpringNew
Sliders & Carousels
  • Wheel Fullscreen Carousel
  • Ripple Displacement Slider
  • Three.js Blend Slider
  • Stacked Deck Slider
  • Orbit Cylinder SliderNew
  • Fan Stack SliderNew
  • Exponential Strip SliderNew
  • Dual Column SliderNew
Galleries & Grids
  • Scroll Wave Gallery
Menus & Navigation
  • Shrink Page MenuNew
Preloaders & Intros
  • Floating Items RevealNew
  • Word Cycle RevealNew
  • Tile Grid LoaderNew
Page Transitions
  • Panel Assembly TransitionNew
3D & WebGL
  • Fractal Glass Hero
  • Fluid Cursor Canvas
  • Fluid Portrait Hero
  • Fluid Gradient Canvas
  • Inversion Lens HoverNew
UI Elements
  • Circular Widgets
  • Vinyl Cover
  • Image Explosion Footer
  • Accordion Image FramesNew

(Tween) — Motion registry

Animated components & full sites, one command away.

Product

  • Components
  • Templates
  • Installation
  • Guides
  • Blog
  • Contact

Categories

  • Scroll Animations
  • Text Animations
  • Hover & Cursor
  • Sliders & Carousels
  • Galleries & Grids
  • Menus & Navigation
  • Preloaders & Intros
  • Page Transitions
  • 3D & WebGL
  • UI Elements
TWEEN
ease: power2.inOut0.00s
© 2026 TweenBack to topBuilt by mohammad
  1. Docs/
  2. Components/
  3. Panel Assembly Transition

Panel Assembly Transition

PreviousNext

A page transition where full-width panels sweep in to build a cover, a heading rises word by word through masks, and everything retracts to show the new page.

Open in
panel-assembly-transition-demo

Descent

Velhaus Atelier

components/ui/panel-assembly-transition-demo.tsx
import { PanelAssemblyTransition } from "@/registry/tween/panel-assembly-transition"

export function PanelAssemblyTransitionDemo() {
  return <PanelAssemblyTransition />
}

Installation

pnpm dlx shadcn@latest add https://tweenui.dev/r/panel-assembly-transition.json

Usage

import { PanelAssemblyTransition } from "@/components/ui/panel-assembly-transition"
<PanelAssemblyTransition
  brand="Orrin"
  heading="Orrin Landscape Office"
  pages={[
    { label: "Index", content: <IndexPage /> },
    { label: "Gardens", content: <GardensPage /> },
    { label: "Office", content: <OfficePage /> },
  ]}
/>

The component is a small self-contained site: a relative overflow-hidden container with a nav and one page visible at a time. Clicking a link runs the transition:

  • Assemble. rows full-width panels (default 4) scale scaleX 0 → 1 from the left over 1s on a hop curve (cubic-bezier(0.9, 0, 0.1, 1)), 0.075s apart. 0.6s before they finish, the heading's words rise from y: 100% to 0% through their masks (power4.out, 0.1s apart).
  • Swap. The active page changes under the cover.
  • Retract. The words drop back to 100% while the panels, now anchored on the right, scale back to 0 on the same hop curve.

The heading is split with GSAP SplitText (type: "words", mask: "words") after document.fonts.ready, and the split is reverted on unmount. The overlay blocks pointer events while it is up. Clicks are ignored mid-transition. With prefers-reduced-motion: reduce, the page swaps instantly.

Props

PropTypeDefaultDescription
pagesPanelAssemblyPage[]4 default pagesEach page is { label, content }. One link per page.
brandstring"Velhaus"Brand text top-left. Clicking it goes to the first page.
headingstring"Velhaus Atelier"Text that rises on the panels mid-transition.
rowsnumber4Number of horizontal panels.
panelColorstring"#ebe4d8"Fill colour of the panels.
headingColorstring"#1c1814"Colour of the transition heading.
defaultIndexnumber0Index of the page shown first.
onPageChange(index: number) => void—Called with the new index when the page swaps.
classNamestring—Extra classes on the outer container.
Tile Grid LoaderFractal Glass Hero

On This Page

InstallationUsageProps

Contribute

  • Report an issue
  • Request a feature
  • Edit this page