JSFiddle - React, Tailwind, and code Playground

by meo

JavaScript

var TypeHelpers = function(){

   var hasSmoothing,insertClasses;

   hasSmoothing = function(){
      if (typeof(screen.fontSmoothingEnabled) != "undefined") {
         return screen.fontSmoothingEnabled;
      } else {

         try {
            var canvasNode, ctx;
             
            canvasNode = document.createElement('canvas');
            canvasNode.width = "35";
            canvasNode.height = "35"
            canvasNode.style.display = 'none';
            
            document.body.appendChild(canvasNode);
            
            ctx = canvasNode.getContext('2d');
            ctx.textBaseline = "top";
            ctx.font = "32px Arial";
            ctx.fillStyle = "black";
            ctx.strokeStyle = "black";
            ctx.fillText("O", 0, 0);

            for (var j = 8; j <= 32; j++) {
               for (var i = 1; i <= 32; i++) {
                  var imageData,alpha;
                  
                  imageData = ctx.getImageData(i, j, 1, 1).data;
                  alpha = imageData[3];

                  if (alpha != 255 && alpha != 0) {
                     return true;
                  }
               }

            }

            return false;
         }
         catch (ex) {
            return null;
         }
      }
   }

   insertClasses = function(){
      var result,htmlNode;
       
      result = hasSmoothing();
      htmlNode = document.getElementsByTagName('html')[0];
       
      if (result == true) {
         htmlNode.className += " hasFontSmoothing-true";
      } else if (result == false) {
            htmlNode.className += " hasFontSmoothing-false";
      } else { // result == null
            htmlNode.className += " hasFontSmoothing-unknown";
      }
   }
       
   insertClasses();

}
    
TypeHelpers()