use cotis_defaults::colors::Color;
#[cfg(any(feature = "complex_color", feature = "complex_colored_text"))]
use cotis_defaults::colors::ColorLayer;
#[cfg(not(feature = "complex_color"))]
pub fn rectangle_fill_css(color: &Color) -> String {
color_css(color)
}
#[cfg(feature = "complex_color")]
pub fn rectangle_fill_css(color: &ColorLayer) -> String {
match color {
ColorLayer::Solid(c) => color_css(c),
_ => "transparent".to_string(),
}
}
#[cfg(not(feature = "complex_colored_text"))]
pub fn text_color_css(color: &Color) -> String {
color_css(color)
}
#[cfg(feature = "complex_colored_text")]
pub fn text_color_css(color: &ColorLayer) -> String {
match color {
ColorLayer::Solid(c) => color_css(c),
_ => "transparent".to_string(),
}
}
#[cfg(not(feature = "complex_color"))]
pub fn image_background_css(color: &Color) -> String {
color_css(color)
}
#[cfg(feature = "complex_color")]
pub fn image_background_css(color: &ColorLayer) -> String {
match color {
ColorLayer::Solid(c) => color_css(c),
_ => "transparent".to_string(),
}
}
#[cfg(not(feature = "complex_color"))]
pub fn custom_background_css(color: &Color) -> String {
color_css(color)
}
#[cfg(feature = "complex_color")]
pub fn custom_background_css(color: &ColorLayer) -> String {
match color {
ColorLayer::Solid(c) => color_css(c),
_ => "transparent".to_string(),
}
}
pub fn css_alpha(a: f32) -> f32 {
if a > 1.0 {
(a / 255.0).clamp(0.0, 1.0)
} else {
a.clamp(0.0, 1.0)
}
}
pub fn color_css(c: &Color) -> String {
format!("rgba({}, {}, {}, {})", c.r, c.g, c.b, css_alpha(c.a))
}