// importing plugin globally @plugin “./plugin/plugin-global”;
// transitively include plugins from importing another sheet @import “./plugin/plugin-transitive”;
// `test-global` function should be reachable // `test-local` function should not be reachable // `test-shadow` function should return global version .class {
trans : test-transitive(); global : test-global(); local : test-local(); shadow : test-shadow(); // `test-global` function should propagate and be reachable // `test-local` function should be reachable // `test-shadow` function should return local version, shadowing global version .local { @plugin "./plugin/plugin-local"; global : test-global(); local : test-local(); shadow : test-shadow(); }
}
// calling a mixin or detached ruleset should not bubble local plugins // imported inside either into the parent scope. .mixin() {
@plugin "./plugin/plugin-local"; mixin-local : test-local(); mixin-global : test-global(); mixin-shadow : test-shadow();
} @ruleset : {
@plugin "./plugin/plugin-local"; ruleset-local : test-local(); ruleset-global : test-global(); ruleset-shadow : test-shadow();
}; ns {
@plugin "./plugin/plugin-local"; .mixin() { ns-mixin-global : test-global(); ns-mixin-local : test-local(); ns-mixin-shadow : test-shadow(); }
} .class {
#ns > .mixin(); .mixin(); @ruleset(); class-local : test-local();
}
// `test-global` function should propagate into directive scope @media screen {
.test { result : test-global(); }
} @font-face {
result : test-global();
}
// `test-global` function should propagate into nested directive scopes @media screen and (min-width:100px) {
@media (max-width:400px) { .test { result : test-global(); } }
}
.test {
@media screen { @plugin "./plugin/plugin-local"; result : test-local(); }
}