@carbon/styles 1.6.0-rc.0 → 1.8.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,7 +6,6 @@
6
6
  //3
7
7
 
8
8
  @use '../../config' as *;
9
- @use '../../feature-flags';
10
9
  @use '../../motion' as *;
11
10
  @use '../../spacing' as *;
12
11
  @use '../../theme' as *;
@@ -21,683 +20,146 @@
21
20
  /// @access public
22
21
  /// @group toggle
23
22
  @mixin toggle {
24
- @if feature-flags.enabled('enable-v11-release') {
25
- .#{$prefix}--toggle__label-text {
26
- @include type-style('label-01');
27
-
28
- display: block;
29
- margin-bottom: $spacing-05;
30
- color: $text-secondary;
31
- }
32
-
33
- .#{$prefix}--toggle__button {
34
- @include visually-hidden;
35
-
36
- &:focus {
37
- outline: none;
38
- }
39
- }
40
-
41
- .#{$prefix}--toggle__appearance {
42
- display: grid;
43
- align-items: center;
44
- column-gap: $spacing-03;
45
- cursor: pointer;
46
- grid-template-columns: max-content max-content;
47
- }
48
-
49
- .#{$prefix}--toggle__switch {
50
- position: relative;
51
- width: rem(48px);
52
- height: rem(24px);
53
- background-color: $toggle-off;
54
- border-radius: rem(12px);
55
- transition: background-color $duration-fast-01 motion(exit, productive);
56
-
57
- &::before {
58
- position: absolute;
59
- top: rem(3px);
60
- left: rem(3px);
61
- width: rem(18px);
62
- height: rem(18px);
63
- background-color: $icon-on-color;
64
- border-radius: 50%;
65
- content: '';
66
- transition: transform $duration-fast-01 motion(exit, productive);
67
-
68
- @media screen and (prefers-reduced-motion: reduce) {
69
- transition: none;
70
- }
71
- }
72
- }
73
-
74
- .#{$prefix}--toggle__button:focus
75
- + .#{$prefix}--toggle__label
76
- .#{$prefix}--toggle__switch,
77
- .#{$prefix}--toggle__button:active
78
- + .#{$prefix}--toggle__label
79
- .#{$prefix}--toggle__switch {
80
- box-shadow: 0 0 0 1px $focus-inset, 0 0 0 3px $focus;
81
- }
23
+ .#{$prefix}--toggle {
24
+ user-select: none;
25
+ }
82
26
 
83
- .#{$prefix}--toggle__switch--checked {
84
- background-color: $support-success;
27
+ .#{$prefix}--toggle__label-text {
28
+ @include type-style('label-01');
85
29
 
86
- &::before {
87
- transform: translateX(rem(24px));
88
- }
89
- }
30
+ display: block;
31
+ margin-bottom: $spacing-05;
32
+ color: $text-secondary;
33
+ }
90
34
 
91
- .#{$prefix}--toggle__text {
92
- @include type-style('body-01');
35
+ .#{$prefix}--toggle__button {
36
+ @include visually-hidden;
93
37
 
94
- color: $text-primary;
38
+ &:focus {
39
+ outline: none;
95
40
  }
41
+ }
96
42
 
97
- .#{$prefix}--toggle__appearance--sm .#{$prefix}--toggle__switch {
98
- width: rem(32px);
99
- height: rem(16px);
100
-
101
- &::before {
102
- width: rem(10px);
103
- height: rem(10px);
104
- }
105
- }
43
+ .#{$prefix}--toggle__appearance {
44
+ display: grid;
45
+ align-items: center;
46
+ column-gap: $spacing-03;
47
+ cursor: pointer;
48
+ grid-template-columns: max-content max-content;
49
+ }
106
50
 
