← Back to Resources
CSS & Typography

Fixing Text Legibility on Variable Backgrounds Using CSS and WCAG Formulas

Keeping text readable over dynamic backgrounds—like image sliders or autoplaying videos—can be a challenge. Fortunately, you can use a few CSS tricks and mathematical contrast formulas to protect your text visibility.

Using Soft Text Shadows

A subtle, dark drop shadow behind your letters creates a high-contrast buffer zone, making text readable on almost any background:

.safe-text {
  color: #FFFFFF;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8), 0 0 1px rgba(0, 0, 0, 0.9);
}

Dynamic Color Inversion

You can also use mix-blend-mode: difference to automatically invert the text color based on the pixels underneath. While this technique is great for large headers, it's best to avoid it for long paragraphs as it can cause eye strain.