using System.Runtime.InteropServices;

namespace PixiEditor.DrawingApi.Core.ColorsImpl;

/// <summary>Definitions for some common color names.</summary>
[StructLayout(LayoutKind.Sequential, Size = 1)]
public struct Colors
{
    /// <summary>Gets the predefined color of alice blue, or #FFF0F8FF.</summary>
    public static Color AliceBlue = new(4293982463U);

    /// <summary>Gets the predefined color of antique white, or #FFFAEBD7.</summary>
    public static Color AntiqueWhite = new(4294634455U);

    /// <summary>Gets the predefined color of aqua, or #FF00FFFF.</summary>
    public static Color Aqua = new(4278255615U);

    /// <summary>Gets the predefined color of aquamarine, or #FF7FFFD4.</summary>
    public static Color Aquamarine = new(4286578644U);

    /// <summary>Gets the predefined color of azure, or #FFF0FFFF.</summary>
    public static Color Azure = new(4293984255U);

    /// <summary>Gets the predefined color of beige, or #FFF5F5DC.</summary>
    public static Color Beige = new(4294309340U);

    /// <summary>Gets the predefined color of bisque, or #FFFFE4C4.</summary>
    public static Color Bisque = new(4294960324U);

    /// <summary>Gets the predefined color of black, or #FF000000.</summary>
    public static Color Black = new(4278190080U);

    /// <summary>Gets the predefined color of blanched almond, or #FFFFEBCD.</summary>
    public static Color BlanchedAlmond = new(4294962125U);

    /// <summary>Gets the predefined color of blue, or #FF0000FF.</summary>
    public static Color Blue = new(4278190335U);

    /// <summary>Gets the predefined color of blue violet, or #FF8A2BE2.</summary>
    public static Color BlueViolet = new(4287245282U);

    /// <summary>Gets the predefined color of brown, or #FFA52A2A.</summary>
    public static Color Brown = new(4289014314U);

    /// <summary>Gets the predefined color of burly wood, or #FFDEB887.</summary>
    public static Color BurlyWood = new(4292786311U);

    /// <summary>Gets the predefined color of cadet blue, or #FF5F9EA0.</summary>
    public static Color CadetBlue = new(4284456608U);

    /// <summary>Gets the predefined color of chartreuse, or #FF7FFF00.</summary>
    public static Color Chartreuse = new(4286578432U);

    /// <summary>Gets the predefined color of chocolate, or #FFD2691E.</summary>
    public static Color Chocolate = new(4291979550U);

    /// <summary>Gets the predefined color of coral, or #FFFF7F50.</summary>
    public static Color Coral = new(4294934352U);

    /// <summary>Gets the predefined color of cornflower blue, or #FF6495ED.</summary>
    public static Color CornflowerBlue = new(4284782061U);

    /// <summary>Gets the predefined color of cornsilk, or #FFFFF8DC.</summary>
    public static Color Cornsilk = new(4294965468U);

    /// <summary>Gets the predefined color of crimson, or #FFDC143C.</summary>
    public static Color Crimson = new(4292613180U);

    /// <summary>Gets the predefined color of cyan, or #FF00FFFF.</summary>
    public static Color Cyan = new(4278255615U);

    /// <summary>Gets the predefined color of dark blue, or #FF00008B.</summary>
    public static Color DarkBlue = new(4278190219U);

    /// <summary>Gets the predefined color of dark cyan, or #FF008B8B.</summary>
    public static Color DarkCyan = new(4278225803U);

    /// <summary>Gets the predefined color of dark goldenrod, or #FFB8860B.</summary>
    public static Color DarkGoldenrod = new(4290283019U);

    /// <summary>Gets the predefined color of dark gray, or #FFA9A9A9.</summary>
    public static Color DarkGray = new(4289309097U);

    /// <summary>Gets the predefined color of dark green, or #FF006400.</summary>
    public static Color DarkGreen = new(4278215680U);

    /// <summary>Gets the predefined color of dark khaki, or #FFBDB76B.</summary>
    public static Color DarkKhaki = new(4290623339U);

