-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
_list.append.function.scss
41 lines (35 loc) · 2.24 KB
/
_list.append.function.scss
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// 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`.
// @returns Returns a copy of `$list` with `$val` and/or `$values` added to the end.
@function append($list, $val, $separator: auto, $values...) {
@return list.join(
$list,
list.join(($val,), $values, list.separator($list)),
$separator
);
}
// Examples.
// @debug append(10px 20px, 30px); // 10px 20px 30px
// @debug append((red, green), blue, space); // red green blue
// @debug list.join(((10px 20px),), ((30px, 10px), (50px, 40px)), $separator: comma);
// @debug append(((10px 20px),), (30px, 10px), comma, (50px, 40px));
// @debug list.join(((10px 20px),), ((30px, 10px),), comma);
// @debug list.append(((10px 20px),), (30px, 10px), comma);
// 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