@db-ux/core-components 4.0.1 → 4.0.3

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 (38) hide show
  1. package/CHANGELOG.md +16 -1
  2. package/agent/Best-Practise_Common-AI-Mistakes.md +15 -0
  3. package/agent/_instructions.md +2 -8
  4. package/build/components/accordion-item/accordion-item.css +2 -0
  5. package/build/components/badge/badge.css +2 -0
  6. package/build/components/brand/brand.css +2 -0
  7. package/build/components/button/button.css +2 -0
  8. package/build/components/card/card.css +18 -13
  9. package/build/components/card/card.scss +8 -2
  10. package/build/components/checkbox/checkbox.css +2 -0
  11. package/build/components/custom-select/custom-select.css +14 -0
  12. package/build/components/custom-select-dropdown/custom-select-dropdown.css +2 -0
  13. package/build/components/custom-select-form-field/custom-select-form-field.css +2 -0
  14. package/build/components/custom-select-list/custom-select-list.css +2 -0
  15. package/build/components/custom-select-list-item/custom-select-list-item.css +2 -0
  16. package/build/components/header/header.css +2 -0
  17. package/build/components/infotext/infotext.css +2 -0
  18. package/build/components/input/input.css +14 -0
  19. package/build/components/link/link.css +2 -0
  20. package/build/components/navigation/navigation.css +2 -0
  21. package/build/components/navigation-item/navigation-item.css +2 -0
  22. package/build/components/notification/notification.css +2 -0
  23. package/build/components/radio/radio.css +2 -0
  24. package/build/components/select/select.css +14 -0
  25. package/build/components/switch/switch.css +2 -0
  26. package/build/components/tab-item/tab-item.css +2 -0
  27. package/build/components/tab-list/tab-list.css +2 -0
  28. package/build/components/tabs/tabs.css +2 -0
  29. package/build/components/tag/tag.css +2 -0
  30. package/build/components/textarea/textarea.css +29 -4
  31. package/build/components/tooltip/tooltip.css +2 -0
  32. package/build/styles/absolute.css +7 -7
  33. package/build/styles/index.css +7 -7
  34. package/build/styles/internal/_form-components.scss +22 -10
  35. package/build/styles/relative.css +7 -7
  36. package/build/styles/rollup.css +7 -7
  37. package/build/styles/webpack.css +7 -7
  38. package/package.json +3 -3
package/CHANGELOG.md CHANGED
@@ -1,10 +1,25 @@
1
1
  # @db-ux/core-components
2
2
 
3
- ## 4.0.1
3
+ ## 4.0.3
4
4
 
5
5
  _version bump_
6
6
 
7
7
 