    /// <summary>Gets the predefined color of dark magenta, or #FF8B008B.</summary>
    public static Color DarkMagenta = new(4287299723U);

    /// <summary>Gets the predefined color of dark olive green, or #FF556B2F.</summary>
    public static Color DarkOliveGreen = new(4283788079U);

    /// <summary>Gets the predefined color of dark orange, or #FFFF8C00.</summary>
    public static Color DarkOrange = new(4294937600U);

    /// <summary>Gets the predefined color of dark orchid, or #FF9932CC.</summary>
    public static Color DarkOrchid = new(4288230092U);

    /// <summary>Gets the predefined color of dark red, or #FF8B0000.</summary>
    public static Color DarkRed = new(4287299584U);

    /// <summary>Gets the predefined color of dark salmon, or #FFE9967A.</summary>
    public static Color DarkSalmon = new(4293498490U);

    /// <summary>Gets the predefined color of dark sea green, or #FF8FBC8B.</summary>
    public static Color DarkSeaGreen = new(4287609995U);

    /// <summary>Gets the predefined color of dark slate blue, or #FF483D8B.</summary>
    public static Color DarkSlateBlue = new(4282924427U);

    /// <summary>Gets the predefined color of dark slate gray, or #FF2F4F4F.</summary>
    public static Color DarkSlateGray = new(4281290575U);

    /// <summary>Gets the predefined color of dark turquoise, or #FF00CED1.</summary>
    public static Color DarkTurquoise = new(4278243025U);

    /// <summary>Gets the predefined color of dark violet, or #FF9400D3.</summary>
    public static Color DarkViolet = new(4287889619U);

    /// <summary>Gets the predefined color of deep pink, or #FFFF1493.</summary>
    public static Color DeepPink = new(4294907027U);

    /// <summary>Gets the predefined color of deep sky blue, or #FF00BFFF.</summary>
    public static Color DeepSkyBlue = new(4278239231U);

    /// <summary>Gets the predefined color of dim gray, or #FF696969.</summary>
    public static Color DimGray = new(4285098345U);

    /// <summary>Gets the predefined color of dodger blue, or #FF1E90FF.</summary>
    public static Color DodgerBlue = new(4280193279U);

    /// <summary>Gets the predefined color of firebrick, or #FFB22222.</summary>
    public static Color Firebrick = new(4289864226U);

    /// <summary>Gets the predefined color of floral white, or #FFFFFAF0.</summary>
    public static Color FloralWhite = new(4294966000U);

    /// <summary>Gets the predefined color of forest green, or #FF228B22.</summary>
    public static Color ForestGreen = new(4280453922U);

    /// <summary>Gets the predefined color of fuchsia, or #FFFF00FF.</summary>
    public static Color Fuchsia = new(4294902015U);

    /// <summary>Gets the predefined color of gainsboro, or #FFDCDCDC.</summary>
    public static Color Gainsboro = new(4292664540U);

    /// <summary>Gets the predefined color of ghost white, or #FFF8F8FF.</summary>
    public static Color GhostWhite = new(4294506751U);

    /// <summary>Gets the predefined color of gold, or #FFFFD700.</summary>
    public static Color Gold = new(4294956800U);

    /// <summary>Gets the predefined color of goldenrod, or #FFDAA520.</summary>
    public static Color Goldenrod = new(4292519200U);

    /// <summary>Gets the predefined color of gray, or #FF808080.</summary>
    public static Color Gray = new(4286611584U);

    /// <summary>Gets the predefined color of green, or #FF008000.</summary>
    public static Color Green = new(4278222848U);

    /// <summary>Gets the predefined color of green yellow, or #FFADFF2F.</summary>
    public static Color GreenYellow = new(4289593135U);

    /// <summary>Gets the predefined color of honeydew, or #FFF0FFF0.</summary>
    public static Color Honeydew = new(4293984240U);

    /// <summary>Gets the predefined color of hot pink, or #FFFF69B4.</summary>
    public static Color HotPink = new(4294928820U);

