Intaglio Hatch

Fill & Texture · Static · pure CSS

Glyphs are filled with a repeating hairline gradient at banknote pitch, then two more data-text copies cross it at a mirrored and a steeper angle, each masked to only the shadow half of the letterform. The overlapping hatch density builds tone exactly like a copperplate engraver deepens shadow with more crossing strokes — sharp, static, and printable on dark or light.

Intaglio Hatch

How it works

Intaglio Hatch is a static fill & texture text effect rendered entirely in CSS. A data-text attribute mirrors the word into ::before/::after layers, so copy that attribute together with the CSS.

Controls

Intaglio Hatch exposes 4 dedicated controls — Line Pitch, Hatch Angle, Crosshatch Coverage and Ink 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

/* Intaglio Hatch — made with TEXT-FX · https://text-fx.app
 * HTML: the element needs a data-text attribute equal to its text.
 * Font: 'Bricolage Grotesque', sans-serif (load from Google Fonts).
 */

.text-effect {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-weight: 700;
  letter-spacing: -1px;
  text-transform: uppercase;
}

.text-effect {
  position: relative;
  display: inline-block;
  background-image: repeating-linear-gradient(22deg, hsl(20 30% 84%) 0px, hsl(20 30% 84%) 1px, transparent 1px, transparent 3.33px);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  -webkit-text-stroke: 0.73px hsl(20 30% 84%);
}
.text-effect::after {
  content: attr(data-text);
  position: absolute;
  inset: 0;
  pointer-events: none;
  -webkit-text-stroke: 0 transparent;
  -webkit-text-fill-color: transparent;
  color: transparent;
  -webkit-mask-image: linear-gradient(115deg, transparent 0%, transparent 34%, black 51%, black 100%);
  mask-image: linear-gradient(115deg, transparent 0%, transparent 34%, black 51%, black 100%);
  background-image: repeating-linear-gradient(-22deg, hsl(20 30% 84%) 0px, hsl(20 30% 84%) 1px, transparent 1px, transparent 2.66px);
  -webkit-background-clip: text;
  background-clip: text;
}
.text-effect::before {
  content: attr(data-text);
  position: absolute;
  inset: 0;
  pointer-events: none;
  -webkit-text-stroke: 0 transparent;
  -webkit-text-fill-color: transparent;
  color: transparent;
  -webkit-mask-image: linear-gradient(115deg, transparent 0%, transparent 58%, black 74%, black 100%);
  mask-image: linear-gradient(115deg, transparent 0%, transparent 58%, black 74%, black 100%);
  background-image: repeating-linear-gradient(44deg, hsl(20 30% 84%) 0px, hsl(20 30% 84%) 1px, transparent 1px, transparent 2.22px);
  -webkit-background-clip: text;
  background-clip: text;
}

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: 'Bricolage Grotesque', sans-serif;
  font-weight: 700;
  letter-spacing: -1px;
  text-transform: uppercase;
}

.text-effect {
  position: relative;
  display: inline-block;
  background-image: repeating-linear-gradient(22deg, hsl(20 30% 84%) 0px, hsl(20 30% 84%) 1px, transparent 1px, transparent 3.33px);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  -webkit-text-stroke: 0.73px hsl(20 30% 84%);
}
.text-effect::after {
  content: attr(data-text);
  position: absolute;
  inset: 0;
  pointer-events: none;
  -webkit-text-stroke: 0 transparent;
  -webkit-text-fill-color: transparent;
  color: transparent;
  -webkit-mask-image: linear-gradient(115deg, transparent 0%, transparent 34%, black 51%, black 100%);
  mask-image: linear-gradient(115deg, transparent 0%, transparent 34%, black 51%, black 100%);
  background-image: repeating-linear-gradient(-22deg, hsl(20 30% 84%) 0px, hsl(20 30% 84%) 1px, transparent 1px, transparent 2.66px);
  -webkit-background-clip: text;
  background-clip: text;
}
.text-effect::before {
  content: attr(data-text);
  position: absolute;
  inset: 0;
  pointer-events: none;
  -webkit-text-stroke: 0 transparent;
  -webkit-text-fill-color: transparent;
  color: transparent;
  -webkit-mask-image: linear-gradient(115deg, transparent 0%, transparent 58%, black 74%, black 100%);
  mask-image: linear-gradient(115deg, transparent 0%, transparent 58%, black 74%, black 100%);
  background-image: repeating-linear-gradient(44deg, hsl(20 30% 84%) 0px, hsl(20 30% 84%) 1px, transparent 1px, transparent 2.22px);
  -webkit-background-clip: text;
  background-clip: text;
}
</style>

<div data-text="Your text" class="text-effect">Your text</div>
Category
Fill & Texture
Type
Static
Browser support
background-clip:text hairline layers + masked crosshatch overlays (-webkit- prefixed; all modern browsers)
Capabilities
pure, dataText

Related Fill & Texture effects