Zum Inhalt springen
UI Kit
Accent

Shader-Verlauf als Hintergrund

Fließendes Licht in der Akzentfarbe und ihren Nachbarn, live mit WebGL gezeichnet. Faltet sich wie Seide, folgt Zeiger und Scrollen, mit Standbild als Rückfall.

4 VariantsEine von 6 Components in 3D-Hintergründe

Weiches Licht, das sich nie wiederholt

Ein Shader-Verlauf lässt Licht langsam in der Akzentfarbe deines Themes und ihren Nachbartönen fließen, live mit WebGL gezeichnet statt als schweres Video. Ein Schleier hält Text in jedem Bild lesbar, und ein Standbild springt ein, wo WebGL fehlt oder weniger Bewegung gewünscht ist.

Der „Hero-Hintergrund“ füllt einen ganzen Hero-Bereich mit weichem Licht hinter einer mittigen Überschrift. Das „Section-Band“ läuft über die ganze Breite mit Kennzahlen, das Licht sammelt sich rechts. Die „Hervorgehobene Karte“ lässt das Licht in einer Karte des Rasters leben und markiert die wichtigste Funktion. „Hinter einem Call to Action“ nutzt kräftiges, ruhigeres Licht, das die Abschlussfläche einer Seite füllt.

Setz den Verlauf einmal pro Seite ein, im Hero oder am Schluss, und halte die Sections dazwischen ruhig. Er übernimmt deine Akzentfarbe von selbst, ein neuer Markenton braucht also keine neue Datei.

Variants

Hero-HintergrundNeu in 1.2

Ein ganzer Hero-Bereich mit weichem Licht hinter einer mittigen Überschrift.

Section-BandNeu in 1.2

Ein Band über die ganze Breite mit Kennzahlen, das Licht sammelt sich rechts.

Hervorgehobene KarteNeu in 1.2

Das Licht lebt in einer Karte des Rasters und markiert die wichtigste Funktion.

Hinter einem Call to ActionNeu in 1.2

Kräftiges, ruhigeres Licht, das die Abschlussfläche einer Seite füllt.

Details

Was Shader-Verlauf mitbringt, aus Registry und Quellcode gelesen.

Bereich
Visuals
Variants
4
Version
1.0.0 · seit 1.2.0
Datei
components/ui/shader-gradient.tsx
Bringt mit
utilskitwebgl
npm-Pakete
Keine
Sprachen
Texte kommen über Props
Studio
Im Code anpassen
In Sammlungen
3D und Bewegung

Props

Die Schnittstelle ShaderGradientProps aus components/ui/shader-gradient.tsx. Beschreibungen stammen aus den Kommentaren im Code und sind auf Englisch. Nimmt außerdem alle Props von ShaderLayerProps an.

  • zoomoptional
    number

    Size of the folds, 1 is the designed scale, 2 twice as many

  • grainoptional
    boolean

    Fine film grain against banding, default true

  • sheenoptional
    number

    Bright seams where the folds turn, default 1, 0 is off

Barrierefreiheit

Aus dem Quellcode der Component abgeleitet.

  • Kommt ohne Client-State aus. Der Server schreibt sie vollständig, sie ist auch ohne JavaScript lesbar.

Bewegung

  • Ohne Animationen, sie steht sofort ruhig da.

Quellcode

Die Datei, die aiw add in dein Projekt legt. Sie gehört danach dir.

Datei anzeigen, 79 Zeilen
components/ui/shader-gradient.tsx
'use client';

import { ACCENT_PALETTE, GLSL_NOISE, ShaderBackdrop, ShaderCanvas, type ShaderLayerProps } from '@/components/ui/webgl';

/*
 * Flowing light in the accent color and its two neighbours on the color
 * wheel. Domain warped noise: the noise bends its own coordinates twice, so
 * the light folds like silk instead of drifting like clouds. Soft by nature,
 * so it renders at half resolution and stays cheap.
 */

export interface ShaderGradientProps extends ShaderLayerProps {
  /** Size of the folds, 1 is the designed scale, 2 twice as many */
  zoom?: number;
  /** Fine film grain against banding, default true */
  grain?: boolean;
  /** Bright seams where the folds turn, default 1, 0 is off */
  sheen?: number;
}

