Tailwind scrim utilities

Gradient scrim overlays are a common pattern employed to preserve legibility of text, or to suggest further content out-of-bounds.

There have been prior attempts at creating these utilities, but I wanted to prioritise composability with the defined theme scales, and leverage modern browser support to address points of frustration.


This gradient uses hard-coded colour stops to ease the opacity gradation, and subdue the appearance of sharp edges and luminance banding.

scrim-orange-500 scrim-b-48

scrim-orange-500 scrim-x-40

Shorthand utilities are included to produce scrims on an axis, as well as classes for any individual edge. This uses the same approach to composability as Tailwind itself, in assembling a series of variables set by the utility classes. Lengths can therefore be assigned and overridden on each side.

scrim-orange-500/95 scrim-20 scrim-x-12 scrim-r-0

Seamless composition is made possible through a subtractive implementation, where a single pseudo-element uses mask-image to reveal the underlying content. An additive approach would reveal stacking issues when opacity modifiers are applied.

npm i -D tailwindcss-scrim-gradients
// tailwind.config.js
module.exports = {
	theme: {
		// ...
	},
	plugins: [
		require('tailwindcss-scrim-gradients'),
		// ...
	],
};