    /// <summary>Gets the predefined color of indian red, or #FFCD5C5C.</summary>
    public static Color IndianRed = new(4291648604U);

    /// <summary>Gets the predefined color of indigo, or #FF4B0082.</summary>
    public static Color Indigo = new(4283105410U);

    /// <summary>Gets the predefined color of ivory, or #FFFFFFF0.</summary>
    public static Color Ivory = new(4294967280U);

    /// <summary>Gets the predefined color of khaki, or #FFF0E68C.</summary>
    public static Color Khaki = new(4293977740U);

    /// <summary>Gets the predefined color of lavender, or #FFE6E6FA.</summary>
    public static Color Lavender = new(4293322490U);

    /// <summary>Gets the predefined color of lavender blush, or #FFFFF0F5.</summary>
    public static Color LavenderBlush = new(4294963445U);

    /// <summary>Gets the predefined color of lawn green, or #FF7CFC00.</summary>
    public static Color LawnGreen = new(4286381056U);

    /// <summary>Gets the predefined color of lemon chiffon, or #FFFFFACD.</summary>
    public static Color LemonChiffon = new(4294965965U);

    /// <summary>Gets the predefined color of light blue, or #FFADD8E6.</summary>
    public static Color LightBlue = new(4289583334U);

    /// <summary>Gets the predefined color of light coral, or #FFF08080.</summary>
    public static Color LightCoral = new(4293951616U);

    /// <summary>Gets the predefined color of light cyan, or #FFE0FFFF.</summary>
    public static Color LightCyan = new(4292935679U);

    /// <summary>Gets the predefined color of light goldenrod yellow, or #FFFAFAD2.</summary>
    public static Color LightGoldenrodYellow = new(4294638290U);

    /// <summary>Gets the predefined color of light gray, or #FFD3D3D3.</summary>
    public static Color LightGray = new(4292072403U);

    /// <summary>Gets the predefined color of light green, or #FF90EE90.</summary>
    public static Color LightGreen = new(4287688336U);

    /// <summary>Gets the predefined color of light pink, or #FFFFB6C1.</summary>
    public static Color LightPink = new(4294948545U);

    /// <summary>Gets the predefined color of light salmon, or #FFFFA07A.</summary>
    public static Color LightSalmon = new(4294942842U);

    /// <summary>Gets the predefined color of light sea green, or #FF20B2AA.</summary>
    public static Color LightSeaGreen = new(4280332970U);

    /// <summary>Gets the predefined color of light sky blue, or #FF87CEFA.</summary>
    public static Color LightSkyBlue = new(4287090426U);

    /// <summary>Gets the predefined color of light slate gray, or #FF778899.</summary>
    public static Color LightSlateGray = new(4286023833U);

    /// <summary>Gets the predefined color of light steel blue, or #FFB0C4DE.</summary>
    public static Color LightSteelBlue = new(4289774814U);

    /// <summary>Gets the predefined color of light yellow, or #FFFFFFE0.</summary>
    public static Color LightYellow = new(4294967264U);

    /// <summary>Gets the predefined color of lime, or #FF00FF00.</summary>
    public static Color Lime = new(4278255360U);

    /// <summary>Gets the predefined color of lime green, or #FF32CD32.</summary>
    public static Color LimeGreen = new(4281519410U);

    /// <summary>Gets the predefined color of linen, or #FFFAF0E6.</summary>
    public static Color Linen = new(4294635750U);

    /// <summary>Gets the predefined color of magenta, or #FFFF00FF.</summary>
    public static Color Magenta = new(4294902015U);

    /// <summary>Gets the predefined color of maroon, or #FF800000.</summary>
    public static Color Maroon = new(4286578688U);

    /// <summary>Gets the predefined color of medium aquamarine, or #FF66CDAA.</summary>
    public static Color MediumAquamarine = new(4284927402U);

    /// <summary>Gets the predefined color of medium blue, or #FF0000CD.</summary>
    public static Color MediumBlue = new(4278190285U);

    /// <summary>Gets the predefined color of medium orchid, or #FFBA55D3.</summary>
    public static Color MediumOrchid = new(4290401747U);

