Paper & grain
Add subtle paper grain, vellum, film grain, and noise-over-gradient background textures with an inline SVG turbulence filter and pure CSS.
4 texturesSurface & material reference
Separate the canvas from the cards on it with paper grain, rulings, weaves, and geometric repeats — each built from pure CSS gradients and an inline SVG noise tile, tinted from your theme tokens so both modes stay in key.
Start with restraint
A useful texture is felt before it is noticed: the page reads as paper, cloth, or a drafting board, and only a deliberate look reveals why. The moment a visitor sees the pattern before the content, it has become wallpaper.
Texture library
These focused guides run from the quietest texture to the loudest: noise and paper fibre, working rulings, woven cloth, and geometric repeats for surfaces that carry no body text.
Add subtle paper grain, vellum, film grain, and noise-over-gradient background textures with an inline SVG turbulence filter and pure CSS.
4 texturesDraw graph paper, dot grid, notebook ruling, blueprint, and crosshatch backgrounds with repeating CSS gradients tinted from your theme tokens.
5 texturesRecreate canvas weave, linen, pinstripe, and twill surface textures in pure CSS with tight layered gradients that follow your color tokens.
4 texturesBuild checkerboard, polka dot, diagonal stripe, and diamond lattice backgrounds with conic and repeating CSS gradients — no image files.
4 texturesTexture strength is measured against the foreground color, and each kind of surface affords a different budget. Start with this scale, then judge the result at arm's length in both modes.
| Surface | Strength | Reads as |
|---|---|---|
| App canvas | 3–6% | Structure without noise |
| Cards & panels | 2–4% | Quieter than the canvas behind them |
| Hero & marketing | 8–14% | Texture promoted to decoration |
| Print & forced colors | 0% | Drop the layer entirely |
Line work mixed from theme tokens re-tints itself. Grain does not: a black speckle on a dark canvas is invisible, so invert it — and step the opacity down, because light-on-dark texture reads heavier than the same value on white.
.texture-grain::before {
background-image: url("data:image/svg+xml,…feTurbulence…");
opacity: 0.11;
}
.dark .texture-grain::before {
filter: invert(1);
opacity: 0.08;
}
@media print {
.texture-grain::before { display: none; }
}Frequently asked
From material to application
Nodlume's theme carries textures as .texture-* utility classes beside your palette, fonts, and shadows, and generates them into the React project with everything else.
We'd like to use Google cookies to understand how Nodlume is used and to measure our advertising. Nothing loads until you choose, and declining does not affect anything in the app.