107
- .#{$prefix}--toggle__appearance--sm
108
- .#{$prefix}--toggle__switch--checked::before {
109
- transform: translateX(rem(16px));
110
- }
51
+ .#{$prefix}--toggle__switch {
52
+ position: relative;
53
+ width: rem(48px);
54
+ height: rem(24px);
55
+ background-color: $toggle-off;
56
+ border-radius: rem(12px);
57
+ transition: background-color $duration-fast-01 motion(exit, productive);
111
58
 
112
- .#{$prefix}--toggle__check {
59
+ &::before {
113
60
  position: absolute;
114
- top: rem(6px);
115
- right: rem(5px);
116
- width: rem(6px);
117
- height: rem(5px);
118
- fill: $support-success;
119
- visibility: hidden;
120
- }
121
-
122
- .#{$prefix}--toggle__switch--checked .#{$prefix}--toggle__check {
123
- visibility: visible;
124
- }
125
-
126
- .#{$prefix}--toggle--disabled .#{$prefix}--toggle__appearance {
127
- cursor: not-allowed;
128
- }
129
-
130
- .#{$prefix}--toggle--disabled .#{$prefix}--toggle__label-text,
131
- .#{$prefix}--toggle--disabled .#{$prefix}--toggle__text {
132
- color: $text-disabled;
133
- }
134
-
135
- .#{$prefix}--toggle--disabled .#{$prefix}--toggle__switch {
136
- background-color: button.$button-disabled;
61
+ top: rem(3px);
62
+ left: rem(3px);
63
+ width: rem(18px);
64
+ height: rem(18px);
65
+ background-color: $icon-on-color;
66
+ border-radius: 50%;
67
+ content: '';
68
+ transition: transform $duration-fast-01 motion(exit, productive);
137
69
 
138
- &::before {
139
- background-color: $icon-on-color-disabled;
70
+ @media screen and (prefers-reduced-motion: reduce) {
71
+ transition: none;
140
72
  }
141
73
  }
74
+ }
142
75
 
143
- .#{$prefix}--toggle--disabled .#{$prefix}--toggle__check {
144
- fill: button.$button-disabled;
145
- }
146
-
147
- // HCM
148
-
76
+ .#{$prefix}--toggle__button:focus
77
+ + .#{$prefix}--toggle__label
149
78
  .#{$prefix}--toggle__switch,
