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;
  }
}