@db-ux/core-components 2.1.0 → 2.1.2

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 (55) hide show
  1. package/build/components/accordion/accordion.css +1 -0
  2. package/build/components/accordion-item/accordion-item.css +2 -1
  3. package/build/components/accordion-item/accordion-item.scss +1 -1
  4. package/build/components/badge/badge.css +1 -0
  5. package/build/components/brand/brand.css +1 -0
  6. package/build/components/button/button.css +2 -1
  7. package/build/components/button/button.scss +1 -1
  8. package/build/components/card/card.css +1 -0
  9. package/build/components/checkbox/checkbox.css +2 -1
  10. package/build/components/custom-select/custom-select.css +12 -12
  11. package/build/components/custom-select/custom-select.scss +2 -2
  12. package/build/components/custom-select-dropdown/custom-select-dropdown.css +1 -0
  13. package/build/components/custom-select-form-field/custom-select-form-field.css +1 -0
  14. package/build/components/custom-select-list/custom-select-list.css +1 -0
  15. package/build/components/custom-select-list-item/custom-select-list-item.css +4 -3
  16. package/build/components/divider/divider.css +1 -0
  17. package/build/components/drawer/drawer.css +4 -4
  18. package/build/components/header/header.css +1 -0
  19. package/build/components/icon/icon.css +1 -0
  20. package/build/components/infotext/infotext.css +1 -0
  21. package/build/components/input/input.css +41 -21
  22. package/build/components/input/input.scss +31 -8
  23. package/build/components/link/link.css +2 -1
  24. package/build/components/navigation/navigation.css +1 -0
  25. package/build/components/navigation-item/navigation-item.css +2 -1
  26. package/build/components/navigation-item/navigation-item.scss +1 -1
  27. package/build/components/notification/notification.css +2 -1
  28. package/build/components/page/page.css +1 -0
  29. package/build/components/popover/popover.css +1 -0
  30. package/build/components/radio/radio.css +2 -1
  31. package/build/components/section/section.css +1 -0
  32. package/build/components/select/select.css +5 -4
  33. package/build/components/stack/stack-web-component.css +1 -0
  34. package/build/components/stack/stack.css +1 -0
  35. package/build/components/switch/switch.css +2 -1
  36. package/build/components/tab-item/tab-item.css +5 -4
  37. package/build/components/tab-item/tab-item.scss +1 -1
  38. package/build/components/tab-list/tab-list.css +1 -0
  39. package/build/components/tab-panel/tab-panel.css +1 -0
  40. package/build/components/tabs/tabs.css +1 -0
  41. package/build/components/tag/tag.css +2 -1
  42. package/build/components/tag/tag.scss +1 -1
  43. package/build/components/textarea/textarea.css +5 -4
  44. package/build/components/tooltip/tooltip.css +1 -0
  45. package/build/styles/absolute.css +7 -7
  46. package/build/styles/dialog-init.css +1 -1
  47. package/build/styles/dialog-init.scss +12 -7
  48. package/build/styles/index.css +7 -7
  49. package/build/styles/internal/_component.scss +0 -3
  50. package/build/styles/internal/_form-components.scss +5 -5
  51. package/build/styles/internal/_link-components.scss +1 -1
  52. package/build/styles/relative.css +7 -7
  53. package/build/styles/rollup.css +7 -7
  54. package/build/styles/webpack.css +7 -7
  55. package/package.json +3 -3
@@ -4,6 +4,7 @@
4
4
  paddings/gaps in an application e.g. the <main> should have a responsive padding. */
5
5
  /* Elevation */
6
6
  /* Border */
7
+ /* Opacity */
7
8
  /* Transitions */
8
9
  /* Variants for adaptive components like input, select, notification, ... */
9
10
  @layer variables {}
@@ -4,6 +4,7 @@
4
4
  paddings/gaps in an application e.g. the <main> should have a responsive padding. */
5
5
  /* Elevation */
6
6
  /* Border */
7
+ /* Opacity */
7
8
  /* Transitions */
8
9
  .db-visually-hidden,
9
10
  [data-visually-hidden=true] {
@@ -285,7 +286,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
285
286
  }
286
287
  .db-accordion-item > details[aria-disabled=true] {
287
288
  pointer-events: none;
288
- opacity: 0.4;
289
+ opacity: var(--db-opacity-md);
289
290
  }
