$x: global-x; $y: global-y; $z: global-z; @mixin foo($x, $y) { /* begin foo */ margin: $x $y; blip { hey: now; } /* end foo */ } @mixin foogoo($x, $y, $z) { margin: $x $y $z; } @mixin hux($y) { /* begin hux */ color: $y; @include foo(called-from-hux, $y: $y); /* end hux */ } div { @include foo(1, 2); @include foo(1, 3); @include foogoo(1, 2, $z: zee); @include foogoo(1, $y /* blah */ : kwd-y, $z: kwd-z); } div { @include hux($y: $y); } $y: different-global-y; div { @include hux(calling-hux-again); } @mixin bung() { blah: original-bung; } div { @include bung(); } @mixin bung() { blah: redefined-bung; } div { @include bung(); } div { /* calls to nullary mixins may omit the empty argument list */ @include bung; } div { @include foo($x: kwdarg1, $y: kwdarg2); } @mixin ruleset() { hoo { color: boo; } } @include ruleset(); $da: default argument; @mixin default_args($x, $y: $da) { blah: $x $y; } $da: some other default; div { @include default_args(boogoo); } @mixin original() { value: original; } div { @include original(); } @mixin original() { value: no longer original; } div { @include original(); } @mixin set-x($x) { $x: changed local x; arg: $x; $y: changed global y !global; blarg: $y; } div { @include set-x(blah); a: $x; b: $y; }