@bi-digital/css 0.6.8 → 0.8.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.
@@ -7,6 +7,7 @@
7
7
  --bic-field-affix-color: var(--bi-neutral-60);
8
8
  --bic-field-background: var(--bi-basic-white);
9
9
  --bic-field-background-hover: var(--bi-states-hover-dark);
10
+ --bic-field-background-press: var(--bi-states-press-dark);
10
11
  --bic-field-background-readonly: var(--bi-neutral-10);
11
12
  --bic-field-border-color: var(--bi-neutral-50);
12
13
  --bic-field-border-color-hover: var(--bi-neutral-50);
@@ -23,6 +24,7 @@
23
24
  --bic-field-affix-color: var(--bi-neutral-30);
24
25
  --bic-field-background: var(--bi-neutral-95);
25
26
  --bic-field-background-hover: var(--bi-states-hover-light);
27
+ --bic-field-background-press: var(--bi-states-press-light);
26
28
  --bic-field-background-readonly: var(--bi-neutral-50);
27
29
  --bic-field-border-color-hover: var(--bi-neutral-25);
28
30
  --bic-field-disabled-color: var(--bi-neutral-40);
@@ -34,8 +36,7 @@
34
36
  }
35
37
 
36
38
  .bi-field > * {
37
- margin-top: 0;
38
- margin-bottom: 0;
39
+ margin-block: 0;
39
40
  }
40
41
 
41
42
  .bi-field > * + * {
@@ -70,104 +71,40 @@
70
71
  width: 100%;
71
72
  }
72
73
 
