@db-ux/core-components 1.0.0-test-13b991d

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.
Files changed (167) hide show
  1. package/README.md +107 -0
  2. package/build/assets/fonts/OFL.txt +93 -0
  3. package/build/assets/fonts/OpenSans-Bold-EU.woff2 +0 -0
  4. package/build/assets/fonts/OpenSans-Bold.ttf +0 -0
  5. package/build/assets/fonts/OpenSans-ExtraBold-EU.woff2 +0 -0
  6. package/build/assets/fonts/OpenSans-ExtraBold.ttf +0 -0
  7. package/build/assets/fonts/OpenSans-Light-EU.woff2 +0 -0
  8. package/build/assets/fonts/OpenSans-Light.ttf +0 -0
  9. package/build/assets/fonts/OpenSans-Medium-EU.woff2 +0 -0
  10. package/build/assets/fonts/OpenSans-Medium.ttf +0 -0
  11. package/build/assets/fonts/OpenSans-Regular-EU.woff2 +0 -0
  12. package/build/assets/fonts/OpenSans-Regular.ttf +0 -0
  13. package/build/assets/fonts/OpenSans-SemiBold-EU.woff2 +0 -0
  14. package/build/assets/fonts/OpenSans-SemiBold.ttf +0 -0
  15. package/build/assets/fonts/README.md +23 -0
  16. package/build/assets/fonts/generate-eu-fonts.ts +46 -0
  17. package/build/assets/fonts/unicode-eu.txt +14 -0
  18. package/build/assets/icons/DB_LICENSE +253 -0
  19. package/build/assets/icons/LICENCES.json +153 -0
  20. package/build/assets/icons/arrow_down.svg +1 -0
  21. package/build/assets/icons/arrow_left.svg +1 -0
  22. package/build/assets/icons/arrow_right.svg +1 -0
  23. package/build/assets/icons/arrow_up.svg +1 -0
  24. package/build/assets/icons/arrow_up_right.svg +1 -0
  25. package/build/assets/icons/brand.svg +1 -0
  26. package/build/assets/icons/calendar.svg +5 -0
  27. package/build/assets/icons/check-circle.svg +1 -0
  28. package/build/assets/icons/check.svg +1 -0
  29. package/build/assets/icons/check_circle.svg +1 -0
  30. package/build/assets/icons/chevron_down.svg +1 -0
  31. package/build/assets/icons/chevron_left.svg +1 -0
  32. package/build/assets/icons/chevron_right.svg +1 -0
  33. package/build/assets/icons/chevron_up.svg +1 -0
  34. package/build/assets/icons/circle.svg +1 -0
  35. package/build/assets/icons/clock.svg +1 -0
  36. package/build/assets/icons/cross.svg +1 -0
  37. package/build/assets/icons/cross_circle.svg +1 -0
  38. package/build/assets/icons/exclamation_mark_circle.svg +1 -0
  39. package/build/assets/icons/exclamation_mark_triangle.svg +1 -0
  40. package/build/assets/icons/fonts/all/db-ux.woff2 +0 -0
  41. package/build/assets/icons/fonts/default/db-ux.woff2 +0 -0
  42. package/build/assets/icons/fonts/default_12/db-ux.woff2 +0 -0
  43. package/build/assets/icons/fonts/default_14/db-ux.woff2 +0 -0
  44. package/build/assets/icons/fonts/default_16/db-ux.woff2 +0 -0
  45. package/build/assets/icons/fonts/default_20/db-ux.woff2 +0 -0
  46. package/build/assets/icons/fonts/default_24/db-ux.woff2 +0 -0
  47. package/build/assets/icons/fonts/default_28/db-ux.woff2 +0 -0
  48. package/build/assets/icons/fonts/default_32/db-ux.woff2 +0 -0
  49. package/build/assets/icons/fonts/default_48/db-ux.woff2 +0 -0
  50. package/build/assets/icons/fonts/default_64/db-ux.woff2 +0 -0
  51. package/build/assets/icons/fonts/filled/db-ux.woff2 +0 -0
  52. package/build/assets/icons/fonts/filled_12/db-ux.woff2 +0 -0
  53. package/build/assets/icons/fonts/filled_14/db-ux.woff2 +0 -0
  54. package/build/assets/icons/fonts/filled_16/db-ux.woff2 +0 -0
  55. package/build/assets/icons/fonts/filled_20/db-ux.woff2 +0 -0
  56. package/build/assets/icons/fonts/filled_24/db-ux.woff2 +0 -0
  57. package/build/assets/icons/fonts/filled_28/db-ux.woff2 +0 -0
  58. package/build/assets/icons/fonts/filled_32/db-ux.woff2 +0 -0
  59. package/build/assets/icons/fonts/filled_48/db-ux.woff2 +0 -0
  60. package/build/assets/icons/fonts/filled_64/db-ux.woff2 +0 -0
  61. package/build/assets/icons/information_circle.svg +1 -0
  62. package/build/assets/icons/magnifying_glass.svg +1 -0
  63. package/build/assets/icons/menu.svg +1 -0
  64. package/build/assets/icons/minus.svg +1 -0
  65. package/build/assets/icons/plus.svg +1 -0
  66. package/build/assets/icons/resize_handle_corner.svg +1 -0
  67. package/build/assets/icons/x_placeholder.svg +1 -0
  68. package/build/components/accordion/accordion.css +78 -0
  69. package/build/components/accordion/accordion.scss +62 -0
  70. package/build/components/accordion-item/accordion-item.css +239 -0
  71. package/build/components/accordion-item/accordion-item.scss +73 -0
  72. package/build/components/badge/badge.css +253 -0
  73. package/build/components/badge/badge.scss +107 -0
  74. package/build/components/brand/brand.css +42 -0
  75. package/build/components/brand/brand.scss +32 -0
  76. package/build/components/button/button.css +165 -0
  77. package/build/components/button/button.scss +123 -0
  78. package/build/components/card/card.css +115 -0
  79. package/build/components/card/card.scss +56 -0
  80. package/build/components/checkbox/checkbox.css +476 -0
  81. package/build/components/checkbox/checkbox.scss +80 -0
  82. package/build/components/divider/divider.css +84 -0
  83. package/build/components/divider/divider.scss +56 -0
  84. package/build/components/drawer/drawer.css +303 -0
  85. package/build/components/drawer/drawer.scss +228 -0
  86. package/build/components/header/header.css +697 -0
  87. package/build/components/header/header.scss +246 -0
  88. package/build/components/icon/icon.css +24 -0
  89. package/build/components/icon/icon.scss +14 -0
  90. package/build/components/infotext/infotext.css +152 -0
  91. package/build/components/infotext/infotext.scss +54 -0
  92. package/build/components/input/input.css +712 -0
  93. package/build/components/input/input.scss +147 -0
  94. package/build/components/link/link.css +257 -0
  95. package/build/components/link/link.scss +60 -0
  96. package/build/components/navigation/navigation.css +218 -0
  97. package/build/components/navigation/navigation.scss +117 -0
  98. package/build/components/navigation-item/navigation-item.css +482 -0
  99. package/build/components/navigation-item/navigation-item.scss +310 -0
  100. package/build/components/notification/notification-grid-default.css +1 -0
  101. package/build/components/notification/notification-grid-default.scss +52 -0
  102. package/build/components/notification/notification-grid-non-overlay.css +1 -0
  103. package/build/components/notification/notification-grid-non-overlay.scss +66 -0
  104. package/build/components/notification/notification-grid-overlay.css +1 -0
  105. package/build/components/notification/notification-grid-overlay.scss +55 -0
  106. package/build/components/notification/notification.css +1173 -0
  107. package/build/components/notification/notification.scss +216 -0
  108. package/build/components/page/page.css +49 -0
  109. package/build/components/page/page.scss +52 -0
  110. package/build/components/popover/popover.css +291 -0
  111. package/build/components/popover/popover.scss +26 -0
  112. package/build/components/radio/radio.css +390 -0
  113. package/build/components/radio/radio.scss +49 -0
  114. package/build/components/section/section.css +38 -0
  115. package/build/components/section/section.scss +51 -0
  116. package/build/components/select/select.css +651 -0
  117. package/build/components/select/select.scss +83 -0
  118. package/build/components/stack/stack-web-component.css +93 -0
  119. package/build/components/stack/stack-web-component.scss +1 -0
  120. package/build/components/stack/stack.css +93 -0
  121. package/build/components/stack/stack.scss +5 -0
  122. package/build/components/switch/switch.css +901 -0
  123. package/build/components/switch/switch.scss +233 -0
  124. package/build/components/tab-item/tab-item.css +160 -0
  125. package/build/components/tab-item/tab-item.scss +135 -0
  126. package/build/components/tab-list/tab-list.css +202 -0
  127. package/build/components/tab-list/tab-list.scss +18 -0
  128. package/build/components/tab-panel/tab-panel.css +10 -0
  129. package/build/components/tab-panel/tab-panel.scss +5 -0
  130. package/build/components/tabs/tabs.css +358 -0
  131. package/build/components/tabs/tabs.scss +361 -0
  132. package/build/components/tag/tag.css +1544 -0
  133. package/build/components/tag/tag.scss +236 -0
  134. package/build/components/textarea/textarea.css +546 -0
  135. package/build/components/textarea/textarea.scss +86 -0
  136. package/build/components/tooltip/tooltip.css +346 -0
  137. package/build/components/tooltip/tooltip.scss +137 -0
  138. package/build/styles/absolute.css +1559 -0
  139. package/build/styles/absolute.scss +5 -0
  140. package/build/styles/component-animations.css +1 -0
  141. package/build/styles/component-animations.scss +17 -0
  142. package/build/styles/dialog-init.css +1 -0
  143. package/build/styles/dialog-init.scss +57 -0
  144. package/build/styles/index.css +615 -0
  145. package/build/styles/index.scss +32 -0
  146. package/build/styles/internal/_button-components.scss +8 -0
  147. package/build/styles/internal/_component.scss +79 -0
  148. package/build/styles/internal/_custom-elements.scss +7 -0
  149. package/build/styles/internal/_db-puls.scss +83 -0
  150. package/build/styles/internal/_form-components.scss +516 -0
  151. package/build/styles/internal/_icon-passing.scss +26 -0
  152. package/build/styles/internal/_link-components.scss +62 -0
  153. package/build/styles/internal/_popover-component.scss +213 -0
  154. package/build/styles/internal/_scrollbar.scss +93 -0
  155. package/build/styles/internal/_stack-components.scss +104 -0
  156. package/build/styles/internal/_tag-components.scss +234 -0
  157. package/build/styles/relative.css +1559 -0
  158. package/build/styles/relative.scss +15 -0
  159. package/build/styles/rollup.css +1559 -0
  160. package/build/styles/rollup.scss +5 -0
  161. package/build/styles/visually-hidden.css +1 -0
  162. package/build/styles/visually-hidden.scss +6 -0
  163. package/build/styles/wc-workarounds.css +1 -0
  164. package/build/styles/wc-workarounds.scss +12 -0
  165. package/build/styles/webpack.css +1559 -0
  166. package/build/styles/webpack.scss +5 -0
  167. package/package.json +62 -0
