Skip to content

Commit 846fbde

Browse files
authored
feat(switch): improve switch theme (#15699)
1 parent 7fcee0e commit 846fbde

File tree

1 file changed

+112
-8
lines changed

1 file changed

+112
-8
lines changed

projects/igniteui-angular/src/lib/core/styles/components/switch/_switch-theme.scss

Lines changed: 112 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,116 @@
9191
}
9292

9393
$theme: digest-schema($switch-schema);
94-
$meta: map.get($theme, '_meta');
94+
$variant: map.get($theme, '_meta', 'theme');
95+
96+
@if $variant == 'material' {
97+
@if not($track-off-color) and $thumb-off-color {
98+
$track-off-color: hsl(from var(--thumb-off-color) h s calc(l * 0.5));
99+
}
100+
101+
@if not($thumb-off-color) and $track-off-color {
102+
$thumb-off-color: hsl(from var(--track-off-color) h s calc(l * 1.3));
103+
}
104+
105+
@if not($thumb-disabled-color) and $thumb-off-color {
106+
$thumb-disabled-color: hsl(from var(--thumb-off-color) h s calc(l + 20));
107+
}
108+
109+
@if not($track-on-color) and $thumb-on-color {
110+
$track-on-color: hsl(from var(--thumb-on-color) h s calc(l * 1.3));
111+
}
112+
113+
@if not($track-on-hover-color) and $track-on-color {
114+
$track-on-hover-color: var(--track-on-color);
115+
}
116+
117+
@if not($thumb-on-color) and $track-on-color {
118+
$thumb-on-color: hsl(from var(--track-on-color) h s calc(l * 0.6));
119+
}
120+
121+
@if not($thumb-on-disabled-color) and $thumb-on-color {
122+
$thumb-on-disabled-color: hsl(from var(--thumb-on-color) h s calc(l + 20));
123+
}
124+
} @else {
125+
@if not($thumb-off-color) and $track-off-color {
126+
$thumb-off-color: hsla(from adaptive-contrast(var(--track-off-color)) h s l / 0.8);
127+
}
128+
@if not($border-color) and $thumb-off-color {
129+
$border-color: var(--thumb-off-color);
130+
}
131+
132+
@if not($thumb-off-color) and $border-color {
133+
$thumb-off-color: var(--border-color);
134+
}
135+
136+
@if not($border-hover-color) and $track-off-color {
137+
$border-hover-color: hsla(from var(--thumb-off-color) h s l / 0.9);
138+
}
139+
140+
@if not($border-hover-color) and $border-color {
141+
$border-hover-color: hsl(from var(--border-color) h s calc(l * 0.8));
142+
}
143+
144+
@if not($thumb-on-color) and $track-on-color {
145+
$thumb-on-color: adaptive-contrast(var(--track-on-color));
146+
}
147+
148+
@if not($track-on-hover-color) and $track-on-color {
149+
$track-on-hover-color: hsl(from var(--track-on-color) h s calc(l * 0.9));
150+
}
151+
152+
@if not($border-on-color) and $track-on-color {
153+
$border-on-color: var(--track-on-color);
154+
}
155+
156+
@if not($border-on-hover-color) and $border-on-color {
157+
$border-on-hover-color: hsl(from var(--border-on-color) h s calc(l * 0.9));
158+
}
159+
160+
@if not($thumb-disabled-color) and $thumb-off-color {
161+
$thumb-disabled-color: hsla(from var(--thumb-off-color) h s l / 0.3);
162+
}
163+
164+
@if not($border-disabled-color) and $border-color {
165+
$border-disabled-color: hsla(from var(--border-color) h s l / 0.3);
166+
}
167+
168+
@if not($thumb-on-disabled-color) and $thumb-on-color {
169+
$thumb-on-disabled-color: hsla(from var(--thumb-on-color) h s l / 0.3);
170+
}
171+
172+
@if $variant == 'bootstrap' {
173+
@if not($focus-fill-color) and $track-on-color {
174+
$focus-fill-color: hsl(from var(--track-on-color) h s calc(l * 1.2));
175+
}
176+
177+
@if not($focus-outline-color) and $focus-fill-color {
178+
$focus-outline-color: hsla(from var(--focus-fill-color) h s l / 0.5);
179+
}
180+
181+
@if not($focus-fill-hover-color) and $focus-fill-color {
182+
$focus-fill-hover-color: hsl(from var(--focus-fill-color) h s calc(l * 0.9));
183+
}
184+
}
185+
186+
@if $variant == 'indigo' {
187+
@if not($focus-outline-color) and $border-color {
188+
$focus-outline-color: hsla(from var(--border-color) h s l / 0.5);
189+
}
190+
191+
@if not($focus-outline-color-focused) and $border-on-color {
192+
$focus-outline-color-focused: hsla(from var(--border-on-color) h s l / 0.5);
193+
}
194+
}
195+
}
196+
197+
@if not($track-disabled-color) and $track-off-color {
198+
$track-disabled-color: hsla(from var(--track-off-color) h s l / 0.5);
199+
}
200+
201+
@if not($track-on-disabled-color) and $track-on-color {
202+
$track-on-disabled-color: hsla(from var(--track-on-color) h s l / 0.5);
203+
}
95204

96205
@if not($resting-shadow) {
97206
$resting-elevation: map.get($switch-schema, 'resting-elevation');
@@ -155,11 +264,6 @@
155264
focus-outline-color-focused: $focus-outline-color-focused,
156265
focus-fill-color: $focus-fill-color,
157266
focus-fill-hover-color: $focus-fill-hover-color,
158-
theme: map.get($schema, '_meta', 'theme'),
159-
_meta: map.merge(if($meta, $meta, ()), (
160-
variant: map.get($schema, '_meta', 'theme'),
161-
theme-variant: map.get($schema, '_meta', 'variant')
162-
)),
163267
));
164268
}
165269

@@ -170,8 +274,8 @@
170274
@include css-vars($theme);
171275
@include scale-in-out($start-scale: .9);
172276

173-
$variant: map.get($theme, '_meta', 'variant');
174-
$theme-variant: map.get($theme, '_meta', 'theme-variant');
277+
$variant: map.get($theme, '_meta', 'theme');
278+
$theme-variant: map.get($theme, '_meta', 'variant');
175279

176280
$switch-width: map.get((
177281
'material': 36px,

0 commit comments

Comments
 (0)