isCssColor function

bool isCssColor(
  1. String color
)

Check correctness of color string according to https://drafts.csswg.org/css-color-3

Implementation

bool isCssColor(String color) {
  color = color.trim();
  final chNumExpr = '-?[0-9]{1,3}(\\.[0-9]+)?';
  final opNumExpr = '-?([01]+(\\.[0-9]+)?|\\.[0-9]+)';

  if (RegExp(
          r'^#([0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$')
      .hasMatch(color))
    return true;
  else if (RegExp(
          '^rgba?\\($chNumExpr%,\\s?$chNumExpr%,\\s?$chNumExpr%(,\\s?$opNumExpr)?\\)\$')
      .hasMatch(color))
    return true;
  else if (RegExp(
          '^rgba?\\($chNumExpr,\\s?$chNumExpr,\\s?$chNumExpr(,\\s?$opNumExpr)?\\)\$')
      .hasMatch(color))
    return true;
  else if (RegExp(
          '^hsla?\\($chNumExpr,\\s?$chNumExpr%,\\s?$chNumExpr%(,\\s?$opNumExpr)?\\)\$')
      .hasMatch(color))
    return true;
  else if (colorKeywords.containsKey(color))
    return true;
  else
    return false;
}