.error {
border: 1px #f00; background: #fdd;
} .error.intrusion {
font-size: 1.3em; font-weight: bold;
} .intrusion .error {
display: none;
} .badError:extend(.error all) {
border-width: 3px;
}
.foo .bar, .foo .baz {
display: none;
}
.ext1 .ext2
:extend(.foo all) {
}
.ext3:extend(.foo all), .ext4:extend(.foo all) { }
div.ext5, .ext6 > .ext5 {
width: 100px;
}
.should-not-exist-in-output, .ext7:extend(.ext5 all) { }
.ext {
test: 1;
} // same as // .a .c:extend(.ext all) // .b .c:extend(.ext all) // .a .c .d // .b .c .d .a, .b {
test: 2; .c:extend(.ext all) { test: 3; .d { test: 4; } }
}
.replace.replace, .c.replace + .replace {
.replace, .c { prop: copy-paste-replace; }
} .rep_ace:extend(.replace all) {}
.attributes {
[data="test"] { extend: attributes; } .attribute-test { &:extend([data="test"] all); } [data] { extend: attributes2; } .attribute-test2 { &:extend([data] all); //you could argue it should match [data="test"]... not for now though... } @attr-data: "test3"; [data=@{attr-data}] { extend: attributes2; } .attribute-test { &:extend([data="test3"] all); }
}
.header {
.header-nav { background: red; &:before { background: blue; } }
}
.footer {
.footer-nav { &:extend( .header .header-nav all ); }
}