73
- .bi-field:has(.bi-input:-webkit-any([type="radio"], [type="checkbox"])) {
74
+ .bi-field:has(.bi-input:is([type="radio"], [type="checkbox"])) {
74
75
  border-radius: var(--bi-radius-medium);
75
- grid-template-areas: "input content";
76
- grid-template-columns: var(--bi-scale-5x) 1fr;
77
76
  gap: 0 var(--bi-scale-3x);
78
- width: -webkit-fit-content;
79
77
  width: fit-content;
80
78
  padding: var(--bi-scale-2x) var(--bi-scale-3x);
79
+ grid-template-columns: auto 1fr;
80
+ grid-template-areas: "input content";
81
81
  align-items: center;
82
82
  }
83
83
 
84
- .bi-field:has(.bi-input:-webkit-any([type="radio"], [type="checkbox"])):not([hidden]) {
84
+ .bi-field:has(.bi-input:is([type="radio"], [type="checkbox"])):not([hidden]) {
85
85
  display: grid;
86
86
  }
87
87
 
88
- .bi-field:has(.bi-input:-webkit-any([type="radio"], [type="checkbox"]))[data-fullwidth="true"] {
88
+ .bi-field:has(.bi-input:is([type="radio"], [type="checkbox"]))[data-fullwidth="true"] {
89
89
  width: 100%;
90
90
  }
91
91
 
92
- .bi-field:has(.bi-input:-webkit-any([type="radio"], [type="checkbox"])) > * {
93
- grid-column: content;
94
- margin-top: 0;
95
- margin-bottom: 0;
96
- }
97
-
98
- .bi-field:has(.bi-input:-webkit-any([type="radio"], [type="checkbox"])) .bi-label {
99
- margin: var(--bi-scale-0-50x) 0;
100
- -webkit-user-select: none;
101
- user-select: none;
102
- font-size: 1rem;
103
- line-height: 1.5;
104
- }
105
-
106
- .bi-field:has(.bi-input:-webkit-any([type="radio"], [type="checkbox"])) .bi-input {
107
- margin: var(--bi-scale-1x) auto;
108
- grid-area: 1 / input;
109
- align-self: flex-start;
110
- }
111
-
112
- .bi-field:has(.bi-input:-webkit-any([type="radio"], [type="checkbox"])):-webkit-any(label):not(:has([readonly], [aria-disabled="true"], :disabled)) {
113
- cursor: pointer;
114
- }
115
-
116
- .bi-field:has(.bi-input:is([type="radio"], [type="checkbox"])):is(label):not(:has([readonly], [aria-disabled="true"], :disabled)) {
117
- cursor: pointer;
118
- }
119
-
120
- .bi-field:has(.bi-input:is([type="radio"], [type="checkbox"])):has(input:only-child) {
121
- gap: 0;
122
- }
123
-
124
- .bi-field:has(.bi-input:is([type="radio"], [type="checkbox"])):hover:not(:has(a:hover), :has([aria-disabled="true"], :disabled)) {
125
- background: var(--_bi--hover, var(--bic-field-background-hover));
126
- }
127
-
128
- .bi-field:has(.bi-input:is([type="radio"], [type="checkbox"])):hover:not(:has(a:hover), :has([aria-disabled="true"], :disabled)) * {
129
- --_bi--hover: ;
130
- }
131
-
132
- .bi-field:has(.bi-input:is([type="radio"], [type="checkbox"])):has(.bi-input:focus-visible) {
133
- box-shadow: var(--_bi--focus, 0 0 0 4.5px var(--bic-field-focus-shadow-color));
134
- outline: var(--_bi--focus, 3px solid var(--bic-field-focus-outline-color));
135
- outline-offset: var(--_bi--focus, 2px);
136
- }
137
-
138
- .bi-field:has(.bi-input:is([type="radio"], [type="checkbox"])):has(.bi-input:focus-visible) * {
139
- --_bi--focus: ;
140
- }
141
-
142
- .bi-field:has(.bi-input:is([type="radio"], [type="checkbox"]))[data-position="end"] {
143
- grid-template-areas: "content input";
144
- grid-template-columns: 1fr var(--bi-scale-5x);
145
- width: auto;
146
- }
147
-
148
- .bi-field:has(.bi-input:is([type="radio"], [type="checkbox"])) {
149
- border-radius: var(--bi-radius-medium);
150
- grid-template-areas: "input content";
151
- grid-template-columns: var(--bi-scale-5x) 1fr;
152
- gap: 0 var(--bi-scale-3x);
153
- width: -webkit-fit-content;
154
- width: fit-content;
155
- padding: var(--bi-scale-2x) var(--bi-scale-3x);
156
- align-items: center;
92
+ .bi-field:has(.bi-input:is([type="radio"], [type="checkbox"])):has(.bi-input[role="switch"]) {
93
+ border-radius: var(--bi-scale-24x);
94
+ padding: var(--bi-scale-1x) var(--bi-scale-2x);
157
95
  }
158
96
 
159
- .bi-field:has(.bi-input:is([type="radio"], [type="checkbox"])):not([hidden]) {
160
- display: grid;
97
+ .bi-field:has(.bi-input:is([type="radio"], [type="checkbox"])):has(.bi-input[role="switch"]):has(.bi-label)[data-position="start"] {
98
+ padding-inline-end: var(--bi-scale-4x);
161
99
  }
162
100
 
163
- .bi-field:has(.bi-input:is([type="radio"], [type="checkbox"]))[data-fullwidth="true"] {
164
- width: 100%;
101
+ .bi-field:has(.bi-input:is([type="radio"], [type="checkbox"])):has(.bi-input[role="switch"]):has(.bi-label)[data-position="end"] {
102
+ padding-inline-start: var(--bi-scale-4x);
165
103
  }
166
104
 
167
105
  .bi-field:has(.bi-input:is([type="radio"], [type="checkbox"])) > * {
168
106
  grid-column: content;
169
- margin-top: 0;
170
- margin-bottom: 0;
107
+ margin-block: 0;
171
108
  }
172
109
 
173
110
  .bi-field:has(.bi-input:is([type="radio"], [type="checkbox"])) .bi-label {
@@ -184,10 +121,6 @@
184
121
  align-self: flex-start;
185
122
  }
186
123
 
187
- .bi-field:has(.bi-input:-webkit-any([type="radio"], [type="checkbox"])):-webkit-any(label):not(:has([readonly], [aria-disabled="true"], :disabled)) {
188
- cursor: pointer;
189
- }
190
-
191
124
  .bi-field:has(.bi-input:is([type="radio"], [type="checkbox"])):is(label):not(:has([readonly], [aria-disabled="true"], :disabled)) {
192
125
  cursor: pointer;
193
126
  }
@@ -204,6 +137,14 @@
204
137
  --_bi--hover: ;
205
138
  }
206
139
 
140
+ .bi-field:has(.bi-input:is([type="radio"], [type="checkbox"])):active:not(:has(a:active), :has([aria-disabled="true"], :disabled)) {
141
+ background: var(--_bi--hover, var(--bic-field-background-press));
142
+ }
143
+
144
+ .bi-field:has(.bi-input:is([type="radio"], [type="checkbox"])):active:not(:has(a:active), :has([aria-disabled="true"], :disabled)) * {
145
+ --_bi--hover: ;
146
+ }
147
+
207
148
  .bi-field:has(.bi-input:is([type="radio"], [type="checkbox"])):has(.bi-input:focus-visible) {
208
149
  box-shadow: var(--_bi--focus, 0 0 0 4.5px var(--bic-field-focus-shadow-color));
209
150
  outline: var(--_bi--focus, 3px solid var(--bic-field-focus-outline-color));
@@ -215,9 +156,8 @@
215
156
  }
216
157
 
217
158
  .bi-field:has(.bi-input:is([type="radio"], [type="checkbox"]))[data-position="end"] {
159
+ grid-template-columns: 1fr auto;
218
160
  grid-template-areas: "content input";
219
- grid-template-columns: 1fr var(--bi-scale-5x);
220
- width: auto;
221
161
  }
222
162
 
223
163
  .bi-field .bi-field--affixes {
@@ -240,7 +180,6 @@
240
180
  }
241
181
 
242
182
  .bi-field .bi-field--affixes:has(.bi-input[size]) {
243
- width: -webkit-fit-content;
244
183
  width: fit-content;
245
184
  }
246
185
 
@@ -255,7 +194,8 @@
255
194
  .bi-field .bi-field--affixes:has(.bi-input:focus-visible) {
256
195
  outline: var(--_bi--focus, 3px solid var(--bic-field-focus-outline-color));
257
196
  outline-offset: 0;
258
- box-shadow: var(--_bi--focus, 0px 0px 20px var(--bi-scale-1-5x) #0000000d, 0px 0px 10px 0px #0000000d);
197
+ box-shadow: var(--_bi--focus, 0px 0px 20px var(--bi-scale-1-5x) #0000000d,
198
+ 0px 0px 10px 0px #0000000d);
259
199
  }
260
200
 
261
201
  .bi-field .bi-field--affixes:has(.bi-input:focus-visible) * {
@@ -273,44 +213,16 @@
273
213
  display: flex;
274
214
  }
275
215
 
276
- .bi-field .bi-field--affixes .bi-field--affix:first-child:not(:lang(ae), :lang(ar), :lang(arc), :lang(bcc), :lang(bqi), :lang(ckb), :lang(dv), :lang(fa), :lang(glk), :lang(he), :lang(ku), :lang(mzn), :lang(nqo), :lang(pnb), :lang(ps), :lang(sd), :lang(ug), :lang(ur), :lang(yi)) {
277
- border-top-left-radius: inherit;
278
- border-bottom-left-radius: inherit;
279
- border-right: 0;
280
- padding-right: 0;
281
- }
282
-
283
- .bi-field .bi-field--affixes .bi-field--affix:first-child:-webkit-any(:lang(ae), :lang(ar), :lang(arc), :lang(bcc), :lang(bqi), :lang(ckb), :lang(dv), :lang(fa), :lang(glk), :lang(he), :lang(ku), :lang(mzn), :lang(nqo), :lang(pnb), :lang(ps), :lang(sd), :lang(ug), :lang(ur), :lang(yi)) {
284
- border-top-right-radius: inherit;
285
- border-bottom-right-radius: inherit;
286
- border-left: 0;
287
- padding-left: 0;
288
- }
289
-
290
- .bi-field .bi-field--affixes .bi-field--affix:first-child:is(:lang(ae), :lang(ar), :lang(arc), :lang(bcc), :lang(bqi), :lang(ckb), :lang(dv), :lang(fa), :lang(glk), :lang(he), :lang(ku), :lang(mzn), :lang(nqo), :lang(pnb), :lang(ps), :lang(sd), :lang(ug), :lang(ur), :lang(yi)) {
291
- border-top-right-radius: inherit;
292
- border-bottom-right-radius: inherit;
293
- border-left: 0;
294
- padding-left: 0;
295
- }
296
-
297
- .bi-field .bi-field--affixes .bi-field--affix:last-child:not(:lang(ae), :lang(ar), :lang(arc), :lang(bcc), :lang(bqi), :lang(ckb), :lang(dv), :lang(fa), :lang(glk), :lang(he), :lang(ku), :lang(mzn), :lang(nqo), :lang(pnb), :lang(ps), :lang(sd), :lang(ug), :lang(ur), :lang(yi)) {
298
- border-top-right-radius: inherit;
299
- border-bottom-right-radius: inherit;
300
- border-left: 0;
301
- padding-left: 0;
302
- }
303
-
304
- .bi-field .bi-field--affixes .bi-field--affix:last-child:-webkit-any(:lang(ae), :lang(ar), :lang(arc), :lang(bcc), :lang(bqi), :lang(ckb), :lang(dv), :lang(fa), :lang(glk), :lang(he), :lang(ku), :lang(mzn), :lang(nqo), :lang(pnb), :lang(ps), :lang(sd), :lang(ug), :lang(ur), :lang(yi)) {
305
- border-top-left-radius: inherit;
306
- border-bottom-left-radius: inherit;
307
- border-right: 0;
308
- padding-right: 0;
216
+ .bi-field .bi-field--affixes .bi-field--affix:first-child {
217
+ border-inline-end: 0;
218
+ border-start-start-radius: inherit;
219
+ border-end-start-radius: inherit;
220
+ padding-inline-end: 0;
309
221
  }
310
222
 
311
- .bi-field .bi-field--affixes .bi-field--affix:last-child:is(:lang(ae), :lang(ar), :lang(arc), :lang(bcc), :lang(bqi), :lang(ckb), :lang(dv), :lang(fa), :lang(glk), :lang(he), :lang(ku), :lang(mzn), :lang(nqo), :lang(pnb), :lang(ps), :lang(sd), :lang(ug), :lang(ur), :lang(yi)) {
312
- border-top-left-radius: inherit;
313
- border-bottom-left-radius: inherit;
314
- border-right: 0;
315
- padding-right: 0;
223
+ .bi-field .bi-field--affixes .bi-field--affix:last-child {
224
+ border-inline-start: 0;
225
+ border-start-end-radius: inherit;
226
+ border-end-end-radius: inherit;
227
+ padding-inline-start: 0;
316
228
  }
@@ -22,7 +22,7 @@
22
22
  }
23
23
 
24
24
  .bi-fieldset > * + * {
25
- margin-top: var(--bi-scale-1x);
25
+ margin-block-start: var(--bi-scale-1x);
26
26
  }
27
27
 
28
28
  .bi-fieldset > legend + p {
@@ -34,10 +34,6 @@
34
34
  line-height: 1.15;
35
35
  }
36
36
 
37
- .bi-fieldset:disabled > legend {
38
- opacity: var(--ds-opacity-disabled);
39
- }
40
-
41
- .bi-fieldset:disabled > legend + p {
37
+ .bi-fieldset:disabled > legend, .bi-fieldset:disabled > legend + p {
42
38
  opacity: var(--ds-opacity-disabled);
43
39
  }
@@ -1,7 +1,9 @@
1
1
  .bi-filter-group {
2
2
  --bic-filter-group-background: var(--bi-basic-white);
3
- --bic-filter-group-background-hover: linear-gradient(0deg, var(--bi-states-hover-dark) 0%, var(--bi-states-hover-dark) 100%), var(--bic-filter-group-background);
4
- --bic-filter-group-background-press: linear-gradient(0deg, var(--bi-states-press-dark) 0%, var(--bi-states-press-dark) 100%), var(--bic-filter-group-background);
3
+ --bic-filter-group-background-hover: linear-gradient(0deg, var(--bi-states-hover-dark) 0%, var(--bi-states-hover-dark) 100%),
4
+ var(--bic-filter-group-background);
5
+ --bic-filter-group-background-press: linear-gradient(0deg, var(--bi-states-press-dark) 0%, var(--bi-states-press-dark) 100%),
6
+ var(--bic-filter-group-background);
5
7
  --bic-filter-group-background-expanded: var(--bi-neutral-15);
6
8
  --bic-filter-group-border-color: var(--bi-neutral-15);
7
9
  --bic-filter-group-text-color: var(--bi-neutral-90);
@@ -11,8 +13,10 @@
11
13
 
12
14
  .bi-filter-group[data-dark="true"] {
13
15
  --bic-filter-group-background: var(--bi-neutral-90);
14
- --bic-filter-group-background-hover: linear-gradient(0deg, var(--bi-states-hover-light) 0%, var(--bi-states-hover-light) 100%), var(--bic-filter-group-background);
15
- --bic-filter-group-background-press: linear-gradient(0deg, var(--bi-states-press-light) 0%, var(--bi-states-press-light) 100%), var(--bic-filter-group-background);
16
+ --bic-filter-group-background-hover: linear-gradient(0deg, var(--bi-states-hover-light) 0%, var(--bi-states-hover-light) 100%),
17
+ var(--bic-filter-group-background);
18
+ --bic-filter-group-background-press: linear-gradient(0deg, var(--bi-states-press-light) 0%, var(--bi-states-press-light) 100%),
19
+ var(--bic-filter-group-background);
16
20
  --bic-filter-group-background-expanded: var(--bi-neutral-80);
17
21
  --bic-filter-group-border-color: var(--bi-neutral-70);
18
22
  --bic-filter-group-text-color: var(--bi-basic-white);
@@ -31,9 +35,9 @@
31
35
  height: var(--bi-scale-12x);
32
36
  color: var(--bic-filter-group-text-color);
33
37
  align-items: center;
34
- gap: calc(var(--bi-scale-2x) + var(--bi-scale-0-50x));
38
+ gap: calc(var(--bi-scale-2x) + var(--bi-scale-0-50x));
35
39
  width: 100%;
36
- padding: var(--bi-scale-2x) calc(var(--bi-scale-2x) + var(--bi-scale-0-50x));
40
+ padding: var(--bi-scale-2x) calc(var(--bi-scale-2x) + var(--bi-scale-0-50x));
37
41
  background: var(--bic-filter-group-background);
38
42
  cursor: pointer;
39
43
  border-radius: var(--bi-radius-small) var(--bi-radius-small) 0 0;
@@ -31,7 +31,7 @@
31
31
  display: flex;
32
32
  }
33
33
 
34
- @media not (min-width: 768px) {
34
+ @media (width < 768px) {
35
35
  .bi-footer .bi-footer--links-container {
36
36
  flex-direction: column;
37
37
  }
@@ -50,7 +50,7 @@
50
50
  display: flex;
51
51
  }
52
52
 
53
- @media not (min-width: 768px) {
53
+ @media (width < 768px) {
54
54
  .bi-footer .bi-footer--links-container .bi-footer--links {
55
55
  flex-direction: column;
56
56
  }
@@ -61,7 +61,7 @@
61
61
  font-weight: 300;
62
62
  }
63
63
 
64
- @media not (min-width: 768px) {
64
+ @media (width < 768px) {
65
65
  .bi-footer .bi-footer--links-container .bi-footer--links > p {
66
66
  margin: var(--bi-scale-3x) 0;
67
67
  }
@@ -77,7 +77,7 @@
77
77
  display: flex;
78
78
  }
79
79
 
80
- @media not (min-width: 768px) {
80
+ @media (width < 768px) {
81
81
  .bi-footer .bi-footer--links-container .bi-footer--links > div {
82
82
  flex-direction: column;
83
83
  }
@@ -92,29 +92,13 @@
92
92
  display: flex;
93
93
  }
94
94
 
95
- @media not (min-width: 600px) {
95
+ @media (width < 600px) {
96
96
  .bi-footer .bi-footer--accreditations {
97
97
  gap: var(--bi-scale-2x) var(--bi-scale-1x);
98
98
  }
99
99
  }
100
100
 
101
- .bi-footer .bi-footer--accreditations .bi-footer--aacsb {
102
- background-position: center;
103
- background-repeat: no-repeat;
104
- background-size: contain;
105
- height: 58px;
106
- display: block;
107
- }
108
-
109
- .bi-footer .bi-footer--accreditations .bi-footer--amba {
110
- background-position: center;
111
- background-repeat: no-repeat;
112
- background-size: contain;
113
- height: 58px;
114
- display: block;
115
- }
116
-
117
- .bi-footer .bi-footer--accreditations .bi-footer--equis {
101
+ .bi-footer .bi-footer--accreditations .bi-footer--aacsb, .bi-footer .bi-footer--accreditations .bi-footer--amba, .bi-footer .bi-footer--accreditations .bi-footer--equis {
118
102
  background-position: center;
119
103
  background-repeat: no-repeat;
120
104
  background-size: contain;
@@ -157,7 +141,7 @@
157
141
  display: flex;
158
142
  }
159
143
 
160
- @media not (min-width: 600px) {
144
+ @media (width < 600px) {
161
145
  .bi-footer .bi-footer--socials {
162
146
  gap: var(--bi-scale-2x);
163
147
  }
@@ -41,7 +41,6 @@
41
41
  }
42
42
 
43
43
  .bi-input {
44
- -webkit-appearance: none;
45
44
  appearance: none;
46
45
  background: var(--bic-input-background);
47
46
  border-radius: var(--bi-radius-medium);
@@ -77,7 +76,8 @@
77
76
  .bi-input:focus-visible {
78
77
  outline: var(--_bi--focus, 3px solid var(--bic-input-focus-outline-color));
79
78
  outline-offset: 0;
80
- box-shadow: var(--_bi--focus, 0px 0px 20px var(--bi-scale-1-5x) #0000000d, 0px 0px 10px 0px #0000000d);
79
+ box-shadow: var(--_bi--focus, 0px 0px 20px var(--bi-scale-1-5x) #0000000d,
80
+ 0px 0px 10px 0px #0000000d);
81
81
  }
82
82
 
83
83
  .bi-input:focus-visible * {
@@ -92,11 +92,7 @@
92
92
  width: 100%;
93
93
  }
94
94
 
95
- .bi-input:disabled {
96
- cursor: not-allowed;
97
- }
98
-
99
- .bi-input[aria-disabled="true"] {
95
+ .bi-input:disabled, .bi-input[aria-disabled="true"] {
100
96
  cursor: not-allowed;
101
97
  }
102
98
 
@@ -104,34 +100,12 @@
104
100
  --bic-input-border-color: var(--bic-input-border-color-invalid);
105
101
  }
106
102
 
107
- .bi-input[readonly] {
108
- background: var(--bic-input-background-readonly);
109
- --bic-input-border-color: var(--bic-input-border-color-readonly);
110
- color: var(--bic-input-color-readonly);
111
- }
112
-
113
- .bi-input:disabled {
103
+ .bi-input[readonly], .bi-input:disabled, .bi-input[aria-disabled="true"] {
114
104
  background: var(--bic-input-background-readonly);
115
105
  --bic-input-border-color: var(--bic-input-border-color-readonly);
116
106
  color: var(--bic-input-color-readonly);
117
107
  }
118
108
 
119
- .bi-input[aria-disabled="true"] {
120
- background: var(--bic-input-background-readonly);
121
- --bic-input-border-color: var(--bic-input-border-color-readonly);
122
- color: var(--bic-input-color-readonly);
123
- }
124
-
125
- .bi-input:-webkit-any(textarea) {
126
- height: auto;
127
- min-height: calc(var(--bic-input-size) * 2);
128
- resize: vertical;
129
- }
130
-
131
- .bi-input:-webkit-any(textarea):not([rows]) {
132
- field-sizing: content;
133
- }
134
-
135
109
  .bi-input:is(textarea) {
136
110
  height: auto;
137
111
  min-height: calc(var(--bic-input-size) * 2);
@@ -142,17 +116,6 @@
142
116
  field-sizing: content;
143
117
  }
144
118
 
145
- .bi-input:-webkit-any(select):not([readonly], [aria-disabled="true"], :disabled) {
146
- cursor: pointer;
147
- }
148
-
149
- .bi-input:-webkit-any(select) {
150
- background-image: var(--bic-input-select-chevron);
151
- background-position: calc(100% - .5em);
152
- background-repeat: no-repeat;
153
- background-size: 1.5em;
154
- }
155
-
156
119
  .bi-input:is(select):not([readonly], [aria-disabled="true"], :disabled) {
157
120
  cursor: pointer;
158
121
  }
@@ -164,7 +127,7 @@
164
127
  background-size: 1.5em;
165
128
  }
166
129
 
167
- .bi-input:-webkit-any([type="checkbox"], [type="radio"]) {
130
+ .bi-input[type="checkbox"], .bi-input[type="radio"] {
168
131
  padding: var(--bi-scale-0-50x);
169
132
  line-height: inherit;
170
133
  height: var(--bic-input-toggle-size);
@@ -177,25 +140,25 @@
177
140
  flex-shrink: 0;
178
141
  }
179
142
 
180
- .bi-input:-webkit-any([type="checkbox"], [type="radio"]):focus-visible {
143
+ :is(.bi-input[type="checkbox"], .bi-input[type="radio"]):focus-visible {
181
144
  box-shadow: var(--_bi--focus, 0 0 0 4.5px var(--bic-input-focus-shadow-color));
182
145
  outline: var(--_bi--focus, 3px solid var(--bic-input-focus-outline-color));
183
146
  outline-offset: var(--_bi--focus, 3px);
184
147
  }
185
148
 
186
- .bi-input:-webkit-any([type="checkbox"], [type="radio"]):focus-visible * {
149
+ :is(.bi-input[type="checkbox"], .bi-input[type="radio"]):focus-visible * {
187
150
  --_bi--focus: ;
188
151
  }
189
152
 
190
- .bi-input:is([type="checkbox"], [type="radio"]):read-only:not([readonly], [aria-disabled="true"], :disabled) {
153
+ :is(.bi-input[type="checkbox"], .bi-input[type="radio"]):read-only:not([readonly], [aria-disabled="true"], :disabled) {
191
154
  cursor: pointer;
192
155
  }
193
156
 
194
- .bi-input:is([type="checkbox"], [type="radio"])[type="radio"] {
157
+ :is(.bi-input[type="checkbox"], .bi-input[type="radio"])[type="radio"] {
195
158
  border-radius: var(--bi-radius-full);
196
159
  }
197
160
 
198
- .bi-input:is([type="checkbox"], [type="radio"])[type="radio"]:before {
161
+ :is(.bi-input[type="checkbox"], .bi-input[type="radio"])[type="radio"]:before {
199
162
  content: "";
200
163
  background-color: var(--bic-input-toggle-background);
201
164
  border-radius: 100%;
@@ -209,22 +172,22 @@
209
172
  transform: translate(-50%, -50%);
210
173
  }
211
174
 
212
- .bi-input:is([type="checkbox"], [type="radio"])[type="radio"]:checked {
175
+ :is(.bi-input[type="checkbox"], .bi-input[type="radio"])[type="radio"]:checked {
213
176
  --bic-input-border-color: var(--bic-input-toggle-background);
214
177
  }
215
178
 
216
- .bi-input:is([type="checkbox"], [type="radio"])[type="radio"]:checked:before {
179
+ :is(.bi-input[type="checkbox"], .bi-input[type="radio"])[type="radio"]:checked:before {
217
180
  width: 12px;
218
181
  height: 12px;
219
182
  }
220
183
 
221
- .bi-input:is([type="checkbox"], [type="radio"])[type="checkbox"] {
184
+ :is(.bi-input[type="checkbox"], .bi-input[type="radio"])[type="checkbox"]:not([role="switch"]) {
222
185
  border-radius: var(--bi-radius-small);
223
186
  place-content: center;
224
187
  display: grid;
225
188
  }
226
189
 
227
- .bi-input:is([type="checkbox"], [type="radio"])[type="checkbox"]:before {
190
+ :is(.bi-input[type="checkbox"], .bi-input[type="radio"])[type="checkbox"]:not([role="switch"]):before {
228
191
  content: "";
229
192
  width: .7em;
230
193
  height: .7em;
@@ -235,117 +198,39 @@
235
198
  transform: scale(0);
236
199
  }
237
200
 
238
- .bi-input:-webkit-any([type="checkbox"], [type="radio"])[type="checkbox"]:-webkit-any(:checked, :indeterminate) {
239
- background: var(--bic-input-toggle-background);
240
- --bic-input-border-color: var(--bic-input-toggle-background);
241
- }
242
-
243
- .bi-input:-webkit-any([type="checkbox"], [type="radio"])[type="checkbox"]:-webkit-any(:checked, :indeterminate):before {
244
- transform: scale(1);
245
- }
246
-
247
- .bi-input:is([type="checkbox"], [type="radio"])[type="checkbox"]:is(:checked, :indeterminate) {
201
+ :is(.bi-input[type="checkbox"], .bi-input[type="radio"])[type="checkbox"]:not([role="switch"]):where(:checked, :indeterminate) {
248
202
  background: var(--bic-input-toggle-background);
249
203
  --bic-input-border-color: var(--bic-input-toggle-background);
250
204
  }
251
205
 
252
- .bi-input:is([type="checkbox"], [type="radio"])[type="checkbox"]:is(:checked, :indeterminate):before {
206
+ :is(.bi-input[type="checkbox"], .bi-input[type="radio"])[type="checkbox"]:not([role="switch"]):where(:checked, :indeterminate):before {
253
207
  transform: scale(1);
254
208
  }
255
209
 
256
- .bi-input:is([type="checkbox"], [type="radio"])[type="checkbox"]:indeterminate:before {
210
+ :is(.bi-input[type="checkbox"], .bi-input[type="radio"])[type="checkbox"]:not([role="switch"]):indeterminate:before {
257
211
  clip-path: polygon(0% 42%, 0% 58%, 100% 58%, 100% 42%);
258
212
  }
259
213
 
260
- .bi-input:is([type="checkbox"], [type="radio"]) {
261
- padding: var(--bi-scale-0-50x);
262
- line-height: inherit;
263
- height: var(--bic-input-toggle-size);
264
- width: var(--bic-input-toggle-size);
265
- box-shadow: none;
266
- border-width: var(--bi-stroke-medium);
267
- border-style: solid;
268
- border-color: var(--bic-input-border-color);
269
- background: none;
270
- flex-shrink: 0;
271
- }
272
-
273
- .bi-input:is([type="checkbox"], [type="radio"]):focus-visible {
274
- box-shadow: var(--_bi--focus, 0 0 0 4.5px var(--bic-input-focus-shadow-color));
275
- outline: var(--_bi--focus, 3px solid var(--bic-input-focus-outline-color));
276
- outline-offset: var(--_bi--focus, 3px);
277
- }
278
-
279
- .bi-input:is([type="checkbox"], [type="radio"]):focus-visible * {
280
- --_bi--focus: ;
214
+ :is(.bi-input[type="checkbox"], .bi-input[type="radio"])[type="checkbox"][role="switch"] {
215
+ --_bic-input-circle-position-x: var(--bi-scale-0-50x);
216
+ background: var(--bi-neutral-50);
281
217
  }
282
218
 
283
- .bi-input:is([type="checkbox"], [type="radio"]):read-only:not([readonly], [aria-disabled="true"], :disabled) {
284
- cursor: pointer;
285
- }
286
-
287
- .bi-input:is([type="checkbox"], [type="radio"])[type="radio"] {
288
- border-radius: var(--bi-radius-full);
289
- }
290
-
291
- .bi-input:is([type="checkbox"], [type="radio"])[type="radio"]:before {
292
- content: "";
293
- background-color: var(--bic-input-toggle-background);
294
- border-radius: 100%;
295
- width: 0;
296
- height: 0;
297
- transition: width .1s ease-in-out, height .1s ease-in-out;
298
- display: block;
299
- position: absolute;
300
- top: 50%;
301
- left: 50%;
302
- transform: translate(-50%, -50%);
303
- }
304
-
305
- .bi-input:is([type="checkbox"], [type="radio"])[type="radio"]:checked {
306
- --bic-input-border-color: var(--bic-input-toggle-background);
307
- }
308
-
309
- .bi-input:is([type="checkbox"], [type="radio"])[type="radio"]:checked:before {
310
- width: 12px;
311
- height: 12px;
312
- }
313
-
314
- .bi-input:is([type="checkbox"], [type="radio"])[type="checkbox"] {
315
- border-radius: var(--bi-radius-small);
316
- place-content: center;
317
- display: grid;
318
- }
319
-
320
- .bi-input:is([type="checkbox"], [type="radio"])[type="checkbox"]:before {
321
- content: "";
322
- width: .7em;
323
- height: .7em;
324
- box-shadow: inset 1em 1em var(--bic-input-toggle-color);
325
- transform-origin: center;
326
- clip-path: polygon(9.73% 39.66%, 0% 49.25%, 34.81% 84.58%, 100% 20%, 90.45% 10.31%, 34.81% 65.12%);
327
- transition: transform .2s ease-in-out;
328
- transform: scale(0);
329
- }
330
-
331
- .bi-input:-webkit-any([type="checkbox"], [type="radio"])[type="checkbox"]:-webkit-any(:checked, :indeterminate) {
219
+ :is(.bi-input[type="checkbox"], .bi-input[type="radio"])[type="checkbox"][role="switch"]:where(:checked) {
220
+ --_bic-input-circle-position-x: calc(100% - var(--bi-scale-0-50x));
332
221
  background: var(--bic-input-toggle-background);
333
222
  --bic-input-border-color: var(--bic-input-toggle-background);
334
223
  }
335
224
 
336
- .bi-input:-webkit-any([type="checkbox"], [type="radio"])[type="checkbox"]:-webkit-any(:checked, :indeterminate):before {
337
- transform: scale(1);
338
- }
339
-
340
- .bi-input:is([type="checkbox"], [type="radio"])[type="checkbox"]:is(:checked, :indeterminate) {
341
- background: var(--bic-input-toggle-background);
342
- --bic-input-border-color: var(--bic-input-toggle-background);
343
- }
344
-
345
- .bi-input:is([type="checkbox"], [type="radio"])[type="checkbox"]:is(:checked, :indeterminate):before {
346
- transform: scale(1);
347
- }
348
-
349
- .bi-input:is([type="checkbox"], [type="radio"])[type="checkbox"]:indeterminate:before {
350
- clip-path: polygon(0% 42%, 0% 58%, 100% 58%, 100% 42%);
225
+ :is(.bi-input[type="checkbox"], .bi-input[type="radio"])[type="checkbox"][role="switch"] {
226
+ background-image: radial-gradient(circle closest-side, var(--bi-basic-white) 95%, transparent 100%);
227
+ background-origin: content-box;
228
+ background-position: var(--_bic-input-circle-position-x);
229
+ background-repeat: no-repeat;
230
+ background-size: calc(var(--bic-input-toggle-size)) 100%;
231
+ border-radius: var(--bi-radius-full);
232
+ width: var(--bi-scale-11x);
233
+ height: var(--bi-scale-6x);
234
+ padding-inline: 0;
235
+ transition: background-position .2s;
351
236
  }