@db-ux/core-components 3.1.20 → 4.0.1-0-540218c

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 -0
  2. package/agent/_instructions.md +7 -2
  3. package/build/components/accordion-item/accordion-item.css +4 -1
  4. package/build/components/badge/badge.css +2 -0
  5. package/build/components/brand/brand.css +2 -0
  6. package/build/components/button/button.css +2 -0
  7. package/build/components/checkbox/checkbox.css +28 -17
  8. package/build/components/checkbox/checkbox.scss +2 -52
  9. package/build/components/custom-select/custom-select.css +61 -1
  10. package/build/components/custom-select-dropdown/custom-select-dropdown.css +2 -0
  11. package/build/components/custom-select-form-field/custom-select-form-field.css +2 -0
  12. package/build/components/custom-select-list/custom-select-list.css +2 -0
  13. package/build/components/custom-select-list-item/custom-select-list-item.css +2 -0
  14. package/build/components/header/header.css +2 -0
  15. package/build/components/infotext/infotext.css +10 -7
  16. package/build/components/infotext/infotext.scss +2 -2
  17. package/build/components/input/input.css +74 -1
  18. package/build/components/link/link.css +4 -1
  19. package/build/components/navigation/navigation.css +2 -0
  20. package/build/components/navigation-item/navigation-item.css +4 -1
  21. package/build/components/notification/notification.css +4 -1
  22. package/build/components/radio/radio.css +2 -0
  23. package/build/components/select/select.css +61 -1
  24. package/build/components/switch/switch.css +298 -439
  25. package/build/components/switch/switch.scss +93 -76
  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 +4 -1
  30. package/build/components/textarea/textarea.css +76 -0
  31. package/build/components/tooltip/tooltip.css +2 -0
  32. package/build/styles/absolute.css +133 -31
  33. package/build/styles/index.css +133 -31
  34. package/build/styles/internal/_form-components.scss +87 -0
  35. package/build/styles/relative.css +133 -31
  36. package/build/styles/rollup.css +133 -31
  37. package/build/styles/webpack.css +133 -31
  38. package/package.json +2 -2
@@ -394,7 +394,8 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
394
394
  overflow: clip;
395
395
  vertical-align: var(--db-icon-vertical-align, middle);
396
396
  block-size: var(--db-icon-font-size, 1.5rem);
397
- inline-size: var(--db-icon-font-size, 1.5rem);
397
+ aspect-ratio: 1;
398
+ flex-shrink: 0;
398
399
  content: var(--db-icon, attr(data-icon));
399
400
  }
400
401
  @supports (content: ""/"") {
@@ -521,6 +522,8 @@ input[type=radio]:checked) > label {
521
522
 
522
523
  @layer variables {}
523
524
 
525
+ /* Use for body tags like <p> */
526
+ /* Use for headline tags like <h1> */
524
527
  /**
525
528
  * @mixin screen-min-max
526
529
  * @param $data an object like (min:"sm", max:"lg") or (min: "sm")
@@ -606,6 +609,18 @@ input[type=radio]:checked) > label {
606
609
  content: "*"/"";
607
610
  }
608
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
+ }
609
624
  .db-input[data-variant=floating] > label {
610
625
  opacity: var(--db-opacity-xl);
611
626
  position: absolute;
@@ -623,6 +638,14 @@ input[type=radio]:checked) > label {
623
638
  transition: none;
624
639
  opacity: 0;
625
640
  }
641
+ .db-input[data-variant=floating] input:is([type=date],
642
+ [type=datetime-local],
643
+ [type=month],
644
+ [type=week],
645
+ [type=time]):not(:user-valid)::-webkit-datetime-edit {
646
+ transition: none;
647
+ opacity: 0;
648
+ }
626
649
  .db-input[data-variant=floating] input {
627
650
  /* stylelint-disable-next-line db-ux/use-spacings */
628
651
  padding-block-start: var(--db-base-body-icon-font-size-2xs);
@@ -664,6 +687,32 @@ input[type=radio]:checked) [id$=-placeholder] {
664
687
  transition: opacity var(--db-transition-straight-emotional);
665
688
  }
