encre_css/plugins/border/border_width/
mod.rs1#![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"));