Documentation/25 Transitions Reference

25 Signature Page Transitions

Every transition in motion-organic is built from scratch with zero dependencies, 120 FPS requestAnimationFrame loops, harmonic spring momentum, SVG clip paths, and Web Audio synthesized soundscapes.

#Transition ClassReact IDCategorySoundPreset
01OrganicBlobPortal"organic-blob"Harmonic SVGliquidliquid
02TextPortalZoom"text-portal"Typography Stencilwhooshcinematic
03CardExpandPortal"card-expand"3D Meshfabricsnappy
04LiquidTearPeel"liquid-tear"Elastic Splitliquidliquid
05HorizonCylinderRoll"horizon-cylinder"Perspective Rollwhooshcinematic
06MetaballMergePortal"metaball-merge"Fluid Fusionliquidliquid
07RibbonSliceWeave"ribbon-slice"Staggered Bandssubtlesilk
08ConcentricHaloPortal"concentric-halo"Radial Wavesportalgentle
09LiquidBlobTransition"liquid-blob"Harmonic SVGliquidliquid
10ApertureIrisTransition"aperture-iris"Mechanical Shuttershuttersnappy
11RackFocusTransition"rack-focus"Optical Depthsubtlecinematic
12CurtainPeelTransition"curtain-peel"Elastic Fabricfabricsilk
13ChromaticFluidDisplacement"chromatic-fluid"Optics & Refractionwhooshliquid
14DimensionalTunnelWarp"dimensional-tunnel"3D Warpportalsnappy
15NeuralSynapseBloom"neural-synapse"Procedural Growthwhooshgentle
16CrosshairZoom"crosshair-zoom"Precision Opticsshuttersnappy
17ColumnarCascade"column-cascade"Architecturalsubtlesilk
18PixelDissolve"pixel-dissolve"Retro Matrixsubtlesnappy
19DiagonalRazorWipe"diagonal-razor"Kinetic Slicewhooshsnappy
20NoiseDisintegration"noise-dissolve"Generative Noisesubtlegentle
21ShutterStack"shutter-stack"Mechanicalshuttersnappy
22TypographicShatter"typo-shatter"Physics Shattershutterbouncy
23ElementisShutterWipe"elementis-shutter"Cinema Opticsfabricsilk
24MewDiagonalSlash"mew-slash"Kinetic Bladewhooshsnappy
25OscarLiquidBubblePortal"oscar-bubble"Harmonic SVGliquidliquid

How to Use Transitions

1. Declarative React Link with <Mo>

tsx
1import { Mo } from 'motion-organic/react';
2
3export function Navigation() {
4 return (
5 <Mo
6 href="/portfolio"
7 transition="curtain-peel"
8 preset="silk"
9 sound="fabric"
10 duration={850}
11 >
12 View Selected Work
13 </Mo>
14 );
15}

2. Programmatic Hook: usePageTransition

tsx
1import { useRouter } from 'next/navigation';
2import { usePageTransition } from 'motion-organic/react';
3
4export function CheckoutButton() {
5 const router = useRouter();
6 const { trigger, isAnimating } = usePageTransition('aperture-iris', {
7 sound: 'shutter',
8 preset: 'snappy',
9 blades: 9,
10 });
11
12 const handleCheckout = async (e: React.MouseEvent) => {
13 await trigger(e, () => {
14 router.push('/order-confirmation');
15 });
16 };
17
18 return (
19 <button onClick={handleCheckout} disabled={isAnimating}>
20 {isAnimating ? 'Processing...' : 'Complete Purchase'}
21 </button>
22 );
23}