use crate::ButtonVariant;
#[derive(Clone, Copy, Debug, PartialEq, strum::AsRefStr, strum::EnumIter)]
#[strum(serialize_all = "kebab-case")]
pub enum Accent {
Trace,
Debug,
Info,
Warn,
Error,
}
pub fn accent_text_class(accent: Accent) -> &'static str {
match accent {
Accent::Trace => "text-accent-trace",
Accent::Debug => "text-accent-debug",
Accent::Info => "text-accent-info",
Accent::Warn => "text-accent-warn",
Accent::Error => "text-accent-error",
}
}
pub fn accent_fill_class(accent: Accent) -> &'static str {
match accent {
Accent::Trace => "bg-accent-trace text-on-accent-trace hover:bg-accent-trace/90",
Accent::Debug => "bg-accent-debug text-background hover:bg-accent-debug/90",
Accent::Info => "bg-accent-info text-on-accent-info hover:bg-accent-info/90",
Accent::Warn => "bg-accent-warn text-background hover:bg-accent-warn/90",
Accent::Error => "bg-accent-error text-on-accent-error hover:bg-accent-error/90",
}
}
pub fn accent_outline_class(accent: Accent) -> &'static str {
match accent {
Accent::Trace => "border border-accent-trace/40 text-accent-trace hover:bg-accent-trace/10",
Accent::Debug => "border border-accent-debug/40 text-accent-debug hover:bg-accent-debug/10",
Accent::Info => "border border-accent-info/40 text-accent-info hover:bg-accent-info/10",
Accent::Warn => "border border-accent-warn/40 text-accent-warn hover:bg-accent-warn/10",
Accent::Error => "border border-accent-error/40 text-accent-error hover:bg-accent-error/10",
}
}
pub fn button_accent_class(accent: Accent, variant: &ButtonVariant) -> &'static str {
match variant {
ButtonVariant::Outline => accent_outline_class(accent),
_ => accent_fill_class(accent),
}
}