150
- .#{$prefix}--toggle__switch::before {
151
- @include high-contrast-mode('outline');
152
- }
153
-
154
- // stylelint-disable-next-line no-duplicate-selectors
155
- .#{$prefix}--toggle__button:focus
156
- + .#{$prefix}--toggle__label
157
- .#{$prefix}--toggle__switch,
158
- .#{$prefix}--toggle__button:active
159
- + .#{$prefix}--toggle__label
160
- .#{$prefix}--toggle__switch {
161
- @include high-contrast-mode('focus');
162
- }
163
- } @else {
164
- .#{$prefix}--toggle {
165
- @include visually-hidden;
166
-
167
- &:focus {
168
- outline: none;
169
- }
170
- }
171
-
172
- .#{$prefix}--toggle__label {
173
- @include type-style('label-01');
174
-
175
- position: relative;
176
- display: flex;
177
- align-items: center;
178
- margin: $spacing-03 0;
179
- cursor: pointer;
180
- }
181
-
182
- // V11: It looks like this block no longer applies to any element.
183
- // May need to check with Vue/Angular implementations,
184
- // but I do not see any `toggle__appearance` in the rendered HTML.
185
- // There seem to be quite a few references throughout this file.
186
- .#{$prefix}--toggle__appearance {
187
- position: relative;
188
- width: rem(48px);
189
- height: rem(24px);
190
-
191
- // Toggle background oval
192
- &::before {
193
- position: absolute;
194
- top: 0;
195
- display: block;
196
- width: rem(48px);
197
- height: rem(24px);
198
- box-sizing: border-box;
199
- background-color: $toggle-off;
200
- border-radius: rem(15px);
201
- // Corresponds to the double-border for focused state (`0 0 0 1px $ui-02, 0 0 0 3px $focus`)
202
- box-shadow: 0 0 0 1px transparent, 0 0 0 3px transparent;
203
- content: '';
204
- cursor: pointer;
205
- transition: box-shadow $duration-fast-01 motion(exit, productive),
206
- background-color $duration-fast-01 motion(exit, productive);
207
- will-change: box-shadow;
208
-
209
- @media screen and (prefers-reduced-motion: reduce) {
210
- transition: none;
211
- }
212
- }
213
-
214
- // Toggle circle
215
- &::after {
216
- position: absolute;
217
- top: rem(3px);
218
- left: rem(3px);
219
- display: block;
220
- width: rem(18px);
221
- height: rem(18px);
222
- box-sizing: border-box;
223
- background-color: $icon-on-color;
224
- border-radius: 50%;
225
- content: '';
226
- cursor: pointer;
227
- transition: transform $duration-fast-01 motion(exit, productive);
228
-
229
- @media screen and (prefers-reduced-motion: reduce) {
230
- transition: none;
231
- }
232
- }
233
- }
234
-
235
- .#{$prefix}--toggle__check {
236
- position: absolute;
237
- z-index: 1;
238
- top: rem(6px);
239
- left: rem(6px);
240
- width: rem(6px);
241
- height: rem(5px);
242
- fill: $icon-on-color;
243
- transform: scale(0.2);
244
- transition: $duration-fast-01 motion(exit, productive);
245
- }
246
-
247
- .#{$prefix}--toggle__text--left,
248
- .#{$prefix}--toggle__text--right {
249
- @include type-style('body-compact-01');
250
-
251
- position: relative;
252
- margin-left: $spacing-03;
253
- }
254
-
255
- .#{$prefix}--toggle__text--left {
256
- position: absolute;
257
- left: rem(48px);
258
- }
259
-
260
- .#{$prefix}--toggle:checked
261
- + .#{$prefix}--toggle__label
262
- .#{$prefix}--toggle__text--left,
263
- .#{$prefix}--toggle:not(:checked)
264
- + .#{$prefix}--toggle__label
265
- .#{$prefix}--toggle__text--right {
266
- visibility: hidden;
267
- }
268
-
269
- .#{$prefix}--toggle:checked
270
- + .#{$prefix}--toggle__label
271
- .#{$prefix}--toggle__text--right,
272
- .#{$prefix}--toggle:not(:checked)
273
- + .#{$prefix}--toggle__label
274
- .#{$prefix}--toggle__text--left {
275
- display: inline;
276
- }
277
-
278
- .#{$prefix}--toggle:checked
279
- + .#{$prefix}--toggle__label
280
- .#{$prefix}--toggle__appearance {
281
- &::before {
282
- background-color: $support-success;
283
- }
284
-
285
- &::after {
286
- background-color: $icon-on-color;
287
- transform: translateX(rem(24px));
288
- }
289
- }
290
-
291
- //----------------------------------------------
292
- // Focus
293
- // ---------------------------------------------
294
- .#{$prefix}--toggle
295
- + .#{$prefix}--toggle__label
296
- .#{$prefix}--toggle__appearance::before {
297
- // Corresponds to the double-border for focused state (`0 0 0 1px $ui-02, 0 0 0 3px $focus`)
298
- box-shadow: 0 0 0 1px transparent, 0 0 0 3px transparent;
299
- }
300
-
301
- .#{$prefix}--toggle:focus + .#{$prefix}--toggle__label,
302
- .#{$prefix}--toggle:active
303
- + .#{$prefix}--toggle__label
304
- .#{$prefix}--toggle__appearance::before {
305
- box-shadow: 0 0 0 1px $layer-accent, 0 0 0 3px $focus;
306
- }
307
-
308
- //----------------------------------------------
309
- // Disabled
310
- // ---------------------------------------------
311
- .#{$prefix}--toggle:disabled + .#{$prefix}--toggle__label {
312
- cursor: not-allowed;
313
- }
314
-
315
- .#{$prefix}--toggle:disabled
316
- + .#{$prefix}--toggle__label
317
- .#{$prefix}--toggle__appearance {
318
- &::before {
319
- background-color: $layer;
320
- }
321
-
322
- &::after {
323
- background-color: button.$button-disabled;
324
- }
325
-
326
- &::before,
327
- &::after {
328
- cursor: not-allowed;
329
- transition: $duration-fast-01 motion(exit, productive);
330
-
331
- @media screen and (prefers-reduced-motion: reduce) {
332
- transition: none;
333
- }
334
- }
335
- }
336
-
337
- .#{$prefix}--toggle:disabled
338
- + .#{$prefix}--toggle__label
339
- .#{$prefix}--toggle__text--left,
340
- .#{$prefix}--toggle:disabled
341
- + .#{$prefix}--toggle__label
342
- .#{$prefix}--toggle__text--right {
343
- color: $text-disabled;
344
- }
345
-
346
- .#{$prefix}--toggle:disabled:active
347
- + .#{$prefix}--toggle__label
348
- .#{$prefix}--toggle__appearance:before {
349
- box-shadow: none;
350
- }
351
-
352
- .#{$prefix}--toggle:disabled
353
- + .#{$prefix}--toggle__label
354
- .#{$prefix}--toggle__check {
355
- fill: $icon-disabled;
356
- }
357
-
358
- //----------------------------------------------
359
- // Small toggle
360
- // ---------------------------------------------
361
-
362
- .#{$prefix}--toggle--small
363
- + .#{$prefix}--toggle__label
364
- .#{$prefix}--toggle__appearance {
365
- width: rem(32px);
366
- height: rem(16px);
367
-
368
- &::before {
369
- top: 0;
370
- width: rem(32px);
371
- height: rem(16px);
372
- box-sizing: border-box;
373
- border-radius: 0.9375rem;
374
- }
375
-
376
- &::after {
377
- top: rem(3px);
378
- left: rem(3px);
379
- width: rem(10px);
380
- height: rem(10px);
381
- }
382
- }
383
-
384
- .#{$prefix}--toggle--small:checked
385
- + .#{$prefix}--toggle__label
386
- .#{$prefix}--toggle__check {
387
- fill: $support-success;
388
- transform: scale(1) translateX(rem(16px));
389
- }
390
-
391
- .#{$prefix}--toggle--small
392
- + .#{$prefix}--toggle__label
393
- .#{$prefix}--toggle__text--left {
394
- left: rem(32px);
395
- }
396
-
397
- .#{$prefix}--toggle--small:checked
398
- + .#{$prefix}--toggle__label
399
- .#{$prefix}--toggle__appearance {
400
- &::after {
401
- margin-left: 0;
402
- transform: translateX(rem(17px));
403
- }
404
- }
405
-
406
- // -----------------------------------------------------
407
- // new accessible toggle
408
- // TODO: deprecate styles above this line
409
- // -----------------------------------------------------
410
-
411
- .#{$prefix}--toggle-input {
412
- @include visually-hidden;
413
-
414
- &:focus {
415
- outline: none;
416
- }
417
- }
418
-
419
- .#{$prefix}--toggle-input__label {
420
- @include type-style('label-01');
421
-
422
- display: flex;
423
- flex-direction: column;
424
- align-items: flex-start;
425
- color: $text-secondary;
426
- cursor: pointer;
427
- }
428
-
79
+ .#{$prefix}--toggle__button:active
80
+ + .#{$prefix}--toggle__label
429
81
  .#{$prefix}--toggle__switch {
