Flame Edges
Elemental & Nature · Animated · pure CSS
An SVG turbulence filter physically distorts the glyph contours so the letter edges writhe and lick upward like live fire, boiled by SMIL-animated noise with no JavaScript. The letters are filled with a rising fire gradient — deep-red base through orange to white-yellow tips — under a warm drop-shadow glow, and a single knob walks the whole palette from flame-orange to cool blue-flame.
How it works
Flame Edges is an animated elemental & nature text effect rendered entirely in CSS. It relies on an inline SVG <defs> block (filters, gradients or clip-paths), which the HTML export carries alongside the CSS.
Controls
Flame Edges exposes 3 dedicated controls — Heat, Speed and Fire → Blue — on top of the shared type controls (font, weight, letter-spacing and case). Open it in the generator to tune every value live, then copy the updated CSS.
CSS
/* Flame Edges — made with TEXT-FX · https://text-fx.app
* HTML: requires the inline <svg> filter defs — see the HTML export.
* Font: 'Recursive', sans-serif (load from Google Fonts).
*/
.text-effect {
font-family: 'Recursive', sans-serif;
font-weight: 400;
letter-spacing: 2px;
text-transform: uppercase;
}
.text-effect {
background: linear-gradient(to top, hsl(9 90% 33%) 0%, hsl(29 100% 55%) 34%, hsl(47 100% 62%) 66%, hsl(53 94% 95%) 100%);
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
color: transparent;
filter: url(#text-effect-flame) drop-shadow(0 0 8.8px hsl(29 100% 55% / 0.5)) drop-shadow(0 0 18.9px hsl(29 100% 55% / 0.5));
}
HTML
This effect needs the markup below (per-letter spans, SVG defs, or a data-text attribute).
<!-- Made with TEXT-FX · https://text-fx.app -->
<style>
.text-effect {
font-family: 'Recursive', sans-serif;
font-weight: 400;
letter-spacing: 2px;
text-transform: uppercase;
}
.text-effect {
background: linear-gradient(to top, hsl(9 90% 33%) 0%, hsl(29 100% 55%) 34%, hsl(47 100% 62%) 66%, hsl(53 94% 95%) 100%);
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
color: transparent;
filter: url(#text-effect-flame) drop-shadow(0 0 8.8px hsl(29 100% 55% / 0.5)) drop-shadow(0 0 18.9px hsl(29 100% 55% / 0.5));
}
</style>
<svg width="0" height="0" style="position:absolute" aria-hidden="true"><defs>
<filter id="text-effect-flame" x="-30%" y="-30%" width="160%" height="160%">
<feTurbulence type="turbulence" baseFrequency="0.018 0.042" numOctaves="3" seed="4" result="noise">
<animate attributeName="baseFrequency" dur="1.70s" values="0.018 0.042;0.03 0.062;0.018 0.042" repeatCount="indefinite"/>
<animate attributeName="seed" dur="1.70s" values="4;12;4" repeatCount="indefinite"/>
</feTurbulence>
<feDisplacementMap in="SourceGraphic" in2="noise" scale="7" xChannelSelector="R" yChannelSelector="G">
<animate attributeName="scale" dur="1.70s" values="3.5;7;3.5" repeatCount="indefinite"/>
</feDisplacementMap>
</filter>
</defs></svg>
<div class="text-effect">Your text</div>
- Category
- Elemental & Nature
- Type
- Animated
- Browser support
- SVG feTurbulence + feDisplacementMap (SMIL-animated) over background-clip:text
- Capabilities
- pure, svgDefs