encre_css/plugins/border/ring_width/
mod.rs1#![doc = include_str!("README.md")]
2#![doc(alias = "border")]
3use crate::prelude::build_plugin::*;
4
5const BOX_SHADOW: &str = "box-shadow: var(--en-inset-shadow, 0 0 #0000), var(--en-inset-ring-shadow, 0 0 #0000), var(--en-ring-offset-shadow, 0 0 #0000), var(--en-ring-shadow), var(--en-shadow, 0 0 #0000);";
6const INSET_BOX_SHADOW: &str = "box-shadow: var(--en-inset-shadow, 0 0 #0000), var(--en-inset-ring-shadow), var(--en-ring-offset-shadow, 0 0 #0000), var(--en-ring-shadow, 0 0 #0000), var(--en-shadow, 0 0 #0000);";
7
8pub(crate) const PLUGIN: StaticPlugin = Plugin::Number(Number {
9 namespace: "ring",
10 prop: SingleProp("--en-ring-shadow"),
11 has_empty: Some(true),
12 extra_rule_css: Some(&[BOX_SHADOW]),
13 template: Some(SingleProp(
14 "0 0 0 calc({}px + var(--en-ring-offset-width)) var(--en-ring-color)",
15 )),
16 ..Number::default()
17});
18
19pub(crate) const PLUGIN_ARBITRARY: StaticPlugin = Plugin::Arbitrary(Arbitrary {
20 namespace: "ring",
21 prop: SingleProp("--en-ring-shadow"),
22 extra_rule_css: Some(&[BOX_SHADOW]),
23 disambiguate: Some(ArbitraryDisambiguate {
24 matched: &[CssType::Length],
25 separation: ArbitraryDisambiguateSeparation::None,
26 }),
27 template: Some(SingleProp(
28 "var(--en-ring-inset) 0 0 0 calc({} + var(--en-ring-offset-width)) var(--en-ring-color)",
29 )),
30 ..Arbitrary::default()
31});
32
33pub(crate) const PLUGIN_INSET_1: StaticPlugin = Plugin::Number(Number {
34 namespace: "inset-ring",
35 prop: SingleProp("--en-inset-ring-shadow"),
36 has_empty: Some(true),
37 extra_rule_css: Some(&[INSET_BOX_SHADOW]),
38 template: Some(SingleProp(
39 "inset 0 0 0 calc({}px + var(--en-ring-offset-width)) var(--en-ring-color)",
40 )),
41 ..Number::default()
42});
43
44pub(crate) const PLUGIN_INSET_2: StaticPlugin = Plugin::Arbitrary(Arbitrary {
45 namespace: "inset-ring",
46 prop: SingleProp("--en-inset-ring-shadow"),
47 extra_rule_css: Some(&[INSET_BOX_SHADOW]),
48 disambiguate: Some(ArbitraryDisambiguate {
49 matched: &[CssType::Length],
50 separation: ArbitraryDisambiguateSeparation::None,
51 }),
52 template: Some(SingleProp(
53 "inset 0 0 0 calc({value} + var(--en-ring-offset-width)) var(--en-ring-color)",
54 )),
55 ..Arbitrary::default()
56});