430
- position: relative;
431
- display: flex;
432
- width: rem(48px);
433
- height: rem(24px);
434
- align-items: center;
435
- cursor: pointer;
436
-
437
- // Toggle background oval
438
- &::before {
439
- position: absolute;
440
- top: 0;
441
- display: block;
442
- width: rem(48px);
443
- height: rem(24px);
444
- box-sizing: border-box;
445
- background-color: $toggle-off;
446
- border-radius: rem(15px);
447
- // Corresponds to the double-border for focused state (`0 0 0 1px $ui-02, 0 0 0 3px $focus`)
448
- box-shadow: 0 0 0 1px transparent, 0 0 0 3px transparent;
449
- content: '';
450
- transition: box-shadow $duration-fast-01 motion(exit, productive),
451
- background-color $duration-fast-01 motion(exit, productive);
452
- will-change: box-shadow;
453
-
454
- @media screen and (prefers-reduced-motion: reduce) {
455
- transition: none;
456
- }
457
- }
458
-
459
- // Toggle circle
460
- &::after {
461
- position: absolute;
462
- top: rem(3px);
463
- left: rem(3px);
464
- display: block;
465
- width: rem(18px);
466
- height: rem(18px);
467
- box-sizing: border-box;
468
- background-color: $icon-on-color;
469
- border-radius: 50%;
470
- content: '';
471
- transition: transform $duration-fast-01 motion(exit, productive);
472
- }
473
-
474
- .#{$prefix}--toggle-input__label & {
475
- margin-top: $spacing-05;
476
- }
477
- }
478
-
479
- .#{$prefix}--toggle__text--off,
480
- .#{$prefix}--toggle__text--on {
481
- @include type-style('body-compact-01');
482
-
483
- position: absolute;
484
- // top offset needed to vertically center absolutely positioned flex child in IE11
485
- top: 50%;
486
- margin-left: rem(56px);
487
- transform: translateY(-50%);
488
- user-select: none;
489
- white-space: nowrap;
490
- }
491
-
492
- //----------------------------------------------
493
- // Checked
494
- // ---------------------------------------------
495
- .#{$prefix}--toggle-input:checked
496
- + .#{$prefix}--toggle-input__label
497
- > .#{$prefix}--toggle__switch
498
- > .#{$prefix}--toggle__text--off,
499
- .#{$prefix}--toggle-input:not(:checked)
500
- + .#{$prefix}--toggle-input__label
501
- > .#{$prefix}--toggle__switch
502
- > .#{$prefix}--toggle__text--on {
503
- visibility: hidden;
504
- }
505
-
506
- .#{$prefix}--toggle-input:checked
507
- + .#{$prefix}--toggle-input__label
508
- > .#{$prefix}--toggle__switch {
509
- &::before {
510
- background-color: $support-success;
511
- }
512
-
513
- &::after {
514
- background-color: $icon-on-color;
515
- transform: translateX(rem(24px));
516
- }
517
- }
518
-
519
- //----------------------------------------------
520
- // Focus and active
521
- // ---------------------------------------------
522
- .#{$prefix}--toggle-input:focus
523
- + .#{$prefix}--toggle-input__label
524
- > .#{$prefix}--toggle__switch::before,
525
- .#{$prefix}--toggle-input:active
526
- + .#{$prefix}--toggle-input__label
527
- > .#{$prefix}--toggle__switch::before {
528
- box-shadow: 0 0 0 1px $focus-inset, 0 0 0 3px $focus;
529
- }
530
-
531
- //----------------------------------------------
532
- // Disabled
533
- // ---------------------------------------------
534
- .#{$prefix}--toggle-input:disabled + .#{$prefix}--toggle-input__label {
535
- color: $text-disabled;
536
- cursor: not-allowed;
537
- }
538
-
539
- .#{$prefix}--toggle-input:disabled
540
- + .#{$prefix}--toggle-input__label
541
- > .#{$prefix}--toggle__switch {
542
- cursor: not-allowed;
543
-
544
- &::before {
545
- background-color: button.$button-disabled;
546
- }
547
-
548
- &::after {
549
- background-color: $icon-on-color-disabled;
550
- }
82
+ box-shadow: 0 0 0 1px $focus-inset, 0 0 0 3px $focus;
83
+ }
551
84
 