290
291
  @media screen and (prefers-reduced-motion: no-preference) {
291
292
  .db-accordion-item > details > summary + div {
@@ -26,7 +26,7 @@
26
26
 
27
27
  &[aria-disabled="true"] {
28
28
  pointer-events: none;
29
- opacity: component.$default-disabled;
29
+ opacity: variables.$db-opacity-md;
30
30
  }
31
31
 
32
32
  @media screen and (prefers-reduced-motion: no-preference) {
@@ -4,6 +4,7 @@
4
4
  paddings/gaps in an application e.g. the <main> should have a responsive padding. */
5
5
  /* Elevation */
6
6
  /* Border */
7
+ /* Opacity */
7
8
  /* Transitions */
8
9
  /* Variants for adaptive components like input, select, notification, ... */
9
10
  @layer variables {}
@@ -4,6 +4,7 @@
4
4
  paddings/gaps in an application e.g. the <main> should have a responsive padding. */
5
5
  /* Elevation */
6
6
  /* Border */
7
+ /* Opacity */
7
8
  /* Transitions */
8
9
  /* Variants for adaptive components like input, select, notification, ... */
9
10
  @layer variables {}
@@ -4,6 +4,7 @@
4
4
  paddings/gaps in an application e.g. the <main> should have a responsive padding. */
5
5
  /* Elevation */
6
6
  /* Border */
7
+ /* Opacity */
7
8
  /* Transitions */
8
9
  /* Variants for adaptive components like input, select, notification, ... */
9
10
  @layer variables {}
@@ -236,7 +237,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
236
237
  background-color: var(--db-adaptive-bg-basic-transparent-semi-default);
237
238
  }
238
239
  .db-button:disabled {
239
- opacity: 0.4;
240
+ opacity: var(--db-opacity-md);
240
241
  }
241
242
  .db-button[data-state=loading] {
242
243
  font-size: 0 !important;
@@ -98,7 +98,7 @@
98
98
  }
99
99
 
100
100
  &:disabled {
101
- opacity: component.$default-disabled;
101
+ opacity: variables.$db-opacity-md;
102
102
  }
103
103
 
104
104
  // States (currently only "loading")
@@ -4,6 +4,7 @@
4
4
  paddings/gaps in an application e.g. the <main> should have a responsive padding. */
5
5
  /* Elevation */
6
6
  /* Border */
7
+ /* Opacity */
7
8
  /* Transitions */
8
9
  /* Variants for adaptive components like input, select, notification, ... */
9
10
  @layer variables {}
@@ -4,6 +4,7 @@
4
4
  paddings/gaps in an application e.g. the <main> should have a responsive padding. */
5
5
  /* Elevation */
6
6
  /* Border */
7
+ /* Opacity */
7
8
  /* Transitions */
8
9
  .db-visually-hidden,
9
10
  [data-visually-hidden=true] {
@@ -218,7 +219,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
218
219
  }
219
220
  }
220
221
  .db-checkbox:has(input:disabled) {
221
- opacity: 0.4;
222
+ opacity: var(--db-opacity-md);
222
223
  }
223
224
  .db-checkbox:is(label),
224
225
  .db-checkbox > label {
@@ -4,6 +4,7 @@
4
4
  paddings/gaps in an application e.g. the <main> should have a responsive padding. */
5
5
  /* Elevation */
6
6
  /* Border */
7
+ /* Opacity */
7
8
  /* Transitions */
8
9
  /* Variants for adaptive components like input, select, notification, ... */
9
10
  .db-custom-select[data-hide-label=true] > label, .db-visually-hidden,
@@ -768,14 +769,13 @@ dialog[data-variant=inside]:not([data-backdrop=none])::before {
768
769
  inset: 0;
769
770
  }
770
771
  dialog:not([data-backdrop=none])::backdrop, dialog:not([data-backdrop=none])::before {
771
- background-color: var(--db-adaptive-on-bg-basic-emphasis-100-default);
772
- opacity: 0.64;
772
+ background-color: color(from var(--db-adaptive-on-bg-basic-emphasis-100-default) srgb r g b/var(--db-opacity-lg));
773
773
  }
774
774
  dialog:not([data-backdrop=none])[data-backdrop=invisible]::backdrop, dialog:not([data-backdrop=none])[data-backdrop=invisible]::before {
775
- opacity: 0;
775
+ background-color: transparent;
776
776
  }
777
777
  dialog:not([data-backdrop=none])[data-backdrop=weak]::backdrop, dialog:not([data-backdrop=none])[data-backdrop=weak]::before {
778
- opacity: 0.32;
778
+ background-color: color(from var(--db-adaptive-on-bg-basic-emphasis-100-default) srgb r g b/var(--db-opacity-sm));
779
779
  }
780
780
 
781
781
  [data-placement^=top].db-custom-select .db-custom-select-dropdown:not([data-outside-vy=top]), .db-custom-select:not([data-placement]) .db-custom-select-dropdown[data-outside-vy=bottom], [data-placement^=bottom].db-custom-select .db-custom-select-dropdown[data-outside-vy=bottom] {
@@ -849,7 +849,7 @@ dialog:not([data-backdrop=none])[data-backdrop=weak]::backdrop, dialog:not([data
849
849
  --db-label-visible-above: 0;
850
850
  }
851
851
  .db-custom-select[data-variant=floating] > label {
852
- opacity: 0.75;
852
+ opacity: var(--db-opacity-xl);
853
853
  position: absolute;
854
854
  z-index: 2;
855
855
  inset-block-start: calc((var(--db-sizing-md) - var(--db-icon-font-size)) / 2);
@@ -888,7 +888,7 @@ summary:is(input, textarea):not(:placeholder-shown),
888
888
  > select option:checked:not([hidden]),
889
889
  input[type=checkbox]:checked,
890
890
  input[type=radio]:checked) [id$=-placeholder] {
891
- opacity: 0.75;
891
+ opacity: var(--db-opacity-xl);
892
892
  font-family: var(--db-font-family-sans);
893
893
  font-style: italic;
894
894
  /* stylelint-disable-next-line db-ux/use-spacings */
@@ -1030,7 +1030,7 @@ input[type=radio]:checked) [id$=-placeholder] {
1030
1030
  }
1031
1031
  .db-custom-select summary::placeholder,
1032
1032
  .db-custom-select [id$=-placeholder] {
1033
- opacity: 0.75;
1033
+ opacity: var(--db-opacity-xl);
1034
1034
  font-family: var(--db-font-family-sans);
1035
1035
  font-style: italic;
1036
1036
  }
@@ -1076,7 +1076,7 @@ input[type=radio]:checked) [id$=-placeholder] {
1076
1076
  .db-custom-select:has(summary:disabled,
1077
1077
  summary[data-disabled=true],
1078
1078
  summary[aria-disabled=true]) {
1079
- opacity: 0.4;
1079
+ opacity: var(--db-opacity-md);
1080
1080
  pointer-events: none;
1081
1081
  }
1082
1082
  .db-custom-select::after, .db-custom-select::before {
@@ -1163,8 +1163,8 @@ summary[aria-disabled=true]) {
1163
1163
  inset: 0;
1164
1164
  content: "";
1165
1165
  cursor: default;
1166
- background-color: var(--db-adaptive-on-bg-basic-emphasis-100-default);
1167
- opacity: 0.64;
1166
+ background-color: color(from var(--db-adaptive-on-bg-basic-emphasis-100-default) srgb r g b/var(--db-opacity-lg));
1167
+ opacity: var(--db-opacity-lg);
1168
1168
  }
1169
1169
  @media screen and (max-width: 44.9375em) {
1170
1170
  .db-custom-select > details[open] > summary::before {
@@ -1173,8 +1173,8 @@ summary[aria-disabled=true]) {
1173
1173
  inset: 0;
1174
1174
  content: "";
1175
1175
  cursor: default;
1176
- background-color: var(--db-adaptive-on-bg-basic-emphasis-100-default);
1177
- opacity: 0.64;
1176
+ background-color: color(from var(--db-adaptive-on-bg-basic-emphasis-100-default) srgb r g b/var(--db-opacity-lg));
1177
+ opacity: var(--db-opacity-lg);
1178
1178
  }
1179
1179
  }
1180
1180
  .db-custom-select[data-variant=floating] .db-custom-select-form-field > span {
@@ -162,8 +162,8 @@
162
162
  inset: 0;
163
163
  content: "";
164
164
  cursor: default;
165
- background-color: dialog-init.$backdrop-color;
166
- opacity: dialog-init.$backdrop-opacity-strong;
165
+ background-color: dialog-init.$backdrop-color-strong;
166
+ opacity: variables.$db-opacity-lg;
167
167
  }
168
168
  }
169
169
  }
@@ -4,6 +4,7 @@
4
4
  paddings/gaps in an application e.g. the <main> should have a responsive padding. */
5
5
  /* Elevation */
6
6
  /* Border */
7
+ /* Opacity */
7
8
  /* Transitions */
8
9
  /* Variants for adaptive components like input, select, notification, ... */
9
10
  .db-visually-hidden,
@@ -4,6 +4,7 @@
4
4
  paddings/gaps in an application e.g. the <main> should have a responsive padding. */
5
5
  /* Elevation */
6
6
  /* Border */
7
+ /* Opacity */
7
8
  /* Transitions */
8
9
  .db-visually-hidden,
9
10
  [data-visually-hidden=true] {
@@ -4,6 +4,7 @@
4
4
  paddings/gaps in an application e.g. the <main> should have a responsive padding. */
5
5
  /* Elevation */
6
6
  /* Border */
7
+ /* Opacity */
7
8
  /* Transitions */
8
9
  .db-custom-select-list > legend, .db-visually-hidden,
9
10
  [data-visually-hidden=true] {
@@ -4,6 +4,7 @@
4
4
  paddings/gaps in an application e.g. the <main> should have a responsive padding. */
5
5
  /* Elevation */
6
6
  /* Border */
7
+ /* Opacity */
7
8
  /* Transitions */
8
9
  /* Variants for adaptive components like input, select, notification, ... */
9
10
  .db-visually-hidden,
@@ -64,14 +65,14 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
64
65
  outline-offset: var(--db-border-width-xs);
65
66
  box-shadow: 0 0 0 var(--db-border-width-xs) var(--db-focus-box-shadow-bg-color, transparent);
66
67
  }
67
- .db-custom-select-list-item:not([data-disable-focus=true]):not([type=radio], [role=switch]):has(> label > input:focus-within) {
68
- border-radius: var(--db-border-radius-xs);
69
- }
70
68
  @media screen and (prefers-reduced-motion: no-preference) {
71
69
  .db-custom-select-list-item:not([data-disable-focus=true]):has(> label > input:focus-within) {
72
70
  transition: outline var(--db-transition-duration-extra-fast), box-shadow var(--db-transition-duration-extra-fast);
73
71
  }
74
72
  }
73
+ .db-custom-select-list-item:not([data-disable-focus=true]):not([type=radio], [role=switch]):has(> label > input:focus-within) {
74
+ border-radius: var(--db-border-radius-xs);
75
+ }
75
76
 
76
77
  /**
77
78
  Generates 3 types of placeholders, e.g:
@@ -4,6 +4,7 @@
4
4
  paddings/gaps in an application e.g. the <main> should have a responsive padding. */
5
5
  /* Elevation */
6
6
  /* Border */
7
+ /* Opacity */
7
8
  /* Transitions */
8
9
  /* Variants for adaptive components like input, select, notification, ... */
9
10
  @layer variables {}
@@ -4,6 +4,7 @@
4
4
  paddings/gaps in an application e.g. the <main> should have a responsive padding. */
5
5
  /* Elevation */
6
6
  /* Border */
7
+ /* Opacity */
7
8
  /* Transitions */
8
9
  /* Variants for adaptive components like input, select, notification, ... */
9
10
  @layer variables {}
@@ -142,14 +143,13 @@ dialog[data-variant=inside]:not([data-backdrop=none])::before {
142
143
  inset: 0;
143
144
  }
144
145
  dialog:not([data-backdrop=none])::backdrop, dialog:not([data-backdrop=none])::before {
145
- background-color: var(--db-adaptive-on-bg-basic-emphasis-100-default);
146
- opacity: 0.64;
146
+ background-color: color(from var(--db-adaptive-on-bg-basic-emphasis-100-default) srgb r g b/var(--db-opacity-lg));
147
147
  }
148
148
  dialog:not([data-backdrop=none])[data-backdrop=invisible]::backdrop, dialog:not([data-backdrop=none])[data-backdrop=invisible]::before {
149
- opacity: 0;
149
+ background-color: transparent;
150
150
  }
151
151
  dialog:not([data-backdrop=none])[data-backdrop=weak]::backdrop, dialog:not([data-backdrop=none])[data-backdrop=weak]::before {
152
- opacity: 0.32;
152
+ background-color: color(from var(--db-adaptive-on-bg-basic-emphasis-100-default) srgb r g b/var(--db-opacity-sm));
153
153
  }
154
154
 
155
155
  .db-drawer .db-drawer-container {
@@ -4,6 +4,7 @@
4
4
  paddings/gaps in an application e.g. the <main> should have a responsive padding. */
5
5
  /* Elevation */
6
6
  /* Border */
7
+ /* Opacity */
7
8
  /* Transitions */
8
9
  /* Variants for adaptive components like input, select, notification, ... */
9
10
  @layer variables {}
@@ -4,6 +4,7 @@
4
4
  paddings/gaps in an application e.g. the <main> should have a responsive padding. */
5
5
  /* Elevation */
6
6
  /* Border */
7
+ /* Opacity */
7
8
  /* Transitions */
8
9
  /* Variants for adaptive components like input, select, notification, ... */
9
10
  @layer variables {}
@@ -4,6 +4,7 @@
4
4
  paddings/gaps in an application e.g. the <main> should have a responsive padding. */
5
5
  /* Elevation */
6
6
  /* Border */
7
+ /* Opacity */
7
8
  /* Transitions */
8
9
  /* Variants for adaptive components like input, select, notification, ... */
9
10
  @layer variables {}
@@ -4,6 +4,7 @@
4
4
  paddings/gaps in an application e.g. the <main> should have a responsive padding. */
5
5
  /* Elevation */
6
6
  /* Border */
7
+ /* Opacity */
7
8
  /* Transitions */
8
9
  .db-input[data-hide-label=true] > label, .db-visually-hidden,
9
10
  [data-visually-hidden=true] {
@@ -445,12 +446,12 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
445
446
 
446
447
  @layer variables {}
447
448
 
448
- .db-input, .db-input[data-variant=floating] [id$=-placeholder], .db-input[data-variant=floating] input, .db-input:has(input[type=file]) input, .db-input input::file-selector-button {
449
+ .db-input, .db-input[data-variant=floating] [id$=-placeholder], .db-input[data-variant=floating] input, .db-input:has(input[type=file]) input, .db-input input::-webkit-calendar-picker-indicator, .db-input input::-webkit-search-cancel-button, .db-input input::file-selector-button {
449
450
  font: var(--db-type-body-sm);
450
451
  /* stylelint-disable-next-line at-rule-prelude-no-invalid,layer-name-pattern */
451
452
  }
452
453
  @layer variables {
453
- .db-input, .db-input[data-variant=floating] [id$=-placeholder], .db-input[data-variant=floating] input, .db-input:has(input[type=file]) input, .db-input input::file-selector-button {
454
+ .db-input, .db-input[data-variant=floating] [id$=-placeholder], .db-input[data-variant=floating] input, .db-input:has(input[type=file]) input, .db-input input::-webkit-calendar-picker-indicator, .db-input input::-webkit-search-cancel-button, .db-input input::file-selector-button {
454
455
  /* Those variables are only for components to calculate heights and change icons */
455
456
  --db-icon-font-weight: var(--db-base-body-icon-weight-sm);
456
457
  --db-icon-font-size: var(--db-base-body-icon-font-size-sm);
@@ -572,7 +573,7 @@ input[type=radio]:checked) > label {
572
573
  --db-label-visible-above: 0;
573
574
  }
574
575
  .db-input[data-variant=floating] > label {
575
- opacity: 0.75;
576
+ opacity: var(--db-opacity-xl);
576
577
  position: absolute;
577
578
  z-index: 2;
578
579
  inset-block-start: calc((var(--db-sizing-md) - var(--db-icon-font-size)) / 2);
@@ -611,7 +612,7 @@ input:is(input, textarea):not(:placeholder-shown),
611
612
  > select option:checked:not([hidden]),
612
613
  input[type=checkbox]:checked,
613
614
  input[type=radio]:checked) [id$=-placeholder] {
614
- opacity: 0.75;
615
+ opacity: var(--db-opacity-xl);
615
616
  font-family: var(--db-font-family-sans);
616
617
  font-style: italic;
617
618
  }
@@ -751,7 +752,7 @@ input[type=radio]:checked) [id$=-placeholder] {
751
752
  }
752
753
  .db-input input::placeholder,
753
754
  .db-input [id$=-placeholder] {
754
- opacity: 0.75;
755
+ opacity: var(--db-opacity-xl);
755
756
  font-family: var(--db-font-family-sans);
756
757
  font-style: italic;
757
758
  }
@@ -797,7 +798,7 @@ input[type=radio]:checked) [id$=-placeholder] {
797
798
  .db-input:has(input:disabled,
798
799
  input[data-disabled=true],
799
800
  input[aria-disabled=true]) {
800
- opacity: 0.4;
801
+ opacity: var(--db-opacity-md);
801
802
  pointer-events: none;
802
803
  }
803
804
  .db-input::after, .db-input::before {
@@ -863,24 +864,26 @@ input[type=time]) {
863
864
  input:focus-visible)::after {
864
865
  opacity: 1;
865
866
  }
866
- .db-input:has(input[type=date]):not([data-hide-icon-after=true])::after, .db-input:has(input[type=week]):not([data-hide-icon-after=true])::after, .db-input:has(input[type=datetime-local]):not([data-hide-icon-after=true])::after, .db-input:has(input[type=month]):not([data-hide-icon-after=true])::after {
867
- --db-icon-after: "calendar";
868
- margin-inline-start: var(--db-icon-margin-start, var(--db-spacing-fixed-xs));
869
- content: var(--db-icon-after, attr(data-icon-after));
870
- }
871
- @supports (content: ""/"") {
867
+ @supports selector(::-webkit-calendar-picker-indicator) {
872
868
  .db-input:has(input[type=date]):not([data-hide-icon-after=true])::after, .db-input:has(input[type=week]):not([data-hide-icon-after=true])::after, .db-input:has(input[type=datetime-local]):not([data-hide-icon-after=true])::after, .db-input:has(input[type=month]):not([data-hide-icon-after=true])::after {
873
- content: var(--db-icon-after, attr(data-icon-after))/"";
869
+ --db-icon-after: "calendar";
870
+ margin-inline-start: var(--db-icon-margin-start, var(--db-spacing-fixed-xs));
871
+ content: var(--db-icon-after, attr(data-icon-after));
872
+ }
873
+ @supports (content: ""/"") {
874
+ .db-input:has(input[type=date]):not([data-hide-icon-after=true])::after, .db-input:has(input[type=week]):not([data-hide-icon-after=true])::after, .db-input:has(input[type=datetime-local]):not([data-hide-icon-after=true])::after, .db-input:has(input[type=month]):not([data-hide-icon-after=true])::after {
875
+ content: var(--db-icon-after, attr(data-icon-after))/"";
876
+ }
874
877
  }
875
- }
876
- .db-input:has(input[type=time]):not([data-hide-icon-after=true])::after {
877
- --db-icon-after: "clock";
878
- margin-inline-start: var(--db-icon-margin-start, var(--db-spacing-fixed-xs));
879
- content: var(--db-icon-after, attr(data-icon-after));
880
- }
881
- @supports (content: ""/"") {
882
878
  .db-input:has(input[type=time]):not([data-hide-icon-after=true])::after {
883
- content: var(--db-icon-after, attr(data-icon-after))/"";
879
+ --db-icon-after: "clock";
880
+ margin-inline-start: var(--db-icon-margin-start, var(--db-spacing-fixed-xs));
881
+ content: var(--db-icon-after, attr(data-icon-after));
882
+ }
883
+ @supports (content: ""/"") {
884
+ .db-input:has(input[type=time]):not([data-hide-icon-after=true])::after {
885
+ content: var(--db-icon-after, attr(data-icon-after))/"";
886
+ }
884
887
  }
885
888
  }
886
889
  .db-input:has(input[type=file]) input {
@@ -894,6 +897,10 @@ input:focus-visible)::after {
894
897
  padding: 0 var(--db-spacing-fixed-xs);
895
898
  margin-inline-end: var(--db-spacing-fixed-xs);
896
899
  }
900
+ .db-input[data-variant=floating] input::-webkit-calendar-picker-indicator, .db-input[data-variant=floating] input::-webkit-search-cancel-button {
901
+ /* stylelint-disable-next-line db-ux/use-spacings */
902
+ margin-block-end: var(--db-base-body-icon-font-size-2xs);
903
+ }
897
904
  .db-input input {
898
905
  position: relative;
899
906
  }
@@ -903,6 +910,19 @@ input:focus-visible)::after {
903
910
  block-size: var(--db-icon-font-size, 1.5rem);
904
911
  padding: 0;
905
912
  cursor: pointer;
913
+ /* stylelint-disable-next-line db-ux/use-spacings */
914
+ margin-block-start: var(--db-border-width-3xs);
915
+ border-radius: var(--db-border-radius-xs);
916
+ }
917
+ .db-input input::-webkit-calendar-picker-indicator:focus-visible, .db-input input::-webkit-search-cancel-button:focus-visible {
918
+ outline: var(--db-border-width-2xs) solid var(--db-focus-outline-color, var(--db-informational-on-bg-basic-emphasis-70-default));
919
+ outline-offset: var(--db-border-width-xs);
920
+ box-shadow: 0 0 0 var(--db-border-width-xs) var(--db-focus-box-shadow-bg-color, transparent);
921
+ }
922
+ @media screen and (prefers-reduced-motion: no-preference) {
923
+ .db-input input::-webkit-calendar-picker-indicator:focus-visible, .db-input input::-webkit-search-cancel-button:focus-visible {
924
+ transition: outline var(--db-transition-duration-extra-fast), box-shadow var(--db-transition-duration-extra-fast);
925
+ }
906
926
  }
907
927
  .db-input input::-webkit-search-cancel-button {
908
928
  appearance: none;
@@ -67,15 +67,19 @@ $icon-padding: calc(
67
67
  }
68
68
  }
69
69
 
70
- &:has(input[type="date"]),
71
- &:has(input[type="week"]),
72
- &:has(input[type="datetime-local"]),
73
- &:has(input[type="month"]) {
74
- @include icons.set-icon("calendar", "after");
75
- }
70
+ // This @supports should exclude Mozilla Firefox
71
+ // TODO: Reevaluate after Mozilla is supporting week and month input types
72
+ @supports selector(::-webkit-calendar-picker-indicator) {
73
+ &:has(input[type="date"]),
74
+ &:has(input[type="week"]),
75
+ &:has(input[type="datetime-local"]),
76
+ &:has(input[type="month"]) {
77
+ @include icons.set-icon("calendar", "after");
78
+ }
76
79
 
77
- &:has(input[type="time"]) {
78
- @include icons.set-icon("clock", "after");
80
+ &:has(input[type="time"]) {
81
+ @include icons.set-icon("clock", "after");
82
+ }
79
83
  }
80
84
 
81
85
  &:has(input[type="file"]) {
@@ -105,16 +109,35 @@ $icon-padding: calc(
105
109
  }
106
110
  }
107
111
 
112
+ &[data-variant="floating"] {
113
+ input {
114
+ &::-webkit-calendar-picker-indicator,
115
+ &::-webkit-search-cancel-button {
116
+ /* stylelint-disable-next-line db-ux/use-spacings */
117
+ margin-block-end: var(--db-base-body-icon-font-size-2xs);
118
+ }
119
+ }
120
+ }
121
+
108
122
  input {
109
123
  position: relative;
110
124
 
111
125
  &::-webkit-calendar-picker-indicator,
112
126
  &::-webkit-search-cancel-button {
127
+ @extend %db-overwrite-font-size-sm;
128
+
113
129
  background-image: none;
114
130
  inline-size: icons.$default-icon-font-size;
115
131
  block-size: icons.$default-icon-font-size;
116
132
  padding: 0;
117
133
  cursor: pointer;
134
+ /* stylelint-disable-next-line db-ux/use-spacings */
135
+ margin-block-start: variables.$db-border-width-3xs;
136
+ border-radius: variables.$db-border-radius-xs;
137
+
138
+ &:focus-visible {
139
+ @include helpers.get-focus-placeholder;
140
+ }
118
141
  }
119
142
 
120
143
  &::-webkit-search-cancel-button {
@@ -4,6 +4,7 @@
4
4
  paddings/gaps in an application e.g. the <main> should have a responsive padding. */
5
5
  /* Elevation */
6
6
  /* Border */
7
+ /* Opacity */
7
8
  /* Transitions */
8
9
  /* Variants for adaptive components like input, select, notification, ... */
9
10
  @layer variables {}
@@ -291,7 +292,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
291
292
  border-radius: var(--db-border-radius-xs);
292
293
  }
293
294
  [aria-disabled=true].db-link {
294
- opacity: 0.4;
295
+ opacity: var(--db-opacity-md);
295
296
  pointer-events: none;
296
297
  }
297
298
 
@@ -4,6 +4,7 @@
4
4
  paddings/gaps in an application e.g. the <main> should have a responsive padding. */
5
5
  /* Elevation */
6
6
  /* Border */
7
+ /* Opacity */
7
8
  /* Transitions */
8
9
  .db-visually-hidden,
9
10
  [data-visually-hidden=true] {
@@ -4,6 +4,7 @@
4
4
  paddings/gaps in an application e.g. the <main> should have a responsive padding. */
5
5
  /* Elevation */
6
6
  /* Border */
7
+ /* Opacity */
7
8
  /* Transitions */
8
9
  /* Variants for adaptive components like input, select, notification, ... */
9
10
  @layer variables {}
@@ -432,7 +433,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
432
433
  --db-icon-margin-start: auto;
433
434
  }
434
435
  .db-navigation-item[aria-disabled=true] {
435
- opacity: 0.4;
436
+ opacity: var(--db-opacity-md);
436
437
  pointer-events: none;
437
438
  }
438
439
 
@@ -161,7 +161,7 @@
161
161
  }
162
162
 
163
163
  &[aria-disabled="true"] {
164
- opacity: component.$default-disabled;
164
+ opacity: variables.$db-opacity-md;
165
165
  pointer-events: none;
166
166
  }
167
167
  }
@@ -4,6 +4,7 @@
4
4
  paddings/gaps in an application e.g. the <main> should have a responsive padding. */
5
5
  /* Elevation */
6
6
  /* Border */
7
+ /* Opacity */
7
8
  /* Transitions */
8
9
  /* Variants for adaptive components like input, select, notification, ... */
9
10
  .db-notification[data-semantic=neutral] {
@@ -1053,7 +1054,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
1053
1054
  border-radius: var(--db-border-radius-xs);
1054
1055
  }
1055
1056
  .db-notification a[aria-disabled=true] {
1056
- opacity: 0.4;
1057
+ opacity: var(--db-opacity-md);
1057
1058
  pointer-events: none;
1058
1059
  }
1059
1060
 
@@ -4,6 +4,7 @@
4
4
  paddings/gaps in an application e.g. the <main> should have a responsive padding. */
5
5
  /* Elevation */
6
6
  /* Border */
7
+ /* Opacity */
7
8
  /* Transitions */
8
9
  .db-page-document {
9
10
  block-size: 100%;
@@ -4,6 +4,7 @@
4
4
  paddings/gaps in an application e.g. the <main> should have a responsive padding. */
5
5
  /* Elevation */
6
6
  /* Border */
7
+ /* Opacity */
7
8
  /* Transitions */
8
9
  /* Variants for adaptive components like input, select, notification, ... */
9
10
  @layer variables {}
@@ -4,6 +4,7 @@
4
4
  paddings/gaps in an application e.g. the <main> should have a responsive padding. */
5
5
  /* Elevation */
6
6
  /* Border */
7
+ /* Opacity */
7
8
  /* Transitions */
8
9
  /* Variants for adaptive components like input, select, notification, ... */
9
10
  .db-visually-hidden,
@@ -162,7 +163,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
162
163
  }
163
164
  }
164
165
  .db-radio:has(input:disabled) {
165
- opacity: 0.4;
166
+ opacity: var(--db-opacity-md);
166
167
  }
167
168
  .db-radio:is(label),
168
169
  .db-radio > label {
@@ -4,6 +4,7 @@
4
4
  paddings/gaps in an application e.g. the <main> should have a responsive padding. */
5
5
  /* Elevation */
6
6
  /* Border */
7
+ /* Opacity */
7
8
  /* Transitions */
8
9
  /* Variants for adaptive components like input, select, notification, ... */
9
10
  @layer variables {}