Build SDF Liquid Glass
Create a bounded displacement lens with a sharp, accessible content layer.
Workflow
- Inspect the existing component framework, card dimensions, background, and browser targets.
- Install
vasowith the repository's package manager. - Adapt
assets/react/SDFLiquidGlass.tsxandsdf-liquid-glass.cssfor React projects. Preserve the same layer separation elsewhere. - Render Vaso as an absolute background layer and place text and controls in a sibling overlay. Do not let the displacement filter process readable content.
- Measure the host with
ResizeObserverinstead of hard-coding responsive width. - Keep a translucent CSS background under the effect so unsupported browsers still show a usable card.
- Verify light, dark, and detailed backgrounds. Drag or resize the surface and check that the map follows its bounds.
Default Tuning
Start with:
radius: 16depth: 0.58blur: 0.4dispersion: 0.32- Stable notification height:
86px
Read references/tuning.md before increasing depth or dispersion.
Quality Gates
- Keep foreground content crisp and outside the filtered layer.
- Reject doubled text, rainbow fringes across glyphs, stale canvas dimensions, and clipped rounded corners.
- Keep
depthsubtle for operational UI; use stronger distortion only for decorative surfaces. - Test resize behavior, Chromium desktop, and a mobile viewport.
- Check the console and preserve readable CSS fallback colors.
Default Preference
If the user asks only for an optimized glass material without naming D/SDF/Vaso, use $build-webgl-liquid-glass instead.
