sauron 0.70.0

A versatile web framework and library for building client-side and/or server-side web applications
Documentation
use sauron::*;

#[test]
fn annotated_properties_will_not_be_inlcuded() {
    let css = jss! {
        ".shape_buffer": {
            position: "absolute",
            top: 0,
            left: 0,
            #[cfg(feature = "debugging")]
            border: "1px solid red",
        },

        ".shape_buffer .bounds": {
            position: "absolute",
            #[cfg(feature = "debugging")]
            border: "1px solid blue",
        },
    };

    let expected = "\
        .shape_buffer {\
            \n  position: absolute;\
            \n  top: 0;\
            \n  left: 0;\
            \n}\
    \n\
        \n.shape_buffer .bounds {\
            \n  position: absolute;\
            \n}\
    \n";
    assert_eq!(expected, css);
}

#[test]
fn test_jss() {
    let css = jss!(
        ".layer": {
            background_color: "red",
            border: "1px solid green",
        },

        ".hide .layer": {
            opacity: 0,
        },
    );

    let expected = "\
        .layer {\
        \n  background-color: red;\
        \n  border: 1px solid green;\
        \n}\
        \n\
        \n.hide .layer {\
        \n  opacity: 0;\
        \n}\
        \n";
    assert_eq!(expected, css);
}

#[test]
fn test_jss_using_ident() {
    let css = jss!(
        ".layer": {
            background_color: "red",
            border: "1px solid green",
        },

        ".hide .layer": {
            opacity: 0,
        },
    );

    let expected = ".layer {\n  background-color: red;\n  border: 1px solid green;\n}\n\n.hide .layer {\n  opacity: 0;\n}\n";
    assert_eq!(expected, css);
}

#[test]
fn test_jss_ns() {
    let css = jss!(
        ".frame": {
            display: "block",
        },

        ".layer": {
            background_color: "red",
            border: "1px solid green",
        },

        ".hide .layer": {
            opacity: 0,
        },
    );

    let expected = ".frame {\n  display: block;\n}\n\n.layer {\n  background-color: red;\n  border: 1px solid green;\n}\n\n.hide .layer {\n  opacity: 0;\n}\n";
    assert_eq!(expected, css);
}
#[test]
fn test_jss_with_quoted_property_name() {
    let css = jss!(
        ".layer": {
            "background-color": "red",
            "border": "1px solid green",
        },

        ".hide .layer": {
            "opacity": 0,
        },
    );

    let expected = ".layer {\n  background-color: red;\n  border: 1px solid green;\n}\n\n.hide .layer {\n  opacity: 0;\n}\n";
    assert_eq!(expected, css);
}

#[test]
fn test_jss_with_mixed_quoting() {
    let css = jss!(
        ".block": {
            display: "block",
        },

        ".layer": {
            "background-color": "red",
            "user-select": "none",
            border: "1px solid green",
        },

        ".hide .layer": {
            opacity: 0,
        },
    );
    let expected = ".block {\n  display: block;\n}\n\n.layer {\n  background-color: red;\n  user-select: none;\n  border: 1px solid green;\n}\n\n.hide .layer {\n  opacity: 0;\n}\n";
    assert_eq!(expected, css);
}

#[test]
fn test_jss_ns_with_media_query() {
    let css = jss_with_media!(
        "@media screen and (max-width: 800px)": {
          ".layer": {
            width: "100%",
          }
        },
    );

    let expected = "\
        @media screen and (max-width: 800px) {\
            \n.layer {\
            \n  width: 100%;\
            \n}\
            \n\
            \n}\
            \n";
    assert_eq!(expected, css);
}