use crate::{Emit, class, status_edge, tone_rules};
use std::fmt::Write as _;
pub const FIGURE_CLASSES: &[&str] = &[
"figures",
"figure",
"figure-value",
"figure-caption",
"figure-change",
];
pub(crate) fn figure_rules(opts: &Emit) -> String {
let figures = class("figures", opts);
let figure = class("figure", opts);
let value = class("figure-value", opts);
let caption = class("figure-caption", opts);
let change = class("figure-change", opts);
let mut css = String::new();
let _ = writeln!(
css,
".{figures} {{\n display: flex;\n flex-wrap: wrap;\n gap: var(--gap-pane);\n \
padding: var(--gap-section);\n width: max-content;\n max-width: 100%;\n \
background: var(--surface-sunken, var(--surface-raised));\n}}"
);
let _ = writeln!(
css,
".{figure} > .{value} {{\n color: var(--content);\n font-weight: bold;\n \
font-size: var(--text-title);\n}}"
);
let _ = writeln!(
css,
".{figure} > .{caption} {{\n color: var(--content-muted);\n font-size: var(--text-note);\n}}"
);
let _ = writeln!(
css,
".{figure} > .{change} {{\n color: var(--content-muted);\n}}"
);
tone_rules(&mut css, &format!(".{figure}"), |tone| {
status_edge(opts.focus_width, tone)
});
css
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn every_class_this_module_names_has_a_rule() {
crate::test_support::assert_every_class_has_rule(
&figure_rules(&Emit::default()),
FIGURE_CLASSES,
);
}
}