July 27, 2026/beginner/Page Transitions/Signifly

Signifly Theme Fade

Scroll-driven page background theme fade (signifly.com). Sections are transparent; a single shared wrapper owns background-color and color. A ScrollTrigger per section fires at the viewport-center line (top 50% / bottom 50%) and tweens the wrapper to that section's theme in either scroll direction, so the whole page — sticky header included, via currentColor — fades to black, white, or any custom per-section palette. Respects prefers-reduced-motion with instant swaps.

signifly.

01 — One shared background

Every section here is transparent.

The page itself owns the color. Keep scrolling — the next section is dark-themed, and the whole page will fade with it.

02 — Fade to black

Cross the middle of the viewport and the page goes dark.

A ScrollTrigger per section fires at the 50% line and tweens the wrapper's background-color and color. Everything drawn in currentColor inverts with it — including the header and divider up top.

03 — And back to white

Scrolling up replays it in reverse.

onEnter and onEnterBack both apply the section's theme, so the fade is direction-agnostic — no separate leave logic needed.

04 — Any palette

Not just black and white.

Sections can declare custom bg / fg values instead of a named theme — the engine just tweens whatever it's handed.

05 — That's the whole trick

Transparent sections. One tweened element.

About thirty lines of JavaScript: one ScrollTrigger per section, one gsap.to on the wrapper, and currentColor doing the rest.

import SigniflyThemeFade from "./index.jsx";
import { signiflyThemeFade } from "../demo-data.js";

export default function SigniflyThemeFadeDemo() {
  return <SigniflyThemeFade {...signiflyThemeFade} />;
}
  • gsap
  • @gsap/react

Related Components

3MO AGO
Section Transition Systempage-transitions
3MO AGO
Shutter Sectionpage-transitions
3MO AGO
GSAP Crossfade Transitionpage-transitions