Search code examples
csssasslessmixinsless-mixins

Converting Mixin using Guarded Namespace in Less to Sass


How do I convert the following mixin written in LESS to SASS?

.box_gradient (@from, @to) when (iscolor(@from)) and (iscolor(@to)) {
  background-image: -webkit-gradient(linear, left top, left bottom, from(@from), to(@to)); /* Saf4+, Chrome */
  background-image: -webkit-linear-gradient(top, @from, @to); /* Chrome 10+, Saf5.1+, iOS 5+ */
  background-image:    -moz-linear-gradient(top, @from, @to); /* FF3.6 */
  background-image:     -ms-linear-gradient(top, @from, @to); /* IE10 */
  background-image:      -o-linear-gradient(top, @from, @to); /* Opera 11.10+ */
  background-image:         linear-gradient(to bottom, @from, @to);
}

Solution

  • This is accomplished in SASS using conditionals:

    .box_gradient (@from, @to) {
      @if (iscolor(@from) and iscolor(@to)) {
        background-image: -webkit-gradient(linear, left top, left bottom, from(@from),   to(@to)); /* Saf4+, Chrome */
        background-image: -webkit-linear-gradient(top, @from, @to); /* Chrome 10+,   Saf5.1+, iOS 5+ */
        background-image:    -moz-linear-gradient(top, @from, @to); /* FF3.6 */
        background-image:     -ms-linear-gradient(top, @from, @to); /* IE10 */
        background-image:      -o-linear-gradient(top, @from, @to); /* Opera 11.10+ */
        background-image:         linear-gradient(to bottom, @from, @to);
      }
    }