docs: function compressHexColors(css) {
  
      // Look for hex colors inside { ... } (to avoid IDs) and which don't have a =, or a " in front of them (to avoid filters)
  
      const pattern = /(\=\s*?["']?)?#([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])(\}|[^0-9a-f{][^{]*?\})/gi
      const sb = []
  
      let index = 0
      let match
  
      while ((match = pattern.exec(css)) !== null) {
  
          sb.push(css.substring(index, match.index))
  
          let isFilter = match[1]
  
          if (isFilter) {
              // Restore, maintain case, otherwise filter will break
              sb.push(match[1] + '#' + (match[2] + match[3] + match[4] + match[5] + match[6] + match[7]))
          } else {
              if (match[2].toLowerCase() == match[3].toLowerCase() &&
                  match[4].toLowerCase() == match[5].toLowerCase() &&
                  match[6].toLowerCase() == match[7].toLowerCase()) {
  
                  // Compress.
                  sb.push('#' + (match[3] + match[5] + match[7]).toLowerCase())
              } else {
                  // Non compressible color, restore but lower case.
                  sb.push('#' + (match[2] + match[3] + match[4] + match[5] + match[6] + match[7]).toLowerCase())
              }
          }
  
          index = pattern.lastIndex = pattern.lastIndex - match[8].length
      }
  
      sb.push(css.substring(index))
  
      return sb.join('')
  }