552
- &::before,
553
- &::after {
554
- cursor: not-allowed;
555
- transition: $duration-fast-01 motion(exit, productive);
85
+ .#{$prefix}--toggle__switch--checked {
86
+ background-color: $support-success;
556
87
 
557
- @media screen and (prefers-reduced-motion: reduce) {
558
- transition: none;
559
- }
560
- }
88
+ &::before {
89
+ transform: translateX(rem(24px));
561
90
  }
91
+ }
562
92
 
563
- .#{$prefix}--toggle-input:disabled:active
564
- + .#{$prefix}--toggle-input__label
565
- > .#{$prefix}--toggle__switch::before {
566
- box-shadow: none;
567
- }
568
-
569
- //----------------------------------------------
570
- // Small toggle
571
- // ---------------------------------------------
572
- .#{$prefix}--toggle-input--small + .#{$prefix}--toggle-input__label {
573
- > .#{$prefix}--toggle__switch {
574
- width: rem(32px);
575
- height: rem(16px);
576
-
577
- &::before {
578
- width: rem(32px);
579
- height: rem(16px);
580
- border-radius: 0.9375rem;
581
- }
582
-
583
- &::after {
584
- width: rem(10px);
585
- height: rem(10px);
586
- }
587
- }
93
+ .#{$prefix}--toggle__text {
94
+ @include type-style('body-01');
588
95
 
