color-contrast.html 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <!DOCTYPE html>
  2. <html>
  3. <!--
  4. Copyright 2010 The Closure Library Authors. All Rights Reserved.
  5. Use of this source code is governed by the Apache License, Version 2.0.
  6. See the COPYING file for details.
  7. -->
  8. <head>
  9. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  10. <title>Color Contrast Test</title>
  11. <style type="text/css" media="screen">
  12. #preview {
  13. margin-left: 1em;
  14. padding: 0.5em 1em;
  15. background: #ccc;
  16. }
  17. </style>
  18. </head>
  19. <body>
  20. <script type="text/javascript" src="../base.js"></script>
  21. <p>
  22. #<input type="text" value="cccccc" id="color" size="6" maxlength="6">
  23. <input
  24. type="button"
  25. value="Black or White?"
  26. id="submit"
  27. onclick="blackOrWhite()">
  28. <span id="preview">This text should be readable</span>
  29. </p>
  30. <p>(Only choosing from black and white.)</p>
  31. <script type="text/javascript" charset="utf-8">
  32. goog.require('goog.color');
  33. function blackOrWhite() {
  34. var colorInput = document.getElementById('color');
  35. var previewElement = document.getElementById('preview');
  36. var bgRgb = goog.color.hexToRgbStyle('#' + colorInput.value);
  37. var bgRgbArr = goog.color.parseRgb(bgRgb);
  38. var bestColor = goog.color.highContrast(
  39. bgRgbArr, [[0, 0, 0], [255, 255, 255]]);
  40. var bestColorHex = goog.color.rgbArrayToHex(bestColor);
  41. console.info(bestColorHex + ' wins on sum');
  42. previewElement.style.backgroundColor = '#' + colorInput.value;
  43. previewElement.style.color = bestColorHex;
  44. }
  45. </script>
  46. </body>
  47. </html>