666
689
  }
690
+ .db-input[data-variant=floating]:has(input:focus-within,
691
+ input:is(input, textarea):not(:placeholder-shown),
692
+ > select option:checked:not(.placeholder),
693
+ input[type=checkbox]:checked,
694
+ input[type=radio]:checked) input:is([type=date],
695
+ [type=datetime-local],
696
+ [type=month],
697
+ [type=week],
698
+ [type=time]):not(:user-valid)::-webkit-datetime-edit {
699
+ opacity: var(--db-opacity-xl);
700
+ font-family: var(--db-font-family-sans);
701
+ font-style: italic;
702
+ }
703
+ @media screen and (prefers-reduced-motion: no-preference) {
704
+ .db-input[data-variant=floating]:has(input:focus-within,
705
+ input:is(input, textarea):not(:placeholder-shown),
706
+ > select option:checked:not(.placeholder),
707
+ input[type=checkbox]:checked,
708
+ input[type=radio]:checked) input:is([type=date],
709
+ [type=datetime-local],
710
+ [type=month],
711
+ [type=week],
712
+ [type=time]):not(:user-valid)::-webkit-datetime-edit {
713
+ transition: opacity var(--db-transition-straight-emotional);
714
+ }
715
+ }
667
716
  .db-input: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):has(> .db-infotext[data-semantic=successful],
668
717
  > db-infotext > .db-infotext[data-semantic=successful]) {
669
718
  /* stylelint-disable-next-line at-rule-empty-line-before */
@@ -676,6 +725,10 @@ input[type=radio]:checked) [id$=-placeholder] {
676
725
  caret-color: var(--db-successful-on-bg-basic-emphasis-100-default);
677
726
  }
678
727
  .db-input: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):has(> .db-infotext[data-semantic=successful],
728
+ > db-infotext > .db-infotext[data-semantic=successful]) input {
729
+ border-color: var(--db-successful-on-bg-basic-emphasis-70-default);
730
+ }
731
+ .db-input: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):has(> .db-infotext[data-semantic=successful],
679
732
  > db-infotext > .db-infotext[data-semantic=successful]) > db-infotext > .db-infotext,
680
733
  .db-input: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):has(> .db-infotext[data-semantic=successful],
681
734
  > db-infotext > .db-infotext[data-semantic=successful]) > .db-infotext {
@@ -709,6 +762,11 @@ input[type=radio]:checked) [id$=-placeholder] {
709
762
  caret-color: var(--db-successful-on-bg-basic-emphasis-100-default);
710
763
  }
711
764
  .db-input:has(input[data-custom-validity=valid]):has(> .db-infotext[data-semantic=successful],
765
+ > db-infotext > .db-infotext[data-semantic=successful]) input, .db-input[data-custom-validity=valid]:has(> .db-infotext[data-semantic=successful],
766
+ > db-infotext > .db-infotext[data-semantic=successful]) input {
767
+ border-color: var(--db-successful-on-bg-basic-emphasis-70-default);
768
+ }
769
+ .db-input:has(input[data-custom-validity=valid]):has(> .db-infotext[data-semantic=successful],
712
770
  > db-infotext > .db-infotext[data-semantic=successful]) > db-infotext > .db-infotext,
713
771
  .db-input:has(input[data-custom-validity=valid]):has(> .db-infotext[data-semantic=successful],
714
772
  > db-infotext > .db-infotext[data-semantic=successful]) > .db-infotext, .db-input[data-custom-validity=valid]:has(> .db-infotext[data-semantic=successful],
@@ -743,6 +801,9 @@ input[type=radio]:checked) [id$=-placeholder] {
743
801
  color: var(--db-critical-on-bg-basic-emphasis-100-default);
744
802
  caret-color: var(--db-critical-on-bg-basic-emphasis-100-default);
745
803
  }
804
+ .db-input: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) input {
805
+ border-color: var(--db-critical-on-bg-basic-emphasis-70-default);
806
+ }
746
807
  .db-input: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) > db-infotext > .db-infotext[data-semantic=critical]:not([hidden]),