8
+ ## 4.0.2
9
+
10
+ ### Patch Changes
11
+
12
+ - chore: update instructions files for better copilot outputs - [see commit 797a114](https://github.com/db-ux-design-system/core-web/commit/797a114d7abc680667276f8ffc2f7f4482d89d3e):
13
+ - fix: add some missing variables
14
+
15
+ - fix(card): Remove the obsolete but harmful declaration regarding wrapping button and link styles. - [see commit 797a114](https://github.com/db-ux-design-system/core-web/commit/797a114d7abc680667276f8ffc2f7f4482d89d3e)
16
+
17
+ - Set border of select, textarea, custom select and input to corresponding color when in/valid state is set. - [see commit 797a114](https://github.com/db-ux-design-system/core-web/commit/797a114d7abc680667276f8ffc2f7f4482d89d3e)
18
+
19
+ ## 4.0.1
20
+
21
+ _version bump_
22
+
8
23
  ## 4.0.0
9
24
 
10
25
  ### Major Changes
@@ -0,0 +1,15 @@
1
+ # Best Practise / Common AI mistakes
2
+
3
+ ## `DBButton` or `db-button`
4
+
5
+ - available variants are `outlined`, `brand`, `filled`, `ghost`
6
+ - always use variant `outlined` as default
7
+ - use variant `brand` as CTA or primary action
8
+ - if `noText`/`no-text` property is used add a `DBTooltip` or `db-tooltip` inside the Button
9
+ - always add a `type` as property as best practise
10
+ - there is no `size=large` button
11
+
12
+ ## `DBStack` or `db-stack`
13
+
14
+ - there is no property `gap="fix-md"`, available values are `small`, `medium`, etc.
15
+ - there is no property `direction="horizontal"`, available values are `row`, `column`, etc.
@@ -1,9 +1,3 @@
1
- ## Common AI mistakes
1
+ ## Best Practise / Common AI mistakes
2
2
 
3
- ### `DBButton` or `db-button`
4
-
5
- - available variants are `outline`, `brand`, `filled`, `ghost`
6
- - always use variant `outline` as default
7
- - use variant `brand` as CTA or primary action
8
- - if `noText`/`no-text` property is used add a `DBTooltip` or `db-tooltip` inside the Button
9
- - always add a `type` as property as best practise
3
+ - always read this file if you use Components: `**agent-path**/agent/Best-Practise_Common-AI-Mistakes.md`
@@ -251,6 +251,8 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
251
251
 
252
252
  @layer variables {}
253
253
 
254
+ /* Use for body tags like <p> */
255
+ /* Use for headline tags like <h1> */
254
256
  /**
255
257
  * @mixin screen-min-max
256
258
  * @param $data an object like (min:"sm", max:"lg") or (min: "sm")
@@ -127,6 +127,8 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
127
127
 
128
128
  @layer variables {}
129
129
 
130
+ /* Use for body tags like <p> */
131
+ /* Use for headline tags like <h1> */
130
132
  .db-badge {
131
133
  font-weight: 700;
132
134
  white-space: nowrap;
@@ -113,6 +113,8 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
113
113
 
114
114
  @layer variables {}
115
115
 
116
+ /* Use for body tags like <p> */
117
+ /* Use for headline tags like <h1> */
116
118
  .db-brand {
117
119
  gap: var(--db-spacing-fixed-sm);
118
120
  align-items: center;
@@ -123,6 +123,8 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
123
123
 
124
124
  @layer variables {}
125
125
 
126
+ /* Use for body tags like <p> */
127
+ /* Use for headline tags like <h1> */
126
128
  /**
127
129
  * @mixin screen-min-max
128
130
  * @param $data an object like (min:"sm", max:"lg") or (min: "sm")
@@ -56,36 +56,41 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
56
56
  border-radius: var(--default-card-border-radius, var(--db-border-radius-sm));
57
57
  }
58
58
 
59
- :is(a, button) {
59
+ :is(a[href], button) {
60
60
  /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
61
61
  }
62
- :is(a, button):has(.db-card) {
63
- all: unset;
62
+ :is(a[href], button):has(.db-card) {
63
+ text-decoration: unset;
64
+ margin: unset;
65
+ border: unset;
66
+ background-color: transparent;
67
+ padding: unset;
68
+ font: inherit;
64
69
  }
65
- :is(a, button):hover:not(:disabled, [aria-disabled=true]) {
70
+ :is(a[href], button):hover:not(:disabled, [aria-disabled=true]) {
66
71
  cursor: var(--db-overwrite-cursor, pointer);
67
72
  }
68
- :is(a, button):hover:not(:disabled, [aria-disabled=true]) > .db-card,
69
- :is(a, button):hover:not(:disabled, [aria-disabled=true]) > db-card > .db-card {
73
+ :is(a[href], button):hover:not(:disabled, [aria-disabled=true]) > .db-card,
74
+ :is(a[href], button):hover:not(:disabled, [aria-disabled=true]) > db-card > .db-card {
70
75
  background-color: var(--db-card-background-color-hovered);
71
76
  }
72
- :is(a, button):hover:not(:disabled, [aria-disabled=true]):is(textarea), :is(a, button):hover:not(:disabled, [aria-disabled=true]):is(input) {
77
+ :is(a[href], button):hover:not(:disabled, [aria-disabled=true]):is(textarea), :is(a[href], button):hover:not(:disabled, [aria-disabled=true]):is(input) {
73
78
  cursor: initial;
74
79
  }
75
- :is(a, button):hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), :is(a, button):hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
80
+ :is(a[href], button):hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), :is(a[href], button):hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
76
81
  cursor: pointer;
77
82
  }
78
- :is(a, button):active:not(:disabled, [aria-disabled=true]) {
83
+ :is(a[href], button):active:not(:disabled, [aria-disabled=true]) {
79
84
  cursor: var(--db-overwrite-cursor, pointer);
80
85
  }
81
- :is(a, button):active:not(:disabled, [aria-disabled=true]) > .db-card,
82
- :is(a, button):active:not(:disabled, [aria-disabled=true]) > db-card > .db-card {
86
+ :is(a[href], button):active:not(:disabled, [aria-disabled=true]) > .db-card,
87
+ :is(a[href], button):active:not(:disabled, [aria-disabled=true]) > db-card > .db-card {
83
88
  background-color: var(--db-card-background-color-pressed);
84
89
  }
85
- :is(a, button):active:not(:disabled, [aria-disabled=true]):is(textarea), :is(a, button):active:not(:disabled, [aria-disabled=true]):is(input) {
90
+ :is(a[href], button):active:not(:disabled, [aria-disabled=true]):is(textarea), :is(a[href], button):active:not(:disabled, [aria-disabled=true]):is(input) {
86
91
  cursor: initial;
87
92
  }
88
- :is(a, button):active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), :is(a, button):active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
93
+ :is(a[href], button):active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), :is(a[href], button):active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
89
94
  cursor: pointer;
90
95
  }
91
96
 
@@ -3,9 +3,15 @@
3
3
  @use "@db-ux/core-foundations/build/styles/helpers";
4
4
  @use "../../styles/internal/component";
5
5
 
6
- :is(a, button) {
6
+ :is(a[href], button) {
7
+ // Resetting button and link specific declarations
7
8
  &:has(.db-card) {
8
- all: unset;
9
+ text-decoration: unset;
10
+ margin: unset;
11
+ border: unset;
12
+ background-color: transparent;
13
+ padding: unset;
14
+ font: inherit;
9
15
  }
10
16
 
11
17
  @include helpers.hover {
@@ -182,6 +182,8 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
182
182
 
183
183
  @layer variables {}
184
184
 
185
+ /* Use for body tags like <p> */
186
+ /* Use for headline tags like <h1> */
185
187
  /**
186
188
  * @mixin screen-min-max
187
189
  * @param $data an object like (min:"sm", max:"lg") or (min: "sm")
@@ -679,6 +679,8 @@ input[type=radio]:checked) > label {
679
679
 
680
680
  @layer variables {}
681
681
 
682
+ /* Use for body tags like <p> */
683
+ /* Use for headline tags like <h1> */
682
684
  .db-custom-select summary {
683
685
  border: var(--db-border-width-3xs) solid var(--db-adaptive-on-bg-basic-emphasis-100-default);
684
686
  }
@@ -834,6 +836,18 @@ dialog:not([data-backdrop=none])[data-backdrop=weak]::backdrop, dialog:not([data
834
836
  content: "*"/"";
835
837
  }
836
838
  }
839
+ .db-custom-select[data-variant=floating]:has(select:not([data-custom-validity]):is(:required):user-valid) label {
840
+ color: var(--db-successful-on-bg-basic-emphasis-80-default);
841
+ }
842
+ .db-custom-select[data-variant=floating]:has(select[data-custom-validity=valid]) label, .db-custom-select[data-variant=floating][data-custom-validity=valid] label {
843
+ color: var(--db-successful-on-bg-basic-emphasis-80-default);
844
+ }
845
+ .db-custom-select[data-variant=floating]:has(select:not([data-custom-validity]):is(:required):user-invalid) label {
846
+ color: var(--db-critical-on-bg-basic-emphasis-80-default);
847
+ }
848
+ .db-custom-select[data-variant=floating]:has(select[data-custom-validity=invalid]) label, .db-custom-select[data-variant=floating][data-custom-validity=invalid] label {
849
+ color: var(--db-critical-on-bg-basic-emphasis-80-default);
850
+ }
837
851
  .db-custom-select[data-variant=floating] > label {
838
852
  opacity: var(--db-opacity-xl);
839
853
  position: absolute;
@@ -358,6 +358,8 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
358
358
 
359
359
  @layer variables {}
360
360
 
361
+ /* Use for body tags like <p> */
362
+ /* Use for headline tags like <h1> */
361
363
  .db-custom-select-dropdown {
362
364
  position: absolute;
363
365
  z-index: 32;
@@ -122,6 +122,8 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
122
122
 
123
123
  @layer variables {}
124
124
 
125
+ /* Use for body tags like <p> */
126
+ /* Use for headline tags like <h1> */
125
127
  /**
126
128
  * @mixin screen-min-max
127
129
  * @param $data an object like (min:"sm", max:"lg") or (min: "sm")
@@ -122,6 +122,8 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
122
122
 
123
123
  @layer variables {}
124
124
 
125
+ /* Use for body tags like <p> */
126
+ /* Use for headline tags like <h1> */
125
127
  /**
126
128
  * @mixin screen-min-max
127
129
  * @param $data an object like (min:"sm", max:"lg") or (min: "sm")
@@ -146,6 +146,8 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
146
146
 
147
147
  @layer variables {}
148
148
 
149
+ /* Use for body tags like <p> */
150
+ /* Use for headline tags like <h1> */
149
151
  /**
150
152
  * @mixin screen-min-max
151
153
  * @param $data an object like (min:"sm", max:"lg") or (min: "sm")
@@ -117,6 +117,8 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
117
117
 
118
118
  @layer variables {}
119
119
 
120
+ /* Use for body tags like <p> */
121
+ /* Use for headline tags like <h1> */
120
122
  @layer variables {}
121
123
 
122
124
  @layer variables {}
@@ -123,6 +123,8 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
123
123
 
124
124
  @layer variables {}
125
125
 
126
+ /* Use for body tags like <p> */
127
+ /* Use for headline tags like <h1> */
126
128
  .db-infotext:not([data-icon]):not([data-show-icon-leading=false])::before {
127
129
  color: var(--db-icon-color, inherit);
128
130
  display: inline-block;
@@ -522,6 +522,8 @@ input[type=radio]:checked) > label {
522
522
 
523
523
  @layer variables {}
524
524
 
525
+ /* Use for body tags like <p> */
526
+ /* Use for headline tags like <h1> */
525
527
  /**
526
528
  * @mixin screen-min-max
527
529
  * @param $data an object like (min:"sm", max:"lg") or (min: "sm")
@@ -607,6 +609,18 @@ input[type=radio]:checked) > label {
607
609
  content: "*"/"";
608
610
  }
609
611
  }
612
+ .db-input[data-variant=floating]:has(input:not([data-custom-validity]):is(:required, [minlength], [maxlength], [pattern], [type=color], [type=date], [type=datetime-local], [type=email], [type=file], [type=hidden], [type=month], [type=number], [type=range], [type=tel], [type=time], [type=url], [type=week]):user-valid) label {
613
+ color: var(--db-successful-on-bg-basic-emphasis-80-default);
614
+ }
615
+ .db-input[data-variant=floating]:has(input[data-custom-validity=valid]) label, .db-input[data-variant=floating][data-custom-validity=valid] label {
616
+ color: var(--db-successful-on-bg-basic-emphasis-80-default);
617
+ }
618
+ .db-input[data-variant=floating]:has(input:not([data-custom-validity]):is(:required, [minlength], [maxlength], [pattern], [type=color], [type=date], [type=datetime-local], [type=email], [type=file], [type=hidden], [type=month], [type=number], [type=range], [type=tel], [type=time], [type=url], [type=week]):user-invalid) label {
619
+ color: var(--db-critical-on-bg-basic-emphasis-80-default);
620
+ }
621
+ .db-input[data-variant=floating]:has(input[data-custom-validity=invalid]) label, .db-input[data-variant=floating][data-custom-validity=invalid] label {
622
+ color: var(--db-critical-on-bg-basic-emphasis-80-default);
623
+ }
610
624
  .db-input[data-variant=floating] > label {
611
625
  opacity: var(--db-opacity-xl);
612
626
  position: absolute;
@@ -123,6 +123,8 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
123
123
 
124
124
  @layer variables {}
125
125
 
126
+ /* Use for body tags like <p> */
127
+ /* Use for headline tags like <h1> */
126
128
  .db-link {
127
129
  transition: outline var(--db-transition-duration-extra-fast), color var(--db-transition-straight-emotional);
128
130
  }
@@ -126,6 +126,8 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
126
126
 
127
127
  @layer variables {}
128
128
 
129
+ /* Use for body tags like <p> */
130
+ /* Use for headline tags like <h1> */
129
131
  .db-navigation > menu .db-navigation-item::after {
130
132
  content: "";
131
133
  position: absolute;
@@ -115,6 +115,8 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
115
115
 
116
116
  @layer variables {}
117
117
 
118
+ /* Use for body tags like <p> */
119
+ /* Use for headline tags like <h1> */
118
120
  /**
119
121
  * @mixin screen-min-max
120
122
  * @param $data an object like (min:"sm", max:"lg") or (min: "sm")
@@ -888,6 +888,8 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
888
888
 
889
889
  @layer variables {}
890
890
 
891
+ /* Use for body tags like <p> */
892
+ /* Use for headline tags like <h1> */
891
893
  /**
892
894
  * @mixin screen-min-max
893
895
  * @param $data an object like (min:"sm", max:"lg") or (min: "sm")
@@ -142,6 +142,8 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
142
142
 
143
143
  @layer variables {}
144
144
 
145
+ /* Use for body tags like <p> */
146
+ /* Use for headline tags like <h1> */
145
147
  /**
146
148
  * @mixin screen-min-max
147
149
  * @param $data an object like (min:"sm", max:"lg") or (min: "sm")
@@ -522,6 +522,8 @@ input[type=radio]:checked) > label {
522
522
 
523
523
  @layer variables {}
524
524
 
525
+ /* Use for body tags like <p> */
526
+ /* Use for headline tags like <h1> */
525
527
  /**
526
528
  * @mixin screen-min-max
527
529
  * @param $data an object like (min:"sm", max:"lg") or (min: "sm")
@@ -633,6 +635,18 @@ input[type=radio]:checked) > label {
633
635
  content: "*"/"";
634
636
  }
635
637
  }
638
+ .db-select[data-variant=floating]:has(select:not([data-custom-validity]):is(:required):user-valid) label {
639
+ color: var(--db-successful-on-bg-basic-emphasis-80-default);
640
+ }
641
+ .db-select[data-variant=floating]:has(select[data-custom-validity=valid]) label, .db-select[data-variant=floating][data-custom-validity=valid] label {
642
+ color: var(--db-successful-on-bg-basic-emphasis-80-default);
643
+ }
644
+ .db-select[data-variant=floating]:has(select:not([data-custom-validity]):is(:required):user-invalid) label {
645
+ color: var(--db-critical-on-bg-basic-emphasis-80-default);
646
+ }
647
+ .db-select[data-variant=floating]:has(select[data-custom-validity=invalid]) label, .db-select[data-variant=floating][data-custom-validity=invalid] label {
648
+ color: var(--db-critical-on-bg-basic-emphasis-80-default);
649
+ }
636
650
  .db-select[data-variant=floating] > label {
637
651
  opacity: var(--db-opacity-xl);
638
652
  position: absolute;
@@ -153,6 +153,8 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
153
153
 
154
154
  @layer variables {}
155
155
 
156
+ /* Use for body tags like <p> */
157
+ /* Use for headline tags like <h1> */
156
158
  .db-switch input:not([data-show-icon-trailing=false])::after, .db-switch[data-visual-aid=true] input:checked:not([data-aid-icon]):not([data-show-icon-trailing=false])::after {
157
159
  color: var(--db-icon-color, inherit);
158
160
  display: inline-block;
@@ -140,6 +140,8 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
140
140
 
141
141
  @layer variables {}
142
142
 
143
+ /* Use for body tags like <p> */
144
+ /* Use for headline tags like <h1> */
143
145
  .db-tab-item {
144
146
  position: relative;
145
147
  list-style-type: "";
@@ -215,6 +215,8 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
215
215
 
216
216
  @layer variables {}
217
217
 
218
+ /* Use for body tags like <p> */
219
+ /* Use for headline tags like <h1> */
218
220
  /**
219
221
  * @mixin screen-min-max
220
222
  * @param $data an object like (min:"sm", max:"lg") or (min: "sm")
@@ -122,6 +122,8 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
122
122
 
123
123
  @layer variables {}
124
124
 
125
+ /* Use for body tags like <p> */
126
+ /* Use for headline tags like <h1> */
125
127
  /**
126
128
  * @mixin screen-min-max
127
129
  * @param $data an object like (min:"sm", max:"lg") or (min: "sm")
@@ -965,6 +965,8 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
965
965
 
966
966
  @layer variables {}
967
967
 
968
+ /* Use for body tags like <p> */
969
+ /* Use for headline tags like <h1> */
968
970
  .db-tag[data-show-check-state=true] label:not([data-show-icon-trailing=false])::after, .db-tag[data-show-check-state=true] label:has(input:checked):not([data-show-icon-trailing=false])::after {
969
971
  color: var(--db-icon-color, inherit);
970
972
  display: inline-block;
@@ -170,6 +170,8 @@ input[type=radio]:checked) > label {
170
170
 
171
171
  @layer variables {}
172
172
 
173
+ /* Use for body tags like <p> */
174
+ /* Use for headline tags like <h1> */
173
175
  /**
174
176
  * @mixin screen-min-max
175
177
  * @param $data an object like (min:"sm", max:"lg") or (min: "sm")
@@ -399,6 +401,18 @@ input[type=radio]:checked) > label {
399
401
  content: "*"/"";
400
402
  }
401
403
  }
404
+ .db-textarea[data-variant=floating]:has(textarea:not([data-custom-validity]):is(:required, [minlength], [maxlength]):user-valid) label {
405
+ color: var(--db-successful-on-bg-basic-emphasis-80-default);
406
+ }
407
+ .db-textarea[data-variant=floating]:has(textarea[data-custom-validity=valid]) label, .db-textarea[data-variant=floating][data-custom-validity=valid] label {
408
+ color: var(--db-successful-on-bg-basic-emphasis-80-default);
409
+ }
410
+ .db-textarea[data-variant=floating]:has(textarea:not([data-custom-validity]):is(:required, [minlength], [maxlength]):user-invalid) label {
411
+ color: var(--db-critical-on-bg-basic-emphasis-80-default);
412
+ }
413
+ .db-textarea[data-variant=floating]:has(textarea[data-custom-validity=invalid]) label, .db-textarea[data-variant=floating][data-custom-validity=invalid] label {
414
+ color: var(--db-critical-on-bg-basic-emphasis-80-default);
415
+ }
402
416
  .db-textarea[data-variant=floating] > label {
403
417
  opacity: var(--db-opacity-xl);
404
418
  position: absolute;
@@ -493,7 +507,6 @@ input[type=radio]:checked) textarea:is([type=date],
493
507
  }
494
508
  .db-textarea:has(textarea:not([data-custom-validity]):is(:required, [minlength], [maxlength]):user-valid):has(> .db-infotext[data-semantic=successful],
495
509
  > db-infotext > .db-infotext[data-semantic=successful]) {
496
- --db-textarea-read-only: var(--db-successful-bg-basic-level-1-default);
497
510
  --db-textarea-read-only: var(--db-successful-bg-basic-level-1-default);
498
511
  --db-adaptive-bg-basic-transparent-full-default: var(
499
512
  --db-successful-bg-basic-transparent-full-default
@@ -521,6 +534,10 @@ input[type=radio]:checked) textarea:is([type=date],
521
534
  );
522
535
  }
523
536
  .db-textarea:has(textarea:not([data-custom-validity]):is(:required, [minlength], [maxlength]):user-valid):has(> .db-infotext[data-semantic=successful],
537
+ > db-infotext > .db-infotext[data-semantic=successful])[data-variant=floating]::after {
538
+ border-color: var(--db-successful-on-bg-basic-emphasis-70-default);
539
+ }
540
+ .db-textarea:has(textarea:not([data-custom-validity]):is(:required, [minlength], [maxlength]):user-valid):has(> .db-infotext[data-semantic=successful],
524
541
  > db-infotext > .db-infotext[data-semantic=successful]) textarea,
525
542
  .db-textarea:has(textarea:not([data-custom-validity]):is(:required, [minlength], [maxlength]):user-valid):has(> .db-infotext[data-semantic=successful],
526
543
  > db-infotext > .db-infotext[data-semantic=successful]) [id$=-placeholder] {
@@ -552,7 +569,6 @@ input[type=radio]:checked) textarea:is([type=date],
552
569
  .db-textarea:has(textarea[data-custom-validity=valid]):has(> .db-infotext[data-semantic=successful],
553
570
  > db-infotext > .db-infotext[data-semantic=successful]), .db-textarea[data-custom-validity=valid]:has(> .db-infotext[data-semantic=successful],
554
571
  > db-infotext > .db-infotext[data-semantic=successful]) {
555
- --db-textarea-read-only: var(--db-successful-bg-basic-level-1-default);
556
572
  --db-textarea-read-only: var(--db-successful-bg-basic-level-1-default);
557
573
  --db-adaptive-bg-basic-transparent-full-default: var(
558
574
  --db-successful-bg-basic-transparent-full-default
@@ -580,6 +596,11 @@ input[type=radio]:checked) textarea:is([type=date],
580
596
  );
581
597
  }
582
598
  .db-textarea:has(textarea[data-custom-validity=valid]):has(> .db-infotext[data-semantic=successful],
599
+ > db-infotext > .db-infotext[data-semantic=successful])[data-variant=floating]::after, .db-textarea[data-custom-validity=valid]:has(> .db-infotext[data-semantic=successful],
600
+ > db-infotext > .db-infotext[data-semantic=successful])[data-variant=floating]::after {
601
+ border-color: var(--db-successful-on-bg-basic-emphasis-70-default);
602
+ }
603
+ .db-textarea:has(textarea[data-custom-validity=valid]):has(> .db-infotext[data-semantic=successful],
583
604
  > db-infotext > .db-infotext[data-semantic=successful]) textarea,
584
605
  .db-textarea:has(textarea[data-custom-validity=valid]):has(> .db-infotext[data-semantic=successful],
585
606
  > db-infotext > .db-infotext[data-semantic=successful]) [id$=-placeholder], .db-textarea[data-custom-validity=valid]:has(> .db-infotext[data-semantic=successful],
@@ -622,7 +643,6 @@ input[type=radio]:checked) textarea:is([type=date],
622
643
  display: none;
623
644
  }
624
645
  .db-textarea:has(textarea:not([data-custom-validity]):is(:required, [minlength], [maxlength]):user-invalid) {
625
- --db-textarea-read-only: var(--db-critical-bg-basic-level-1-default);
626
646
  --db-textarea-read-only: var(--db-critical-bg-basic-level-1-default);
627
647
  --db-adaptive-bg-basic-transparent-full-default: var(
628
648
  --db-critical-bg-basic-transparent-full-default
@@ -649,6 +669,9 @@ input[type=radio]:checked) textarea:is([type=date],
649
669
  --db-critical-on-bg-basic-emphasis-60-default
650
670
  );
651
671
  }
672
+ .db-textarea:has(textarea:not([data-custom-validity]):is(:required, [minlength], [maxlength]):user-invalid)[data-variant=floating]::after {
673
+ border-color: var(--db-critical-on-bg-basic-emphasis-70-default);
674
+ }
652
675
  .db-textarea:has(textarea:not([data-custom-validity]):is(:required, [minlength], [maxlength]):user-invalid) textarea,
653
676
  .db-textarea:has(textarea:not([data-custom-validity]):is(:required, [minlength], [maxlength]):user-invalid) [id$=-placeholder] {
654
677
  color: var(--db-critical-on-bg-basic-emphasis-100-default);
@@ -666,7 +689,6 @@ input[type=radio]:checked) textarea:is([type=date],
666
689
  display: none;
667
690
  }
668
691
  .db-textarea:has(textarea[data-custom-validity=invalid]), .db-textarea[data-custom-validity=invalid] {
669
- --db-textarea-read-only: var(--db-critical-bg-basic-level-1-default);
670
692
  --db-textarea-read-only: var(--db-critical-bg-basic-level-1-default);
671
693
  --db-adaptive-bg-basic-transparent-full-default: var(
672
694
  --db-critical-bg-basic-transparent-full-default
@@ -693,6 +715,9 @@ input[type=radio]:checked) textarea:is([type=date],
693
715
  --db-critical-on-bg-basic-emphasis-60-default
694
716
  );
695
717
  }
718
+ .db-textarea:has(textarea[data-custom-validity=invalid])[data-variant=floating]::after, .db-textarea[data-custom-validity=invalid][data-variant=floating]::after {
719
+ border-color: var(--db-critical-on-bg-basic-emphasis-70-default);
720
+ }
696
721
  .db-textarea:has(textarea[data-custom-validity=invalid]) textarea,
697
722
  .db-textarea:has(textarea[data-custom-validity=invalid]) [id$=-placeholder], .db-textarea[data-custom-validity=invalid] textarea,
698
723
  .db-textarea[data-custom-validity=invalid] [id$=-placeholder] {
@@ -113,6 +113,8 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
113
113
 
114
114
  @layer variables {}
115
115
 
116
+ /* Use for body tags like <p> */
117
+ /* Use for headline tags like <h1> */
116
118
  @keyframes show-right-to-left {
117
119
  from {
118
120
  transform: translateX(110%);