1use glam::{vec4, Vec4};
4
5pub fn rgb(r: u8, g: u8, b: u8) -> Vec4 {
7 vec4(r as f32 / 255.0, g as f32 / 255.0, b as f32 / 255.0, 1.0)
8}
9
10pub fn rgba(r: u8, g: u8, b: u8, a: u8) -> Vec4 {
12 vec4(r as f32 / 255.0, g as f32 / 255.0, b as f32 / 255.0, a as f32 / 255.0)
13}
14
15pub fn rgb_hex(value: u32) -> Vec4 {
17 let r = (value >> 16) & 0xff;
18 let g = (value >> 8) & 0xff;
19 let b = value & 0xff;
20 vec4(r as f32 / 255.0, g as f32 / 255.0, b as f32 / 255.0, 1.0)
21}
22
23pub fn rgba_hex(value: u32) -> Vec4 {
25 let r = (value >> 16) & 0xff;
26 let g = (value >> 8) & 0xff;
27 let b = value & 0xff;
28 let a = (value >> 24) & 0xff;
29 vec4(r as f32 / 255.0, g as f32 / 255.0, b as f32 / 255.0, a as f32 / 255.0)
30}
31
32#[cfg_attr(doc, doc="<span style='display: inline-block; background: repeating-conic-gradient(grey 0 25%,darkgrey 0 50%) 50%/8px 8px; width: 1em; height: 1em; border-radius: 50%; border: 1px solid black; vertical-align: -7%'></span>")]
33pub const TRANSPARENT: Vec4 = vec4(0.0, 0.0, 0.0, 0.0);
35
36#[cfg_attr(doc, doc="<span style='display: inline-block; background-color: #000000; width: 1em; height: 1em; border-radius: 50%; border: 1px solid black; vertical-align: -7%'></span>")]
37pub const BLACK: Vec4 = vec4(0.0, 0.0, 0.0, 1.0);
39
40#[cfg_attr(doc, doc="<span style='display: inline-block; background-color: #ffffff; width: 1em; height: 1em; border-radius: 50%; border: 1px solid black; vertical-align: -7%'></span>")]
41pub const WHITE: Vec4 = vec4(1.0, 1.0, 1.0, 1.0);
43
44#[cfg_attr(doc, doc="<span style='display: inline-block; background-color: #ff0000; width: 1em; height: 1em; border-radius: 50%; border: 1px solid black; vertical-align: -7%'></span>")]
45pub const RED: Vec4 = vec4(1.0, 0.0, 0.0, 1.0);
47
48#[cfg_attr(doc, doc="<span style='display: inline-block; background-color: #800000; width: 1em; height: 1em; border-radius: 50%; border: 1px solid black; vertical-align: -7%'></span>")]
49pub const DARK_RED: Vec4 = vec4(0.5, 0.0, 0.0, 1.0);
51
52#[cfg_attr(doc, doc="<span style='display: inline-block; background-color: #00ff00; width: 1em; height: 1em; border-radius: 50%; border: 1px solid black; vertical-align: -7%'></span>")]
53pub const GREEN: Vec4 = vec4(0.0, 1.0, 0.0, 1.0);
55
56#[cfg_attr(doc, doc="<span style='display: inline-block; background-color: #008000; width: 1em; height: 1em; border-radius: 50%; border: 1px solid black; vertical-align: -7%'></span>")]
57pub const DARK_GREEN: Vec4 = vec4(0.0, 0.5, 0.0, 1.0);
59
60#[cfg_attr(doc, doc="<span style='display: inline-block; background-color: #0000ff; width: 1em; height: 1em; border-radius: 50%; border: 1px solid black; vertical-align: -7%'></span>")]
61pub const BLUE: Vec4 = vec4(0.0, 0.0, 1.0, 1.0);
63
64#[cfg_attr(doc, doc="<span style='display: inline-block; background-color: #000080; width: 1em; height: 1em; border-radius: 50%; border: 1px solid black; vertical-align: -7%'></span>")]
65pub const DARK_BLUE: Vec4 = vec4(0.0, 0.0, 0.5, 1.0);
67
68#[cfg_attr(doc, doc="<span style='display: inline-block; background-color: #ffff00; width: 1em; height: 1em; border-radius: 50%; border: 1px solid black; vertical-align: -7%'></span>")]
69pub const YELLOW: Vec4 = vec4(1.0, 1.0, 0.0, 1.0);
71
72#[cfg_attr(doc, doc="<span style='display: inline-block; background-color: #00ffff; width: 1em; height: 1em; border-radius: 50%; border: 1px solid black; vertical-align: -7%'></span>")]
73pub const CYAN: Vec4 = vec4(0.0, 1.0, 1.0, 1.0);
75
76#[cfg_attr(doc, doc="<span style='display: inline-block; background-color: #ff00ff; width: 1em; height: 1em; border-radius: 50%; border: 1px solid black; vertical-align: -7%'></span>")]
77pub const MAGENTA: Vec4 = vec4(1.0, 0.0, 1.0, 1.0);
79
80#[cfg_attr(doc, doc="<span style='display: inline-block; background-color: #808080; width: 1em; height: 1em; border-radius: 50%; border: 1px solid black; vertical-align: -7%'></span>")]
81pub const GRAY: Vec4 = vec4(0.5, 0.5, 0.5, 1.0);
83
84#[cfg_attr(doc, doc="<span style='display: inline-block; background-color: #c0c0c0; width: 1em; height: 1em; border-radius: 50%; border: 1px solid black; vertical-align: -7%'></span>")]
85pub const LIGHT_GRAY: Vec4 = vec4(0.75, 0.75, 0.75, 1.0);
87
88#[cfg_attr(doc, doc="<span style='display: inline-block; background-color: #404040; width: 1em; height: 1em; border-radius: 50%; border: 1px solid black; vertical-align: -7%'></span>")]
89pub const DARK_GRAY: Vec4 = vec4(0.25, 0.25, 0.25, 1.0);
91
92#[cfg_attr(doc, doc="<span style='display: inline-block; background-color: #ff8000; width: 1em; height: 1em; border-radius: 50%; border: 1px solid black; vertical-align: -7%'></span>")]
93pub const ORANGE: Vec4 = vec4(1.0, 0.5, 0.0, 1.0);
95
96#[cfg_attr(doc, doc="<span style='display: inline-block; background-color: #804000; width: 1em; height: 1em; border-radius: 50%; border: 1px solid black; vertical-align: -7%'></span>")]
97pub const BROWN: Vec4 = vec4(0.5, 0.25, 0.0, 1.0);
99
100#[cfg_attr(doc, doc="<span style='display: inline-block; background-color: #ff80ff; width: 1em; height: 1em; border-radius: 50%; border: 1px solid black; vertical-align: -7%'></span>")]
101pub const PINK: Vec4 = vec4(1.0, 0.5, 1.0, 1.0);
103
104#[cfg_attr(doc, doc="<span style='display: inline-block; background-color: #800080; width: 1em; height: 1em; border-radius: 50%; border: 1px solid black; vertical-align: -7%'></span>")]
105pub const PURPLE: Vec4 = vec4(0.5, 0.0, 0.5, 1.0);
107
108#[cfg_attr(doc, doc="<span style='display: inline-block; background-color: #80ff00; width: 1em; height: 1em; border-radius: 50%; border: 1px solid black; vertical-align: -7%'></span>")]
109pub const LIME: Vec4 = vec4(0.5, 1.0, 0.0, 1.0);
111
112#[cfg_attr(doc, doc="<span style='display: inline-block; background-color: #008080; width: 1em; height: 1em; border-radius: 50%; border: 1px solid black; vertical-align: -7%'></span>")]
113pub const TEAL: Vec4 = vec4(0.0, 0.5, 0.5, 1.0);
115
116#[cfg_attr(doc, doc="<span style='display: inline-block; background-color: #004080; width: 1em; height: 1em; border-radius: 50%; border: 1px solid black; vertical-align: -7%'></span>")]
117pub const INDIGO: Vec4 = vec4(0.0, 0.25, 0.5, 1.0);
119
120#[cfg_attr(doc, doc="<span style='display: inline-block; background-color: #808000; width: 1em; height: 1em; border-radius: 50%; border: 1px solid black; vertical-align: -7%'></span>")]
121pub const OLIVE: Vec4 = vec4(0.5, 0.5, 0.0, 1.0);
123
124#[cfg_attr(doc, doc="<span style='display: inline-block; background-color: #87ceeb; width: 1em; height: 1em; border-radius: 50%; border: 1px solid black; vertical-align: -7%'></span>")]
125pub const SKY_BLUE: Vec4 = vec4(0.53, 0.81, 0.92, 1.0);
127
128