589
- .#{$prefix}--toggle__text--off,
590
- .#{$prefix}--toggle__text--on {
591
- margin-left: rem(40px);
592
- }
593
- }
96
+ color: $text-primary;
97
+ }
594
98
 
595
- .#{$prefix}--toggle-input--small:checked
596
- + .#{$prefix}--toggle-input__label {
597
- > .#{$prefix}--toggle__switch::after {
598
- transform: translateX(rem(17px));
599
- }
99
+ .#{$prefix}--toggle__appearance--sm .#{$prefix}--toggle__switch {
100
+ width: rem(32px);
101
+ height: rem(16px);
600
102
 
601
- .#{$prefix}--toggle__check {
602
- fill: $support-success;
603
- transform: scale(1) translateX(rem(16px));
604
- }
103
+ &::before {
104
+ width: rem(10px);
105
+ height: rem(10px);
605
106
  }
107
+ }
606
108
 
607
- .#{$prefix}--toggle-input--small:disabled:checked
608
- + .#{$prefix}--toggle-input__label
609
- .#{$prefix}--toggle__check {
610
- fill: $layer;
611
- }
612
-
613
- //----------------------------------------------
614
- // Skeleton
615
- // ---------------------------------------------
616
- //md toggle input
617
- .#{$prefix}--toggle.#{$prefix}--skeleton
618
- + .#{$prefix}--toggle-input__label
619
- .#{$prefix}--toggle__switch {
620
- @include skeleton;
621
-
622
- width: 3rem;
623
- margin-top: 0.5rem;
624
- }
109
+ .#{$prefix}--toggle__appearance--sm
110
+ .#{$prefix}--toggle__switch--checked::before {
111
+ transform: translateX(rem(16px));
112
+ }
625
113
 
626
- //md skeleton label text
627
- .#{$prefix}--toggle.#{$prefix}--skeleton
628
- + .#{$prefix}--toggle-input__label
629
- > div {
630
- overflow: hidden;
631
- width: 1.5rem;
632
- height: 0.5rem;
633
- //hides text
634
- font-size: 0%;
635
- line-height: 0;
114
+ .#{$prefix}--toggle__check {
115
+ position: absolute;
116
+ top: rem(6px);
117
+ right: rem(5px);
118
+ width: rem(6px);
119
+ height: rem(5px);
120
+ fill: $support-success;
121
+ visibility: hidden;
122
+ }
636
123
 