@@ -0,0 +1,901 @@
1
+ /* Use sizing's for fixed heights/widths e.g. the db-button has always a fixed height */
2
+ /* Use fixed spacings for all kind of distances (margin, padding, ...) */
3
+ /* The primary use-case for responsive spacings are
4
+ paddings/gaps in an application e.g. the <main> should have a responsive padding. */
5
+ /* Elevation */
6
+ /* Border */
7
+ /* Transitions */
8
+ /* Variants for adaptive components like input, select, notification, ... */
9
+ .db-visually-hidden,
10
+ [data-visually-hidden=true] {
11
+ clip: rect(0, 0, 0, 0) !important;
12
+ overflow: hidden !important;
13
+ white-space: nowrap !important;
14
+ font-size: 0 !important;
15
+ all: initial;
16
+ inset-block-start: 0 !important;
17
+ block-size: 1px !important;
18
+ position: absolute !important;
19
+ inline-size: 1px !important;
20
+ border-width: 0 !important;
21
+ border-style: initial !important;
22
+ border-color: initial !important;
23
+ border-image: initial !important;
24
+ padding: 0 !important;
25
+ pointer-events: none !important;
26
+ }
27
+
28
+ .db-switch[data-emphasis=strong] > input {
29
+ --db-adaptive-bg-basic-level-1-default: var(
30
+ --db-critical-bg-basic-level-1-default
31
+ );
32
+ --db-adaptive-bg-basic-level-1-hovered: var(
33
+ --db-critical-bg-basic-level-1-hovered
34
+ );
35
+ --db-adaptive-bg-basic-level-1-pressed: var(
36
+ --db-critical-bg-basic-level-1-pressed
37
+ );
38
+ --db-adaptive-bg-basic-level-2-default: var(
39
+ --db-critical-bg-basic-level-2-default
40
+ );
41
+ --db-adaptive-bg-basic-level-2-hovered: var(
42
+ --db-critical-bg-basic-level-2-hovered
43
+ );
44
+ --db-adaptive-bg-basic-level-2-pressed: var(
45
+ --db-critical-bg-basic-level-2-pressed
46
+ );
47
+ --db-adaptive-bg-basic-level-3-default: var(
48
+ --db-critical-bg-basic-level-3-default
49
+ );
50
+ --db-adaptive-bg-basic-level-3-hovered: var(
51
+ --db-critical-bg-basic-level-3-hovered
52
+ );
53
+ --db-adaptive-bg-basic-level-3-pressed: var(
54
+ --db-critical-bg-basic-level-3-pressed
55
+ );
56
+ --db-adaptive-bg-basic-transparent-full-default: var(
57
+ --db-critical-bg-basic-transparent-full-default
58
+ );
59
+ --db-adaptive-bg-basic-transparent-semi-default: var(
60
+ --db-critical-bg-basic-transparent-semi-default
61
+ );
62
+ --db-adaptive-bg-basic-transparent-hovered: var(
63
+ --db-critical-bg-basic-transparent-hovered
64
+ );
65
+ --db-adaptive-bg-basic-transparent-pressed: var(
66
+ --db-critical-bg-basic-transparent-pressed
67
+ );
68
+ --db-adaptive-on-bg-basic-emphasis-100-default: var(
69
+ --db-critical-on-bg-basic-emphasis-100-default
70
+ );
71
+ --db-adaptive-on-bg-basic-emphasis-100-hovered: var(
72
+ --db-critical-on-bg-basic-emphasis-100-hovered
73
+ );
74
+ --db-adaptive-on-bg-basic-emphasis-100-pressed: var(
75
+ --db-critical-on-bg-basic-emphasis-100-pressed
76
+ );
77
+ --db-adaptive-on-bg-basic-emphasis-90-default: var(
78
+ --db-critical-on-bg-basic-emphasis-90-default
79
+ );
80
+ --db-adaptive-on-bg-basic-emphasis-90-hovered: var(
81
+ --db-critical-on-bg-basic-emphasis-90-hovered
82
+ );
83
+ --db-adaptive-on-bg-basic-emphasis-90-pressed: var(
84
+ --db-critical-on-bg-basic-emphasis-90-pressed
85
+ );
86
+ --db-adaptive-on-bg-basic-emphasis-80-default: var(
87
+ --db-critical-on-bg-basic-emphasis-80-default
88
+ );
89
+ --db-adaptive-on-bg-basic-emphasis-80-hovered: var(
90
+ --db-critical-on-bg-basic-emphasis-80-hovered
91
+ );
92
+ --db-adaptive-on-bg-basic-emphasis-80-pressed: var(
93
+ --db-critical-on-bg-basic-emphasis-80-pressed
94
+ );
95
+ --db-adaptive-on-bg-basic-emphasis-70-default: var(
96
+ --db-critical-on-bg-basic-emphasis-70-default
97
+ );
98
+ --db-adaptive-on-bg-basic-emphasis-70-hovered: var(
99
+ --db-critical-on-bg-basic-emphasis-70-hovered
100
+ );
101
+ --db-adaptive-on-bg-basic-emphasis-70-pressed: var(
102
+ --db-critical-on-bg-basic-emphasis-70-pressed
103
+ );
104
+ --db-adaptive-on-bg-basic-emphasis-60-default: var(
105
+ --db-critical-on-bg-basic-emphasis-60-default
106
+ );
107
+ --db-adaptive-on-bg-basic-emphasis-60-hovered: var(
108
+ --db-critical-on-bg-basic-emphasis-60-hovered
109
+ );
110
+ --db-adaptive-on-bg-basic-emphasis-60-pressed: var(
111
+ --db-critical-on-bg-basic-emphasis-60-pressed
112
+ );
113
+ --db-adaptive-on-bg-basic-emphasis-50-default: var(
114
+ --db-critical-on-bg-basic-emphasis-50-default
115
+ );
116
+ --db-adaptive-on-bg-basic-emphasis-50-hovered: var(
117
+ --db-critical-on-bg-basic-emphasis-50-hovered
118
+ );
119
+ --db-adaptive-on-bg-basic-emphasis-50-pressed: var(
120
+ --db-critical-on-bg-basic-emphasis-50-pressed
121
+ );
122
+ --db-adaptive-bg-inverted-contrast-max-default: var(
123
+ --db-critical-bg-inverted-contrast-max-default
124
+ );
125
+ --db-adaptive-bg-inverted-contrast-max-hovered: var(
126
+ --db-critical-bg-inverted-contrast-max-hovered
127
+ );
128
+ --db-adaptive-bg-inverted-contrast-max-pressed: var(
129
+ --db-critical-bg-inverted-contrast-max-pressed
130
+ );
131
+ --db-adaptive-bg-inverted-contrast-high-default: var(
132
+ --db-critical-bg-inverted-contrast-high-default
133
+ );
134
+ --db-adaptive-bg-inverted-contrast-high-hovered: var(
135
+ --db-critical-bg-inverted-contrast-high-hovered
136
+ );
137
+ --db-adaptive-bg-inverted-contrast-high-pressed: var(
138
+ --db-critical-bg-inverted-contrast-high-pressed
139
+ );
140
+ --db-adaptive-bg-inverted-contrast-low-default: var(
141
+ --db-critical-bg-inverted-contrast-low-default
142
+ );
143
+ --db-adaptive-bg-inverted-contrast-low-hovered: var(
144
+ --db-critical-bg-inverted-contrast-low-hovered
145
+ );
146
+ --db-adaptive-bg-inverted-contrast-low-pressed: var(
147
+ --db-critical-bg-inverted-contrast-low-pressed
148
+ );
149
+ --db-adaptive-on-bg-inverted-default: var(
150
+ --db-critical-on-bg-inverted-default
151
+ );
152
+ --db-adaptive-on-bg-inverted-hovered: var(
153
+ --db-critical-on-bg-inverted-hovered
154
+ );
155
+ --db-adaptive-on-bg-inverted-pressed: var(
156
+ --db-critical-on-bg-inverted-pressed
157
+ );
158
+ --db-adaptive-origin-default: var(--db-critical-origin-default);
159
+ --db-adaptive-origin-hovered: var(--db-critical-origin-hovered);
160
+ --db-adaptive-origin-pressed: var(--db-critical-origin-pressed);
161
+ --db-adaptive-on-origin-default: var(
162
+ --db-critical-on-origin-default
163
+ );
164
+ --db-adaptive-on-origin-hovered: var(
165
+ --db-critical-on-origin-hovered
166
+ );
167
+ --db-adaptive-on-origin-pressed: var(
168
+ --db-critical-on-origin-pressed
169
+ );
170
+ }
171
+
172
+ .db-switch[data-emphasis=strong] > input:checked {
173
+ --db-adaptive-bg-basic-level-1-default: var(
174
+ --db-successful-bg-basic-level-1-default
175
+ );
176
+ --db-adaptive-bg-basic-level-1-hovered: var(
177
+ --db-successful-bg-basic-level-1-hovered
178
+ );
179
+ --db-adaptive-bg-basic-level-1-pressed: var(
180
+ --db-successful-bg-basic-level-1-pressed
181
+ );
182
+ --db-adaptive-bg-basic-level-2-default: var(
183
+ --db-successful-bg-basic-level-2-default
184
+ );
185
+ --db-adaptive-bg-basic-level-2-hovered: var(
186
+ --db-successful-bg-basic-level-2-hovered
187
+ );
188
+ --db-adaptive-bg-basic-level-2-pressed: var(
189
+ --db-successful-bg-basic-level-2-pressed
190
+ );
191
+ --db-adaptive-bg-basic-level-3-default: var(
192
+ --db-successful-bg-basic-level-3-default
193
+ );
194
+ --db-adaptive-bg-basic-level-3-hovered: var(
195
+ --db-successful-bg-basic-level-3-hovered
196
+ );
197
+ --db-adaptive-bg-basic-level-3-pressed: var(
198
+ --db-successful-bg-basic-level-3-pressed
199
+ );
200
+ --db-adaptive-bg-basic-transparent-full-default: var(
201
+ --db-successful-bg-basic-transparent-full-default
202
+ );
203
+ --db-adaptive-bg-basic-transparent-semi-default: var(
204
+ --db-successful-bg-basic-transparent-semi-default
205
+ );
206
+ --db-adaptive-bg-basic-transparent-hovered: var(
207
+ --db-successful-bg-basic-transparent-hovered
208
+ );
209
+ --db-adaptive-bg-basic-transparent-pressed: var(
210
+ --db-successful-bg-basic-transparent-pressed
211
+ );
212
+ --db-adaptive-on-bg-basic-emphasis-100-default: var(
213
+ --db-successful-on-bg-basic-emphasis-100-default
214
+ );
215
+ --db-adaptive-on-bg-basic-emphasis-100-hovered: var(
216
+ --db-successful-on-bg-basic-emphasis-100-hovered
217
+ );
218
+ --db-adaptive-on-bg-basic-emphasis-100-pressed: var(
219
+ --db-successful-on-bg-basic-emphasis-100-pressed
220
+ );
221
+ --db-adaptive-on-bg-basic-emphasis-90-default: var(
222
+ --db-successful-on-bg-basic-emphasis-90-default
223
+ );
224
+ --db-adaptive-on-bg-basic-emphasis-90-hovered: var(
225
+ --db-successful-on-bg-basic-emphasis-90-hovered
226
+ );
227
+ --db-adaptive-on-bg-basic-emphasis-90-pressed: var(
228
+ --db-successful-on-bg-basic-emphasis-90-pressed
229
+ );
230
+ --db-adaptive-on-bg-basic-emphasis-80-default: var(
231
+ --db-successful-on-bg-basic-emphasis-80-default
232
+ );
233
+ --db-adaptive-on-bg-basic-emphasis-80-hovered: var(
234
+ --db-successful-on-bg-basic-emphasis-80-hovered
235
+ );
236
+ --db-adaptive-on-bg-basic-emphasis-80-pressed: var(
237
+ --db-successful-on-bg-basic-emphasis-80-pressed
238
+ );
239
+ --db-adaptive-on-bg-basic-emphasis-70-default: var(
240
+ --db-successful-on-bg-basic-emphasis-70-default
241
+ );
242
+ --db-adaptive-on-bg-basic-emphasis-70-hovered: var(
243
+ --db-successful-on-bg-basic-emphasis-70-hovered
244
+ );
245
+ --db-adaptive-on-bg-basic-emphasis-70-pressed: var(
246
+ --db-successful-on-bg-basic-emphasis-70-pressed
247
+ );
248
+ --db-adaptive-on-bg-basic-emphasis-60-default: var(
249
+ --db-successful-on-bg-basic-emphasis-60-default
250
+ );
251
+ --db-adaptive-on-bg-basic-emphasis-60-hovered: var(
252
+ --db-successful-on-bg-basic-emphasis-60-hovered
253
+ );
254
+ --db-adaptive-on-bg-basic-emphasis-60-pressed: var(
255
+ --db-successful-on-bg-basic-emphasis-60-pressed
256
+ );
257
+ --db-adaptive-on-bg-basic-emphasis-50-default: var(
258
+ --db-successful-on-bg-basic-emphasis-50-default
259
+ );
260
+ --db-adaptive-on-bg-basic-emphasis-50-hovered: var(
261
+ --db-successful-on-bg-basic-emphasis-50-hovered
262
+ );
263
+ --db-adaptive-on-bg-basic-emphasis-50-pressed: var(
264
+ --db-successful-on-bg-basic-emphasis-50-pressed
265
+ );
266
+ --db-adaptive-bg-inverted-contrast-max-default: var(
267
+ --db-successful-bg-inverted-contrast-max-default
268
+ );
269
+ --db-adaptive-bg-inverted-contrast-max-hovered: var(
270
+ --db-successful-bg-inverted-contrast-max-hovered
271
+ );
272
+ --db-adaptive-bg-inverted-contrast-max-pressed: var(
273
+ --db-successful-bg-inverted-contrast-max-pressed
274
+ );
275
+ --db-adaptive-bg-inverted-contrast-high-default: var(
276
+ --db-successful-bg-inverted-contrast-high-default
277
+ );
278
+ --db-adaptive-bg-inverted-contrast-high-hovered: var(
279
+ --db-successful-bg-inverted-contrast-high-hovered
280
+ );
281
+ --db-adaptive-bg-inverted-contrast-high-pressed: var(
282
+ --db-successful-bg-inverted-contrast-high-pressed
283
+ );
284
+ --db-adaptive-bg-inverted-contrast-low-default: var(
285
+ --db-successful-bg-inverted-contrast-low-default
286
+ );
287
+ --db-adaptive-bg-inverted-contrast-low-hovered: var(
288
+ --db-successful-bg-inverted-contrast-low-hovered
289
+ );
290
+ --db-adaptive-bg-inverted-contrast-low-pressed: var(
291
+ --db-successful-bg-inverted-contrast-low-pressed
292
+ );
293
+ --db-adaptive-on-bg-inverted-default: var(
294
+ --db-successful-on-bg-inverted-default
295
+ );
296
+ --db-adaptive-on-bg-inverted-hovered: var(
297
+ --db-successful-on-bg-inverted-hovered
298
+ );
299
+ --db-adaptive-on-bg-inverted-pressed: var(
300
+ --db-successful-on-bg-inverted-pressed
301
+ );
302
+ --db-adaptive-origin-default: var(--db-successful-origin-default);
303
+ --db-adaptive-origin-hovered: var(--db-successful-origin-hovered);
304
+ --db-adaptive-origin-pressed: var(--db-successful-origin-pressed);
305
+ --db-adaptive-on-origin-default: var(
306
+ --db-successful-on-origin-default
307
+ );
308
+ --db-adaptive-on-origin-hovered: var(
309
+ --db-successful-on-origin-hovered
310
+ );
311
+ --db-adaptive-on-origin-pressed: var(
312
+ --db-successful-on-origin-pressed
313
+ );
314
+ }
315
+
316
+ /**
317
+ Generates 3 types of placeholders, e.g:
318
+ - %db-component-variables-md
319
+ - %db-font-size-md
320
+ - %db-overwrite-font-size-md
321
+ */
322
+ .db-switch {
323
+ /* Those variables are only for components to calculate heights and change icons */
324
+ --db-icon-font-weight: var(--db-base-body-icon-weight-md);
325
+ --db-icon-font-size: var(--db-base-body-icon-font-size-md);
326
+ --db-base-line-height: var(--db-type-body-line-height-md);
327
+ --db-base-font-size: var(--db-type-body-font-size-md);
328
+ line-height: var(--db-type-body-line-height-md);
329
+ font-size: var(--db-type-body-font-size-md);
330
+ }
331
+
332
+ .db-switch[data-size=small], .db-switch > input {
333
+ /* Those variables are only for components to calculate heights and change icons */
334
+ --db-icon-font-weight: var(--db-base-body-icon-weight-sm);
335
+ --db-icon-font-size: var(--db-base-body-icon-font-size-sm);
336
+ --db-base-line-height: var(--db-type-body-line-height-sm);
337
+ --db-base-font-size: var(--db-type-body-font-size-sm);
338
+ line-height: var(--db-type-body-line-height-sm);
339
+ font-size: var(--db-type-body-font-size-sm);
340
+ }
341
+
342
+ .db-switch[data-size=small] > input {
343
+ /* Those variables are only for components to calculate heights and change icons */
344
+ --db-icon-font-weight: var(--db-base-body-icon-weight-xs);
345
+ --db-icon-font-size: var(--db-base-body-icon-font-size-xs);
346
+ --db-base-line-height: var(--db-type-body-line-height-xs);
347
+ --db-base-font-size: var(--db-type-body-font-size-xs);
348
+ line-height: var(--db-type-body-line-height-xs);
349
+ font-size: var(--db-type-body-font-size-xs);
350
+ }
351
+
352
+ .db-switch > input:not([data-hide-icon-after=true])::after, .db-switch[data-emphasis=strong] > input:checked:not([data-aid-icon]):not([data-hide-icon-after=true])::after, .db-switch[data-visual-aid=true] > input:checked:not([data-aid-icon]):not([data-hide-icon-after=true])::after {
353
+ content: var(--db-icon, attr(data-icon));
354
+ content: var(--db-icon, attr(data-icon))/"";
355
+ -webkit-alt: "";
356
+ alt: "";
357
+ color: var(--db-icon-color, inherit);
358
+ display: inline-block;
359
+ /*** icon - placeholder ***/
360
+ font-family: var(--db-icon-font-family, var(--db-icon-default-font-family, "db-ux-default")) !important;
361
+ font-size: var(--db-icon-font-size, 1.5rem);
362
+ -webkit-font-smoothing: antialiased;
363
+ -moz-osx-font-smoothing: grayscale;
364
+ font-style: normal;
365
+ font-variant: normal;
366
+ font-weight: var(--db-icon-font-weight, normal);
367
+ line-height: 1;
368
+ /* stylelint-disable-next-line declaration-property-value-no-unknown */
369
+ speak: none;
370
+ /* stylelint-disable-next-line declaration-property-value-no-unknown */
371
+ speak: never;
372
+ text-transform: none;
373
+ vertical-align: middle;
374
+ block-size: var(--db-icon-font-size, 1.5rem);
375
+ inline-size: var(--db-icon-font-size, 1.5rem);
376
+ }
377
+ @media aural {
378
+ .db-switch > input:not([data-hide-icon-after=true])::after, .db-switch[data-emphasis=strong] > input:checked:not([data-aid-icon]):not([data-hide-icon-after=true])::after, .db-switch[data-visual-aid=true] > input:checked:not([data-aid-icon]):not([data-hide-icon-after=true])::after {
379
+ content: none;
380
+ }
381
+ }
382
+ @media speech {
383
+ .db-switch > input:not([data-hide-icon-after=true])::after, .db-switch[data-emphasis=strong] > input:checked:not([data-aid-icon]):not([data-hide-icon-after=true])::after, .db-switch[data-visual-aid=true] > input:checked:not([data-aid-icon]):not([data-hide-icon-after=true])::after {
384
+ content: none;
385
+ }
386
+ }
387
+
388
+ /* stylelint-disable-next-line db-ux/use-spacings */
389
+ .db-switch:active:not(:disabled, [aria-disabled=true]) > input::before {
390
+ inline-size: calc(calc(calc(var(--db-base-font-size) * var(--db-base-line-height))) - 0.125rem * 2 + var(--db-spacing-fixed-2xs));
391
+ margin: 0;
392
+ }
393
+ .db-switch:active:not(:disabled, [aria-disabled=true]) > input:checked::before {
394
+ block-size: calc(calc(var(--db-base-font-size) * var(--db-base-line-height)) - 0.125rem * 2);
395
+ }
396
+
397
+ .db-switch {
398
+ /* stylelint-disable-next-line at-rule-empty-line-before */
399
+ /* stylelint-disable-next-line at-rule-empty-line-before */
400
+ user-select: none;
401
+ }
402
+ .db-switch:has(input:required):is(label)::after,
403
+ .db-switch:has(input:required) label::after {
404
+ content: "*";
405
+ content: "*"/"";
406
+ /* stylelint-disable-next-line db-ux/use-spacings */
407
+ padding-inline-start: 1px;
408
+ }
409
+ .db-switch:has(input:not([data-custom-validity]):required:user-valid) .db-infotext {
410
+ /* stylelint-disable-next-line at-rule-empty-line-before */
411
+ }
412
+ .db-switch:has(input:not([data-custom-validity]):required:user-valid) .db-infotext[data-semantic=successful] {
413
+ display: flex;
414
+ }
415
+ .db-switch:has(input:not([data-custom-validity]):required:user-valid) .db-infotext:not([data-semantic]) {
416
+ display: none;
417
+ }
418
+ .db-switch:has(input:not([data-custom-validity]):required:user-valid) input {
419
+ --db-adaptive-bg-basic-transparent-semi: var(
420
+ --db-successful-bg-basic-transparent-semi-default
421
+ );
422
+ --db-adaptive-bg-basic-transparent-hovered: var(
423
+ --db-successful-bg-basic-transparent-hovered
424
+ );
425
+ --db-adaptive-bg-basic-transparent-pressed: var(
426
+ --db-successful-bg-basic-transparent-pressed
427
+ );
428
+ }
429
+ .db-switch:has(input:not([data-custom-validity]):required:user-valid) input:not(:checked), .db-switch:has(input:not([data-custom-validity]):required:user-valid) input:is([type=radio]) {
430
+ --db-check-element-border-color: var(
431
+ --db-successful-on-bg-basic-emphasis-70-default
432
+ );
433
+ }
434
+ .db-switch:has(input:not([data-custom-validity]):required:user-valid) input:not([type=radio]):checked {
435
+ background-color: var(--db-successful-bg-inverted-contrast-high-default);
436
+ color: var(--db-successful-on-bg-inverted-default);
437
+ /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
438
+ }
439
+ .db-switch:has(input:not([data-custom-validity]):required:user-valid) input:not([type=radio]):checked::before, .db-switch:has(input:not([data-custom-validity]):required:user-valid) input:not([type=radio]):checked::after {
440
+ --db-icon-color: var(--db-successful-on-bg-inverted-default);
441
+ }
442
+ .db-switch:has(input:not([data-custom-validity]):required:user-valid) input:not([type=radio]):checked:hover:not(:disabled, [aria-disabled=true]) {
443
+ cursor: pointer;
444
+ background-color: var(--db-successful-bg-inverted-contrast-high-hovered);
445
+ }
446
+ .db-switch:has(input:not([data-custom-validity]):required:user-valid) input:not([type=radio]):checked:hover:not(:disabled, [aria-disabled=true]):is(textarea), .db-switch:has(input:not([data-custom-validity]):required:user-valid) input:not([type=radio]):checked:hover:not(:disabled, [aria-disabled=true]):is(input) {
447
+ cursor: initial;
448
+ }
449
+ .db-switch:has(input:not([data-custom-validity]):required:user-valid) input:not([type=radio]):checked:hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-switch:has(input:not([data-custom-validity]):required:user-valid) input:not([type=radio]):checked:hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
450
+ cursor: pointer;
451
+ }
452
+ .db-switch:has(input:not([data-custom-validity]):required:user-valid) input:not([type=radio]):checked:active:not(:disabled, [aria-disabled=true]) {
453
+ cursor: pointer;
454
+ background-color: var(--db-successful-bg-inverted-contrast-high-pressed);
455
+ }
456
+ .db-switch:has(input:not([data-custom-validity]):required:user-valid) input:not([type=radio]):checked:active:not(:disabled, [aria-disabled=true]):is(textarea), .db-switch:has(input:not([data-custom-validity]):required:user-valid) input:not([type=radio]):checked:active:not(:disabled, [aria-disabled=true]):is(input) {
457
+ cursor: initial;
458
+ }
459
+ .db-switch:has(input:not([data-custom-validity]):required:user-valid) input:not([type=radio]):checked:active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-switch:has(input:not([data-custom-validity]):required:user-valid) input:not([type=radio]):checked:active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
460
+ cursor: pointer;
461
+ }
462
+ .db-switch:has(input:not([data-custom-validity]):required:user-valid):is(label),
463
+ .db-switch:has(input:not([data-custom-validity]):required:user-valid) label {
464
+ color: var(--db-successful-on-bg-basic-emphasis-80-default);
465
+ }
466
+ .db-switch:has(input[data-custom-validity=valid]) .db-infotext {
467
+ /* stylelint-disable-next-line at-rule-empty-line-before */
468
+ }
469
+ .db-switch:has(input[data-custom-validity=valid]) .db-infotext[data-semantic=successful] {
470
+ display: flex;
471
+ }
472
+ .db-switch:has(input[data-custom-validity=valid]) .db-infotext:not([data-semantic]) {
473
+ display: none;
474
+ }
475
+ .db-switch:has(input[data-custom-validity=valid]) input {
476
+ --db-adaptive-bg-basic-transparent-semi: var(
477
+ --db-successful-bg-basic-transparent-semi-default
478
+ );
479
+ --db-adaptive-bg-basic-transparent-hovered: var(
480
+ --db-successful-bg-basic-transparent-hovered
481
+ );
482
+ --db-adaptive-bg-basic-transparent-pressed: var(
483
+ --db-successful-bg-basic-transparent-pressed
484
+ );
485
+ }
486
+ .db-switch:has(input[data-custom-validity=valid]) input:not(:checked), .db-switch:has(input[data-custom-validity=valid]) input:is([type=radio]) {
487
+ --db-check-element-border-color: var(
488
+ --db-successful-on-bg-basic-emphasis-70-default
489
+ );
490
+ }
491
+ .db-switch:has(input[data-custom-validity=valid]) input:not([type=radio]):checked {
492
+ background-color: var(--db-successful-bg-inverted-contrast-high-default);
493
+ color: var(--db-successful-on-bg-inverted-default);
494
+ /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
495
+ }
496
+ .db-switch:has(input[data-custom-validity=valid]) input:not([type=radio]):checked::before, .db-switch:has(input[data-custom-validity=valid]) input:not([type=radio]):checked::after {
497
+ --db-icon-color: var(--db-successful-on-bg-inverted-default);
498
+ }
499
+ .db-switch:has(input[data-custom-validity=valid]) input:not([type=radio]):checked:hover:not(:disabled, [aria-disabled=true]) {
500
+ cursor: pointer;
501
+ background-color: var(--db-successful-bg-inverted-contrast-high-hovered);
502
+ }
503
+ .db-switch:has(input[data-custom-validity=valid]) input:not([type=radio]):checked:hover:not(:disabled, [aria-disabled=true]):is(textarea), .db-switch:has(input[data-custom-validity=valid]) input:not([type=radio]):checked:hover:not(:disabled, [aria-disabled=true]):is(input) {
504
+ cursor: initial;
505
+ }
506
+ .db-switch:has(input[data-custom-validity=valid]) input:not([type=radio]):checked:hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-switch:has(input[data-custom-validity=valid]) input:not([type=radio]):checked:hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
507
+ cursor: pointer;
508
+ }
509
+ .db-switch:has(input[data-custom-validity=valid]) input:not([type=radio]):checked:active:not(:disabled, [aria-disabled=true]) {
510
+ cursor: pointer;
511
+ background-color: var(--db-successful-bg-inverted-contrast-high-pressed);
512
+ }
513
+ .db-switch:has(input[data-custom-validity=valid]) input:not([type=radio]):checked:active:not(:disabled, [aria-disabled=true]):is(textarea), .db-switch:has(input[data-custom-validity=valid]) input:not([type=radio]):checked:active:not(:disabled, [aria-disabled=true]):is(input) {
514
+ cursor: initial;
515
+ }
516
+ .db-switch:has(input[data-custom-validity=valid]) input:not([type=radio]):checked:active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-switch:has(input[data-custom-validity=valid]) input:not([type=radio]):checked:active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
517
+ cursor: pointer;
518
+ }
519
+ .db-switch:has(input[data-custom-validity=valid]):is(label),
520
+ .db-switch:has(input[data-custom-validity=valid]) label {
521
+ color: var(--db-successful-on-bg-basic-emphasis-80-default);
522
+ }
523
+ .db-switch:has(input:not([data-custom-validity]):required:user-invalid) .db-infotext[data-semantic=critical] {
524
+ display: flex;
525
+ }
526
+ .db-switch:has(input:not([data-custom-validity]):required:user-invalid) .db-infotext:not([data-semantic]) {
527
+ display: none;
528
+ }
529
+ .db-switch:has(input:not([data-custom-validity]):required:user-invalid) input {
530
+ --db-adaptive-bg-basic-transparent-semi: var(
531
+ --db-critical-bg-basic-transparent-semi-default
532
+ );
533
+ --db-adaptive-bg-basic-transparent-hovered: var(
534
+ --db-critical-bg-basic-transparent-hovered
535
+ );
536
+ --db-adaptive-bg-basic-transparent-pressed: var(
537
+ --db-critical-bg-basic-transparent-pressed
538
+ );
539
+ }
540
+ .db-switch:has(input:not([data-custom-validity]):required:user-invalid) input:not(:checked), .db-switch:has(input:not([data-custom-validity]):required:user-invalid) input:is([type=radio]) {
541
+ --db-check-element-border-color: var(
542
+ --db-critical-on-bg-basic-emphasis-70-default
543
+ );
544
+ }
545
+ .db-switch:has(input:not([data-custom-validity]):required:user-invalid) input:not([type=radio]):checked {
546
+ background-color: var(--db-successful-bg-inverted-contrast-high-default);
547
+ color: var(--db-successful-on-bg-inverted-default);
548
+ /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
549
+ }
550
+ .db-switch:has(input:not([data-custom-validity]):required:user-invalid) input:not([type=radio]):checked::before, .db-switch:has(input:not([data-custom-validity]):required:user-invalid) input:not([type=radio]):checked::after {
551
+ --db-icon-color: var(--db-successful-on-bg-inverted-default);
552
+ }
553
+ .db-switch:has(input:not([data-custom-validity]):required:user-invalid) input:not([type=radio]):checked:hover:not(:disabled, [aria-disabled=true]) {
554
+ cursor: pointer;
555
+ background-color: var(--db-successful-bg-inverted-contrast-high-hovered);
556
+ }
557
+ .db-switch:has(input:not([data-custom-validity]):required:user-invalid) input:not([type=radio]):checked:hover:not(:disabled, [aria-disabled=true]):is(textarea), .db-switch:has(input:not([data-custom-validity]):required:user-invalid) input:not([type=radio]):checked:hover:not(:disabled, [aria-disabled=true]):is(input) {
558
+ cursor: initial;
559
+ }
560
+ .db-switch:has(input:not([data-custom-validity]):required:user-invalid) input:not([type=radio]):checked:hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-switch:has(input:not([data-custom-validity]):required:user-invalid) input:not([type=radio]):checked:hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
561
+ cursor: pointer;
562
+ }
563
+ .db-switch:has(input:not([data-custom-validity]):required:user-invalid) input:not([type=radio]):checked:active:not(:disabled, [aria-disabled=true]) {
564
+ cursor: pointer;
565
+ background-color: var(--db-successful-bg-inverted-contrast-high-pressed);
566
+ }
567
+ .db-switch:has(input:not([data-custom-validity]):required:user-invalid) input:not([type=radio]):checked:active:not(:disabled, [aria-disabled=true]):is(textarea), .db-switch:has(input:not([data-custom-validity]):required:user-invalid) input:not([type=radio]):checked:active:not(:disabled, [aria-disabled=true]):is(input) {
568
+ cursor: initial;
569
+ }
570
+ .db-switch:has(input:not([data-custom-validity]):required:user-invalid) input:not([type=radio]):checked:active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-switch:has(input:not([data-custom-validity]):required:user-invalid) input:not([type=radio]):checked:active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
571
+ cursor: pointer;
572
+ }
573
+ .db-switch:has(input:not([data-custom-validity]):required:user-invalid):is(label),
574
+ .db-switch:has(input:not([data-custom-validity]):required:user-invalid) label {
575
+ color: var(--db-critical-on-bg-basic-emphasis-80-default);
576
+ }
577
+ .db-switch:has(input[data-custom-validity=invalid]) .db-infotext[data-semantic=critical] {
578
+ display: flex;
579
+ }
580
+ .db-switch:has(input[data-custom-validity=invalid]) .db-infotext:not([data-semantic]) {
581
+ display: none;
582
+ }
583
+ .db-switch:has(input[data-custom-validity=invalid]) input {
584
+ --db-adaptive-bg-basic-transparent-semi: var(
585
+ --db-critical-bg-basic-transparent-semi-default
586
+ );
587
+ --db-adaptive-bg-basic-transparent-hovered: var(
588
+ --db-critical-bg-basic-transparent-hovered
589
+ );
590
+ --db-adaptive-bg-basic-transparent-pressed: var(
591
+ --db-critical-bg-basic-transparent-pressed
592
+ );
593
+ }
594
+ .db-switch:has(input[data-custom-validity=invalid]) input:not(:checked), .db-switch:has(input[data-custom-validity=invalid]) input:is([type=radio]) {
595
+ --db-check-element-border-color: var(
596
+ --db-critical-on-bg-basic-emphasis-70-default
597
+ );
598
+ }
599
+ .db-switch:has(input[data-custom-validity=invalid]) input:not([type=radio]):checked {
600
+ background-color: var(--db-successful-bg-inverted-contrast-high-default);
601
+ color: var(--db-successful-on-bg-inverted-default);
602
+ /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
603
+ }
604
+ .db-switch:has(input[data-custom-validity=invalid]) input:not([type=radio]):checked::before, .db-switch:has(input[data-custom-validity=invalid]) input:not([type=radio]):checked::after {
605
+ --db-icon-color: var(--db-successful-on-bg-inverted-default);
606
+ }
607
+ .db-switch:has(input[data-custom-validity=invalid]) input:not([type=radio]):checked:hover:not(:disabled, [aria-disabled=true]) {
608
+ cursor: pointer;
609
+ background-color: var(--db-successful-bg-inverted-contrast-high-hovered);
610
+ }
611
+ .db-switch:has(input[data-custom-validity=invalid]) input:not([type=radio]):checked:hover:not(:disabled, [aria-disabled=true]):is(textarea), .db-switch:has(input[data-custom-validity=invalid]) input:not([type=radio]):checked:hover:not(:disabled, [aria-disabled=true]):is(input) {
612
+ cursor: initial;
613
+ }
614
+ .db-switch:has(input[data-custom-validity=invalid]) input:not([type=radio]):checked:hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-switch:has(input[data-custom-validity=invalid]) input:not([type=radio]):checked:hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
615
+ cursor: pointer;
616
+ }
617
+ .db-switch:has(input[data-custom-validity=invalid]) input:not([type=radio]):checked:active:not(:disabled, [aria-disabled=true]) {
618
+ cursor: pointer;
619
+ background-color: var(--db-successful-bg-inverted-contrast-high-pressed);
620
+ }
621
+ .db-switch:has(input[data-custom-validity=invalid]) input:not([type=radio]):checked:active:not(:disabled, [aria-disabled=true]):is(textarea), .db-switch:has(input[data-custom-validity=invalid]) input:not([type=radio]):checked:active:not(:disabled, [aria-disabled=true]):is(input) {
622
+ cursor: initial;
623
+ }
624
+ .db-switch:has(input[data-custom-validity=invalid]) input:not([type=radio]):checked:active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-switch:has(input[data-custom-validity=invalid]) input:not([type=radio]):checked:active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
625
+ cursor: pointer;
626
+ }
627
+ .db-switch:has(input[data-custom-validity=invalid]):is(label),
628
+ .db-switch:has(input[data-custom-validity=invalid]) label {
629
+ color: var(--db-critical-on-bg-basic-emphasis-80-default);
630
+ }
631
+ .db-switch:has(input:disabled) {
632
+ opacity: 0.4;
633
+ }
634
+ .db-switch:is(label),
635
+ .db-switch label {
636
+ display: flex;
637
+ align-items: flex-start;
638
+ position: relative;
639
+ gap: var(--db-spacing-fixed-xs);
640
+ }
641
+ .db-switch:is(label):not(:has(input:disabled)),
642
+ .db-switch label:not(:has(input:disabled)) {
643
+ /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
644
+ }
645
+ .db-switch:is(label):not(:has(input:disabled)):hover:not(:disabled, [aria-disabled=true]),
646
+ .db-switch label:not(:has(input:disabled)):hover:not(:disabled, [aria-disabled=true]) {
647
+ cursor: pointer;
648
+ }
649
+ .db-switch:is(label):not(:has(input:disabled)):hover:not(:disabled, [aria-disabled=true]):is(textarea), .db-switch:is(label):not(:has(input:disabled)):hover:not(:disabled, [aria-disabled=true]):is(input),
650
+ .db-switch label:not(:has(input:disabled)):hover:not(:disabled, [aria-disabled=true]):is(textarea),
651
+ .db-switch label:not(:has(input:disabled)):hover:not(:disabled, [aria-disabled=true]):is(input) {
652
+ cursor: initial;
653
+ }
654
+ .db-switch:is(label):not(:has(input:disabled)):hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-switch:is(label):not(:has(input:disabled)):hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)),
655
+ .db-switch label:not(:has(input:disabled)):hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]),
656
+ .db-switch label:not(:has(input:disabled)):hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
657
+ cursor: pointer;
658
+ }
659
+ .db-switch:is(label):not(:has(input:disabled)):active:not(:disabled, [aria-disabled=true]),
660
+ .db-switch label:not(:has(input:disabled)):active:not(:disabled, [aria-disabled=true]) {
661
+ cursor: pointer;
662
+ }
663
+ .db-switch:is(label):not(:has(input:disabled)):active:not(:disabled, [aria-disabled=true]):is(textarea), .db-switch:is(label):not(:has(input:disabled)):active:not(:disabled, [aria-disabled=true]):is(input),
664
+ .db-switch label:not(:has(input:disabled)):active:not(:disabled, [aria-disabled=true]):is(textarea),
665
+ .db-switch label:not(:has(input:disabled)):active:not(:disabled, [aria-disabled=true]):is(input) {
666
+ cursor: initial;
667
+ }
668
+ .db-switch:is(label):not(:has(input:disabled)):active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-switch:is(label):not(:has(input:disabled)):active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)),
669
+ .db-switch label:not(:has(input:disabled)):active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]),
670
+ .db-switch label:not(:has(input:disabled)):active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
671
+ cursor: pointer;
672
+ }
673
+ .db-switch input {
674
+ background-color: var(--db-adaptive-bg-basic-transparent-full-default);
675
+ place-content: center center;
676
+ appearance: none;
677
+ aspect-ratio: 1;
678
+ /* stylelint-disable-next-line db-ux/use-border-height */
679
+ border: min(var(--db-border-height-2xs), 2px) solid var(--db-check-element-border-color, var(--db-adaptive-on-bg-basic-emphasis-100-default));
680
+ block-size: calc(var(--db-base-font-size) * var(--db-base-line-height));
681
+ inline-size: calc(var(--db-base-font-size) * var(--db-base-line-height));
682
+ padding: 0;
683
+ /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
684
+ }
685
+ .db-switch input:hover:not(:disabled, [aria-disabled=true]) {
686
+ cursor: pointer;
687
+ background-color: var(--db-adaptive-bg-basic-transparent-hovered);
688
+ }
689
+ .db-switch input:hover:not(:disabled, [aria-disabled=true]):is(textarea), .db-switch input:hover:not(:disabled, [aria-disabled=true]):is(input) {
690
+ cursor: initial;
691
+ }
692
+ .db-switch input:hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-switch input:hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
693
+ cursor: pointer;
694
+ }
695
+ .db-switch input:active:not(:disabled, [aria-disabled=true]) {
696
+ cursor: pointer;
697
+ background-color: var(--db-adaptive-bg-basic-transparent-pressed);
698
+ }
699
+ .db-switch input:active:not(:disabled, [aria-disabled=true]):is(textarea), .db-switch input:active:not(:disabled, [aria-disabled=true]):is(input) {
700
+ cursor: initial;
701
+ }
702
+ .db-switch input:active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-switch input:active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
703
+ cursor: pointer;
704
+ }
705
+ .db-switch[data-size=small] input {
706
+ margin-inline-end: var(--db-spacing-fixed-2xs);
707
+ }
708
+ .db-switch[data-hide-label=true] {
709
+ font-size: 0;
710
+ }
711
+ .db-switch[data-hide-label=true] input {
712
+ margin-inline-end: 0;
713
+ }
714
+ .db-switch:active:not(:disabled, [aria-disabled=true]) {
715
+ cursor: pointer;
716
+ }
717
+ .db-switch:active:not(:disabled, [aria-disabled=true]):is(textarea), .db-switch:active:not(:disabled, [aria-disabled=true]):is(input) {
718
+ cursor: initial;
719
+ }
720
+ .db-switch:active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-switch:active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
721
+ cursor: pointer;
722
+ }
723
+ .db-switch > input {
724
+ --db-icon-margin-start: 0;
725
+ --thumb-offset-x: 0.125rem;
726
+ appearance: none;
727
+ inline-size: calc(calc(var(--db-base-font-size) * var(--db-base-line-height)) * 2 + 0.125rem);
728
+ block-size: calc(var(--db-base-font-size) * var(--db-base-line-height));
729
+ box-sizing: content-box;
730
+ display: flex;
731
+ align-items: center;
732
+ /* stylelint-disable-next-line db-ux/use-spacings */
733
+ gap: 0.125rem;
734
+ background-color: var(--db-adaptive-bg-basic-transparent-full-default);
735
+ border-radius: var(--db-border-radius-full);
736
+ /* positioned at the end of the track: track length - 100% (thumb width) */
737
+ }
738
+ .db-switch > input:not([data-hide-icon-after=true])::after {
739
+ --db-icon-after: "cross";
740
+ content: var(--db-icon-after, attr(data-icon-after));
741
+ content: var(--db-icon-after, attr(data-icon-after))/"";
742
+ margin-inline-start: var(--db-icon-margin-start, var(--db-spacing-fixed-xs));
743
+ }
744
+ .db-switch > input::after {
745
+ visibility: hidden;
746
+ align-self: center;
747
+ aspect-ratio: 1;
748
+ }
749
+ .db-switch > input::before {
750
+ content: "O";
751
+ text-align: center;
752
+ align-content: center;
753
+ aspect-ratio: 1;
754
+ block-size: calc(calc(var(--db-base-font-size) * var(--db-base-line-height)) - 0.125rem * 2);
755
+ background-color: var(--db-adaptive-bg-inverted-contrast-max-default);
756
+ color: var(--db-adaptive-bg-inverted-contrast-max-default);
757
+ border-radius: var(--db-border-radius-full);
758
+ transform: translateX(var(--thumb-offset-x));
759
+ margin-inline-end: calc(calc(calc(var(--db-base-font-size) * var(--db-base-line-height))) - calc(calc(var(--db-base-font-size) * var(--db-base-line-height)) - 0.125rem * 2));
760
+ }
761
+ @media screen and (prefers-reduced-motion: no-preference) {
762
+ .db-switch > input::before {
763
+ transition: margin var(--db-transition-duration-fast) var(--db-transition-timing-emotional), inline-size var(--db-transition-duration-fast) var(--db-transition-timing-emotional), block-size var(--db-transition-duration-fast) var(--db-transition-timing-emotional), transform var(--db-transition-duration-fast) var(--db-transition-timing-emotional);
764
+ }
765
+ }
766
+ .db-switch > input:checked {
767
+ --thumb-offset-x: calc(100% + 0.125rem);
768
+ background-color: var(--db-adaptive-bg-inverted-contrast-max-default);
769
+ color: var(--db-adaptive-on-bg-inverted-default);
770
+ /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
771
+ border-color: var(--db-adaptive-on-bg-basic-emphasis-100-default);
772
+ /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
773
+ }
774
+ .db-switch > input:checked::before, .db-switch > input:checked::after {
775
+ --db-icon-color: var(--db-adaptive-on-bg-inverted-default);
776
+ }
777
+ .db-switch > input:checked:hover:not(:disabled, [aria-disabled=true]) {
778
+ cursor: pointer;
779
+ background-color: var(--db-adaptive-bg-inverted-contrast-max-hovered);
780
+ }
781
+ .db-switch > input:checked:hover:not(:disabled, [aria-disabled=true]):is(textarea), .db-switch > input:checked:hover:not(:disabled, [aria-disabled=true]):is(input) {
782
+ cursor: initial;
783
+ }
784
+ .db-switch > input:checked:hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-switch > input:checked:hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
785
+ cursor: pointer;
786
+ }
787
+ .db-switch > input:checked:active:not(:disabled, [aria-disabled=true]) {
788
+ cursor: pointer;
789
+ background-color: var(--db-adaptive-bg-inverted-contrast-max-pressed);
790
+ }
791
+ .db-switch > input:checked:active:not(:disabled, [aria-disabled=true]):is(textarea), .db-switch > input:checked:active:not(:disabled, [aria-disabled=true]):is(input) {
792
+ cursor: initial;
793
+ }
794
+ .db-switch > input:checked:active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-switch > input:checked:active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
795
+ cursor: pointer;
796
+ }
797
+ .db-switch > input:checked:hover:not(:disabled, [aria-disabled=true]) {
798
+ cursor: pointer;
799
+ border-color: var(--db-adaptive-on-bg-basic-emphasis-100-hovered);
800
+ }
801
+ .db-switch > input:checked:hover:not(:disabled, [aria-disabled=true]):is(textarea), .db-switch > input:checked:hover:not(:disabled, [aria-disabled=true]):is(input) {
802
+ cursor: initial;
803
+ }
804
+ .db-switch > input:checked:hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-switch > input:checked:hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
805
+ cursor: pointer;
806
+ }
807
+ .db-switch > input:checked:active:not(:disabled, [aria-disabled=true]) {
808
+ cursor: pointer;
809
+ border-color: var(--db-adaptive-on-bg-basic-emphasis-100-pressed);
810
+ }
811
+ .db-switch > input:checked:active:not(:disabled, [aria-disabled=true]):is(textarea), .db-switch > input:checked:active:not(:disabled, [aria-disabled=true]):is(input) {
812
+ cursor: initial;
813
+ }
814
+ .db-switch > input:checked:active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-switch > input:checked:active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
815
+ cursor: pointer;
816
+ }
817
+ .db-switch > input:checked::before {
818
+ block-size: calc(calc(var(--db-base-font-size) * var(--db-base-line-height)));
819
+ background-color: var(--db-adaptive-on-bg-inverted-default);
820
+ color: var(--db-adaptive-on-bg-inverted-default);
821
+ margin: 0;
822
+ }
823
+ .db-switch > input:focus-visible {
824
+ border-radius: var(--db-border-radius-full);
825
+ }
826
+ .db-switch > input[data-aid-icon]:not(:checked)::after {
827
+ --db-icon-after: attr(data-aid-icon);
828
+ }
829
+ .db-switch > input[data-aid-icon-after]:checked::after {
830
+ --db-icon-after: attr(data-aid-icon-after);
831
+ }
832
+ @media screen and (prefers-reduced-motion: no-preference) {
833
+ .db-switch > input {
834
+ transition: none;
835
+ }
836
+ }
837
+ .db-switch[data-hide-label=true] {
838
+ gap: 0;
839
+ }
840
+ .db-switch[data-size=small] {
841
+ gap: var(--db-spacing-fixed-2xs);
842
+ }
843
+ .db-switch[data-emphasis=strong] > input {
844
+ --db-check-element-border-color: var(--db-adaptive-bg-basic-transparent-full-default);
845
+ background-color: var(--db-adaptive-bg-inverted-contrast-low-default);
846
+ color: var(--db-adaptive-on-bg-inverted-default);
847
+ border-color: var(--db-adaptive-on-bg-basic-emphasis-70-default);
848
+ /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
849
+ }
850
+ .db-switch[data-emphasis=strong] > input:hover:not(:disabled, [aria-disabled=true]) {
851
+ cursor: pointer;
852
+ background-color: var(--db-adaptive-bg-inverted-contrast-low-hovered);
853
+ border-color: var(--db-adaptive-on-bg-basic-emphasis-70-hovered);
854
+ }
855
+ .db-switch[data-emphasis=strong] > input:hover:not(:disabled, [aria-disabled=true]):is(textarea), .db-switch[data-emphasis=strong] > input:hover:not(:disabled, [aria-disabled=true]):is(input) {
856
+ cursor: initial;
857
+ }
858
+ .db-switch[data-emphasis=strong] > input:hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-switch[data-emphasis=strong] > input:hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
859
+ cursor: pointer;
860
+ }
861
+ .db-switch[data-emphasis=strong] > input:active:not(:disabled, [aria-disabled=true]) {
862
+ cursor: pointer;
863
+ background-color: var(--db-adaptive-bg-inverted-contrast-low-pressed);
864
+ border-color: var(--db-adaptive-on-bg-basic-emphasis-70-pressed);
865
+ }
866
+ .db-switch[data-emphasis=strong] > input:active:not(:disabled, [aria-disabled=true]):is(textarea), .db-switch[data-emphasis=strong] > input:active:not(:disabled, [aria-disabled=true]):is(input) {
867
+ cursor: initial;
868
+ }
869
+ .db-switch[data-emphasis=strong] > input:active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-switch[data-emphasis=strong] > input:active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
870
+ cursor: pointer;
871
+ }
872
+ .db-switch[data-emphasis=strong] > input:active:not(:disabled, [aria-disabled=true])::before {
873
+ block-size: calc(calc(var(--db-base-font-size) * var(--db-base-line-height)) - 0.125rem * 2);
874
+ }
875
+ .db-switch[data-emphasis=strong] > input:not(:checked) {
876
+ --thumb-offset-x: 0;
877
+ }
878
+ .db-switch[data-emphasis=strong] > input:checked::before {
879
+ background-color: var(--db-adaptive-on-bg-inverted-default);
880
+ color: var(--db-adaptive-on-bg-inverted-default);
881
+ }
882
+ .db-switch[data-emphasis=strong] > input::before {
883
+ background-color: var(--db-adaptive-on-bg-inverted-default);
884
+ color: var(--db-adaptive-on-bg-inverted-default);
885
+ block-size: calc(calc(var(--db-base-font-size) * var(--db-base-line-height)));
886
+ margin: 0;
887
+ }
888
+ .db-switch[data-emphasis=strong] > input::after, .db-switch[data-visual-aid=true] > input::after {
889
+ visibility: visible;
890
+ block-size: calc(calc(var(--db-base-font-size) * var(--db-base-line-height)));
891
+ }
892
+ .db-switch[data-emphasis=strong] > input:checked:not([data-aid-icon]):not([data-hide-icon-after=true])::after, .db-switch[data-visual-aid=true] > input:checked:not([data-aid-icon]):not([data-hide-icon-after=true])::after {
893
+ --db-icon-after: "check";
894
+ content: var(--db-icon-after, attr(data-icon-after));
895
+ content: var(--db-icon-after, attr(data-icon-after))/"";
896
+ margin-inline-start: var(--db-icon-margin-start, var(--db-spacing-fixed-xs));
897
+ }
898
+ .db-switch[data-emphasis=strong] > input:checked::after, .db-switch[data-visual-aid=true] > input:checked::after {
899
+ transform: translateX(calc(-100% - 0.125rem));
900
+ block-size: calc(calc(var(--db-base-font-size) * var(--db-base-line-height)));
901
+ }