colors
DUB package is a CSS color parsing libraries.
It defines basic types for colors, and a monomorphic Color
type to
use as interchange.
The problem is that screens and CSS now support the P3 colorspace, the end-goal is to be ready for more conversions than just staying sRGB forever. Color will be able to "do it all", in the future.
This is a work in progress. Only sRGB supported for now.
- 🎨
color()
function to parse a CSS color string. - 🎨
rgb()
andrgba()
functions, return aColor
- 🎨
hsl()
andhsla()
functions, return aColor
- 🎨
Color.toRGBA8()
to get a 8-bit sRGB quadruplet - 🎨
Color.toRGBA16()
to get a 16-bit sRGB quadruplet - 🎨
Color.toRGBAf()
to get a 32-bit float sRGB quadruplet - 🎨
nothrow @nogc @safe
- 🎨 See
test-suite/
for exact syntax supported, the goal is to follow CSS recommendations.
import colors;
// Quick way:
Color c = color("red");
Color c = Color("blue"); // also works
// CSS support (WIP)
c = color("#ab9");
c = color("#0f1c4A43");
c = color("rgba(14.01, 25.0e+0%, 16, 0.5)");
c = color("hsl(180deg, 100%, 50%)");
c = color("gray(100%, 50%)");
c = color("lightgoldenrodyellow");
// More correct way:
string err;
if (!parseCSSColor(str, c, err))
throw new Exception(err);
import std.stdio;
import colors;
void main()
{
RGBA8 c = color("coral").toRGBA8;
writefln("c is %s,%s,%s,%s", c.r, c.g, c.b, c.a);
}