// Replaces $old-value by $new-value in $list // ------------------------------------------------------------------------------- // @documentation http://sassylists.com/documentation.html#replace // ------------------------------------------------------------------------------- // @example replace( (a, b, c), b, z ) => a, z, c // @example replace( (a, b, c), y, z ) => a, b, c // @example replace( (a, b, c a), a, z ) => z, b, c z // @example replace( (a, b, c a), a, z, true ) => z, b, c z // ------------------------------------------------------------------------------- // @param $list [List] : list // @param $old [Literal] : value to replace // @param $value [Literal] : new value for $old-value // @param $recursive [Boolean] : enable / disable recursivity // ------------------------------------------------------------------------------- // @return [List] @function replace($list, $old, $value, $recursive: false) { $result: (); @each $item in $list { @if $item == $old { @if $value and $value != '' and $value != () { $result: append($result, $value); } } @else if length($item) > 1 and $recursive { $result: append($result, replace($item, $old, $value, $recursive)); } @else { $result: append($result, $item); } } @return $result; }