const FRAG = `${GLSL_NOISE}
uniform float u_zoom;uniform float u_grain;uniform float u_sheen;
void main(){
vec2 p=(gl_FragCoord.xy-.5*u_res)/min(u_res.x,u_res.y)*1.35*u_zoom;
float t=u_time*.055;
p+=(u_mouse-.5)*.3*u_hover;
p.y+=(u_scroll-.5)*.5;
vec2 q=vec2(fbm(p+vec2(0.,t)),fbm(p+vec2(5.2,1.3)-t));
vec2 r=vec2(fbm(p+1.9*q+vec2(1.7,9.2)+.7*t),fbm(p+1.9*q+vec2(8.3,2.8)-.5*t));
float f=fbm(p+1.7*r);
vec3 c=mix(u_c0,u_c1,smoothstep(.3,.75,f));
c=mix(c,u_c2,smoothstep(.4,.85,r.x)*.85);
float s=pow(1.-abs(f*2.-1.),7.)*u_sheen;
c=mix(c,u_c3,smoothstep(.55,.95,q.y)*.5+s*.45);
float a=smoothstep(.12,.82,f*1.15+r.y*.35)*.8+.2;
a*=mix(.5,.92,u_dark)*u_intensity;
c+=(hash(gl_FragCoord.xy+fract(u_time*7.))-.5)*.035*u_grain;
a=clamp(a,0.,1.);
gl_FragColor=vec4(c*a,a);
}`;

/** The still picture: three soft pools of the same colors */
const FALLBACK = [
  'radial-gradient(55% 65% at 18% 28%, color-mix(in oklab, var(--primary) 46%, transparent), transparent 72%)',
  'radial-gradient(48% 60% at 82% 22%, color-mix(in oklab, oklch(from var(--primary) l c calc(h + 46)) 40%, transparent), transparent 70%)',
  'radial-gradient(70% 60% at 58% 92%, color-mix(in oklab, oklch(from var(--primary) l c calc(h - 52)) 38%, transparent), transparent 72%)',
].join(', ');

/**
 * Flowing gradient light behind any content. With children it renders a box
 * (give it size and radius through className), without children only the
 * layer for a `relative` parent.
 */
export function ShaderGradient({ intensity = 1, speed = 1, colors, interactive = true, zoom = 1, grain = true, sheen = 1, fallback, scrim = 'soft', scrimStrength, scrimColor, children, className, contentClassName, layerClassName }: ShaderGradientProps) {
  return (
    <ShaderBackdrop
      scrim={scrim}
      scrimStrength={scrimStrength}
      scrimColor={scrimColor}
      className={className}
      contentClassName={contentClassName}
      layer={
        <ShaderCanvas
          fragment={FRAG}
          colors={colors ?? ACCENT_PALETTE}
          uniforms={{ u_zoom: zoom, u_grain: grain ? 1 : 0, u_sheen: sheen }}
          speed={speed}
          intensity={intensity}
          scale={0.5}
          pointer={interactive}
          fallback={fallback ?? FALLBACK}
          className={layerClassName}
        />
      }
    >
      {children}
    </ShaderBackdrop>
  );
}

Häufige Fragen

Wie installiere ich Shader-Verlauf?

Mit aiw add @ai-website/shader-gradient. Der Befehl legt die Datei components/ui/shader-gradient.tsx in dein Projekt, der Code gehört danach dir. Mit dabei sind webgl. Weitere npm-Pakete braucht sie nicht.

Welche Varianten hat Shader-Verlauf?

4 Varianten, Hero-Hintergrund, Section-Band, Hervorgehobene Karte und Hinter einem Call to Action.

Kann ein KI-Assistent Shader-Verlauf einbauen?

Ja. Über den MCP-Server der aiw CLI finden Claude, Cursor, GitHub Copilot, Windsurf, Codex und Gemini Shader-Verlauf mit aiw_components und installieren sie mit aiw_add @ai-website/shader-gradient.

Oft gesucht

Direkt zu

In die Zwischenablage kopiert