    /// <summary>Gets the predefined color of medium purple, or #FF9370DB.</summary>
    public static Color MediumPurple = new(4287852763U);

    /// <summary>Gets the predefined color of medium sea green, or #FF3CB371.</summary>
    public static Color MediumSeaGreen = new(4282168177U);

    /// <summary>Gets the predefined color of medium slate blue, or #FF7B68EE.</summary>
    public static Color MediumSlateBlue = new(4286277870U);

    /// <summary>Gets the predefined color of medium spring green, or #FF00FA9A.</summary>
    public static Color MediumSpringGreen = new(4278254234U);

    /// <summary>Gets the predefined color of medium turquoise, or #FF48D1CC.</summary>
    public static Color MediumTurquoise = new(4282962380U);

    /// <summary>Gets the predefined color of medium violet red, or #FFC71585.</summary>
    public static Color MediumVioletRed = new(4291237253U);

    /// <summary>Gets the predefined color of midnight blue, or #FF191970.</summary>
    public static Color MidnightBlue = new(4279834992U);

    /// <summary>Gets the predefined color of mint cream, or #FFF5FFFA.</summary>
    public static Color MintCream = new(4294311930U);

    /// <summary>Gets the predefined color of misty rose, or #FFFFE4E1.</summary>
    public static Color MistyRose = new(4294960353U);

    /// <summary>Gets the predefined color of moccasin, or #FFFFE4B5.</summary>
    public static Color Moccasin = new(4294960309U);

    /// <summary>Gets the predefined color of navajo white, or #FFFFDEAD.</summary>
    public static Color NavajoWhite = new(4294958765U);

    /// <summary>Gets the predefined color of navy, or #FF000080.</summary>
    public static Color Navy = new(4278190208U);

    /// <summary>Gets the predefined color of old lace, or #FFFDF5E6.</summary>
    public static Color OldLace = new(4294833638U);

    /// <summary>Gets the predefined color of olive, or #FF808000.</summary>
    public static Color Olive = new(4286611456U);

    /// <summary>Gets the predefined color of olive drab, or #FF6B8E23.</summary>
    public static Color OliveDrab = new(4285238819U);

    /// <summary>Gets the predefined color of orange, or #FFFFA500.</summary>
    public static Color Orange = new(4294944000U);

    /// <summary>Gets the predefined color of orange red, or #FFFF4500.</summary>
    public static Color OrangeRed = new(4294919424U);

    /// <summary>Gets the predefined color of orchid, or #FFDA70D6.</summary>
    public static Color Orchid = new(4292505814U);

    /// <summary>Gets the predefined color of pale goldenrod, or #FFEEE8AA.</summary>
    public static Color PaleGoldenrod = new(4293847210U);

    /// <summary>Gets the predefined color of pale green, or #FF98FB98.</summary>
    public static Color PaleGreen = new(4288215960U);

    /// <summary>Gets the predefined color of pale turquoise, or #FFAFEEEE.</summary>
    public static Color PaleTurquoise = new(4289720046U);

    /// <summary>Gets the predefined color of pale violet red, or #FFDB7093.</summary>
    public static Color PaleVioletRed = new(4292571283U);

    /// <summary>Gets the predefined color of papaya whip, or #FFFFEFD5.</summary>
    public static Color PapayaWhip = new(4294963157U);

    /// <summary>Gets the predefined color of peach puff, or #FFFFDAB9.</summary>
    public static Color PeachPuff = new(4294957753U);

    /// <summary>Gets the predefined color of peru, or #FFCD853F.</summary>
    public static Color Peru = new(4291659071U);

    /// <summary>Gets the predefined color of pink, or #FFFFC0CB.</summary>
    public static Color Pink = new(4294951115U);

    /// <summary>Gets the predefined color of plum, or #FFDDA0DD.</summary>
    public static Color Plum = new(4292714717U);

    /// <summary>Gets the predefined color of powder blue, or #FFB0E0E6.</summary>
    public static Color PowderBlue = new(4289781990U);

    /// <summary>Gets the predefined color of purple, or #FF800080.</summary>
    public static Color Purple = new(4286578816U);

