
Dynamic Island Toast
A pixel-faithful Apple Dynamic Island that morphs, splits, and breathes while it hosts live activities inside your app.
Real fire simulated on the GPU, rising from any SVG's edges, with embers and glow.
SVG Fire is a React and Tailwind CSS fire effect that sets any SVG logo alight with a GPU fire simulation, in Next.js or any React app, with no dependencies. The artwork is rasterized, its upward facing edges become fuel, and curl noise carries the heat up while uneven cooling tears it into flames, colored on a blackbody ramp with embers and heat shimmer. Pass a URL, markup, or inline SVG, and tune intensity, rise, distortion, and colors. Rendering halts off screen and in background tabs. A src on another domain is fetched as text, so it needs CORS.
Run the following command
pnpm dlx wensity@latest add svg-fire
npx wensity@latest add svg-fire
yarn dlx wensity@latest add svg-fire
bunx wensity@latest add svg-fire
Import SvgFire from @/components/wensity/svg-fire and render it anywhere in your React or Next.js app. The source lands in your own repo, so every prop, class and animation below is yours to edit.
import { SvgFire } from "@/components/wensity/svg-fire";export default function Example() {return (<SvgFiresrc="https://assets.wensity.com/brand-icons/rune.svg"className="h-[520px] w-full"/>);}
| Prop | Type | Default | Description |
|---|---|---|---|
src | string | - | SVG url. Fetched as text and rasterized, so the fire can read the paths. |
markup | string | - | Raw SVG markup, when you already have the file as a string. |
children | React.ReactNode | - | Inline svg, used when src and markup are omitted. It is serialized, so keep it presentational. |
intensity | number | 0.92 | How hard it burns, from 0 to 1. 0 leaves the artwork untouched. |
rise | number | 0.5 | How tall the flames rise, as a fraction of the frame. |
distortion | number | 0.72 | Heat shimmer over the artwork, from 0 to 1. |
speed | number | 1 | Playback rate. |
tint | string | false | - | Recolors the mark before it burns. Omit it and the mark follows the theme. Pass false to keep a multicolor logo's own colors. |
theme | "auto" | "light" | "dark" | "auto" | Which scheme the mark follows when tint is omitted. Auto reads the dark class on html. |
colors | [string, string, string] | ["#d8340f", "#ff7a1c", "#ffe7a8"] | Flame stops, from the cool tip through the body to the hot core. |
paused | boolean | false | Freezes the simulation on the current frame. |
label | string | "Burning graphic" | Accessible name for the burning graphic. |

A pixel-faithful Apple Dynamic Island that morphs, splits, and breathes while it hosts live activities inside your app.

A seamless, GPU-only logo strip that never stutters or snaps at the loop point.

A pinned cinematic section that morphs in lock-step with scroll, staying perfectly in sync whichever way you travel.

Lava lamp background for React heroes: soft gradient shapes that drift and melt.