Refract exports a single iframe. It works on any platform that supports custom HTML. No plugins, no SDKs.
Choose a preset, customize it, add interactions, then click Build. Your effect is now live with an embed URL.
Click the Embed button in the export panel. Copy the iframe snippet.
<iframe src="https://refract.build/embed/YOUR_PROJECT_ID" style="width:100%;height:100%;border:none;position:absolute;inset:0;" allow="autoplay" loading="lazy" ></iframe>
In the Webflow Designer, drag an Embed component (under Components → More) into your section. Paste the iframe code. Set the parent div to position: relative and give it a height (e.g., 100vh for a full-screen hero).
Tip: Set the embed’s parent to overflow: hidden and border-radius if you want rounded corners on the effect.
That’s it. The effect renders inside the iframe with zero dependencies on your Webflow site. No custom code settings, no external scripts, no build steps.
Choose a preset, customize it, add interactions, then click Build.
Copy just the embed URL from the export panel:
https://refract.build/embed/YOUR_PROJECT_IDIn the Framer canvas, insert an Embed component (search “Embed” in the components panel). Paste your URL. Resize the frame to fill your section.
Tip: For a full-bleed hero, set the Embed to 100% width and 100vh height, then position it absolutely behind your content.
Publish your Framer site. The Refract effect loads inside a standard iframe. No plugin required.
Choose a preset, customize it, add interactions, then click Build.
Drop the iframe into any React component. No package install needed.
// app/page.tsx or any component export default function Hero() { return ( <section style={{ position: 'relative', height: '100vh' }}> <iframe src="https://refract.build/embed/YOUR_PROJECT_ID" style={{ position: 'absolute', inset: 0, width: '100%', height: '100%', border: 'none', }} allow="autoplay" loading="lazy" /> {/* Your content goes here, on top */} </section> ); }
For dynamic scenes (swap shaders based on state, control uniforms), install the SDK:
npm install @refract/sdk
import { RefractScene } from '@refract/sdk'; // Load and render a scene const scene = await RefractScene.fromURL( 'https://refract.build/api/scene/YOUR_PROJECT_ID.json', { container: '#shader-bg', autoplay: true } ); // Control it programmatically scene.setUniform(0, 'u_color', [1.0, 0.2, 0.5]);
No framework lock-in. The iframe approach works with zero dependencies. The SDK is optional. Use it only when you need runtime control over the scene.
Choose a preset, customize it, add interactions, then click Build.
Add the iframe anywhere in your HTML. No build tools, no npm, no JavaScript files.
<div style="position:relative;width:100%;height:100vh;"> <iframe src="https://refract.build/embed/YOUR_PROJECT_ID" style="position:absolute;inset:0;width:100%;height:100%;border:none;" allow="autoplay" loading="lazy" ></iframe> </div>
Works everywhere. WordPress, Squarespace, Cargo, Hugo, Jekyll, static HTML. Anything that lets you add custom HTML.