"If a worker wants to do his job well, he must first sharpen his tools." - Confucius, "The Analects of Confucius. Lu Linggong"
Front page > Programming > How Can I Dynamically Adjust Text Color Based on Background Brightness?

How Can I Dynamically Adjust Text Color Based on Background Brightness?

Published on 2024-11-11
Browse:505

How Can I Dynamically Adjust Text Color Based on Background Brightness?

Adjusting Text Color Based on Background Brightness

Achieving optimal legibility often requires adjusting text color to contrast with the background. In this case, the desired effect is to dynamically switch the text color or images based on the brightness level of the background pixels.

Approaches for Contrast Adjustment

  • Luminosity Calculation: Calculate the weighted average of the color channels (RGB) to determine the brightness level.
  • Contrast Ratio: Compare the brightness of the text and background to ensure sufficient contrast for visual accessibility.

Available Resources

  • W3C Contrast Checker: The World Wide Web Consortium (W3C) provides a standardized algorithm for calculating the brightness of a color and ensuring adequate contrast.
  • Calculating Color Brightness: Explore online resources that offer functions to quantify the brightness of a given color.

W3C Contrast Algorithm

const rgb = [255, 0, 0];

function setContrast() {
  // Calculate brightness
  const brightness = Math.round(((parseInt(rgb[0]) * 299)  
                      (parseInt(rgb[1]) * 587)  
                      (parseInt(rgb[2]) * 114)) / 1000);
  // Set text color
  const textColour = (brightness > 125) ? 'black' : 'white';
  // Set background color
  const backgroundColour = 'rgb('   rgb[0]   ','   rgb[1]   ','   rgb[2]   ')';

  $('#bg').css('color', textColour); 
  $('#bg').css('background-color', backgroundColour);
}

This algorithm ensures visually optimal text color selection based on background brightness.

Latest tutorial More>

Disclaimer: All resources provided are partly from the Internet. If there is any infringement of your copyright or other rights and interests, please explain the detailed reasons and provide proof of copyright or rights and interests and then send it to the email: [email protected] We will handle it for you as soon as possible.

Copyright© 2022 湘ICP备2022001581号-3