637
- @include skeleton;
638
- }
124
+ .#{$prefix}--toggle__switch--checked .#{$prefix}--toggle__check {
125
+ visibility: visible;
126
+ }
639
127
 
640
- //small toggle input
641
- .#{$prefix}--toggle-input--small.#{$prefix}--skeleton
642
- + .#{$prefix}--toggle-input__label
643
- .#{$prefix}--toggle__switch {
644
- @include skeleton;
128
+ .#{$prefix}--toggle--disabled .#{$prefix}--toggle__appearance {
129
+ cursor: not-allowed;
130
+ }
645
131
 
646
- width: 2rem;
647
- margin-top: 0.5rem;
648
- }
132
+ .#{$prefix}--toggle--disabled .#{$prefix}--toggle__label-text,
133
+ .#{$prefix}--toggle--disabled .#{$prefix}--toggle__text {
134
+ color: $text-disabled;
135
+ }
649
136
 
650
- //sm skeleton label text
651
- .#{$prefix}--toggle-input--small.#{$prefix}--skeleton
652
- + .#{$prefix}--toggle-input__label
653
- > div {
654
- overflow: hidden;
655
- width: 1rem;
656
- height: 0.5rem;
657
- //hides text
658
- font-size: 0%;
659
- line-height: 0;
137
+ .#{$prefix}--toggle--disabled .#{$prefix}--toggle__switch {
138
+ background-color: button.$button-disabled;
660
139
 
661
- @include skeleton;
140
+ &::before {
141
+ background-color: $icon-on-color-disabled;
662
142
  }
143
+ }
663
144
 
664
- // on/off text skeleton
665
- .#{$prefix}--toggle.#{$prefix}--skeleton
666
- + .#{$prefix}--toggle-input__label
667
- .#{$prefix}--toggle__switch
668
- .#{$prefix}--toggle__text--left {
669
- @include skeleton;
670
-
671
- position: absolute;
672
- width: 1rem;
673
- height: 0.5rem;
674
- }
145
+ .#{$prefix}--toggle--disabled .#{$prefix}--toggle__check {
146
+ fill: button.$button-disabled;
147
+ }
675
148
 
676
- .#{$prefix}--toggle-input--small.#{$prefix}--skeleton
677
- + .#{$prefix}--toggle-input__label
678
- .#{$prefix}--toggle__switch
679
- .#{$prefix}--toggle__text--left {
680
- left: 2rem;
681
- }
149
+ // HCM
682
150
 
683
- //pseudo "toggle" button
684
- .#{$prefix}--toggle.#{$prefix}--skeleton
685
- + .#{$prefix}--toggle-input__label
686
- .#{$prefix}--toggle__switch::after,
687
- .#{$prefix}--toggle.#{$prefix}--skeleton
688
- + .#{$prefix}--toggle-input__label
689
- .#{$prefix}--toggle__appearance::after,
690
- .#{$prefix}--toggle.#{$prefix}--skeleton
691
- + .#{$prefix}--toggle-input__label
692
- .#{$prefix}--toggle__appearance::before {
693
- display: none;
694
- }
151
+ .#{$prefix}--toggle__switch,
152
+ .#{$prefix}--toggle__switch::before {
153
+ @include high-contrast-mode('outline');
154
+ }
695
155
 
696
- //make it square
697
- .#{$prefix}--toggle.#{$prefix}--skeleton
698
- + .#{$prefix}--toggle-input__label
699
- .#{$prefix}--toggle__switch::before {
700
- border-radius: 0;
701
- }
156
+ // stylelint-disable-next-line no-duplicate-selectors
157
+ .#{$prefix}--toggle__button:focus
158
+ + .#{$prefix}--toggle__label
159
+ .#{$prefix}--toggle__switch,
160
+ .#{$prefix}--toggle__button:active
161
+ + .#{$prefix}--toggle__label
162
+ .#{$prefix}--toggle__switch {
163
+ @include high-contrast-mode('focus');
702
164
  }
703
165
  }