-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
_property.name.function.scss
35 lines (28 loc) · 1.17 KB
/
_property.name.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
// Sass.
@use 'sass:list';
// Modules.
@use '../string';
// Functions.
@use '../list/remove/remove.duplicate.function' as list-remove-duplicate;
@use 'property.name-nest.function' as *;
// Status: DONE
// The `property.name()` function returns property names as list built from arbitrary `$names`.
// @arbitrary `$names...` The name for property or multiple properties.
// @returns The returned value is a property names as list built from `$names`.
@function name($names...) {
$names: name-nest($names...);
@for $i from 1 through list.length($names) {
// Build name.
$name: string.unquote(string.join('-', list.nth($names, $i)));
// Split and remove potential duplicates.
$name: list-remove-duplicate.duplicate(string.split($name, '-'));
// Build name and set to list.
$names: list.set-nth($names, $i, string.unquote(string.join('-', $name)));
}
@return if(list.length($names) == 1, list.nth($names, 1), $names);
}
// Examples.
// @debug name(background, border, color); // background-border-color
// @debug name((background, border, color)); // background, border, color
// remove duplicates.
// @debug name(background, background, color); // background-color