Oxide Bloom
Elemental & Nature · Static · pure CSS
Letters filled with cool charcoal metal, stained by layered sienna and rust radial gradients, get their edges eaten by irregular pits punched through an SVG turbulence-and-morphology filter chain. A blurred, orange-tinted duplicate wearing the same pit mask blooms behind via mix-blend-mode as a corrosion halo — wet, chemically-coloured, active rust rather than flat monochrome wear.
How it works
Oxide Bloom is a static 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
Oxide Bloom exposes 5 dedicated controls — Rust Hue, Pit Erosion, Corrosion, Bloom Halo and Seed — 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
/* Oxide Bloom — made with TEXT-FX · https://text-fx.app
* HTML: requires the inline <svg> filter defs — see the HTML export.
* Font: 'Bungee', cursive (load from Google Fonts).
*/
.text-effect {
font-family: 'Bungee', cursive;
font-weight: 700;
letter-spacing: 0px;
text-transform: none;
}
.text-effect {
position: relative;
display: inline-block;
line-height: 1;
}
.text-effect .fx-plate {
position: relative;
display: inline-block;
color: transparent;
-webkit-text-fill-color: transparent;
-webkit-background-clip: text;
background-clip: text;
background-color: hsl(211 10% 33%);
background-image:
radial-gradient(closest-side at 18% 30%, hsl(27 79% 38% / 0.95), hsl(27 79% 38% / 0) 60%),
radial-gradient(closest-side at 44% 72%, hsl(28 84% 52% / 0.95), hsl(28 84% 52% / 0) 55%),
radial-gradient(closest-side at 68% 24%, hsl(26 78% 34% / 0.95), hsl(26 78% 34% / 0) 55%),
radial-gradient(closest-side at 82% 66%, hsl(32 80% 60% / 0.9), hsl(32 80% 60% / 0) 55%),
radial-gradient(closest-side at 30% 88%, hsl(26 48% 32% / 0.9), hsl(26 48% 32% / 0) 60%),
linear-gradient(115deg, hsl(26 30% 46%) 0%, hsl(30 44% 50%) 22%, hsl(22 24% 40%) 45%, hsl(33 44% 56%) 70%, hsl(44 12% 38%) 100%);
filter: url(#text-effect-pit) drop-shadow(0 0 6.4px hsl(32 95% 55% / 0.53)) drop-shadow(0 0 20.3px hsl(32 95% 55% / 0.53));
}
.text-effect .fx-bloom {
position: absolute;
left: 0;
top: 0;
color: transparent;
-webkit-text-fill-color: transparent;
-webkit-background-clip: text;
background-clip: text;
background-image: radial-gradient(closest-side at 40% 60%, hsl(35 88% 58%), hsl(28 82% 46%) 60%, hsl(25 80% 33%) 100%);
filter: url(#text-effect-pit) blur(13.2px);
mix-blend-mode: screen;
opacity: 0.84;
transform: scale(1.04);
pointer-events: none;
}
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: 'Bungee', cursive;
font-weight: 700;
letter-spacing: 0px;
text-transform: none;
}
.text-effect {
position: relative;
display: inline-block;
line-height: 1;
}
.text-effect .fx-plate {
position: relative;
display: inline-block;
color: transparent;
-webkit-text-fill-color: transparent;
-webkit-background-clip: text;
background-clip: text;
background-color: hsl(211 10% 33%);
background-image:
radial-gradient(closest-side at 18% 30%, hsl(27 79% 38% / 0.95), hsl(27 79% 38% / 0) 60%),
radial-gradient(closest-side at 44% 72%, hsl(28 84% 52% / 0.95), hsl(28 84% 52% / 0) 55%),
radial-gradient(closest-side at 68% 24%, hsl(26 78% 34% / 0.95), hsl(26 78% 34% / 0) 55%),
radial-gradient(closest-side at 82% 66%, hsl(32 80% 60% / 0.9), hsl(32 80% 60% / 0) 55%),
radial-gradient(closest-side at 30% 88%, hsl(26 48% 32% / 0.9), hsl(26 48% 32% / 0) 60%),
linear-gradient(115deg, hsl(26 30% 46%) 0%, hsl(30 44% 50%) 22%, hsl(22 24% 40%) 45%, hsl(33 44% 56%) 70%, hsl(44 12% 38%) 100%);
filter: url(#text-effect-pit) drop-shadow(0 0 6.4px hsl(32 95% 55% / 0.53)) drop-shadow(0 0 20.3px hsl(32 95% 55% / 0.53));
}
.text-effect .fx-bloom {
position: absolute;
left: 0;
top: 0;
color: transparent;
-webkit-text-fill-color: transparent;
-webkit-background-clip: text;
background-clip: text;
background-image: radial-gradient(closest-side at 40% 60%, hsl(35 88% 58%), hsl(28 82% 46%) 60%, hsl(25 80% 33%) 100%);
filter: url(#text-effect-pit) blur(13.2px);
mix-blend-mode: screen;
opacity: 0.84;
transform: scale(1.04);
pointer-events: none;
}
</style>
<svg width="0" height="0" style="position:absolute" aria-hidden="true"><defs>
<filter id="text-effect-pit" x="-30%" y="-30%" width="160%" height="160%">
<feTurbulence type="fractalNoise" baseFrequency="0.077 0.067" numOctaves="3" seed="33" result="n"/>
<feColorMatrix in="n" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -16 10.42" result="mask"/>
<feMorphology in="mask" operator="erode" radius="0.44" result="eaten"/>
<feComposite in="SourceGraphic" in2="eaten" operator="in"/>
</filter>
</defs></svg>
<div class="text-effect"><span class="fx-bloom" aria-hidden="true">Your text</span><span class="fx-plate">Your text</span></div>
- Category
- Elemental & Nature
- Type
- Static
- Browser support
- SVG feTurbulence/feMorphology pit chain + background-clip:text + mix-blend-mode (all modern)
- Capabilities
- svgDefs