// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import 'dart:ui' show Color;

// ignore_for_file: public_member_api_docs

/// Provides a collection of [Color] constants corresponding to the CSS named
/// colors.
class CSSColors {
  static const Color aliceBlue = Color(0xFFF0F8FF);
  static const Color antiqueWhite = Color(0xFFFAEBD7);
  static const Color aqua = Color(0xFF00FFFF);
  static const Color aquamarine = Color(0xFF7FFFD4);
  static const Color azure = Color(0xFFF0FFFF);
  static const Color beige = Color(0xFFF5F5DC);
  static const Color bisque = Color(0xFFFFE4C4);
  static const Color black = Color(0xFF000000);
  static const Color blanchedAlmond = Color(0xFFFFEBCD);
  static const Color blue = Color(0xFF0000FF);
  static const Color blueViolet = Color(0xFF8A2BE2);
  static const Color brown = Color(0xFFA52A2A);
  static const Color burlyWood = Color(0xFFDEB887);
  static const Color cadetBlue = Color(0xFF5F9EA0);
  static const Color chartreuse = Color(0xFF7FFF00);
  static const Color chocolate = Color(0xFFD2691E);
  static const Color coral = Color(0xFFFF7F50);
  static const Color cornflowerBlue = Color(0xFF6495ED);
  static const Color cornsilk = Color(0xFFFFF8DC);
  static const Color crimson = Color(0xFFDC143C);
  static const Color cyan = Color(0xFF00FFFF);
  static const Color darkBlue = Color(0xFF00008B);
  static const Color darkCyan = Color(0xFF008B8B);
  static const Color darkGoldenRod = Color(0xFFB8860B);
  static const Color darkGray = Color(0xFFA9A9A9);
  static const Color darkGreen = Color(0xFF006400);
  static const Color darkGrey = Color(0xFFA9A9A9);
  static const Color darkKhaki = Color(0xFFBDB76B);
  static const Color darkMagenta = Color(0xFF8B008B);
  static const Color darkOliveGreen = Color(0xFF556B2F);
  static const Color darkOrange = Color(0xFFFF8C00);
  static const Color darkOrchid = Color(0xFF9932CC);
  static const Color darkRed = Color(0xFF8B0000);
  static const Color darkSalmon = Color(0xFFE9967A);
  static const Color darkSeaGreen = Color(0xFF8FBC8F);
  static const Color darkSlateBlue = Color(0xFF483D8B);
  static const Color darkSlateGray = Color(0xFF2F4F4F);
  static const Color darkSlateGrey = Color(0xFF2F4F4F);
  static const Color darkTurquoise = Color(0xFF00CED1);
  static const Color darkViolet = Color(0xFF9400D3);
  static const Color deepPink = Color(0xFFFF1493);
  static const Color deepSkyBlue = Color(0xFF00BFFF);
  static const Color dimGray = Color(0xFF696969);
  static const Color dimGrey = Color(0xFF696969);
  static const Color dodgerBlue = Color(0xFF1E90FF);
  static const Color fireBrick = Color(0xFFB22222);
  static const Color floralWhite = Color(0xFFFFFAF0);
  static const Color forestGreen = Color(0xFF228B22);
  static const Color fuchsia = Color(0xFFFF00FF);
  static const Color gainsboro = Color(0xFFDCDCDC);
  static const Color ghostWhite = Color(0xFFF8F8FF);
  static const Color gold = Color(0xFFFFD700);
  static const Color goldenRod = Color(0xFFDAA520);
  static const Color gray = Color(0xFF808080);
  static const Color green = Color(0xFF008000);
  static const Color greenYellow = Color(0xFFADFF2F);
  static const Color grey = Color(0xFF808080);
  static const Color honeyDew = Color(0xFFF0FFF0);
  static const Color hotPink = Color(0xFFFF69B4);
  static const Color indianRed = Color(0xFFCD5C5C);
  static const Color indigo = Color(0xFF4B0082);
  static const Color ivory = Color(0xFFFFFFF0);
  static const Color khaki = Color(0xFFF0E68C);
  static const Color lavender = Color(0xFFE6E6FA);
  static const Color lavenderBlush = Color(0xFFFFF0F5);
  static const Color lawnGreen = Color(0xFF7CFC00);
  static const Color lemonChiffon = Color(0xFFFFFACD);
  static const Color lightBlue = Color(0xFFADD8E6);
  static const Color lightCoral = Color(0xFFF08080);
  static const Color lightCyan = Color(0xFFE0FFFF);
  static const Color lightGoldenRodYellow = Color(0xFFFAFAD2);
  static const Color lightGray = Color(0xFFD3D3D3);
  static const Color lightGreen = Color(0xFF90EE90);
  static const Color lightGrey = Color(0xFFD3D3D3);
  static const Color lightPink = Color(0xFFFFB6C1);
  static const Color lightSalmon = Color(0xFFFFA07A);
  static const Color lightSeaGreen = Color(0xFF20B2AA);
  static const Color lightSkyBlue = Color(0xFF87CEFA);
  static const Color lightSlateGray = Color(0xFF778899);
  static const Color lightSlateGrey = Color(0xFF778899);
  static const Color lightSteelBlue = Color(0xFFB0C4DE);
  static const Color lightYellow = Color(0xFFFFFFE0);
  static const Color lime = Color(0xFF00FF00);
  static const Color limeGreen = Color(0xFF32CD32);
  static const Color linen = Color(0xFFFAF0E6);
  static const Color magenta = Color(0xFFFF00FF);
  static const Color maroon = Color(0xFF800000);
  static const Color mediumAquaMarine = Color(0xFF66CDAA);
  static const Color mediumBlue = Color(0xFF0000CD);
  static const Color mediumOrchid = Color(0xFFBA55D3);
  static const Color mediumPurple = Color(0xFF9370DB);
  static const Color mediumSeaGreen = Color(0xFF3CB371);
  static const Color mediumSlateBlue = Color(0xFF7B68EE);
  static const Color mediumSpringGreen = Color(0xFF00FA9A);
  static const Color mediumTurquoise = Color(0xFF48D1CC);
  static const Color mediumVioletRed = Color(0xFFC71585);
  static const Color midnightBlue = Color(0xFF191970);
  static const Color mintCream = Color(0xFFF5FFFA);
  static const Color mistyRose = Color(0xFFFFE4E1);
  static const Color moccasin = Color(0xFFFFE4B5);
  static const Color navajoWhite = Color(0xFFFFDEAD);
  static const Color navy = Color(0xFF000080);
  static const Color oldLace = Color(0xFFFDF5E6);
  static const Color olive = Color(0xFF808000);
  static const Color oliveDrab = Color(0xFF6B8E23);
  static const Color orange = Color(0xFFFFA500);
  static const Color orangeRed = Color(0xFFFF4500);
  static const Color orchid = Color(0xFFDA70D6);
  static const Color paleGoldenRod = Color(0xFFEEE8AA);
  static const Color paleGreen = Color(0xFF98FB98);
  static const Color paleTurquoise = Color(0xFFAFEEEE);
  static const Color paleVioletRed = Color(0xFFDB7093);
  static const Color papayaWhip = Color(0xFFFFEFD5);
  static const Color peachPuff = Color(0xFFFFDAB9);
  static const Color peru = Color(0xFFCD853F);
  static const Color pink = Color(0xFFFFC0CB);
  static const Color plum = Color(0xFFDDA0DD);
  static const Color powderBlue = Color(0xFFB0E0E6);
  static const Color purple = Color(0xFF800080);
  static const Color rebeccaPurple = Color(0xFF663399);
  static const Color red = Color(0xFFFF0000);
  static const Color rosyBrown = Color(0xFFBC8F8F);
  static const Color royalBlue = Color(0xFF4169E1);
  static const Color saddleBrown = Color(0xFF8B4513);
  static const Color salmon = Color(0xFFFA8072);
  static const Color sandyBrown = Color(0xFFF4A460);
  static const Color seaGreen = Color(0xFF2E8B57);
  static const Color seaShell = Color(0xFFFFF5EE);
  static const Color sienna = Color(0xFFA0522D);
  static const Color silver = Color(0xFFC0C0C0);
  static const Color skyBlue = Color(0xFF87CEEB);
  static const Color slateBlue = Color(0xFF6A5ACD);
  static const Color slateGray = Color(0xFF708090);
  static const Color slateGrey = Color(0xFF708090);
  static const Color snow = Color(0xFFFFFAFA);
  static const Color springGreen = Color(0xFF00FF7F);
  static const Color steelBlue = Color(0xFF4682B4);
  static const Color tan = Color(0xFFD2B48C);
  static const Color teal = Color(0xFF008080);
  static const Color thistle = Color(0xFFD8BFD8);
  static const Color tomato = Color(0xFFFF6347);
  static const Color turquoise = Color(0xFF40E0D0);
  static const Color violet = Color(0xFFEE82EE);
  static const Color wheat = Color(0xFFF5DEB3);
  static const Color white = Color(0xFFFFFFFF);
  static const Color whiteSmoke = Color(0xFFF5F5F5);
  static const Color yellow = Color(0xFFFFFF00);
  static const Color yellowGreen = Color(0xFF9ACD32);
}
