NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #4139 most downloaded on crates.io
A library for representing and manipulating colors
Last release 5 months ago
05 May 2026
Ships unpredictably
gaps range from 1 weeks to 10.0 years
Nearly every release is documented
notes for 10 of 11 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
11 releases · first in 2014
This is technically a breaking change: data serialized with 0.3.2 or earlier will now fail to deserialize. We expect this to not be an issue in practi…
This release has an MSRV of 1.82.
Skip serializing/deserializing PhantomData marker fields of OpaqueColor, AlphaColor, and PremulColor when the serde feature is enabled. (#202 by @alvinisspicy)
This is technically a breaking change: data serialized with 0.3.2 or earlier will now fail to deserialize.
We expect this to not be an issue in practice; if you do hit this issue, please let us know and we will re-evaluate.
Oklch::WHITE_COMPONENTS's hue is now 0° instead of 90°. (#210 by @tomcur)
Mapping functions like OpaqueColor::map now take FnOnce instead of Fn. (#211 by @tomcur)
Full Changelog: v0.3.2...v0.3.3
One column per quarter.
This release has an MSRV of 1.82.
This release has an MSRV of 1.82.
Add interpolate_unpremultiplied and gradient_unpremultiplied for interpolating in unpremultiplied (straight) alpha space.
While such interpolation will often give perceptually undesired results, this allows using Color to implement rendering features where such interpolation is specified, like in the HTML Canvas element. (#185 by @sagudev)
AlphaColor vs PremulColor to clarify alpha premultiplication, and make both types more discoverable from each other. (#190 by @tomcur)Full Changelog: v0.3.1...v0.3.2
This release has an MSRV of 1.82.
This release has an MSRV of 1.82.
core_float_math changes. (#175 by @ajakubowicz-canva)Full Changelog: v0.3.0...v0.3.1
Breaking change: the deprecated conversion From<Rgba8> for PremulColor<Srgb> has been removed. Use From<PremulRgba8> for PremulColor<Srgb> instead. (…
This release has an MSRV of 1.82.
Support converting between color spaces without chromatic adaptation, thereby representing the same absolute color in the destination color space as in the source color space. (#139, #153 by @tomcur)
Note to ColorSpace implementers: the WHITE_POINT associated constant is added to ColorSpace, defaulting to D65.
Implementations with a non-D65 white point should set this constant to get correct default absolute conversion behavior.
Support manual chromatic adaptation of colors between arbitrary white point chromaticities. (#139 by @tomcur)
Add Missing::EMPTY to allow getting an empty Missing set in const contexts. (#149 by @tomcur)
Add From<AlphaColor<_>> for DynamicColor conversions for all color spaces that have a direct runtime representation in ColorSpaceTag. (#155 by @LaurenzV)
Add usage examples for DynamicColor::interpolate and gradient. (#158, #159 by @tomcur)
From<Rgba8> for PremulColor<Srgb> has been removed. Use From<PremulRgba8> for PremulColor<Srgb> instead. (#157 by @tomcur)no_std support. (#146 by @waywardmonkeys){AlphaColor, OpaqueColor, PremulColor}::to_rgba8 faster. (#166 by @tomcur)Full Changelog: v0.2.3...v0.3.0
This release has an MSRV of 1.82.
This release has an MSRV of 1.82.
core_float_math changes. (#175 by @ajakubowicz-canva)Full Changelog: v0.2.3...v0.2.4
This release has an MSRV of 1.82.
This release has an MSRV of 1.82.
ColorSpace. (#130 by @tomcur)[u8; 4] and packed u32 into Rgba8 and PremulRgba8 are now provided. (#135 by @tomcur)AlphaColor<Srgb>, OpaqueColor<Srgb> and PremulColor<Srgb> from rgb8 values. (#136 by @waywardmonkeys)Full Changelog: v0.2.2...v0.2.3
This release has an MSRV of 1.82.
This release has an MSRV of 1.82.
XyzD65 are serialized as xyz-d65 rather than xyz. (#118 by @waywardmonkeys)Full Changelog: v0.2.1...v0.2.2
From<Rgba8> for PremulColor is deprecated and replaced by From<PremulRgba8> . ( #113 by @waywardmonkeys )
This release has an MSRV of 1.82.
FromStr impl for AlphaColor, DynamicColor, OpaqueColor, PremulColor. (#111 by @waywardmonkeys)serde's std feature when enabling our std feature. (#108 by @waywardmonkeys)From<Rgba8> for PremulColor is deprecated and replaced by From<PremulRgba8>. (#113 by @waywardmonkeys)Full Changelog: v0.2.0...v0.2.1
This release has an MSRV of 1.82.
This release has an MSRV of 1.82.
BLACK, WHITE, and TRANSPARENT constants to the color types. (#64 by @waywardmonkeys)serde feature enables using serde with AlphaColor, DynamicColor, HueDirection, OpaqueColor, PremulColor, and Rgba8. (#61, #70, #80 by @waywardmonkeys)Rgba8 to a u32 is now provided. (#66, #77 by @waywardmonkeys, #100 by @tomcur)PremulRgba8 type mirrors Rgba8, but for PremulColor. (#66 by @waywardmonkeys)AlphaColor::with_alpha allows setting the alpha channel. (#67 by @waywardmonkeys)ACEScg color space. (#54 by @MightyBurger)DynamicColor gets with_alpha and multiply_alpha. (#71 by @waywardmonkeys)DynamicColor now impls PartialEq. (#75 by @waywardmonkeys)AlphaColor, OpaqueColor, and PremulColor now impl PartialEq. (#76, #86 by @waywardmonkeys)HueDirection now impls PartialEq. (#79 by @waywardmonkeys)ColorSpaceTag and HueDirection now have bytemuck support. (#81 by @waywardmonkeys)DynamicColor parsed from a named color or named color space function now serializes back to that name, as per the CSS Color Level 4 spec (#39 by @tomcur).CacheKey to allow using colors as keys for resource caching. (#92 by @DJMcNab)mul_alpha method was renamed to multiply_alpha. (#65 by @waywardmonkeys)Rgba8 fixed. (#78 by @raphlinus)Full Changelog: v0.1.0...v0.2.0
We are proud to announce that we have released v0.1.0 of Color !
We are proud to announce that we have released v0.1.0 of Color!
The Color library provides functionality for representing, converting, parsing, serializing, and manipulating colors in a variety of color spaces. It closely follows the CSS Color Level 4 draft spec.
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →