transitions
Blur Route Transition
A minimal fade, low blur and focus-aware handoff between keyed views.
- transitions
- route
- blur
- production
Live preview
Quick usage
import { BlurRouteTransition } from "@pinky-ui/experiences";
<BlurRouteTransition transitionKey={pathname}>{page}</BlurRouteTransition>Presets
Default
The restrained Pinky production default.
Default behaviour
Quiet
A flatter or lower-intensity treatment for dense pages.
duration={0.18} blur={3}
Install
Add @pinky-ui/experiences as a dependency, or use the CLI to copy this component's source directly into your project — no dependency to manage, fully editable.
npm install @pinky-ui/experiencespnpm add @pinky-ui/experiencesyarn add @pinky-ui/experiencesnpx pinky-ui add blur-route-transitionPrefer to run the whole repository locally instead?
git clone https://github.com/florash/Pinky-UI.git
cd Pinky-UI
npm install
npm run devProps
| Prop | Type | Default | Description |
|---|---|---|---|
| blur | number | 5 | Small blur radius used during the handoff. |
| className | string | — | Styles the outer composition without changing its behaviour. |
| disabled | boolean | false | Uses the static, readable composition. |
Accessibility
- The keyed region receives focus after a content change when requested.
- Content remains mounted in a predictable region with no focus trap.
Performance
- Short, low-radius blur limits paint cost.
- Reduced motion avoids the transition lifecycle entirely.
Reduced motion
AnimatePresence is bypassed and new content is rendered and focused immediately.
When to use
- Routine production route or tab transitions
When not to use
- Large persistent surfaces on low-power devices
Skill
Purpose
BlurRouteTransition is the restrained default for keyed route or content changes: a small fade, blur and vertical handoff. Use it when continuity helps but branded choreography would be excessive.
Use about 3–6px blur and 0.18–0.3 seconds. Avoid large blurred surfaces on low-power devices, delaying data-bound content or nesting multiple route transitions. Motion must never be the only sign that navigation occurred.
The wrapper can receive focus after change so keyboard and screen-reader context is not lost. Reduced motion bypasses AnimatePresence and replaces content immediately. Prefer this over Bubble or Liquid Wipe for routine product navigation.