Interaction
Hover, focus or Preview runs the gallery film. Leave, offscreen and background stop it. Buttons press, search accepts input, switches toggle, sliders support dragging and arrow keys, and the menu supports arrows, Enter and Escape.
States
The film waits at its current phase, flows when active, swells while pressed and returns on release.
Enter and exit
The menu expands from the round trigger and closes into it; rapid changes preserve the current progress.
Effect notes
Scale 1×; radius 40px; backdrop plain; interactive. View showcase; neutral #f1f1f1 page; button “Continue”; search “Search”; menu “Select chats / Read all”; Volume defaults to 40; switch defaults on.
Effect notes
Jiggle (wobble): 0.4; Speed (speed): 1; Seed (seed): 7; Pop effect (pop): droplets; Paused (paused): false.
Effect notes
See-through (seeThrough): 0.3; Bend (seeThroughBend): 0.3; Refraction (refraction): 0.15; Opacity (opacity): 0; Oil opacity (oilOpacity): 1.
Effect notes
Liquid glass (glass): 0.95; Oil film (iridescence): 0.5; Oil size (filmScale): 4.85; Oil coverage (oilCoverage): 0.73; Oil edge (px) (oilEdge): 18; Oil edge fade (oilEdgeFade): 2.33; Clear centre (clearCenter): 0.57; Film thickness (nm) (thickness): 480; Drainage (drainage): 0.35; Swirl (swirl): 0.5; Reflectivity (reflectivity): 1.3; Dispersion (dispersion): 1; Glass bevel (px) (bevel): 14.
Effect notes
Soap palette (soapPalette): natural; Tint (tint): auto; Soap color (soapColor): auto; Soap shades (soapShadeColor): auto; Soap highlights (soapHighlightColor): auto; Shade colour (bottomShadeColor): #ffffff; Red and pink (soapPaletteRed): #ff6685; Gold (soapPaletteGold): #f6d365; Green (soapPaletteGreen): #83e8a9; Cyan (soapPaletteCyan): #60dce9; Blue (soapPaletteBlue): #7799ff; Violet (soapPaletteViolet): #c084fc.
Effect notes
Mirage (mirage): 0.7; Mirage reach (reach): 2; Pointer parallax (tilt): 1; Top highlight length (topLength): 1; Top highlight fade (topFade): 0.4; Top highlight tail (topTail): 1; Lighting (environment): auto; Inner reflection shape (windowTwinShape): mirror; Inner reflection (windowTwin): false; Key reflection (keyLight): true; Bottom shade (bottomShade): false.
Effect notes
Window size (windowSize): 0.75; Window width (windowWidth): 0.8; Window head (windowHead): 0.7; Window tail (windowTail): 0.6; Window intensity (windowIntensity): 0.85; Window gradient (windowGradient): 0.96; Window length (windowLength): 1.3; Window margin (windowMargin): 0.85; Window bend (windowBend): 0.75; Glint size (glintSize): 1.65; Glint intensity (glintIntensity): 0; Glint distance (glintDistance): -0.45; Glint height (glintHeight): 0.65; Window style (windowStyle): edge; Glint shape (glintShape): auto; Window light (windowLight): false.
Effect notes
Pixel ratio (maxDpr): 2.
Effect notes
Oil opacity is independent of tint opacity. Clear centre clears the middle; oil edge affects large controls. Dispersion needs glass, window and glint controls need window light, and six palette colours need custom mode. Open the menu to inspect see-through and bend.
Timing
Menu response basis 500 ms; jiggle 0.4; film speed 1. Film flows continuously. Toolbar pause freezes clocks and resumes at the current phase.
Repeated input and interruption
Rapid changes retarget current state without a queue. Inspector defaults are saved; live inputs, selections, menus, sliders, focus and observation speed are transient. Preview, descriptions, Motion data, offline HTML and source exports share the settings.
Reduced motion
Film stays still without automatic wobble or pop animation. Menus settle immediately; native search, switches, sliders and keyboard actions remain available.
Default configuration
These values come from the maintained default configuration. Editor drafts and exported changes can differ.
{
"schemaVersion": 2,
"recipeId": "soap-bubble",
"durationMs": 500,
"delayMs": 0,
"easing": [
0,
0,
1,
1
],
"offsetX": 0,
"offsetY": 0,
"scale": 1,
"loop": false,
"interruption": "retarget",
"tracks": [],
"soapBubble": {
"wobble": 0.4,
"speed": 1,
"seed": 7,
"seeThrough": 0.3,
"seeThroughBend": 0.3,
"refraction": 0.15,
"opacity": 0,
"oilOpacity": 1,
"uiScale": 1,
"radius": 40,
"glass": 0.95,
"iridescence": 0.5,
"filmScale": 4.85,
"oilCoverage": 0.73,
"oilEdge": 18,
"oilEdgeFade": 2.33,
"clearCenter": 0.57,
"thickness": 480,
"drainage": 0.35,
"swirl": 0.5,
"reflectivity": 1.3,
"dispersion": 1,
"bevel": 14,
"mirage": 0.7,
"reach": 2,
"tilt": 1,
"windowSize": 0.75,
"windowWidth": 0.8,
"windowHead": 0.7,
"windowTail": 0.6,
"windowIntensity": 0.85,
"windowGradient": 0.96,
"windowLength": 1.3,
"windowMargin": 0.85,
"windowBend": 0.75,
"glintSize": 1.65,
"glintIntensity": 0,
"glintDistance": -0.45,
"glintHeight": 0.65,
"topLength": 1,
"topFade": 0.4,
"topTail": 1,
"maxDpr": 2,
"element": "showcase",
"page": "neutral",
"backdrop": "plain",
"pop": "droplets",
"soapPalette": "natural",
"environment": "auto",
"windowStyle": "edge",
"glintShape": "auto",
"windowTwinShape": "mirror",
"paused": false,
"windowLight": false,
"windowTwin": false,
"keyLight": true,
"bottomShade": false,
"defaultChecked": true,
"disabled": false,
"tint": "auto",
"soapColor": "auto",
"soapShadeColor": "auto",
"soapHighlightColor": "auto",
"bottomShadeColor": "#ffffff",
"soapPaletteRed": "#ff6685",
"soapPaletteGold": "#f6d365",
"soapPaletteGreen": "#83e8a9",
"soapPaletteCyan": "#60dce9",
"soapPaletteBlue": "#7799ff",
"soapPaletteViolet": "#c084fc",
"toggleColor": "#28c64f",
"sliderFrom": "#0986ff",
"sliderTo": "#9d7bff",
"buttonText": "Continue",
"searchPlaceholder": "Search",
"menuFirst": "Select chats",
"menuSecond": "Read all",
"sliderLabel": "Volume",
"sliderValue": 40
}
}Source code and reuse
The corresponding GitHub example contains the public renderer, default configuration and runnable entry point. Read the interaction notes and preserve the included third-party and font notices when reusing it. The complete website editor is maintained separately.
Using it in your own project
Open the editor to run the actual preview and compare changes. This document does not run a separate imitation. Recheck content, input, focus and layout after integrating an export.
Catalog provenance label: 独立实现 · ReactDrops 视觉参考. Third-party examples retain their own license and attribution; all current effect renderers are public; the full editor is maintained separately.