Skip to content

Commit 7e0cd44

Browse files
nmergetannsch
andauthored
feat: add filled base-icon properties (#168)
* feat: add filled base-icon properties * style: allow custom font family for icons Co-authored-by: Anna Schoderer <[email protected]>
1 parent 77e7a85 commit 7e0cd44

File tree

4 files changed

+45
-18
lines changed

4 files changed

+45
-18
lines changed

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
"build:style-dictionary": "node style-dictionary.js && npm run copy:scss",
1818
"build:documentation-css": "sass source/css/documentation.scss:out/css/documentation.css --style=compressed --embed-sources --load-path=node_modules",
1919
"build:tailwind": "node scripts/tailwind-config-generator.mjs false true && cpr scripts/tailwind-config-generator.mjs build/tailwind/tailwind-config-generator.mjs -o",
20-
"build-test:css": "sass build/scss/:build/css/ --load-path=node_modules",
20+
"build:css": "sass build/scss/:build/css/ --load-path=node_modules",
2121
"build": "npm-run-all copy:assets build:* pl:build",
2222
"clean": "rm -rf build",
2323
"lint": "npm-run-all -p lint:*",

scripts/scss-typography-generator.js

+6
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,8 @@ ${utility ? '.' : '%'}${prefix}-${scale}-${textType}-${getShortSize(size)}{
7171
--db-base-icon-font-size: #{$${prefix}-typography-${scale}-mobile-${textType}-${size}-font-size};
7272
--db-base-icon-font-family: #{get-icon-family($${prefix}-typography-${scale}-mobile-${textType}-${size}-font-size,
7373
$${prefix}-typography-${scale}-mobile-${textType}-${size}-line-height)};
74+
--db-base-icon-font-family-filled: #{get-icon-family($${prefix}-typography-${scale}-mobile-${textType}-${size}-font-size,
75+
$${prefix}-typography-${scale}-mobile-${textType}-${size}-line-height,"filled")};
7476
--db-type-body-font-size-${getShortSize(
7577
size
7678
)}: #{$${prefix}-typography-${scale}-mobile-${textType}-${size}-font-size};
@@ -89,6 +91,8 @@ ${utility ? '.' : '%'}${prefix}-${scale}-${textType}-${getShortSize(size)}{
8991
--db-base-icon-font-size: #{$${prefix}-typography-${scale}-tablet-${textType}-${size}-font-size};
9092
--db-base-icon-font-family: #{get-icon-family($${prefix}-typography-${scale}-tablet-${textType}-${size}-font-size,
9193
$${prefix}-typography-${scale}-tablet-${textType}-${size}-line-height)};
94+
--db-base-icon-font-family-filled: #{get-icon-family($${prefix}-typography-${scale}-tablet-${textType}-${size}-font-size,
95+
$${prefix}-typography-${scale}-tablet-${textType}-${size}-line-height,"filled")};
9296
--db-type-body-font-size-${getShortSize(
9397
size
9498
)}: #{$${prefix}-typography-${scale}-tablet-${textType}-${size}-font-size};
@@ -109,6 +113,8 @@ ${utility ? '.' : '%'}${prefix}-${scale}-${textType}-${getShortSize(size)}{
109113
--db-base-icon-font-size: #{$${prefix}-typography-${scale}-desktop-${textType}-${size}-font-size};
110114
--db-base-icon-font-family: #{get-icon-family($${prefix}-typography-${scale}-desktop-${textType}-${size}-font-size,
111115
$${prefix}-typography-${scale}-desktop-${textType}-${size}-line-height)};
116+
--db-base-icon-font-family-filled: #{get-icon-family($${prefix}-typography-${scale}-desktop-${textType}-${size}-font-size,
117+
$${prefix}-typography-${scale}-desktop-${textType}-${size}-line-height,"filled")};
112118
--db-type-body-font-size-${getShortSize(
113119
size
114120
)}: #{$${prefix}-typography-${scale}-desktop-${textType}-${size}-font-size};

scss/icon/_icon-family-calc.scss

+31-13
Original file line numberDiff line numberDiff line change
@@ -3,34 +3,52 @@
33
@use "sass:list";
44

55
$all-icon-sizes: (
6-
16: "icons-16-outline",
7-
20: "icons-20-outline",
8-
24: "icons-24-outline",
9-
32: "icons-32-outline",
10-
48: "icons-48-outline",
11-
64: "icons-64-outline"
6+
16: "icons-16-",
7+
20: "icons-20-",
8+
24: "icons-24-",
9+
32: "icons-32-",
10+
48: "icons-48-",
11+
64: "icons-64-"
1212
);
1313

14-
@function get-icon-family($font-size, $line-height) {
14+
@function get-icon-family($font-size, $line-height, $font-style: "outline") {
1515
$icon-size: (math.div($font-size, 1rem) * 16 * $line-height);
1616
$valid-sizes: "";
1717

1818
@if ($icon-size<20) {
19-
$valid-sizes: append($valid-sizes, map.get($all-icon-sizes, 16));
19+
$valid-sizes: append(
20+
$valid-sizes,
21+
#{map.get($all-icon-sizes, 16) + $font-style}
22+
);
2023
}
2124
@if ($icon-size<24) {
22-
$valid-sizes: append($valid-sizes, map.get($all-icon-sizes, 20));
25+
$valid-sizes: append(
26+
$valid-sizes,
27+
#{map.get($all-icon-sizes, 20) + $font-style}
28+
);
2329
}
2430
@if ($icon-size<32) {
25-
$valid-sizes: append($valid-sizes, map.get($all-icon-sizes, 24));
31+
$valid-sizes: append(
32+
$valid-sizes,
33+
#{map.get($all-icon-sizes, 24) + $font-style}
34+
);
2635
}
2736
@if ($icon-size<48) {
28-
$valid-sizes: append($valid-sizes, map.get($all-icon-sizes, 32));
37+
$valid-sizes: append(
38+
$valid-sizes,
39+
#{map.get($all-icon-sizes, 32) + $font-style}
40+
);
2941
}
3042
@if ($icon-size<64) {
31-
$valid-sizes: append($valid-sizes, map.get($all-icon-sizes, 48));
43+
$valid-sizes: append(
44+
$valid-sizes,
45+
#{map.get($all-icon-sizes, 48) + $font-style}
46+
);
3247
}
33-
$valid-sizes: append($valid-sizes, map.get($all-icon-sizes, 64));
48+
$valid-sizes: append(
49+
$valid-sizes,
50+
#{map.get($all-icon-sizes, 16) + $font-style}
51+
);
3452

3553
$result-string: "";
3654
@each $size in $valid-sizes {

scss/icon/_icons.helpers.scss

+7-4
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,15 @@
77
$size: $icon-size,
88
$style: $icon-style,
99
$position: "before",
10-
$partial: false
10+
$partial: false,
11+
$defaultFontProperties: true
1112
) {
1213
&::#{$position} {
13-
--icon-font-family: "#{"icons-" + $size + "-" + $style}",
14-
"missing-icons";
15-
--icon-font-size: #{to-rem($pxValue: $size)};
14+
@if $defaultFontProperties {
15+
--icon-font-family: "#{"icons-" + $size + "-" + $style}",
16+
"missing-icons";
17+
--icon-font-size: #{to-rem($pxValue: $size)};
18+
}
1619

1720
@if $position == "before" {
1821
margin-inline-end: var(--icon-margin-after, #{$icon-content-space});

0 commit comments

Comments
 (0)