var.set()

The var.set() mixin defines the CSS variables based on the given $property.

@mixin set($property, $selector: (), $function: null) {
  @if type-of($property) == map {
    @include selector.nest-content($selector...) {
      @each $name, $variant in $property {
        @if type-of($variant) == map {
          @each $variant-name, $value in $variant {
            @each $name in if(list.separator($name) == comma, $name, ($name)) {
              @if type-of($value) == map {
                @each $value-name, $value in $value {
                  #{name(combine((method: join), $name, $variant-name, $value-name))}: if(
                    $function,
                    #{meta.call-arglist($function, $value)},
                    #{$value}
                  );
                }
              } @else {
                #{name(combine((method: join), $name, $variant-name))}: if(
                  $function,
                  #{meta.call-arglist($function, $value)},
                  #{$value}
                );
              }
            }
          }
        } @else {
          $value: $variant;
          @each $name in if(list.separator($name) == comma, $name, ($name)) {
            #{name($name)}: if(
              $function,
              #{meta.call-arglist($function, $value)},
              #{$value}
            );
          }
        }
      }
    }
  }
}
https://github.com/angular-package/sass/blob/main/list/_list.append.function.scss
// Sass.
@use 'sass:list';

// Status: DONE
// The modified `list.append()` function returns a copy of `$list` with `$val` and/or with added multiple `$values`.
// The function is modified by adding arbitrary values to the end of the parameters to preserve the original functionality.
// @param `$list` The list to append the `$val` and/or `$values` into.
// @param `$val` The value to append to the end of `$list`.
// @param `$separator` The separator `comma`, `space` or `slash` of the list. Default `auto`.
// @arbitrary `$values...` Additional values to append into `$list`.
// @return Returns a copy of `$list` with `$val` and/or `$values` added to the end.
@function append($list, $val, $separator: auto, $values...) {
  @each $value in list.join(($val,), $values, comma) {
    $list: list.append($list, $value, $separator);
  }
  @return $list;
}

// Examples.
// @debug append(10px 20px, 30px); // 10px 20px 30px
// @debug append((red, green), blue, space); // red green blue

// additional values
// @debug append((blue, red), green, auto, blue, red); // blue, red, green, blue, red
// @debug append(10px 20px, 30px 40px, auto, 1px, 15px); // 10px 20px (30px 40px) 1px 15px
// @debug append(10px, 20px, auto, 1em, 2rem); // 10px 20px 1em 2rem
// @debug append(10px 20px, 30px 40px, auto, 1px, 15px, (1px 2px 3px)); // 10px 20px (30px 40px) 1px 15px (1px 2px 3px)
// @debug append((10px, 20px), 30px 40px, auto, 1px, 15px, (1px 2px 3px), (4px, 5px)); // 10px, 20px, 30px 40px, 1px, 15px, 1px 2px 3px, (4px, 5px)

// append map
// @debug append(1 2 3, (a: 1, b: 2, c: 3), auto, (d: 4, e: 5)); // 1 2 3 (a: 1, b: 2, c: 3) (d: 4, e: 5)
// @debug append((a: 1, b: 2), (c: 3, d: 4), auto, (e: 5, f: 6)); // a 1, b 2, (c: 3, d: 4), (e: 5, f: 6)
// @debug append(1 2 3, (a: 1, b: 2, c: 3), auto, (d: 4, e: 5), (4, 5, 6), (7, 8, 9)); // 1 2 3 (a: 1, b: 2, c: 3) (d: 4, e: 5) (4, 5, 6) (7, 8, 9)
// @debug append(1 2 3, (a: 1, b: 2, c: 3), auto, (d: 4, e: 5), 4, 5, 6, 7, 8, 9); // 1 2 3 (a: 1, b: 2, c: 3) (d: 4, e: 5) 4 5 6 7 8 9

Parameters

$property

The property or properties of map type to set CSS variables.

$selector

Selector in which CSS variables are set.

$function

Function to call on property values of list type.

Examples

// Use.
@use 'angular-package/sass/var';

// Examples.

Last updated