Skip to content

Commit 85b6a33

Browse files
committed
refactor: add a safe-rgba function in case palettes is empty map
1 parent 6f39480 commit 85b6a33

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

src/material/core/tokens/m2/_md-sys-color.scss

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
@use '../../m2/palette';
33

44
@function md-sys-color-values-dark($palettes) {
5+
@debug $palettes;
56
@return (
67
primary: map.get($palettes, primary, default),
78
on-primary: map.get($palettes, primary, default-contrast),
@@ -22,7 +23,7 @@
2223
inverse-on-surface: rgba(black, 0.87),
2324
outline: rgba(white, 0.12),
2425
outline-variant: rgba(white, 0.38),
25-
error-container: rgba(map.get($palettes, warn, 300), 0.24),
26+
error-container: safe-rgba(map.get($palettes, warn, 300), 0.24),
2627
on-background: white,
2728
on-error-container: map.get($palettes, warn, 100),
2829
on-primary-container: map.get($palettes, primary, 100),
@@ -35,11 +36,11 @@
3536
on-tertiary-container: map.get($palettes, accent, 100),
3637
on-tertiary-fixed: map.get($palettes, accent, default-contrast),
3738
on-tertiary-fixed-variant: map.get($palettes, accent, default-contrast),
38-
primary-container: rgba(map.get($palettes, primary, 300), 0.24),
39+
primary-container: safe-rgba(map.get($palettes, primary, 300), 0.24),
3940
primary-fixed: map.get($palettes, primary, default),
4041
primary-fixed-dim: map.get($palettes, primary, default),
4142
scrim: black,
42-
secondary-container: rgba(map.get($palettes, accent, 300), 0.24),
43+
secondary-container: safe-rgba(map.get($palettes, accent, 300), 0.24),
4344
secondary-fixed: map.get($palettes, accent, default),
4445
secondary-fixed-dim: map.get($palettes, accent, default),
4546
surface-bright: map.get(palette.$grey-palette, 800),
@@ -51,7 +52,7 @@
5152
surface-dim: map.get(palette.$grey-palette, 800),
5253
surface-tint: map.get(palette.$grey-palette, 800),
5354
tertiary: map.get($palettes, accent, default),
54-
tertiary-container: rgba(map.get($palettes, accent, 300), 0.24),
55+
tertiary-container: safe-rgba(map.get($palettes, accent, 300), 0.24),
5556
tertiary-fixed: map.get($palettes, accent, default),
5657
tertiary-fixed-dim: map.get($palettes, accent, default),
5758
);
@@ -112,3 +113,12 @@
112113
tertiary-fixed-dim: map.get($palettes, accent, default),
113114
);
114115
}
116+
117+
// Returns the rgba value for the provided color and opacity. If color is null,
118+
// then it returns null. If rgba is used in these cases, Sass throws an error.
119+
@function safe-rgba($color, $opacity) {
120+
@if $color == null {
121+
@return null;
122+
}
123+
@return rgba($color, $opacity);
124+
}

0 commit comments

Comments
 (0)