Kinetic UI
Back to Introduction
Page Transitions

Shutter Transition

An elegant, cinematic page transition that splits the screen perfectly in half and slides apart to reveal the next page.

Quick Actions
CLI Installation
npx kinetic-ui-cli@latest add shutter-transition
Shutter Transition

Shutter Reveal

An elegant physical shutter transition that splits the screen perfectly in half.

Installation

npx kinetic-ui-cli@latest add shutter-transition

Architecture

The Shutter Transition is built for pure performance. Instead of animating height or width (which triggers expensive browser reflows), it relies entirely on hardware-accelerated CSS transforms.

When the transition triggers:

  1. Two div elements (representing the two halves of the shutter) are mounted.
  2. If direction="vertical", the top panel animates from translateY(-100%) to 0%, and the bottom from 100% to 0%.
  3. If direction="horizontal", the left panel animates from translateX(-100%) to 0%, and the right from 100% to 0%.

This ensures 60fps performance on all devices.

Usage Guide

1. Import the Component

Import the component into your React or Next.js page:

import { ShutterTransition } from "@/components/creative/shutter-transition";

2. Implementation Example

Render the component and customize its behavior by passing props:

import { ShutterTransition } from "@/components/creative/shutter-transition";

export default function Example() {
  return (
    <div className="w-full flex items-center justify-center p-8">
      <ShutterTransition
        isActive{true}
        color="example"
        direction{/* value */}
      >
        <div>Content goes here</div>
      </ShutterTransition>
    </div>
  );
}
Performance Notes
  • Uses CSS hardware acceleration via GPU transform-binds.
  • Damped interpolation minimizes paint-redraw flashes.
  • Tree-shakable import: only compiles elements requested.
Accessibility Notes
  • Full keyboard focus-ring navigation support (`Tab`/`Shift+Tab`).
  • ARIA roles mapped correctly for assistive screen readers.
  • Respects `prefers-reduced-motion` system toggles.