747
808
  .db-input: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) > .db-infotext[data-semantic=critical]:not([hidden]) {
748
809
  display: flex;
@@ -760,6 +821,9 @@ input[type=radio]:checked) [id$=-placeholder] {
760
821
  color: var(--db-critical-on-bg-basic-emphasis-100-default);
761
822
  caret-color: var(--db-critical-on-bg-basic-emphasis-100-default);
762
823
  }
824
+ .db-input:has(input[data-custom-validity=invalid]) input, .db-input[data-custom-validity=invalid] input {
825
+ border-color: var(--db-critical-on-bg-basic-emphasis-70-default);
826
+ }
763
827
  .db-input:has(input[data-custom-validity=invalid]) > db-infotext > .db-infotext[data-semantic=critical]:not([hidden]),
764
828
  .db-input:has(input[data-custom-validity=invalid]) > .db-infotext[data-semantic=critical]:not([hidden]), .db-input[data-custom-validity=invalid] > db-infotext > .db-infotext[data-semantic=critical]:not([hidden]),
765
829
  .db-input[data-custom-validity=invalid] > .db-infotext[data-semantic=critical]:not([hidden]) {
@@ -776,6 +840,15 @@ input[type=radio]:checked) [id$=-placeholder] {
776
840
  font-family: var(--db-font-family-sans);
777
841
  font-style: italic;
778
842
  }
843
+ .db-input input:is([type=date],
844
+ [type=datetime-local],
845
+ [type=month],
846
+ [type=week],
847
+ [type=time]):not(:user-valid)::-webkit-datetime-edit {
848
+ opacity: var(--db-opacity-xl);
849
+ font-family: var(--db-font-family-sans);
850
+ font-style: italic;
851
+ }
779
852
  .db-input input {
780
853
  background-color: var(--db-adaptive-bg-basic-transparent-semi-default);
781
854
  caret-color: var(--db-adaptive-on-bg-basic-emphasis-100-default);
@@ -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
  }
@@ -226,7 +228,8 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
226
228
  overflow: clip;
227
229
  vertical-align: var(--db-icon-vertical-align, middle);
228
230
  block-size: var(--db-icon-font-size, 1.5rem);
229
- inline-size: var(--db-icon-font-size, 1.5rem);
231
+ aspect-ratio: 1;
232
+ flex-shrink: 0;
230
233
  content: var(--db-icon, attr(data-icon));
231
234
  }
232
235
  @supports (content: ""/"") {
@@ -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")
@@ -219,7 +221,8 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
219
221
  overflow: clip;
220
222
  vertical-align: var(--db-icon-vertical-align, middle);
221
223
  block-size: var(--db-icon-font-size, 1.5rem);
222
- inline-size: var(--db-icon-font-size, 1.5rem);
224
+ aspect-ratio: 1;
225
+ flex-shrink: 0;
223
226
  content: var(--db-icon, attr(data-icon));
224
227
  }
225
228
  @supports (content: ""/"") {
@@ -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")
@@ -930,7 +932,8 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
930
932
  overflow: clip;
931
933
  vertical-align: var(--db-icon-vertical-align, middle);
932
934
  block-size: var(--db-icon-font-size, 1.5rem);
933
- inline-size: var(--db-icon-font-size, 1.5rem);
935
+ aspect-ratio: 1;
936
+ flex-shrink: 0;
934
937
  content: var(--db-icon, attr(data-icon));
935
938
  }
936
939
  @supports (content: ""/"") {
@@ -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")
@@ -394,7 +394,8 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
394
394
  overflow: clip;
395
395
  vertical-align: var(--db-icon-vertical-align, middle);
396
396
  block-size: var(--db-icon-font-size, 1.5rem);
397
- inline-size: var(--db-icon-font-size, 1.5rem);
397
+ aspect-ratio: 1;
398
+ flex-shrink: 0;
398
399
  content: var(--db-icon, attr(data-icon));
399
400
  }
