*{margin:0;padding:0;}
.colorblock{
  font-size:11px;
  width:12.5%;
  font-family:Courier New;
  padding:10px 0;
  text-align:center;
  font-weight:bold;
  display:inline-block;
}
function getCorrectTextColor(hex){
    
      /*
      From this W3C document: http://www.webmasterworld.com/r.cgi?f=88&d=9769&url=http://www.w3.org/TR/AERT#color-contrast
      
      Color brightness is determined by the following formula: 
      ((Red value X 299) + (Green value X 587) + (Blue value X 114)) / 1000
      
      I know this could be more compact, but I think this is easier to read/explain.
      
      */
      
      threshold = 130; /* about half of 256. Lower threshold equals more dark text on dark background  */
      
      hRed = hexToR(hex);
      hGreen = hexToG(hex);
      hBlue = hexToB(hex);
      
      
      function hexToR(h) {return parseInt((cutHex(h)).substring(0,2),16)}
      function hexToG(h) {return parseInt((cutHex(h)).substring(2,4),16)}
      function hexToB(h) {return parseInt((cutHex(h)).substring(4,6),16)}
      function cutHex(h) {return (h.charAt(0)=="#") ? h.substring(1,7):h}

      cBrightness = ((hRed * 299) + (hGreen * 587) + (hBlue * 114)) / 1000;
        if (cBrightness > threshold){return "#000000";} else { return "#ffffff";} 
      }
    
    

    
    //test colortable
    var colPairs = new Array("00","22","44","66","99","aa","cc","ff");
    for(i=0;i<colPairs.length;i++){
      for(j=0;j<colPairs.length;j++){
        for(k=0;k<colPairs.length;k++){
          //build a hexcode
          theColor = "#"+colPairs[i]+colPairs[j]+colPairs[k];
          
          //checkf for correct textcolor in passed hexcode
          textcolor = getCorrectTextColor(theColor);
          
          //output div      
          document.write("<div style='background-color:" + theColor + ";color:"+textcolor+";' class='colorblock'>" + theColor + "</div>");
        }
        document.write("<br/>");
      }
    }

    

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.