
Timeline
Components
A fullscreen image carousel where the next slide emerges from a smaller portal and expands to take over the screen.
Portal Carousel replaces conventional sliding transitions with an expanding image portal. A smaller preview of the upcoming slide sits within the current scene. When click anywhere on screen, it grows to fill the screen, becoming the new background while another preview introduces what comes next.
Each slide combines fullscreen imagery, an editorial title, a position counter, and a labelled NEXT preview. The transition creates a sense of continuity, making visitors feel as though they are moving into the next image rather than simply switching slides.
Designed for photography, fashion, creative portfolios, and campaign websites, Portal Carousel turns image navigation into a distinctive visual experience. Its fullscreen presentation gives every image room to stand out, while the repeating portal interaction keeps the sequence cohesive.
import PortalCarousel from '@/components/effects/portal-carousel' const page = () => { return ( <> <PortalCarousel /> </> )} export default pageConsider a creative agency showcasing its strongest campaigns. Instead of displaying projects in a conventional grid, the homepage opens with a fullscreen campaign image, a project title, and a smaller preview of the next project.
When visitors activate NEXT, the upcoming campaign expands from the preview and takes over the screen. Another preview appears, inviting visitors to continue exploring the portfolio.
Each project receives a distinctive entrance without interrupting the browsing experience. The carousel establishes visual interest, while individual case study pages provide the strategy, execution, and results behind the work.
Portal Carousel is not ideal for content-heavy websites, large product catalogues, or interfaces where users need to compare several items simultaneously. Its fullscreen presentation works best when imagery leads the experience.
Avoid combining it with multiple competing animations. The portal transition should remain the defining interaction rather than getting lost among unnecessary visual effects.
Prioritise the active and upcoming images, use compressed assets, and keep expansion animations lightweight. Preloading the next slide helps prevent delays or blurred visuals during the transition.
Avoid rendering unnecessary inactive slides or running decorative animations offscreen. Simplify movement on lower-powered devices when necessary to maintain responsiveness.
Provide keyboard-accessible controls, meaningful image alternatives, readable titles, and visible focus states. The NEXT preview should remain recognisable as a navigation element.
On mobile, preserve image focal points and use comfortable touch targets. Respect prefers-reduced-motion by replacing the expanding portal with a simple fade or immediate slide change.
| Prop | Type | Default | Description |
|---|---|---|---|
label | string | Next | Text on the tag that sits at the cursor. |
thumbWidth | number | 200 | Size of the square preview, in px. Capped at 42vw. |
followSpeed | number | 0.14 | How quickly the preview chases the cursor, from 0.02 (lazy) to 1 (locked on). |
duration | number | 1.2 | Time for the preview to expand to fullscreen, in seconds. |
ease | string | expo.out | GSAP ease for the expansion. |
Portal Carousel is an animated React image carousel where a smaller preview expands into a fullscreen slide, creating a continuous transition between images.
Instead of sliding images horizontally or fading between them, Portal Carousel expands the upcoming image from a smaller frame until it fills the screen.
The fullscreen expansion should be replaced with a simpler transition while preserving the carousel's content and navigation.
Its presentation can be adapted through imagery, typography, preview placement, and transition behaviour. Exact configurable properties depend on the shipped implementation.
Need a custom effect? Tell us what to create.