July 1, 2026/Intermediate/Cursor Effects/Olivier Larose — Mesh Dojo

Split Vignette

Cursor-following vignette that visually splits across full-screen gallery sections. Each 120vh section uses clip-path to clip a position:fixed vignette bound to shared spring-smoothed mouse values, so the vignette's image swaps at section seams. Backgrounds parallax ±200px on scroll; the final section swaps the vignette image per hovered name. Rebuilt from Olivier Larose's Mesh Dojo demo.

Dyal Thak

Leidinger Matthias

Mark Rammers

Landon Speers

image
"use client";
import { useEffect } from "react";
import SplitVignette from "./index.jsx";
import { splitVignette } from "../demo-data.js";
import styles from "./demo.module.css";

export default function SplitVignetteDemo() {
  // Original demo runs Lenis smooth scroll on the page
  useEffect(() => {
    let lenis;
    let cancelled = false;

    (async () => {
      const { default: Lenis } = await import("lenis");
      if (cancelled) return;
      lenis = new Lenis({ autoRaf: true });
    })();

    return () => {
      cancelled = true;
      lenis?.destroy();
    };
  }, []);

  return (
    <div className={styles.demo}>
      <SplitVignette projects={splitVignette.projects} />
    </div>
  );
}
  • framer-motion
  • lenis

Related Components

1MO AGO
Cursor Repel Textcursor-effects
3MO AGO
Cursor Hover Labelcursor-effects
3MO AGO
Floating Gallerycursor-effects