encre-css 0.21.0

A TailwindCSS-compatible utility-first CSS generation library written in Rust
Documentation
#![doc = include_str!("README.md")]
#![doc(alias("border", "rounded"))]
use crate::prelude::build_plugin::*;

const fn plugin(namespace: &'static str, prop: StaticPropertyName) -> (StaticPlugin, StaticPlugin) {
    (
        Plugin::ListValues(ListValues {
            prop,
            values: map! {
                "none" => "0",
                "xs" => "0.125rem",
                "sm" => "0.25rem",
                "md" => "0.375rem",
                "lg" => "0.5rem",
                "xl" => "0.75rem",
                "2xl" => "1rem",
                "3xl" => "1.5rem",
                "full" => "9999px",
            },
            namespace: Some(namespace),
            ..ListValues::default()
        }),
        Plugin::Arbitrary(Arbitrary {
            namespace,
            prop,
            disambiguate: Some(ArbitraryDisambiguate {
                matched: &[CssType::Length, CssType::Percentage],
                separation: ArbitraryDisambiguateSeparation::Space,
            }),
            ..Arbitrary::default()
        }),
    )
}

pub(crate) const PLUGIN: (StaticPlugin, StaticPlugin) =
    plugin("rounded", SingleProp("border-radius"));
pub(crate) const PLUGIN_START: (StaticPlugin, StaticPlugin) = plugin(
    "rounded-s",
    MultipleProps(&["border-start-start-radius", "border-end-start-radius"]),
);
pub(crate) const PLUGIN_END: (StaticPlugin, StaticPlugin) = plugin(
    "rounded-e",
    MultipleProps(&["border-start-end-radius", "border-end-end-radius"]),
);
pub(crate) const PLUGIN_START_START: (StaticPlugin, StaticPlugin) =
    plugin("rounded-ss", SingleProp("border-start-start-radius"));
pub(crate) const PLUGIN_START_END: (StaticPlugin, StaticPlugin) =
    plugin("rounded-se", SingleProp("border-start-end-radius"));
pub(crate) const PLUGIN_END_END: (StaticPlugin, StaticPlugin) =
    plugin("rounded-ee", SingleProp("border-end-end-radius"));
pub(crate) const PLUGIN_END_START: (StaticPlugin, StaticPlugin) =
    plugin("rounded-es", SingleProp("border-end-start-radius"));
pub(crate) const PLUGIN_TOP_RIGHT: (StaticPlugin, StaticPlugin) =
    plugin("rounded-tr", SingleProp("border-top-right-radius"));
pub(crate) const PLUGIN_TOP_LEFT: (StaticPlugin, StaticPlugin) =
    plugin("rounded-tl", SingleProp("border-top-left-radius"));
pub(crate) const PLUGIN_BOTTOM_RIGHT: (StaticPlugin, StaticPlugin) =
    plugin("rounded-br", SingleProp("border-bottom-right-radius"));
pub(crate) const PLUGIN_BOTTOM_LEFT: (StaticPlugin, StaticPlugin) =
    plugin("rounded-bl", SingleProp("border-bottom-left-radius"));
pub(crate) const PLUGIN_TOP: (StaticPlugin, StaticPlugin) = plugin(
    "rounded-t",
    MultipleProps(&["border-top-left-radius", "border-top-right-radius"]),
);
pub(crate) const PLUGIN_BOTTOM: (StaticPlugin, StaticPlugin) = plugin(
    "rounded-b",
    MultipleProps(&["border-bottom-left-radius", "border-bottom-right-radius"]),
);
pub(crate) const PLUGIN_LEFT: (StaticPlugin, StaticPlugin) = plugin(
    "rounded-l",
    MultipleProps(&["border-top-left-radius", "border-bottom-left-radius"]),
);
pub(crate) const PLUGIN_RIGHT: (StaticPlugin, StaticPlugin) = plugin(
    "rounded-r",
    MultipleProps(&["border-top-right-radius", "border-bottom-right-radius"]),
);