Headline Bar

Underline & Decoration · Static · pure CSS

A continuous shirorekha-style bar hangs over each word at cap height, letters suspended just beneath it, with an SVG turbulence filter giving the stroke a hand-inked wobble instead of a ruler-straight line. The bar breaks cleanly at word spaces and ships fully drawn — no draw-in animation, no waiting for the ink to arrive.

Headline Bar

How it works

Headline Bar is a static underline & decoration 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

Headline Bar exposes 5 dedicated controls — Bar Thickness, Bar Offset, Wobble, Bar Color and Accent Hue — 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

/* Headline Bar — made with TEXT-FX · https://text-fx.app
 * HTML: requires the inline <svg> filter defs — see the HTML export.
 * Font: 'Space Mono', monospace (load from Google Fonts).
 */

.text-effect {
  font-family: 'Space Mono', monospace;
  font-weight: 700;
  letter-spacing: 0px;
  text-transform: uppercase;
}

.text-effect {
  color: hsl(38 55% 80%);
  white-space: pre;
  line-height: 1.6;
}
.text-effect .fx-word {
  position: relative;
  display: inline-block;
  line-height: 1.15;
  padding-top: 0.174em;
}
.text-effect .fx-word:nth-child(odd) {
  transform: rotate(-0.5deg);
}
.text-effect .fx-word:nth-child(even) {
  transform: rotate(0.4deg);
}
.text-effect .fx-word::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 0.13em;
  background: hsl(195 72% 62%);
  filter: url(#text-effect-wobble);
}

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: 'Space Mono', monospace;
  font-weight: 700;
  letter-spacing: 0px;
  text-transform: uppercase;
}

.text-effect {
  color: hsl(38 55% 80%);
  white-space: pre;
  line-height: 1.6;
}
.text-effect .fx-word {
  position: relative;
  display: inline-block;
  line-height: 1.15;
  padding-top: 0.174em;
}
.text-effect .fx-word:nth-child(odd) {
  transform: rotate(-0.5deg);
}
.text-effect .fx-word:nth-child(even) {
  transform: rotate(0.4deg);
}
.text-effect .fx-word::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 0.13em;
  background: hsl(195 72% 62%);
  filter: url(#text-effect-wobble);
}
</style>

<svg width="0" height="0" style="position:absolute" aria-hidden="true"><defs>
<filter id="text-effect-wobble" x="-20%" y="-300%" width="140%" height="700%">
  <feTurbulence type="fractalNoise" baseFrequency="0.02 0.4" numOctaves="2" seed="4" result="n"/>
  <feDisplacementMap in="SourceGraphic" in2="n" scale="3.91" xChannelSelector="R" yChannelSelector="G"/>
</filter>
</defs></svg>

<div class="text-effect"><span class="fx-word">Your</span> <span class="fx-word">text</span></div>
Category
Underline & Decoration
Type
Static
Browser support
::before bar above each word, warped by an SVG displacement filter for a hand-inked wobble
Capabilities
svgDefs

Related Underline & Decoration effects