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. Spotlight Gallery Hero

Spotlight Gallery Hero

PreviousNext

A pinned hero where an oversized 3×3 gallery shrinks into view while a giant logo scales down and travels to the top corner and the headline fades in word by word.

Open in
spotlight-gallery-hero-demo

A slow archive of the hour after sunset, gathered roll by roll from the coastlines the light forgets.

Enter the Archive
Field notes from the blue hour

The Rolls

Write to Noct

components/ui/spotlight-gallery-hero-demo.tsx
import { SpotlightGalleryHero } from "@/registry/tween/spotlight-gallery-hero"

export function SpotlightGalleryHeroDemo() {
  return <SpotlightGalleryHero />
}

Installation

pnpm dlx shadcn@latest add https://tweenui.dev/r/spotlight-gallery-hero.json

Usage

import { SpotlightGalleryHero } from "@/components/ui/spotlight-gallery-hero"
<SpotlightGalleryHero
  images={[
    "https://images.unsplash.com/photo-1602172525219-35383c054399?w=2000",
    "https://images.unsplash.com/photo-1652179023625-36d83d300a90?w=2000",
    "https://images.unsplash.com/photo-1523497873958-8639c94677f2?w=2000",
    "https://images.unsplash.com/photo-1547608763-e1fab6036a33?w=2000",
    "https://images.unsplash.com/photo-1485780974122-c91bb5dcf725?w=2000",
    "https://images.unsplash.com/photo-1771784970156-02083a4d26e5?w=2000",
    "https://images.unsplash.com/photo-1546273640-dd139ba0a3aa?w=2000",
    "https://images.unsplash.com/photo-1559246875-dfb359b7710c?w=2000",
    "https://images.unsplash.com/photo-1569744046958-7b5e6bb344a8?w=2000",
  ]}
  logoAlt="Noct"
  headline="A slow archive of the hour after sunset."
  ctaLabel="Enter the Archive"
/>

How it works

The hero pins for four viewport heights without pin spacing, so the following section is pushed down by three viewport heights with a top margin and slides over the hero at the end of the pin.

  • Gallery: a 3×3 grid three viewports wide and tall, centered on the middle image, scales from 1 to 0.5 across the first 75% of the pin while each image zooms from 1.25 to 1.
  • Logo: sits in a sticky layer at the bottom-left of the scroller, scales from 6 (2 on narrow containers) down to 1 and travels to the top-left over the same range.
  • Footer: blurs, shrinks and fades out between 5% and 25%.
  • Headline: split into words with SplitText; the words and the button fade in one after another between 10% and 60%.

A second scrubbed trigger moves the hero content up 25% and fades a black overlay in as the next section enters. Both triggers use usePreviewScroller. With prefers-reduced-motion: reduce the final hero state is shown.

Props

PropTypeDefaultDescription
imagesstring[]9 imagesNine images, filled column by column into a 3×3 gallery.
logoSrcstringinline markLogo image that scales and travels.
logoAltstring"Noct"Alt text for the logo.
headlinestringdefault copyHeadline split into words that fade in.
ctaLabel / ctaHrefstring"Enter the Archive" / "#"Button label and link.
footerReactNodedefault copyFooter text that blurs out.
sections[ReactNode, ReactNode]["The Rolls", "Write to Noct"]Headings of the two sections after the hero.
accentstring"#f2b880"Button background and inline logo color.
scrollerHTMLElement | string | null—Optional ScrollTrigger scroller; defaults to the preview one.
classNamestring—Extra classes on the outer container.
Name Swap ScrollSlit Rotate Hero Scroll

On This Page

InstallationUsageHow it worksProps

Contribute

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