@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,390 @@
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
+ /**
29
+ Generates 3 types of placeholders, e.g:
30
+ - %db-component-variables-md
31
+ - %db-font-size-md
32
+ - %db-overwrite-font-size-md
33
+ */
34
+ .db-radio {
35
+ /* Those variables are only for components to calculate heights and change icons */
36
+ --db-icon-font-weight: var(--db-base-body-icon-weight-md);
37
+ --db-icon-font-size: var(--db-base-body-icon-font-size-md);
38
+ --db-base-line-height: var(--db-type-body-line-height-md);
39
+ --db-base-font-size: var(--db-type-body-font-size-md);
40
+ line-height: var(--db-type-body-line-height-md);
41
+ font-size: var(--db-type-body-font-size-md);
42
+ }
43
+
44
+ .db-radio[data-size=small] {
45
+ /* Those variables are only for components to calculate heights and change icons */
46
+ --db-icon-font-weight: var(--db-base-body-icon-weight-sm);
47
+ --db-icon-font-size: var(--db-base-body-icon-font-size-sm);
48
+ --db-base-line-height: var(--db-type-body-line-height-sm);
49
+ --db-base-font-size: var(--db-type-body-font-size-sm);
50
+ line-height: var(--db-type-body-line-height-sm);
51
+ font-size: var(--db-type-body-font-size-sm);
52
+ }
53
+
54
+ .db-radio {
55
+ /* stylelint-disable-next-line at-rule-empty-line-before */
56
+ /* stylelint-disable-next-line at-rule-empty-line-before */
57
+ }
58
+ .db-radio:has(input:required):is(label)::after,
59
+ .db-radio:has(input:required) label::after {
60
+ content: "*";
61
+ content: "*"/"";
62
+ /* stylelint-disable-next-line db-ux/use-spacings */
63
+ padding-inline-start: 1px;
64
+ }
65
+ .db-radio:has(input:not([data-custom-validity]):required:valid) .db-infotext {
66
+ /* stylelint-disable-next-line at-rule-empty-line-before */
67
+ }
68
+ .db-radio:has(input:not([data-custom-validity]):required:valid) .db-infotext[data-semantic=successful] {
69
+ display: flex;
70
+ }
71
+ .db-radio:has(input:not([data-custom-validity]):required:valid) .db-infotext:not([data-semantic]) {
72
+ display: none;
73
+ }
74
+ .db-radio:has(input:not([data-custom-validity]):required:valid) input {
75
+ --db-adaptive-bg-basic-transparent-semi: var(
76
+ --db-successful-bg-basic-transparent-semi-default
77
+ );
78
+ --db-adaptive-bg-basic-transparent-hovered: var(
79
+ --db-successful-bg-basic-transparent-hovered
80
+ );
81
+ --db-adaptive-bg-basic-transparent-pressed: var(
82
+ --db-successful-bg-basic-transparent-pressed
83
+ );
84
+ }
85
+ .db-radio:has(input:not([data-custom-validity]):required:valid) input:not(:checked), .db-radio:has(input:not([data-custom-validity]):required:valid) input:is([type=radio]) {
86
+ --db-check-element-border-color: var(
87
+ --db-successful-on-bg-basic-emphasis-70-default
88
+ );
89
+ }
90
+ .db-radio:has(input:not([data-custom-validity]):required:valid) input:not([type=radio]):checked {
91
+ background-color: var(--db-successful-bg-inverted-contrast-high-default);
92
+ color: var(--db-successful-on-bg-inverted-default);
93
+ /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
94
+ }
95
+ .db-radio:has(input:not([data-custom-validity]):required:valid) input:not([type=radio]):checked::before, .db-radio:has(input:not([data-custom-validity]):required:valid) input:not([type=radio]):checked::after {
96
+ --db-icon-color: var(--db-successful-on-bg-inverted-default);
97
+ }
98
+ .db-radio:has(input:not([data-custom-validity]):required:valid) input:not([type=radio]):checked:hover:not(:disabled, [aria-disabled=true]) {
99
+ cursor: pointer;
100
+ background-color: var(--db-successful-bg-inverted-contrast-high-hovered);
101
+ }
102
+ .db-radio:has(input:not([data-custom-validity]):required:valid) input:not([type=radio]):checked:hover:not(:disabled, [aria-disabled=true]):is(textarea), .db-radio:has(input:not([data-custom-validity]):required:valid) input:not([type=radio]):checked:hover:not(:disabled, [aria-disabled=true]):is(input) {
103
+ cursor: initial;
104
+ }
105
+ .db-radio:has(input:not([data-custom-validity]):required:valid) input:not([type=radio]):checked:hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-radio:has(input:not([data-custom-validity]):required:valid) input:not([type=radio]):checked:hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
106
+ cursor: pointer;
107
+ }
108
+ .db-radio:has(input:not([data-custom-validity]):required:valid) input:not([type=radio]):checked:active:not(:disabled, [aria-disabled=true]) {
109
+ cursor: pointer;
110
+ background-color: var(--db-successful-bg-inverted-contrast-high-pressed);
111
+ }
112
+ .db-radio:has(input:not([data-custom-validity]):required:valid) input:not([type=radio]):checked:active:not(:disabled, [aria-disabled=true]):is(textarea), .db-radio:has(input:not([data-custom-validity]):required:valid) input:not([type=radio]):checked:active:not(:disabled, [aria-disabled=true]):is(input) {
113
+ cursor: initial;
114
+ }
115
+ .db-radio:has(input:not([data-custom-validity]):required:valid) input:not([type=radio]):checked:active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-radio:has(input:not([data-custom-validity]):required:valid) input:not([type=radio]):checked:active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
116
+ cursor: pointer;
117
+ }
118
+ .db-radio:has(input:not([data-custom-validity]):required:valid):is(label),
119
+ .db-radio:has(input:not([data-custom-validity]):required:valid) label {
120
+ color: var(--db-successful-on-bg-basic-emphasis-80-default);
121
+ }
122
+ .db-radio:has(input[data-custom-validity=valid]) .db-infotext {
123
+ /* stylelint-disable-next-line at-rule-empty-line-before */
124
+ }
125
+ .db-radio:has(input[data-custom-validity=valid]) .db-infotext[data-semantic=successful] {
126
+ display: flex;
127
+ }
128
+ .db-radio:has(input[data-custom-validity=valid]) .db-infotext:not([data-semantic]) {
129
+ display: none;
130
+ }
131
+ .db-radio:has(input[data-custom-validity=valid]) input {
132
+ --db-adaptive-bg-basic-transparent-semi: var(
133
+ --db-successful-bg-basic-transparent-semi-default
134
+ );
135
+ --db-adaptive-bg-basic-transparent-hovered: var(
136
+ --db-successful-bg-basic-transparent-hovered
137
+ );
138
+ --db-adaptive-bg-basic-transparent-pressed: var(
139
+ --db-successful-bg-basic-transparent-pressed
140
+ );
141
+ }
142
+ .db-radio:has(input[data-custom-validity=valid]) input:not(:checked), .db-radio:has(input[data-custom-validity=valid]) input:is([type=radio]) {
143
+ --db-check-element-border-color: var(
144
+ --db-successful-on-bg-basic-emphasis-70-default
145
+ );
146
+ }
147
+ .db-radio:has(input[data-custom-validity=valid]) input:not([type=radio]):checked {
148
+ background-color: var(--db-successful-bg-inverted-contrast-high-default);
149
+ color: var(--db-successful-on-bg-inverted-default);
150
+ /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
151
+ }
152
+ .db-radio:has(input[data-custom-validity=valid]) input:not([type=radio]):checked::before, .db-radio:has(input[data-custom-validity=valid]) input:not([type=radio]):checked::after {
153
+ --db-icon-color: var(--db-successful-on-bg-inverted-default);
154
+ }
155
+ .db-radio:has(input[data-custom-validity=valid]) input:not([type=radio]):checked:hover:not(:disabled, [aria-disabled=true]) {
156
+ cursor: pointer;
157
+ background-color: var(--db-successful-bg-inverted-contrast-high-hovered);
158
+ }
159
+ .db-radio:has(input[data-custom-validity=valid]) input:not([type=radio]):checked:hover:not(:disabled, [aria-disabled=true]):is(textarea), .db-radio:has(input[data-custom-validity=valid]) input:not([type=radio]):checked:hover:not(:disabled, [aria-disabled=true]):is(input) {
160
+ cursor: initial;
161
+ }
162
+ .db-radio:has(input[data-custom-validity=valid]) input:not([type=radio]):checked:hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-radio:has(input[data-custom-validity=valid]) input:not([type=radio]):checked:hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
163
+ cursor: pointer;
164
+ }
165
+ .db-radio:has(input[data-custom-validity=valid]) input:not([type=radio]):checked:active:not(:disabled, [aria-disabled=true]) {
166
+ cursor: pointer;
167
+ background-color: var(--db-successful-bg-inverted-contrast-high-pressed);
168
+ }
169
+ .db-radio:has(input[data-custom-validity=valid]) input:not([type=radio]):checked:active:not(:disabled, [aria-disabled=true]):is(textarea), .db-radio:has(input[data-custom-validity=valid]) input:not([type=radio]):checked:active:not(:disabled, [aria-disabled=true]):is(input) {
170
+ cursor: initial;
171
+ }
172
+ .db-radio:has(input[data-custom-validity=valid]) input:not([type=radio]):checked:active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-radio:has(input[data-custom-validity=valid]) input:not([type=radio]):checked:active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
173
+ cursor: pointer;
174
+ }
175
+ .db-radio:has(input[data-custom-validity=valid]):is(label),
176
+ .db-radio:has(input[data-custom-validity=valid]) label {
177
+ color: var(--db-successful-on-bg-basic-emphasis-80-default);
178
+ }
179
+ .db-radio:has(input:not([data-custom-validity]):required:invalid) .db-infotext[data-semantic=critical] {
180
+ display: flex;
181
+ }
182
+ .db-radio:has(input:not([data-custom-validity]):required:invalid) .db-infotext:not([data-semantic]) {
183
+ display: none;
184
+ }
185
+ .db-radio:has(input:not([data-custom-validity]):required:invalid) input {
186
+ --db-adaptive-bg-basic-transparent-semi: var(
187
+ --db-critical-bg-basic-transparent-semi-default
188
+ );
189
+ --db-adaptive-bg-basic-transparent-hovered: var(
190
+ --db-critical-bg-basic-transparent-hovered
191
+ );
192
+ --db-adaptive-bg-basic-transparent-pressed: var(
193
+ --db-critical-bg-basic-transparent-pressed
194
+ );
195
+ }
196
+ .db-radio:has(input:not([data-custom-validity]):required:invalid) input:not(:checked), .db-radio:has(input:not([data-custom-validity]):required:invalid) input:is([type=radio]) {
197
+ --db-check-element-border-color: var(
198
+ --db-critical-on-bg-basic-emphasis-70-default
199
+ );
200
+ }
201
+ .db-radio:has(input:not([data-custom-validity]):required:invalid) input:not([type=radio]):checked {
202
+ background-color: var(--db-successful-bg-inverted-contrast-high-default);
203
+ color: var(--db-successful-on-bg-inverted-default);
204
+ /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
205
+ }
206
+ .db-radio:has(input:not([data-custom-validity]):required:invalid) input:not([type=radio]):checked::before, .db-radio:has(input:not([data-custom-validity]):required:invalid) input:not([type=radio]):checked::after {
207
+ --db-icon-color: var(--db-successful-on-bg-inverted-default);
208
+ }
209
+ .db-radio:has(input:not([data-custom-validity]):required:invalid) input:not([type=radio]):checked:hover:not(:disabled, [aria-disabled=true]) {
210
+ cursor: pointer;
211
+ background-color: var(--db-successful-bg-inverted-contrast-high-hovered);
212
+ }
213
+ .db-radio:has(input:not([data-custom-validity]):required:invalid) input:not([type=radio]):checked:hover:not(:disabled, [aria-disabled=true]):is(textarea), .db-radio:has(input:not([data-custom-validity]):required:invalid) input:not([type=radio]):checked:hover:not(:disabled, [aria-disabled=true]):is(input) {
214
+ cursor: initial;
215
+ }
216
+ .db-radio:has(input:not([data-custom-validity]):required:invalid) input:not([type=radio]):checked:hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-radio:has(input:not([data-custom-validity]):required:invalid) input:not([type=radio]):checked:hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
217
+ cursor: pointer;
218
+ }
219
+ .db-radio:has(input:not([data-custom-validity]):required:invalid) input:not([type=radio]):checked:active:not(:disabled, [aria-disabled=true]) {
220
+ cursor: pointer;
221
+ background-color: var(--db-successful-bg-inverted-contrast-high-pressed);
222
+ }
223
+ .db-radio:has(input:not([data-custom-validity]):required:invalid) input:not([type=radio]):checked:active:not(:disabled, [aria-disabled=true]):is(textarea), .db-radio:has(input:not([data-custom-validity]):required:invalid) input:not([type=radio]):checked:active:not(:disabled, [aria-disabled=true]):is(input) {
224
+ cursor: initial;
225
+ }
226
+ .db-radio:has(input:not([data-custom-validity]):required:invalid) input:not([type=radio]):checked:active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-radio:has(input:not([data-custom-validity]):required:invalid) input:not([type=radio]):checked:active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
227
+ cursor: pointer;
228
+ }
229
+ .db-radio:has(input:not([data-custom-validity]):required:invalid):is(label),
230
+ .db-radio:has(input:not([data-custom-validity]):required:invalid) label {
231
+ color: var(--db-critical-on-bg-basic-emphasis-80-default);
232
+ }
233
+ .db-radio:has(input[data-custom-validity=invalid]) .db-infotext[data-semantic=critical] {
234
+ display: flex;
235
+ }
236
+ .db-radio:has(input[data-custom-validity=invalid]) .db-infotext:not([data-semantic]) {
237
+ display: none;
238
+ }
239
+ .db-radio:has(input[data-custom-validity=invalid]) input {
240
+ --db-adaptive-bg-basic-transparent-semi: var(
241
+ --db-critical-bg-basic-transparent-semi-default
242
+ );
243
+ --db-adaptive-bg-basic-transparent-hovered: var(
244
+ --db-critical-bg-basic-transparent-hovered
245
+ );
246
+ --db-adaptive-bg-basic-transparent-pressed: var(
247
+ --db-critical-bg-basic-transparent-pressed
248
+ );
249
+ }
250
+ .db-radio:has(input[data-custom-validity=invalid]) input:not(:checked), .db-radio:has(input[data-custom-validity=invalid]) input:is([type=radio]) {
251
+ --db-check-element-border-color: var(
252
+ --db-critical-on-bg-basic-emphasis-70-default
253
+ );
254
+ }
255
+ .db-radio:has(input[data-custom-validity=invalid]) input:not([type=radio]):checked {
256
+ background-color: var(--db-successful-bg-inverted-contrast-high-default);
257
+ color: var(--db-successful-on-bg-inverted-default);
258
+ /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
259
+ }
260
+ .db-radio:has(input[data-custom-validity=invalid]) input:not([type=radio]):checked::before, .db-radio:has(input[data-custom-validity=invalid]) input:not([type=radio]):checked::after {
261
+ --db-icon-color: var(--db-successful-on-bg-inverted-default);
262
+ }
263
+ .db-radio:has(input[data-custom-validity=invalid]) input:not([type=radio]):checked:hover:not(:disabled, [aria-disabled=true]) {
264
+ cursor: pointer;
265
+ background-color: var(--db-successful-bg-inverted-contrast-high-hovered);
266
+ }
267
+ .db-radio:has(input[data-custom-validity=invalid]) input:not([type=radio]):checked:hover:not(:disabled, [aria-disabled=true]):is(textarea), .db-radio:has(input[data-custom-validity=invalid]) input:not([type=radio]):checked:hover:not(:disabled, [aria-disabled=true]):is(input) {
268
+ cursor: initial;
269
+ }
270
+ .db-radio:has(input[data-custom-validity=invalid]) input:not([type=radio]):checked:hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-radio:has(input[data-custom-validity=invalid]) input:not([type=radio]):checked:hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
271
+ cursor: pointer;
272
+ }
273
+ .db-radio:has(input[data-custom-validity=invalid]) input:not([type=radio]):checked:active:not(:disabled, [aria-disabled=true]) {
274
+ cursor: pointer;
275
+ background-color: var(--db-successful-bg-inverted-contrast-high-pressed);
276
+ }
277
+ .db-radio:has(input[data-custom-validity=invalid]) input:not([type=radio]):checked:active:not(:disabled, [aria-disabled=true]):is(textarea), .db-radio:has(input[data-custom-validity=invalid]) input:not([type=radio]):checked:active:not(:disabled, [aria-disabled=true]):is(input) {
278
+ cursor: initial;
279
+ }
280
+ .db-radio:has(input[data-custom-validity=invalid]) input:not([type=radio]):checked:active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-radio:has(input[data-custom-validity=invalid]) input:not([type=radio]):checked:active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
281
+ cursor: pointer;
282
+ }
283
+ .db-radio:has(input[data-custom-validity=invalid]):is(label),
284
+ .db-radio:has(input[data-custom-validity=invalid]) label {
285
+ color: var(--db-critical-on-bg-basic-emphasis-80-default);
286
+ }
287
+ .db-radio:has(input:disabled) {
288
+ opacity: 0.4;
289
+ }
290
+ .db-radio:is(label),
291
+ .db-radio label {
292
+ display: flex;
293
+ align-items: flex-start;
294
+ position: relative;
295
+ gap: var(--db-spacing-fixed-xs);
296
+ }
297
+ .db-radio:is(label):not(:has(input:disabled)),
298
+ .db-radio label:not(:has(input:disabled)) {
299
+ /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
300
+ }
301
+ .db-radio:is(label):not(:has(input:disabled)):hover:not(:disabled, [aria-disabled=true]),
302
+ .db-radio label:not(:has(input:disabled)):hover:not(:disabled, [aria-disabled=true]) {
303
+ cursor: pointer;
304
+ }
305
+ .db-radio:is(label):not(:has(input:disabled)):hover:not(:disabled, [aria-disabled=true]):is(textarea), .db-radio:is(label):not(:has(input:disabled)):hover:not(:disabled, [aria-disabled=true]):is(input),
306
+ .db-radio label:not(:has(input:disabled)):hover:not(:disabled, [aria-disabled=true]):is(textarea),
307
+ .db-radio label:not(:has(input:disabled)):hover:not(:disabled, [aria-disabled=true]):is(input) {
308
+ cursor: initial;
309
+ }
310
+ .db-radio:is(label):not(:has(input:disabled)):hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-radio:is(label):not(:has(input:disabled)):hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)),
311
+ .db-radio label:not(:has(input:disabled)):hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]),
312
+ .db-radio label:not(:has(input:disabled)):hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
313
+ cursor: pointer;
314
+ }
315
+ .db-radio:is(label):not(:has(input:disabled)):active:not(:disabled, [aria-disabled=true]),
316
+ .db-radio label:not(:has(input:disabled)):active:not(:disabled, [aria-disabled=true]) {
317
+ cursor: pointer;
318
+ }
319
+ .db-radio:is(label):not(:has(input:disabled)):active:not(:disabled, [aria-disabled=true]):is(textarea), .db-radio:is(label):not(:has(input:disabled)):active:not(:disabled, [aria-disabled=true]):is(input),
320
+ .db-radio label:not(:has(input:disabled)):active:not(:disabled, [aria-disabled=true]):is(textarea),
321
+ .db-radio label:not(:has(input:disabled)):active:not(:disabled, [aria-disabled=true]):is(input) {
322
+ cursor: initial;
323
+ }
324
+ .db-radio:is(label):not(:has(input:disabled)):active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-radio:is(label):not(:has(input:disabled)):active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)),
325
+ .db-radio label:not(:has(input:disabled)):active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]),
326
+ .db-radio label:not(:has(input:disabled)):active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
327
+ cursor: pointer;
328
+ }
329
+ .db-radio input {
330
+ background-color: var(--db-adaptive-bg-basic-transparent-full-default);
331
+ place-content: center center;
332
+ appearance: none;
333
+ aspect-ratio: 1;
334
+ /* stylelint-disable-next-line db-ux/use-border-height */
335
+ border: min(var(--db-border-height-2xs), 2px) solid var(--db-check-element-border-color, var(--db-adaptive-on-bg-basic-emphasis-100-default));
336
+ block-size: calc(var(--db-base-font-size) * var(--db-base-line-height));
337
+ inline-size: calc(var(--db-base-font-size) * var(--db-base-line-height));
338
+ padding: 0;
339
+ /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
340
+ }
341
+ .db-radio input:hover:not(:disabled, [aria-disabled=true]) {
342
+ cursor: pointer;
343
+ background-color: var(--db-adaptive-bg-basic-transparent-hovered);
344
+ }
345
+ .db-radio input:hover:not(:disabled, [aria-disabled=true]):is(textarea), .db-radio input:hover:not(:disabled, [aria-disabled=true]):is(input) {
346
+ cursor: initial;
347
+ }
348
+ .db-radio input:hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-radio input:hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
349
+ cursor: pointer;
350
+ }
351
+ .db-radio input:active:not(:disabled, [aria-disabled=true]) {
352
+ cursor: pointer;
353
+ background-color: var(--db-adaptive-bg-basic-transparent-pressed);
354
+ }
355
+ .db-radio input:active:not(:disabled, [aria-disabled=true]):is(textarea), .db-radio input:active:not(:disabled, [aria-disabled=true]):is(input) {
356
+ cursor: initial;
357
+ }
358
+ .db-radio input:active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-radio input:active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
359
+ cursor: pointer;
360
+ }
361
+ .db-radio[data-size=small] input {
362
+ margin-inline-end: var(--db-spacing-fixed-2xs);
363
+ }
364
+ .db-radio[data-hide-label=true] {
365
+ font-size: 0;
366
+ }
367
+ .db-radio[data-hide-label=true] input {
368
+ margin-inline-end: 0;
369
+ }
370
+ .db-radio input {
371
+ border-color: currentcolor;
372
+ border-radius: var(--db-border-radius-full);
373
+ }
374
+ @media screen and (prefers-reduced-motion: no-preference) {
375
+ .db-radio input {
376
+ transition: border-width var(--db-transition-duration-fast) var(--db-transition-timing-functional);
377
+ }
378
+ }
379
+ .db-radio input:checked:not(:disabled):is(:hover, :focus) {
380
+ background-color: var(--db-adaptive-bg-basic-transparent-full-default);
381
+ }
382
+ .db-radio input:checked:not([data-size=small]) {
383
+ border-width: calc((calc(var(--db-base-font-size) * var(--db-base-line-height)) - var(--db-sizing-2xs)) / 2);
384
+ }
385
+ .db-radio input:checked[data-size=small] {
386
+ border-width: calc((calc(var(--db-base-font-size) * var(--db-base-line-height)) - var(--db-sizing-3xs)) / 2);
387
+ }
388
+ .db-radio input:focus-visible {
389
+ border-radius: var(--db-border-radius-full);
390
+ }
@@ -0,0 +1,49 @@
1
+ @use "@db-ux/core-foundations/build/styles/variables";
2
+ @use "@db-ux/core-foundations/build/styles/colors";
3
+ @use "../../styles/internal/form-components";
4
+
5
+ .db-radio {
6
+ @include form-components.set-default-check-element(radio);
7
+
8
+ input {
9
+ border-color: currentcolor;
10
+ border-radius: variables.$db-border-radius-full;
11
+
12
+ @media screen and (prefers-reduced-motion: no-preference) {
13
+ transition: border-width variables.$db-transition-duration-fast
14
+ variables.$db-transition-timing-functional;
15
+ }
16
+
17
+ &:checked {
18
+ // The radio element still has the default background for the dot on :hover when in checked state
19
+ &:not(:disabled):is(:hover, :focus) {
20
+ background-color: colors.$db-adaptive-bg-basic-transparent-full-default;
21
+ }
22
+
23
+ &:not([data-size="small"]) {
24
+ border-width: calc(
25
+ (
26
+ #{form-components.$font-size-height} -
27
+ #{variables.$db-sizing-2xs}
28
+ ) /
29
+ 2
30
+ );
31
+ }
32
+
33
+ &[data-size="small"] {
34
+ border-width: calc(
35
+ (
36
+ #{form-components.$font-size-height} -
37
+ #{variables.$db-sizing-3xs}
38
+ ) /
39
+ 2
40
+ );
41
+ }
42
+ }
43
+
44
+ &:focus-visible {
45
+ // Overwrite default border-radius
46
+ border-radius: variables.$db-border-radius-full;
47
+ }
48
+ }
49
+ }
@@ -0,0 +1,38 @@
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-section {
10
+ /* stylelint-disable-next-line at-rule-empty-line-before */
11
+ }
12
+ .db-section:not([data-width]), .db-section[data-width=full] {
13
+ padding-inline: var(--db-spacing-fixed-md);
14
+ }
15
+ .db-section[data-width=small] {
16
+ padding-inline: max(var(--db-spacing-fixed-md) + (100vw - 45em) / 2, var(--db-spacing-fixed-md));
17
+ }
18
+ .db-section[data-width=medium] {
19
+ padding-inline: max(var(--db-spacing-fixed-md) + (100vw - 64em) / 2, var(--db-spacing-fixed-md));
20
+ }
21
+ .db-section[data-width=large] {
22
+ padding-inline: max(var(--db-spacing-fixed-md) + (100vw - 90em) / 2, var(--db-spacing-fixed-md));
23
+ }
24
+ .db-section:not([data-spacing]) {
25
+ padding-block: var(--db-spacing-responsive-md);
26
+ }
27
+ .db-section[data-spacing=large] {
28
+ padding-block: var(--db-spacing-responsive-lg);
29
+ }
30
+ .db-section[data-spacing=medium] {
31
+ padding-block: var(--db-spacing-responsive-md);
32
+ }
33
+ .db-section[data-spacing=small] {
34
+ padding-block: var(--db-spacing-responsive-sm);
35
+ }
36
+ .db-section[data-spacing=none] {
37
+ padding-block: 0;
38
+ }
@@ -0,0 +1,51 @@
1
+ @use "@db-ux/core-foundations/build/styles/variables";
2
+ @use "@db-ux/core-foundations/build/styles/screen-sizes";
3
+ @use "../../styles/internal/component";
4
+
5
+ $small-section-padding-inline: max(
6
+ calc(
7
+ #{variables.$db-spacing-fixed-md} +
8
+ (100vw - #{screen-sizes.$db-breakpoint-sm}) / 2
9
+ ),
10
+ #{variables.$db-spacing-fixed-md}
11
+ );
12
+
13
+ $medium-section-padding-inline: max(
14
+ calc(
15
+ #{variables.$db-spacing-fixed-md} +
16
+ (100vw - #{screen-sizes.$db-breakpoint-md}) / 2
17
+ ),
18
+ #{variables.$db-spacing-fixed-md}
19
+ );
20
+
21
+ $large-section-padding-inline: max(
22
+ calc(
23
+ #{variables.$db-spacing-fixed-md} +
24
+ (100vw - #{screen-sizes.$db-breakpoint-lg}) / 2
25
+ ),
26
+ #{variables.$db-spacing-fixed-md}
27
+ );
28
+
29
+ .db-section {
30
+ &:not([data-width]),
31
+ &[data-width="full"] {
32
+ padding-inline: variables.$db-spacing-fixed-md;
33
+ }
34
+
35
+ &[data-width="small"] {
36
+ padding-inline: $small-section-padding-inline;
37
+ }
38
+
39
+ &[data-width="medium"] {
40
+ padding-inline: $medium-section-padding-inline;
41
+ }
42
+
43
+ &[data-width="large"] {
44
+ padding-inline: $large-section-padding-inline;
45
+ }
46
+
47
+ @include component.get-data-spacing(
48
+ "padding-block",
49
+ component.$responsive-spacings
50
+ );
51
+ }