400
401
  @supports (content: ""/"") {
@@ -521,6 +522,8 @@ input[type=radio]:checked) > label {
521
522
 
522
523
  @layer variables {}
523
524
 
525
+ /* Use for body tags like <p> */
526
+ /* Use for headline tags like <h1> */
524
527
  /**
525
528
  * @mixin screen-min-max
526
529
  * @param $data an object like (min:"sm", max:"lg") or (min: "sm")
@@ -632,6 +635,18 @@ input[type=radio]:checked) > label {
632
635
  content: "*"/"";
633
636
  }
634
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
+ }
635
650
  .db-select[data-variant=floating] > label {
636
651
  opacity: var(--db-opacity-xl);
637
652
  position: absolute;
@@ -649,6 +664,14 @@ input[type=radio]:checked) > label {
649
664
  transition: none;
650
665
  opacity: 0;
651
666
  }
667
+ .db-select[data-variant=floating] select:is([type=date],
668
+ [type=datetime-local],
669
+ [type=month],
670
+ [type=week],
671
+ [type=time]):not(:user-valid)::-webkit-datetime-edit {
672
+ transition: none;
673
+ opacity: 0;
674
+ }
652
675
  .db-select[data-variant=floating] select {
653
676
  /* stylelint-disable-next-line db-ux/use-spacings */
654
677
  padding-block-start: var(--db-base-body-icon-font-size-2xs);
@@ -692,6 +715,34 @@ input[type=radio]:checked) [id$=-placeholder] {
692
715
  transition: opacity var(--db-transition-straight-emotional);
693
716
  }
694
717
  }
718
+ .db-select[data-variant=floating]:has(select:focus-within,
719
+ select:is(input, textarea):not(:placeholder-shown),
720
+ > select option:checked:not(.placeholder),
721
+ input[type=checkbox]:checked,
722
+ input[type=radio]:checked) select:is([type=date],
723
+ [type=datetime-local],
724
+ [type=month],
725
+ [type=week],
726
+ [type=time]):not(:user-valid)::-webkit-datetime-edit {
727
+ opacity: var(--db-opacity-xl);
728
+ font-family: var(--db-font-family-sans);
729
+ font-style: italic;
730
+ /* stylelint-disable-next-line db-ux/use-spacings */
731
+ padding-block-start: var(--db-base-body-icon-font-size-2xs);
732
+ }
733
+ @media screen and (prefers-reduced-motion: no-preference) {
734
+ .db-select[data-variant=floating]:has(select:focus-within,
735
+ select:is(input, textarea):not(:placeholder-shown),
736
+ > select option:checked:not(.placeholder),
737
+ input[type=checkbox]:checked,
738
+ input[type=radio]:checked) select:is([type=date],
739
+ [type=datetime-local],
740
+ [type=month],
741
+ [type=week],
742
+ [type=time]):not(:user-valid)::-webkit-datetime-edit {
743
+ transition: opacity var(--db-transition-straight-emotional);
744
+ }
745
+ }
695
746
  .db-select:has(select:not([data-custom-validity]):is(:required):user-valid):has(> .db-infotext[data-semantic=successful],
696
747
  > db-infotext > .db-infotext[data-semantic=successful]) {
697
748
  /* stylelint-disable-next-line at-rule-empty-line-before */
@@ -804,6 +855,15 @@ input[type=radio]:checked) [id$=-placeholder] {
804
855
  font-family: var(--db-font-family-sans);
805
856
  font-style: italic;
806
857
  }
858
+ .db-select select:is([type=date],
859
+ [type=datetime-local],
860
+ [type=month],
861
+ [type=week],
862
+ [type=time]):not(:user-valid)::-webkit-datetime-edit {
863
+ opacity: var(--db-opacity-xl);
864
+ font-family: var(--db-font-family-sans);
865
+ font-style: italic;
866
+ }
807
867
  .db-select select {
808
868
  background-color: var(--db-adaptive-bg-basic-transparent-semi-default);
809
869
  caret-color: var(--db-adaptive-on-bg-basic-emphasis-100-default);