getColor static method

Color getColor(
  1. String value
)

Implementation

static Color getColor(String value) {
  String colorValue = value;
  if (_hexExp.hasMatch(colorValue)) {
    final buffer = StringBuffer();
    if (colorValue.length == 3 || colorValue.length == 4) {
      colorValue = colorValue.replaceFirst('#', '');
      List<String> pieces =
          colorValue.split('').map((String piece) => '$piece$piece').toList();
      colorValue = pieces.join();
    }
    if (colorValue.length == 6 || colorValue.length == 7) buffer.write('ff');
    buffer.write(colorValue.replaceFirst('#', ''));
    return Color(int.parse(buffer.toString(), radix: 16));
  } else if (_rgbExp.hasMatch(value)) {
    var parts = _rgbExp.allMatches(value);
    int r = 0;
    int g = 0;
    int b = 0;
    for (var part in parts) {
      r = int.parse(part.group(1)!);
      g = int.parse(part.group(2)!);
      b = int.parse(part.group(3)!);
    }
    return Color.fromARGB(255, r, g, b);
  } else if (_rgbaExp.hasMatch(value)) {
    var parts = _rgbaExp.allMatches(value);
    int r = 0;
    int g = 0;
    int b = 0;
    double a = 1;
    for (var part in parts) {
      r = int.parse(part.group(1)!);
      g = int.parse(part.group(2)!);
      b = int.parse(part.group(3)!);
      a = double.parse(part.group(4)!);
    }
    return Color.fromARGB((255 * a).toInt(), r, g, b);
  } else if (_materialDesignColorExp.hasMatch(value)) {
    switch (value) {
      case 'black':
        return Colors.black;
      case 'white':
        return Colors.white;
      case 'amber':
        return Colors.amber;
      case 'amber100':
        return Colors.amber.shade100;
      case 'amber200':
        return Colors.amber.shade200;
      case 'amber300':
        return Colors.amber.shade300;
      case 'amber400':
        return Colors.amber.shade400;
      case 'amber500':
        return Colors.amber.shade500;
      case 'amber600':
        return Colors.amber.shade600;
      case 'amber700':
        return Colors.amber.shade700;
      case 'amber800':
        return Colors.amber.shade800;
      case 'amber900':
        return Colors.amber.shade900;
      case 'blue':
        return Colors.blue;
      case 'blue100':
        return Colors.blue.shade100;
      case 'blue200':
        return Colors.blue.shade200;
      case 'blue300':
        return Colors.blue.shade300;
      case 'blue400':
        return Colors.blue.shade400;
      case 'blue500':
        return Colors.blue.shade500;
      case 'blue600':
        return Colors.blue.shade600;
      case 'blue700':
        return Colors.blue.shade700;
      case 'blue800':
        return Colors.blue.shade800;
      case 'blue900':
        return Colors.blue.shade900;
      case 'blueAccent':
        return Colors.blueAccent;
      case 'blueAccent50':
        return Colors.blue.shade50;
      case 'blueAccent100':
        return Colors.blue.shade100;
      case 'blueAccent200':
        return Colors.blue.shade200;
      case 'blueAccent400':
        return Colors.blue.shade400;
      case 'blueAccent700':
        return Colors.blue.shade700;
      case 'blueGrey':
        return Colors.blueGrey;
      case 'blueGrey100':
        return Colors.blueGrey.shade100;
      case 'blueGrey200':
        return Colors.blueGrey.shade200;
      case 'blueGrey300':
        return Colors.blueGrey.shade300;
      case 'blueGrey400':
        return Colors.blueGrey.shade400;
      case 'blueGrey500':
        return Colors.blueGrey.shade500;
      case 'blueGrey600':
        return Colors.blueGrey.shade600;
      case 'blueGrey700':
        return Colors.blueGrey.shade700;
      case 'blueGrey800':
        return Colors.blueGrey.shade800;
      case 'blueGrey900':
        return Colors.blueGrey.shade900;
      case 'brown':
        return Colors.brown;
      case 'brown100':
        return Colors.brown.shade100;
      case 'brown200':
        return Colors.brown.shade200;
      case 'brown300':
        return Colors.brown.shade300;
      case 'brown400':
        return Colors.brown.shade400;
      case 'brown500':
        return Colors.brown.shade500;
      case 'brown600':
        return Colors.brown.shade600;
      case 'brown700':
        return Colors.brown.shade700;
      case 'brown800':
        return Colors.brown.shade800;
      case 'brown900':
        return Colors.brown.shade900;
      case 'cyan':
        return Colors.cyan;
      case 'cyan100':
        return Colors.cyan.shade100;
      case 'cyan200':
        return Colors.cyan.shade200;
      case 'cyan300':
        return Colors.cyan.shade300;
      case 'cyan400':
        return Colors.cyan.shade400;
      case 'cyan500':
        return Colors.cyan.shade500;
      case 'cyan600':
        return Colors.cyan.shade600;
      case 'cyan700':
        return Colors.cyan.shade700;
      case 'cyan800':
        return Colors.cyan.shade800;
      case 'cyan900':
        return Colors.cyan.shade900;
      case 'cyanAccent':
        return Colors.cyan;
      case 'cyanAccent50':
        return Colors.cyan.shade50;
      case 'cyanAccent100':
        return Colors.cyan.shade100;
      case 'cyanAccent200':
        return Colors.cyan.shade200;
      case 'cyanAccent400':
        return Colors.cyan.shade400;
      case 'cyanAccent700':
        return Colors.cyan.shade700;
      case 'deepOrange':
        return Colors.deepOrange;
      case 'deepOrange100':
        return Colors.deepOrange.shade100;
      case 'deepOrange200':
        return Colors.deepOrange.shade200;
      case 'deepOrange300':
        return Colors.deepOrange.shade300;
      case 'deepOrange400':
        return Colors.deepOrange.shade400;
      case 'deepOrange500':
        return Colors.deepOrange.shade500;
      case 'deepOrange600':
        return Colors.deepOrange.shade600;
      case 'deepOrange700':
        return Colors.deepOrange.shade700;
      case 'deepOrange800':
        return Colors.deepOrange.shade800;
      case 'deepOrange900':
        return Colors.deepOrange.shade900;
      case 'deepPurple':
        return Colors.deepPurple;
      case 'deepPurple100':
        return Colors.deepPurple.shade100;
      case 'deepPurple200':
        return Colors.deepPurple.shade200;
      case 'deepPurple300':
        return Colors.deepPurple.shade300;
      case 'deepPurple400':
        return Colors.deepPurple.shade400;
      case 'deepPurple500':
        return Colors.deepPurple.shade500;
      case 'deepPurple600':
        return Colors.deepPurple.shade600;
      case 'deepPurple700':
        return Colors.deepPurple.shade700;
      case 'deepPurple800':
        return Colors.deepPurple.shade800;
      case 'deepPurple900':
        return Colors.deepPurple.shade900;
      case 'green':
        return Colors.green;
      case 'green100':
        return Colors.green.shade100;
      case 'green200':
        return Colors.green.shade200;
      case 'green300':
        return Colors.green.shade300;
      case 'green400':
        return Colors.green.shade400;
      case 'green500':
        return Colors.green.shade500;
      case 'green600':
        return Colors.green.shade600;
      case 'green700':
        return Colors.green.shade700;
      case 'green800':
        return Colors.green.shade800;
      case 'green900':
        return Colors.green.shade900;
      case 'grey':
        return Colors.grey;
      case 'grey100':
        return Colors.grey.shade100;
      case 'grey200':
        return Colors.grey.shade200;
      case 'grey300':
        return Colors.grey.shade300;
      case 'grey400':
        return Colors.grey.shade400;
      case 'grey500':
        return Colors.grey.shade500;
      case 'grey600':
        return Colors.grey.shade600;
      case 'grey700':
        return Colors.grey.shade700;
      case 'grey800':
        return Colors.grey.shade800;
      case 'grey900':
        return Colors.grey.shade900;
      case 'indigo':
        return Colors.indigo;
      case 'indigo100':
        return Colors.indigo.shade100;
      case 'indigo200':
        return Colors.indigo.shade200;
      case 'indigo300':
        return Colors.indigo.shade300;
      case 'indigo400':
        return Colors.indigo.shade400;
      case 'indigo500':
        return Colors.indigo.shade500;
      case 'indigo600':
        return Colors.indigo.shade600;
      case 'indigo700':
        return Colors.indigo.shade700;
      case 'indigo800':
        return Colors.indigo.shade800;
      case 'indigo900':
        return Colors.indigo.shade900;
      case 'indigoAccent':
        return Colors.indigo;
      case 'indigoAccent50':
        return Colors.indigo.shade50;
      case 'indigoAccent100':
        return Colors.indigo.shade100;
      case 'indigoAccent200':
        return Colors.indigo.shade200;
      case 'indigoAccent400':
        return Colors.indigo.shade400;
      case 'indigoAccent700':
        return Colors.indigo.shade700;
      case 'lightBlue':
        return Colors.lightBlue;
      case 'lightBlue100':
        return Colors.lightBlue.shade100;
      case 'lightBlue200':
        return Colors.lightBlue.shade200;
      case 'lightBlue300':
        return Colors.lightBlue.shade300;
      case 'lightBlue400':
        return Colors.lightBlue.shade400;
      case 'lightBlue500':
        return Colors.lightBlue.shade500;
      case 'lightBlue600':
        return Colors.lightBlue.shade600;
      case 'lightBlue700':
        return Colors.lightBlue.shade700;
      case 'lightBlue800':
        return Colors.lightBlue.shade800;
      case 'lightBlue900':
        return Colors.lightBlue.shade900;
      case 'lightGreen':
        return Colors.lightGreen;
      case 'lightGreen100':
        return Colors.lightGreen.shade100;
      case 'lightGreen200':
        return Colors.lightGreen.shade200;
      case 'lightGreen300':
        return Colors.lightGreen.shade300;
      case 'lightGreen400':
        return Colors.lightGreen.shade400;
      case 'lightGreen500':
        return Colors.lightGreen.shade500;
      case 'lightGreen600':
        return Colors.lightGreen.shade600;
      case 'lightGreen700':
        return Colors.lightGreen.shade700;
      case 'lightGreen800':
        return Colors.lightGreen.shade800;
      case 'lightGreen900':
        return Colors.lightGreen.shade900;
      case 'lime':
        return Colors.lime;
      case 'lime100':
        return Colors.lime.shade100;
      case 'lime200':
        return Colors.lime.shade200;
      case 'lime300':
        return Colors.lime.shade300;
      case 'lime400':
        return Colors.lime.shade400;
      case 'lime500':
        return Colors.lime.shade500;
      case 'lime600':
        return Colors.lime.shade600;
      case 'lime700':
        return Colors.lime.shade700;
      case 'lime800':
        return Colors.lime.shade800;
      case 'lime900':
        return Colors.lime.shade900;
      case 'orange':
        return Colors.orange;
      case 'orange100':
        return Colors.orange.shade100;
      case 'orange200':
        return Colors.orange.shade200;
      case 'orange300':
        return Colors.orange.shade300;
      case 'orange400':
        return Colors.orange.shade400;
      case 'orange500':
        return Colors.orange.shade500;
      case 'orange600':
        return Colors.orange.shade600;
      case 'orange700':
        return Colors.orange.shade700;
      case 'orange800':
        return Colors.orange.shade800;
      case 'orange900':
        return Colors.orange.shade900;
      case 'pink':
        return Colors.pink;
      case 'pink100':
        return Colors.pink.shade100;
      case 'pink200':
        return Colors.pink.shade200;
      case 'pink300':
        return Colors.pink.shade300;
      case 'pink400':
        return Colors.pink.shade400;
      case 'pink500':
        return Colors.pink.shade500;
      case 'pink600':
        return Colors.pink.shade600;
      case 'pink700':
        return Colors.pink.shade700;
      case 'pink800':
        return Colors.pink.shade800;
      case 'pink900':
        return Colors.pink.shade900;
      case 'purple':
        return Colors.purple;
      case 'purple100':
        return Colors.purple.shade100;
      case 'purple200':
        return Colors.purple.shade200;
      case 'purple300':
        return Colors.purple.shade300;
      case 'purple400':
        return Colors.purple.shade400;
      case 'purple500':
        return Colors.purple.shade500;
      case 'purple600':
        return Colors.purple.shade600;
      case 'purple700':
        return Colors.purple.shade700;
      case 'purple800':
        return Colors.purple.shade800;
      case 'purple900':
        return Colors.purple.shade900;
      case 'red':
        return Colors.red;
      case 'red100':
        return Colors.red.shade100;
      case 'red200':
        return Colors.red.shade200;
      case 'red300':
        return Colors.red.shade300;
      case 'red400':
        return Colors.red.shade400;
      case 'red500':
        return Colors.red.shade500;
      case 'red600':
        return Colors.red.shade600;
      case 'red700':
        return Colors.red.shade700;
      case 'red800':
        return Colors.red.shade800;
      case 'red900':
        return Colors.red.shade900;
      case 'teal':
        return Colors.teal;
      case 'teal100':
        return Colors.teal.shade100;
      case 'teal200':
        return Colors.teal.shade200;
      case 'teal300':
        return Colors.teal.shade300;
      case 'teal400':
        return Colors.teal.shade400;
      case 'teal500':
        return Colors.teal.shade500;
      case 'teal600':
        return Colors.teal.shade600;
      case 'teal700':
        return Colors.teal.shade700;
      case 'teal800':
        return Colors.teal.shade800;
      case 'teal900':
        return Colors.teal.shade900;
      case 'yellow':
        return Colors.yellow;
      case 'yellow100':
        return Colors.yellow.shade100;
      case 'yellow200':
        return Colors.yellow.shade200;
      case 'yellow300':
        return Colors.yellow.shade300;
      case 'yellow400':
        return Colors.yellow.shade400;
      case 'yellow500':
        return Colors.yellow.shade500;
      case 'yellow600':
        return Colors.yellow.shade600;
      case 'yellow700':
        return Colors.yellow.shade700;
      case 'yellow800':
        return Colors.yellow.shade800;
      case 'yellow900':
        return Colors.yellow.shade900;
    }
  } else {
    return Color.fromARGB(255, 0, 0, 0);
  }
  return Color.fromARGB(255, 0, 0, 0);
}