    /// <summary>Gets the predefined color of red, or #FFFF0000.</summary>
    public static Color Red = new(4294901760U);

    /// <summary>Gets the predefined color of rosy brown, or #FFBC8F8F.</summary>
    public static Color RosyBrown = new(4290547599U);

    /// <summary>Gets the predefined color of royal blue, or #FF4169E1.</summary>
    public static Color RoyalBlue = new(4282477025U);

    /// <summary>Gets the predefined color of saddle brown, or #FF8B4513.</summary>
    public static Color SaddleBrown = new(4287317267U);

    /// <summary>Gets the predefined color of salmon, or #FFFA8072.</summary>
    public static Color Salmon = new(4294606962U);

    /// <summary>Gets the predefined color of sandy brown, or #FFF4A460.</summary>
    public static Color SandyBrown = new(4294222944U);

    /// <summary>Gets the predefined color of sea green, or #FF2E8B57.</summary>
    public static Color SeaGreen = new(4281240407U);

    /// <summary>Gets the predefined color of sea shell, or #FFFFF5EE.</summary>
    public static Color SeaShell = new(4294964718U);

    /// <summary>Gets the predefined color of sienna, or #FFA0522D.</summary>
    public static Color Sienna = new(4288696877U);

    /// <summary>Gets the predefined color of silver, or #FFC0C0C0.</summary>
    public static Color Silver = new(4290822336U);

    /// <summary>Gets the predefined color of sky blue, or #FF87CEEB.</summary>
    public static Color SkyBlue = new(4287090411U);

    /// <summary>Gets the predefined color of slate blue, or #FF6A5ACD.</summary>
    public static Color SlateBlue = new(4285160141U);

    /// <summary>Gets the predefined color of slate gray, or #FF708090.</summary>
    public static Color SlateGray = new(4285563024U);

    /// <summary>Gets the predefined color of snow, or #FFFFFAFA.</summary>
    public static Color Snow = new(4294966010U);

    /// <summary>Gets the predefined color of spring green, or #FF00FF7F.</summary>
    public static Color SpringGreen = new(4278255487U);

    /// <summary>Gets the predefined color of steel blue, or #FF4682B4.</summary>
    public static Color SteelBlue = new(4282811060U);

    /// <summary>Gets the predefined color of tan, or #FFD2B48C.</summary>
    public static Color Tan = new(4291998860U);

    /// <summary>Gets the predefined color of teal, or #FF008080.</summary>
    public static Color Teal = new(4278222976U);

    /// <summary>Gets the predefined color of thistle, or #FFD8BFD8.</summary>
    public static Color Thistle = new(4292394968U);

    /// <summary>Gets the predefined color of tomato, or #FFFF6347.</summary>
    public static Color Tomato = new(4294927175U);

    /// <summary>Gets the predefined color of turquoise, or #FF40E0D0.</summary>
    public static Color Turquoise = new(4282441936U);

    /// <summary>Gets the predefined color of violet, or #FFEE82EE.</summary>
    public static Color Violet = new(4293821166U);

    /// <summary>Gets the predefined color of wheat, or #FFF5DEB3.</summary>
    public static Color Wheat = new(4294303411U);

    /// <summary>Gets the predefined color of white, or #FFFFFFFF.</summary>
    public static Color White = new(uint.MaxValue);

    /// <summary>Gets the predefined color of white smoke, or #FFF5F5F5.</summary>
    public static Color WhiteSmoke = new(4294309365U);

    /// <summary>Gets the predefined color of yellow, or #FFFFFF00.</summary>
    public static Color Yellow = new(4294967040U);

    /// <summary>Gets the predefined color of yellow green, or #FF9ACD32.</summary>
    public static Color YellowGreen = new(4288335154U);

    /// <summary>Gets the predefined color of white transparent, or #00FFFFFF.</summary>
    public static Color Transparent = new(16777215U);

    /// <summary>Gets the predefined empty color (black transparent), or #00000000.</summary>
    /// <value />

    public static Color Empty => new(0U);
}
