parseHexColor function
Parses #rgb, #rgba, #rrggbb or #rrggbbaa to ARGB. Returns null
for anything else.
Implementation
int? parseHexColor(String? hex) {
if (hex == null || !_hexColor.hasMatch(hex)) return null;
var digits = hex.substring(1);
if (digits.length <= 4) {
digits = digits.split('').map((d) => '$d$d').join();
}
final rgb = int.parse(digits.substring(0, 6), radix: 16);
final alpha = digits.length == 8
? int.parse(digits.substring(6), radix: 16)
: 0xFF;
return alpha << 24 | rgb;
}