@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,310 @@
1
+ @use "@db-ux/core-foundations/build/styles/variables";
2
+ @use "@db-ux/core-foundations/build/styles/colors";
3
+ @use "@db-ux/core-foundations/build/styles/fonts";
4
+ @use "@db-ux/core-foundations/build/styles/screen-sizes";
5
+ @use "@db-ux/core-foundations/build/styles/helpers";
6
+ @use "@db-ux/core-foundations/build/styles/animation";
7
+ @use "@db-ux/core-foundations/build/styles/icons";
8
+ @use "../../styles/internal/icon-passing";
9
+ @use "../../styles/internal/component";
10
+
11
+ %sub-navi-handler-desktop {
12
+ // show sub-navigation on hover
13
+ @include screen-sizes.screen("md") {
14
+ &:is(:hover, :focus-visible) {
15
+ ~ .db-sub-navigation {
16
+ visibility: visible;
17
+ }
18
+ }
19
+ }
20
+ }
21
+
22
+ @mixin sub-navi-handler-mobile() {
23
+ // show/hide sub-navigation by click
24
+ &[aria-expanded="true"] {
25
+ ~ .db-sub-navigation {
26
+ @media screen and (prefers-reduced-motion: no-preference) {
27
+ transition: visibility 0ms linear 0ms;
28
+ animation: show-right-to-left
29
+ #{variables.$db-transition-straight-show};
30
+ }
31
+
32
+ visibility: visible;
33
+
34
+ .db-sub-navigation {
35
+ inset-block: 0;
36
+ }
37
+ }
38
+ }
39
+
40
+ &:not(&[aria-expanded="true"]) {
41
+ @media screen and (prefers-reduced-motion: no-preference) {
42
+ ~ .db-sub-navigation {
43
+ transition: visibility 0ms linear 410ms; // hide animation is 0.4s
44
+ animation: hide-right-to-left
45
+ #{variables.$db-transition-straight-hide};
46
+ }
47
+ }
48
+ }
49
+ }
50
+
51
+ %navigation-item {
52
+ @extend %default-interactive-component;
53
+ @extend %transparent-border;
54
+ @extend %db-overwrite-font-size-md;
55
+
56
+ background-color: colors.$db-adaptive-bg-basic-transparent-full-default;
57
+ cursor: pointer;
58
+ inline-size: 100%;
59
+ display: inline-flex;
60
+ border-radius: variables.$db-border-radius-sm;
61
+ padding: variables.$db-spacing-fixed-xs variables.$db-spacing-fixed-sm;
62
+ white-space: nowrap; // we don't want to break
63
+ text-align: center;
64
+ align-items: center; // Centering the content vertically and horizontally
65
+
66
+ @include helpers.hover {
67
+ background-color: colors.$db-adaptive-bg-basic-transparent-hovered;
68
+ }
69
+
70
+ @include helpers.active {
71
+ background-color: colors.$db-adaptive-bg-basic-transparent-pressed;
72
+ }
73
+
74
+ &:has(~ .db-sub-navigation:is(:hover, :focus)) {
75
+ background-color: colors.$db-adaptive-bg-basic-transparent-hovered;
76
+ }
77
+ }
78
+
79
+ .db-navigation-item {
80
+ --db-has-before: 0;
81
+
82
+ @extend %db-overwrite-font-size-md;
83
+
84
+ @include icon-passing.icon-passing();
85
+
86
+ display: inline-flex;
87
+ position: relative;
88
+ inline-size: auto;
89
+
90
+ @include screen-sizes.screen("md", "max") {
91
+ &:not([data-width="full"]) {
92
+ .db-navigation-item-expand-button {
93
+ &::after {
94
+ --db-icon-margin-start: auto;
95
+ }
96
+ }
97
+ }
98
+ }
99
+
100
+ a {
101
+ @extend %navigation-item;
102
+
103
+ text-decoration: none;
104
+
105
+ &:focus-visible {
106
+ // We need to increase the z-index on focus-visible for the outline and box-shadow to appear above the pulse
107
+ z-index: 1;
108
+ }
109
+ }
110
+
111
+ .db-navigation-item-expand-button {
112
+ @include screen-sizes.screen("md", "max") {
113
+ @include sub-navi-handler-mobile();
114
+ }
115
+
116
+ &:is(button),
117
+ > button {
118
+ @extend %sub-navi-handler-desktop;
119
+ @extend %navigation-item;
120
+
121
+ // default icon for navigation
122
+ @include icons.set-icon("chevron_right", "after");
123
+
124
+ font-weight: inherit;
125
+ }
126
+ }
127
+
128
+ &:has([aria-current="page"]),
129
+ &:has([data-active="true"]),
130
+ &[aria-current="page"],
131
+ &[data-active="true"] {
132
+ > :is(a, button) {
133
+ font-weight: 700;
134
+ }
135
+ }
136
+
137
+ &:not([data-width="full"]) {
138
+ .db-navigation-item-expand-button {
139
+ &::after {
140
+ --db-icon-margin-start: #{variables.$db-spacing-fixed-sm};
141
+ }
142
+ }
143
+ }
144
+
145
+ &[data-width="full"] {
146
+ inline-size: 100%;
147
+
148
+ .db-navigation-item-expand-button {
149
+ &::after {
150
+ --db-icon-margin-start: auto;
151
+ }
152
+ }
153
+ }
154
+
155
+ &[aria-disabled="true"] {
156
+ opacity: component.$default-disabled;
157
+ pointer-events: none;
158
+ }
159
+ }
160
+
161
+ @mixin sub-navigation-mobile() {
162
+ padding: variables.$db-spacing-fixed-md;
163
+ inline-size: 100%;
164
+ position: fixed;
165
+ overflow: hidden auto;
166
+ // additional #{$db-spacing-fixed-3xs} for border
167
+ inset-block: calc(
168
+ #{component.$min-mobile-header-height} +
169
+ #{variables.$db-spacing-fixed-3xs}
170
+ )
171
+ calc(
172
+ #{variables.$db-sizing-md} + #{variables.$db-spacing-fixed-xs} * 2 +
173
+ #{variables.$db-spacing-fixed-3xs}
174
+ );
175
+ }
176
+
177
+ .db-sub-navigation {
178
+ margin: 0;
179
+ display: flex;
180
+ flex-direction: column;
181
+ z-index: 70;
182
+ inset-inline-start: 0;
183
+ background-color: colors.$db-adaptive-bg-basic-level-1-default;
184
+ visibility: hidden;
185
+
186
+ @include screen-sizes.screen("md", "max") {
187
+ @include sub-navigation-mobile();
188
+ }
189
+
190
+ @include screen-sizes.screen("md") {
191
+ .db-mobile-navigation-back {
192
+ display: none;
193
+ }
194
+ }
195
+
196
+ @include screen-sizes.screen("md") {
197
+ border-radius: variables.$db-border-radius-sm;
198
+ box-shadow: variables.$db-elevation-md;
199
+ padding: variables.$db-spacing-fixed-sm;
200
+ position: absolute;
201
+ min-inline-size: 328px; // We should get this value from UX
202
+ inset-block-start: calc(100% + #{variables.$db-spacing-fixed-md});
203
+ transition: visibility 1ms linear; // workaround to enable focus with keyboard
204
+
205
+ &[data-outside-vx="true"] {
206
+ transform: translateX(-100%);
207
+ inset-inline-start: 100%;
208
+ }
209
+
210
+ &:is(:hover, :focus-within) {
211
+ visibility: visible;
212
+ }
213
+
214
+ &::before {
215
+ content: "";
216
+ position: absolute;
217
+ inset-inline-start: 0;
218
+ inline-size: 100%;
219
+ // #{$db-spacing-fixed--3xs} for shadows
220
+ block-size: calc(
221
+ #{variables.$db-spacing-fixed-3xs} +
222
+ #{variables.$db-spacing-fixed-md}
223
+ );
224
+ inset-block-start: calc(
225
+ -1 * #{variables.$db-spacing-fixed-md} -
226
+ #{variables.$db-spacing-fixed-3xs}
227
+ );
228
+ }
229
+
230
+ .db-sub-navigation {
231
+ // 1px for box shadow
232
+ inset-block-start: calc(
233
+ -50% + #{variables.$db-spacing-fixed-xs} + 1px
234
+ );
235
+ inset-inline-start: calc(100% + #{variables.$db-spacing-fixed-xs});
236
+
237
+ &[data-outside-vy="bottom"] {
238
+ inset-block-start: calc(
239
+ 100% + #{variables.$db-spacing-fixed-md}
240
+ );
241
+ transform: translateY(-100%);
242
+ }
243
+
244
+ &[data-outside-vx="right"] {
245
+ transform: translateX(-100%);
246
+ inset-inline-start: calc(
247
+ -1 * #{variables.$db-spacing-fixed-xs}
248
+ );
249
+
250
+ &[data-outside-vy="bottom"] {
251
+ transform: translate(-100%, -100%);
252
+ }
253
+
254
+ &::before {
255
+ inset-block: auto 0;
256
+ // inline-size: calc(var(--db-navigation-item-inline-size, 100%) - #{variables.$db-spacing-fixed-xs} - 2px);
257
+ transform: translateX(100%) scaleX(-1);
258
+ }
259
+ }
260
+
261
+ &::before {
262
+ content: "";
263
+ position: absolute;
264
+ inset-block-start: 0;
265
+ inset-inline-start: 0;
266
+ block-size: 100%;
267
+ inline-size: var(--db-navigation-item-inline-size, 100%);
268
+ background: transparent;
269
+ transform: translateX(-100%);
270
+ clip-path: var(
271
+ --db-navigation-item-clip-path,
272
+ polygon(10% 30px, 100% 0, 100% 100%)
273
+ );
274
+ }
275
+
276
+ &::after {
277
+ content: "";
278
+ position: absolute;
279
+ padding: variables.$db-spacing-fixed-xs;
280
+ // #{$db-spacing-fixed-3xs} for box shadow
281
+ inset-block-start: #{variables.$db-spacing-fixed-3xs};
282
+ inset-inline-end: calc(-1 * #{variables.$db-spacing-fixed-xs});
283
+ block-size: 100%;
284
+ inline-size: variables.$db-spacing-fixed-xs;
285
+ }
286
+ }
287
+ }
288
+
289
+ &:empty {
290
+ display: none;
291
+ }
292
+
293
+ .db-navigation-item {
294
+ inline-size: 100%;
295
+
296
+ &::after {
297
+ margin-inline-start: auto;
298
+ }
299
+ }
300
+ }
301
+
302
+ .db-mobile-navigation-back {
303
+ @include helpers.divider("bottom");
304
+
305
+ display: flex;
306
+ font-weight: normal;
307
+ background-color: colors.$db-adaptive-bg-basic-level-1-default;
308
+ padding-block-end: variables.$db-spacing-fixed-md;
309
+ margin-block-end: variables.$db-spacing-fixed-md;
310
+ }
@@ -0,0 +1,52 @@
1
+ %grid-layout-default {
2
+ // 1. only content (min. requirement)
3
+ grid-template-areas: "content";
4
+ grid-template-columns: 1fr;
5
+
6
+ &:has(.db-button) {
7
+ grid-template-columns: 1fr min-content;
8
+ grid-template-areas: "content close";
9
+ }
10
+
11
+ // 2. headline
12
+ &:has(header) {
13
+ grid-template-columns: 1fr;
14
+ grid-template-areas:
15
+ "head"
16
+ "content";
17
+
18
+ &:has(.db-button) {
19
+ grid-template-columns: 1fr min-content;
20
+ grid-template-areas:
21
+ "head close"
22
+ "content content";
23
+ }
24
+ }
25
+
26
+ // 3. icon or img
27
+ &[data-icon],
28
+ &[data-semantic]:not([data-semantic="adaptive"]),
29
+ &:has(img) {
30
+ grid-template-areas: "icon content";
31
+ grid-template-columns: min-content 1fr;
32
+
33
+ &:has(.db-button) {
34
+ grid-template-columns: min-content 1fr min-content;
35
+ grid-template-areas: "icon content close";
36
+ }
37
+
38
+ &:has(header) {
39
+ grid-template-columns: min-content 1fr;
40
+ grid-template-areas:
41
+ "icon head"
42
+ "icon content";
43
+
44
+ &:has(.db-button) {
45
+ grid-template-columns: min-content 1fr min-content;
46
+ grid-template-areas:
47
+ "icon head close"
48
+ "icon content content";
49
+ }
50
+ }
51
+ }
52
+ }
@@ -0,0 +1,66 @@
1
+ %grid-layout-variant-not-overlay {
2
+ span {
3
+ display: none;
4
+ }
5
+
6
+ // has link
7
+ &:has(a) {
8
+ &:not([data-link-variant="inline"]) {
9
+ // 1. only content (min. requirement)
10
+ grid-template-areas:
11
+ "content"
12
+ "link";
13
+ grid-template-columns: 1fr;
14
+
15
+ &:has(.db-button) {
16
+ grid-template-columns: 1fr min-content;
17
+ grid-template-areas:
18
+ "content close"
19
+ "link link";
20
+ }
21
+
22
+ // 2. headline
23
+ &:has(header) {
24
+ grid-template-columns: 1fr;
25
+ grid-template-areas:
26
+ "head"
27
+ "content"
28
+ "link";
29
+
30
+ &:has(.db-button) {
31
+ grid-template-columns: 1fr min-content;
32
+ grid-template-areas:
33
+ "head close"
34
+ "content content"
35
+ "link link";
36
+ }
37
+ }
38
+
39
+ // 3. icon or img
40
+ &[data-icon],
41
+ &[data-semantic]:not([data-semantic="adaptive"]),
42
+ &:has(img) {
43
+ grid-template-areas:
44
+ "icon content"
45
+ "icon link";
46
+ grid-template-columns: min-content 1fr;
47
+
48
+ &:has(header) {
49
+ grid-template-columns: min-content 1fr;
50
+ grid-template-areas:
51
+ "icon head"
52
+ "icon content"
53
+ "icon link";
54
+
55
+ &:has(.db-button) {
56
+ grid-template-columns: min-content 1fr min-content;
57
+ grid-template-areas:
58
+ "icon head close"
59
+ "icon content content"
60
+ "icon link link";
61
+ }
62
+ }
63
+ }
64
+ }
65
+ }
66
+ }
@@ -0,0 +1,55 @@
1
+ %grid-layout-variant-overlay {
2
+ // has timestamp
3
+ &:has(span) {
4
+ // 1. only content (min. requirement)
5
+ grid-template-areas: "content timestamp";
6
+ grid-template-columns: 1fr min-content;
7
+
8
+ &:has(.db-button) {
9
+ grid-template-columns: 1fr min-content min-content;
10
+ grid-template-areas: "content timestamp close";
11
+ }
12
+
13
+ // 2. headline
14
+ &:has(header) {
15
+ grid-template-columns: 1fr min-content;
16
+ grid-template-areas:
17
+ "head timestamp"
18
+ "content content";
19
+
20
+ &:has(.db-button) {
21
+ grid-template-columns: 1fr min-content min-content;
22
+ grid-template-areas:
23
+ "head timestamp close"
24
+ "content content content";
25
+ }
26
+ }
27
+
28
+ // 3. icon or img
29
+ &[data-icon],
30
+ &[data-semantic]:not([data-semantic="adaptive"]),
31
+ &:has(img) {
32
+ grid-template-areas: "icon content timestamp";
33
+ grid-template-columns: min-content 1fr min-content;
34
+
35
+ &:has(.db-button) {
36
+ grid-template-columns: min-content 1fr min-content min-content;
37
+ grid-template-areas: "icon content timestamp close";
38
+ }
39
+
40
+ &:has(header) {
41
+ grid-template-columns: min-content 1fr min-content;
42
+ grid-template-areas:
43
+ "icon head timestamp"
44
+ "icon content content";
45
+
46
+ &:has(.db-button) {
47
+ grid-template-columns: min-content 1fr min-content min-content;
48
+ grid-template-areas:
49
+ "icon head timestamp close"
50
+ "icon content content content";
51
+ }
52
+ }
53
+ }
54
+ }
55
+ }