Skip to main content

encre_css/plugins/border/border_width/
mod.rs

1#![doc = include_str!("README.md")]
2#![doc(alias = "border")]
3use crate::prelude::build_plugin::*;
4
5type P = (StaticPlugin, StaticPlugin);
6
7const fn plugin(namespace: &'static str, prop: StaticPropertyName) -> P {
8    (
9        Plugin::Number(Number {
10            namespace,
11            prop,
12            has_empty: Some(true),
13            template: Some(SingleProp("{}px")),
14            ..Number::default()
15        }),
16        Plugin::Arbitrary(Arbitrary {
17            namespace,
18            prop,
19            disambiguate: Some(ArbitraryDisambiguate {
20                matched: &[CssType::Length, CssType::LineWidth],
21                separation: ArbitraryDisambiguateSeparation::Space,
22            }),
23            ..Arbitrary::default()
24        }),
25    )
26}
27
28pub(crate) const PLUGIN: P = plugin("border", SingleProp("border-width"));
29pub(crate) const PLUGIN_X: P = plugin("border-x", SingleProp("border-inline-width"));
30pub(crate) const PLUGIN_Y: P = plugin("border-y", SingleProp("border-block-width"));
31pub(crate) const PLUGIN_START: P = plugin("border-s", SingleProp("border-inline-start-width"));
32pub(crate) const PLUGIN_END: P = plugin("border-e", SingleProp("border-inline-end-width"));
33pub(crate) const PLUGIN_TOP: P = plugin("border-t", SingleProp("border-top-width"));
34pub(crate) const PLUGIN_BOTTOM: P = plugin("border-b", SingleProp("border-bottom-width"));
35pub(crate) const PLUGIN_LEFT: P = plugin("border-l", SingleProp("border-left-width"));
36pub(crate) const PLUGIN_RIGHT: P = plugin("border-r", SingleProp("border-right-width"));