@oscarpalmer/oui 0.37.0 → 0.38.0

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 (96) hide show
  1. package/dist/css/a11y.css +1 -0
  2. package/dist/css/badge.css +1 -0
  3. package/dist/css/button.css +5 -0
  4. package/dist/css/color-picker.css +377 -0
  5. package/dist/css/color.css +0 -1
  6. package/dist/css/combobox.css +7 -0
  7. package/dist/css/content.css +1 -0
  8. package/dist/css/floatable.css +2 -0
  9. package/dist/css/form.css +7 -0
  10. package/dist/css/listbox.css +2 -0
  11. package/dist/css/message.css +2 -0
  12. package/dist/css/mixins/badge.mixins.css +2 -0
  13. package/dist/css/mixins/button.mixins.css +2 -0
  14. package/dist/css/mixins/message.mixins.css +1 -0
  15. package/dist/css/mixins/misc.mixins.css +2 -0
  16. package/dist/css/mixins/shadow.mixins.css +1 -0
  17. package/dist/css/reset.css +2 -2
  18. package/dist/css/splitter.css +1 -1
  19. package/dist/css/tabs.css +21 -21
  20. package/dist/js/color-picker.d.mts +213 -0
  21. package/dist/js/color-picker.mjs +924 -0
  22. package/dist/js/combobox/dom.combobox.mjs +8 -4
  23. package/dist/js/combobox/event.combobox.mjs +1 -1
  24. package/dist/js/combobox/index.d.mts +1 -1
  25. package/dist/js/combobox/index.mjs +56 -2
  26. package/dist/js/combobox/misc.combobox.d.mts +1 -1
  27. package/dist/js/combobox/misc.combobox.mjs +1 -1
  28. package/dist/js/combobox/state.combobox.d.mts +1 -1
  29. package/dist/js/combobox/state.combobox.mjs +1 -1
  30. package/dist/js/dialog.mjs +2 -2
  31. package/dist/js/floatable/floatable.embedded.mjs +13 -10
  32. package/dist/js/focus-trap/focus-trap.embedded.mjs +3 -3
  33. package/dist/js/{index-EfkUSals.d.mts → index-DJdFlTLm.d.mts} +39 -1
  34. package/dist/js/index.d.mts +3 -2
  35. package/dist/js/index.mjs +4 -3
  36. package/dist/js/internal/draggable.mjs +4 -4
  37. package/dist/js/internal/listbox/listbox.data.mjs +1 -1
  38. package/dist/js/internal/listbox/listbox.dom.mjs +1 -1
  39. package/dist/js/internal/listbox/listbox.event.mjs +1 -1
  40. package/dist/js/internal/listbox/listbox.form.mjs +16 -15
  41. package/dist/js/internal/listbox/listbox.misc.mjs +1 -1
  42. package/dist/js/internal/listbox/listbox.state.mjs +3 -3
  43. package/dist/js/internal/navigable.mjs +4 -3
  44. package/dist/js/listbox/event.listbox.mjs +1 -1
  45. package/dist/js/listbox/index.d.mts +38 -0
  46. package/dist/js/listbox/index.mjs +56 -2
  47. package/dist/js/listbox/misc.listbox.mjs +1 -1
  48. package/dist/js/listbox/state.listbox.mjs +1 -1
  49. package/dist/js/{listbox.data-BWd0PCy7.mjs → listbox.data-C7CRa5Ya.mjs} +5 -4
  50. package/dist/js/menu.mjs +1 -1
  51. package/dist/js/{misc.listbox-BI-XsTOf.mjs → misc.listbox-Cyz2CRDy.mjs} +2 -3
  52. package/dist/js/movable/movable.embedded.mjs +2 -2
  53. package/dist/js/popover.mjs +2 -2
  54. package/dist/js/resizable/resizable.embedded.mjs +5 -5
  55. package/dist/js/sortable/sortable.embedded.mjs +4 -4
  56. package/dist/js/splitter.mjs +6 -6
  57. package/dist/js/{state.combobox-4xq0FPCF.mjs → state.combobox-Qm3FWzYW.mjs} +3 -3
  58. package/dist/js/tabs.mjs +4 -7
  59. package/dist/js/tooltip.mjs +3 -3
  60. package/package.json +7 -5
  61. package/src/css/a11y.scss +2 -2
  62. package/src/css/badge.scss +8 -8
  63. package/src/css/button.scss +8 -8
  64. package/src/css/color-picker.scss +344 -0
  65. package/src/css/color.scss +0 -2
  66. package/src/css/combobox.scss +12 -9
  67. package/src/css/content.scss +11 -10
  68. package/src/css/floatable.scss +6 -3
  69. package/src/css/form.scss +12 -10
  70. package/src/css/listbox.scss +4 -3
  71. package/src/css/message.scss +9 -8
  72. package/src/css/mixins/badge.mixins.scss +53 -0
  73. package/src/css/mixins/button.mixins.scss +112 -0
  74. package/src/css/mixins/input.mixins.scss +114 -0
  75. package/src/css/mixins/message.mixins.scss +41 -0
  76. package/src/css/mixins/misc.mixins.scss +48 -0
  77. package/src/css/mixins/shadow.mixins.scss +57 -0
  78. package/src/css/reset.scss +2 -2
  79. package/src/css/splitter.scss +1 -1
  80. package/src/css/tabs.scss +20 -31
  81. package/src/js/color-picker.ts +1653 -0
  82. package/src/js/combobox/dom.combobox.ts +4 -0
  83. package/src/js/combobox/index.ts +63 -1
  84. package/src/js/dialog.ts +1 -1
  85. package/src/js/floatable/floatable.embedded.ts +18 -14
  86. package/src/js/index.ts +1 -0
  87. package/src/js/internal/listbox/listbox.dom.ts +2 -1
  88. package/src/js/internal/listbox/listbox.form.ts +31 -21
  89. package/src/js/internal/listbox/listbox.state.ts +2 -2
  90. package/src/js/internal/navigable.ts +2 -0
  91. package/src/js/listbox/index.ts +62 -0
  92. package/src/js/listbox/state.listbox.ts +0 -2
  93. package/src/js/popover.ts +1 -1
  94. package/src/js/tabs.ts +4 -10
  95. package/src/css/mixins.scss +0 -419
  96. /package/dist/css/{mixins.css → mixins/input.mixins.css} +0 -0
@@ -0,0 +1,53 @@
1
+ @use './shadow.mixins.scss' as shadowMixins;
2
+
3
+ @mixin badge() {
4
+ --oui-shadow-inset: color-mix(in oklab, var(--oui-absolute), transparent 50%);
5
+ --oui-shadow-value: var(--oui-gray-6);
6
+ --oui-shadow-mixed: color-mix(in oklab, var(--oui-shadow-value), transparent 87.5%);
7
+
8
+ @include shadowMixins.shadow-1(var(--oui-shadow-mixed), var(--oui-shadow-inset));
9
+
10
+ display: inline-flex;
11
+ flex-flow: row nowrap;
12
+ gap: 0.5em;
13
+ background-color: color-mix(in oklab, var(--oui-background, var(--oui-gray-1)), transparent 25%);
14
+ color: var(--oui-foreground, var(--oui-gray-8));
15
+ text-shadow: 0 1px 0 var(--oui-absolute);
16
+ line-height: 1.25;
17
+ }
18
+
19
+ @mixin badge-blue() {
20
+ --oui-background: var(--oui-blue-1);
21
+ --oui-foreground: var(--oui-blue-8);
22
+ --oui-shadow-value: var(--oui-blue-6);
23
+ }
24
+
25
+ @mixin badge-green() {
26
+ --oui-background: var(--oui-green-1);
27
+ --oui-foreground: var(--oui-green-8);
28
+ --oui-shadow-value: var(--oui-green-6);
29
+ }
30
+
31
+ @mixin badge-orange() {
32
+ --oui-background: var(--oui-orange-1);
33
+ --oui-foreground: var(--oui-orange-8);
34
+ --oui-shadow-value: var(--oui-orange-6);
35
+ }
36
+
37
+ @mixin badge-purple() {
38
+ --oui-background: var(--oui-purple-1);
39
+ --oui-foreground: var(--oui-purple-8);
40
+ --oui-shadow-value: var(--oui-purple-6);
41
+ }
42
+
43
+ @mixin badge-red() {
44
+ --oui-background: var(--oui-red-1);
45
+ --oui-foreground: var(--oui-red-8);
46
+ --oui-shadow-value: var(--oui-red-6);
47
+ }
48
+
49
+ @mixin badge-yellow() {
50
+ --oui-background: var(--oui-yellow-1);
51
+ --oui-foreground: var(--oui-yellow-8);
52
+ --oui-shadow-value: var(--oui-yellow-6);
53
+ }
@@ -0,0 +1,112 @@
1
+ @use './shadow.mixins.scss' as shadowMixins;
2
+
3
+ @mixin button() {
4
+ --oui-background-percentage: 25%;
5
+ --oui-background-value: var(--oui-gray-2);
6
+ --oui-foreground-percentage: 0%;
7
+ --oui-foreground-value: var(--oui-gray-8);
8
+ --oui-outline-percentage: 100%;
9
+ --oui-outline-value: var(--oui-gray-6);
10
+ --oui-shadow-inset: color-mix(in oklab, var(--oui-absolute), transparent 75%);
11
+ --oui-shadow-percentage: 82.5%;
12
+
13
+ --oui-shadow-value: color-mix(
14
+ in oklab,
15
+ var(--oui-outline-value),
16
+ transparent var(--oui-shadow-percentage)
17
+ );
18
+
19
+ @include shadowMixins.shadow-2(var(--oui-shadow-value), var(--oui-shadow-inset));
20
+
21
+ padding: 0.5em 0.75em;
22
+ display: inline-flex;
23
+ flex-flow: row wrap;
24
+ gap: 0.75em;
25
+ align-items: center;
26
+ border-radius: 0.25em;
27
+ background-color: color-mix(
28
+ in oklab,
29
+ var(--oui-background-value),
30
+ transparent var(--oui-background-percentage)
31
+ );
32
+ outline: 4px solid
33
+ color-mix(in oklab, var(--oui-outline-value), transparent var(--oui-outline-percentage));
34
+ border: none;
35
+ color: color-mix(
36
+ in oklab,
37
+ var(--oui-foreground-value),
38
+ transparent var(--oui-foreground-percentage)
39
+ );
40
+ line-height: 1.25;
41
+ transition: 0.125s ease-in-out;
42
+ transition-property: background, outline, box-shadow, color;
43
+
44
+ &:focus-visible {
45
+ --oui-outline-percentage: 75%;
46
+ }
47
+
48
+ @media (hover: hover) {
49
+ &:not([disabled], [aria-disabled='true' i]):hover {
50
+ --oui-background-percentage: 50%;
51
+ --oui-foreground-percentage: 25%;
52
+ --oui-shadow-percentage: 90%;
53
+ }
54
+ }
55
+
56
+ &:not([disabled], [aria-disabled='true' i]):active {
57
+ box-shadow:
58
+ 0 0 0 1px var(--oui-shadow-value),
59
+ inset 0 1px 2px 0 var(--oui-shadow-value),
60
+ inset 0 2px 4px 0 var(--oui-shadow-value);
61
+ scale: 0.95;
62
+
63
+ &[aria-pressed='true' i], &[aria-selected='true' i] {
64
+ scale: 1;
65
+ }
66
+ }
67
+
68
+ &[disabled],
69
+ &[aria-disabled='true' i] {
70
+ --oui-background-percentage: 80%;
71
+ --oui-foreground-percentage: 25%;
72
+ --oui-shadow-percentage: 92.5%;
73
+
74
+ font-style: italic;
75
+ }
76
+ }
77
+
78
+ @mixin button-blue() {
79
+ --oui-background-value: var(--oui-blue-3);
80
+ --oui-foreground-value: var(--oui-blue-8);
81
+ --oui-outline-value: var(--oui-blue-6);
82
+ }
83
+
84
+ @mixin button-green() {
85
+ --oui-background-value: var(--oui-green-3);
86
+ --oui-foreground-value: var(--oui-green-8);
87
+ --oui-outline-value: var(--oui-green-6);
88
+ }
89
+
90
+ @mixin button-orange() {
91
+ --oui-background-value: var(--oui-orange-3);
92
+ --oui-foreground-value: var(--oui-orange-8);
93
+ --oui-outline-value: var(--oui-orange-6);
94
+ }
95
+
96
+ @mixin button-purple() {
97
+ --oui-background-value: var(--oui-purple-3);
98
+ --oui-foreground-value: var(--oui-purple-8);
99
+ --oui-outline-value: var(--oui-purple-6);
100
+ }
101
+
102
+ @mixin button-red() {
103
+ --oui-background-value: var(--oui-red-3);
104
+ --oui-foreground-value: var(--oui-red-8);
105
+ --oui-outline-value: var(--oui-red-6);
106
+ }
107
+
108
+ @mixin button-yellow() {
109
+ --oui-background-value: var(--oui-yellow-3);
110
+ --oui-foreground-value: var(--oui-yellow-8);
111
+ --oui-outline-value: var(--oui-yellow-6);
112
+ }
@@ -0,0 +1,114 @@
1
+ @mixin input {
2
+ @include input-outlined;
3
+
4
+ --oui-background-percentage: 0%;
5
+ --oui-foreground-percentage: 0%;
6
+
7
+ align-content: center;
8
+ background-color: color-mix(
9
+ in oklab,
10
+ var(--oui-background-value),
11
+ transparent var(--oui-background-percentage)
12
+ );
13
+ border: 1px solid var(--oui-border-value, var(--oui-gray-3));
14
+ box-shadow: inset 0 2px 4px -1px var(--oui-gray-3);
15
+ color: color-mix(
16
+ in oklab,
17
+ var(--oui-foreground-value, inherit),
18
+ transparent var(--oui-foreground-percentage)
19
+ );
20
+ -webkit-text-fill-color: color-mix(
21
+ in oklab,
22
+ var(--oui-foreground-value, inherit),
23
+ transparent var(--oui-foreground-percentage)
24
+ );
25
+ transition: 0.125s ease-in-out;
26
+ transition-property: background, outline, border, box-shadow, color;
27
+
28
+ &.oui-validate:not(
29
+ [disabled],
30
+ [readonly],
31
+ [aria-disabled='true' i],
32
+ [aria-readonly='true' i],
33
+ :focus-visible,
34
+ :focus-within
35
+ ):is(:user-invalid:not([aria-invalid='false' i]), [aria-invalid='true' i]) {
36
+ @include input-invalid;
37
+ }
38
+
39
+ &.oui-validate:not(
40
+ [disabled],
41
+ [readonly],
42
+ [aria-disabled='true' i],
43
+ [aria-readonly='true' i],
44
+ :focus-visible,
45
+ :focus-within
46
+ ):is(:user-valid:not([aria-invalid='true' i]), [aria-invalid='false' i]) {
47
+ @include input-valid;
48
+ }
49
+
50
+ &:not([disabled], [readonly], [aria-disabled='true' i], [aria-readonly='true' i]) {
51
+ &:focus-visible,
52
+ &:focus-within {
53
+ @include input-focus;
54
+ }
55
+
56
+ @media (hover: hover) {
57
+ &:hover {
58
+ @include input-hover;
59
+ }
60
+ }
61
+ }
62
+
63
+ &:is([disabled], [readonly], [aria-disabled='true' i], [aria-readonly='true' i]) {
64
+ --oui-foreground-percentage: 25%;
65
+
66
+ font-style: italic;
67
+ }
68
+
69
+ &:is([disabled], [readonly], [aria-disabled='true' i], [aria-readonly='true' i]):focus-visible {
70
+ --oui-outline-percentage: 75%;
71
+ }
72
+
73
+ &:is([disabled], [aria-disabled='true' i]) {
74
+ --oui-background-percentage: 50%;
75
+ }
76
+ }
77
+
78
+ @mixin input-focus() {
79
+ --oui-border-value: var(--oui-blue-5);
80
+ --oui-foreground-value: inherit;
81
+ --oui-outline-percentage: 75%;
82
+ --oui-outline-value: var(--oui-blue-6);
83
+ }
84
+
85
+ @mixin input-hover() {
86
+ --oui-border-value: var(--oui-blue-4);
87
+ --oui-foreground-percentage: 0%;
88
+ --oui-foreground-value: inherit;
89
+ --oui-outline-percentage: 90%;
90
+ --oui-outline-value: var(--oui-blue-6);
91
+ }
92
+
93
+ @mixin input-invalid() {
94
+ --oui-border-value: var(--oui-red-5);
95
+ --oui-foreground-value: var(--oui-red-9);
96
+ --oui-outline-percentage: 82.5%;
97
+ --oui-outline-value: var(--oui-red-6);
98
+ }
99
+
100
+ @mixin input-outlined {
101
+ --oui-outline-percentage: 100%;
102
+ --oui-outline-value: var(--oui-blue-6);
103
+
104
+ outline: 4px solid
105
+ color-mix(in oklab, var(--oui-outline-value), transparent var(--oui-outline-percentage));
106
+ outline-offset: 0;
107
+ }
108
+
109
+ @mixin input-valid() {
110
+ --oui-border-value: var(--oui-green-5);
111
+ --oui-foreground-value: var(--oui-green-9);
112
+ --oui-outline-percentage: 82.5%;
113
+ --oui-outline-value: var(--oui-green-6);
114
+ }
@@ -0,0 +1,41 @@
1
+ @mixin message-blue() {
2
+ --oui-background: var(--oui-blue-1);
3
+ --oui-border: var(--oui-blue-2);
4
+ --oui-foreground: var(--oui-blue-8);
5
+ --oui-shadow-value: var(--oui-blue-6);
6
+ }
7
+
8
+ @mixin message-green() {
9
+ --oui-background: var(--oui-green-1);
10
+ --oui-border: var(--oui-green-2);
11
+ --oui-foreground: var(--oui-green-8);
12
+ --oui-shadow-value: var(--oui-green-6);
13
+ }
14
+
15
+ @mixin message-orange() {
16
+ --oui-background: var(--oui-orange-1);
17
+ --oui-border: var(--oui-orange-2);
18
+ --oui-foreground: var(--oui-orange-8);
19
+ --oui-shadow-value: var(--oui-orange-6);
20
+ }
21
+
22
+ @mixin message-purple() {
23
+ --oui-background: var(--oui-purple-1);
24
+ --oui-border: var(--oui-purple-2);
25
+ --oui-foreground: var(--oui-purple-8);
26
+ --oui-shadow-value: var(--oui-purple-6);
27
+ }
28
+
29
+ @mixin message-red() {
30
+ --oui-background: var(--oui-red-1);
31
+ --oui-border: var(--oui-red-2);
32
+ --oui-foreground: var(--oui-red-8);
33
+ --oui-shadow-value: var(--oui-red-6);
34
+ }
35
+
36
+ @mixin message-yellow() {
37
+ --oui-background: var(--oui-yellow-1);
38
+ --oui-border: var(--oui-yellow-2);
39
+ --oui-foreground: var(--oui-yellow-8);
40
+ --oui-shadow-value: var(--oui-yellow-6);
41
+ }
@@ -0,0 +1,48 @@
1
+ @use './shadow.mixins.scss' as shadowMixins;
2
+
3
+ @mixin card(
4
+ $backgroundColor: var(--oui-absolute),
5
+ $boxShadowColor: color-mix(in oklab, var(--oui-gray-6), transparent 92.5%)
6
+ ) {
7
+ @include shadowMixins.shadow-1($boxShadowColor);
8
+
9
+ padding: 1em 1.25em;
10
+ background-color: $backgroundColor;
11
+ border-radius: 0.5em;
12
+ }
13
+
14
+ @mixin floatable() {
15
+ --margin-bottom: 0.5em;
16
+ --margin-left: 0.5em;
17
+ --margin-right: 0.5em;
18
+ --margin-top: 0.5em;
19
+
20
+ inset-block: var(--margin-top) var(--margin-bottom);
21
+ inset-inline: var(--margin-left) var(--margin-right);
22
+
23
+ &[oui-position$='bottom' i] {
24
+ --margin-bottom: 0;
25
+ }
26
+
27
+ &[oui-position$='end' i] {
28
+ --margin-right: 0;
29
+ }
30
+
31
+ &[oui-position$='start' i] {
32
+ --margin-left: 0;
33
+ }
34
+
35
+ &[oui-position$='top' i] {
36
+ --margin-top: 0;
37
+ }
38
+ }
39
+
40
+ @mixin visually-hidden() {
41
+ width: 1px !important;
42
+ height: 1px !important;
43
+ padding: 0 !important;
44
+ clip-path: inset(50%) !important;
45
+ overflow: hidden !important;
46
+ border: 0 !important;
47
+ white-space: nowrap !important;
48
+ }
@@ -0,0 +1,57 @@
1
+ @mixin shadow-0($color: rgb(0 0 0 / 5%), $inset: transparent) {
2
+ box-shadow:
3
+ inset 0 1px 0 0 $inset,
4
+ 0 0 0 1px $color,
5
+ 0 1px 2px -0.5px $color;
6
+ }
7
+
8
+ @mixin shadow-1($color: rgb(0 0 0 / 5%), $inset: transparent) {
9
+ box-shadow:
10
+ inset 0 1px 0 0 $inset,
11
+ 0 0 0 1px $color,
12
+ 0 1px 2px -0.5px $color,
13
+ 0 2px 4px -1px $color;
14
+ }
15
+
16
+ @mixin shadow-2($color: rgb(0 0 0 / 5%), $inset: transparent) {
17
+ box-shadow:
18
+ inset 0 1px 0 0 $inset,
19
+ 0 0 0 1px $color,
20
+ 0 1px 2px -0.5px $color,
21
+ 0 2px 4px -1px $color,
22
+ 0 4px 8px -2px $color;
23
+ }
24
+
25
+ @mixin shadow-3($color: rgb(0 0 0 / 5%), $inset: transparent) {
26
+ box-shadow:
27
+ inset 0 1px 0 0 $inset,
28
+ 0 0 0 1px $color,
29
+ 0 1px 2px -0.5px $color,
30
+ 0 2px 4px -1px $color,
31
+ 0 4px 8px -2px $color,
32
+ 0 8px 16px -4px $color;
33
+ }
34
+
35
+ @mixin shadow-4($color: rgb(0 0 0 / 5%), $inset: transparent) {
36
+ box-shadow:
37
+ inset 0 1px 0 0 $inset,
38
+ 0 0 0 1px $color,
39
+ 0 1px 2px -0.5px $color,
40
+ 0 2px 4px -1px $color,
41
+ 0 4px 8px -2px $color,
42
+ 0 8px 16px -4px $color,
43
+ 0 16px 32px -8px $color;
44
+ }
45
+
46
+ @mixin shadow-5($color: rgb(0 0 0 / 5%), $inset: transparent) {
47
+ box-shadow:
48
+ inset 0 1px 0 0 $inset,
49
+ 0 0 0 1px $color,
50
+ 0 1px 2px -0.5px $color,
51
+ 0 2px 4px -1px $color,
52
+ 0 4px 8px -2px $color,
53
+ 0 8px 16px -4px $color,
54
+ 0 16px 32px -8px $color,
55
+ 0 32px 64px -16px $color,
56
+ 0 64px 128px -32px $color;
57
+ }
@@ -226,9 +226,9 @@
226
226
 
227
227
  :where(select, input[list]) {
228
228
  appearance: none;
229
- padding-right: 1em;
229
+ padding-right: 1.5em;
230
230
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='4'%3E%3Cpath d='M4 0h6L7 4'/%3E%3C/svg%3E");
231
- background-position: right center / 1em;
231
+ background-position: right 0.5em center;
232
232
  background-repeat: no-repeat;
233
233
  border-radius: 0;
234
234
  }
@@ -1,4 +1,4 @@
1
- @use 'mixins.scss' as mixins;
1
+ /*! https://github.com/oscarpalmer/oui */
2
2
 
3
3
  oui-splitter {
4
4
  :where(&) {
package/src/css/tabs.scss CHANGED
@@ -1,11 +1,13 @@
1
- @use './mixins.scss' as mixins;
1
+ /*! https://github.com/oscarpalmer/oui */
2
+
3
+ @use './mixins/button.mixins.scss' as buttonMixins;
2
4
 
3
5
  oui-tabs {
4
6
  :where(&) {
5
7
  display: flex;
6
8
  }
7
9
 
8
- :where(&[orientation='horizontal' i]) {
10
+ :where(&:not([orientation='horizontal' i])) {
9
11
  flex-flow: column nowrap;
10
12
  }
11
13
 
@@ -19,31 +21,18 @@ oui-tabs {
19
21
  padding: 1em;
20
22
  flex: 1;
21
23
  background-color: var(--oui-absolute);
22
- }
23
-
24
- :where(oui-tabs[orientation='horizontal' i] > &) {
25
- border-radius: 0 0 0.5em 0.5em;
26
- box-shadow:
27
- 0 0 0 1px rgb(0 0 0 / 12.5%),
28
- inset 0 1px 2px -0.5px rgb(0 0 0 / 5%),
29
- inset 0 2px 4px -1px rgb(0 0 0 / 5%);
30
- }
31
-
32
- :where(oui-tabs[orientation='vertical' i] > &) {
33
- border-radius: 0 0.5em 0.5em 0;
34
- box-shadow:
35
- 0 0 0 1px rgb(0 0 0 / 12.5%),
36
- inset 1px 1px 2px -0.5px rgb(0 0 0 / 5%),
37
- inset 2px 2px 4px -1px rgb(0 0 0 / 5%);
24
+ border: 1px solid var(--oui-gray-3);
25
+ position: relative;
26
+ z-index: 0;
38
27
  }
39
28
  }
40
29
 
41
30
  [oui-tabs-tab] {
42
31
  :where(&) {
43
- @include mixins.button;
44
- @include mixins.button-blue;
32
+ @include buttonMixins.button;
45
33
 
46
- font-size: 0.875rem;
34
+ font-size: 0.75rem;
35
+ flex-shrink: 0;
47
36
  align-self: flex-end;
48
37
  }
49
38
 
@@ -61,25 +50,25 @@ oui-tabs {
61
50
  :where(&) {
62
51
  display: flex;
63
52
  gap: 0.5em;
53
+ position: relative;
54
+ z-index: 0;
55
+ }
56
+
57
+ :where(&:focus-within) {
58
+ z-index: 1;
64
59
  }
65
60
 
66
61
  &[aria-orientation='horizontal' i] {
67
62
  :where(&) {
68
- flex-flow: row nowrap;
69
- }
70
-
71
- :where(& > [oui-tabs-tab]) {
72
- border-radius: 0.25em 0.25em 0 0;
63
+ margin: 0 0 0.5em;
64
+ flex-flow: row wrap;
73
65
  }
74
66
  }
75
67
 
76
68
  &[aria-orientation='vertical' i] {
77
69
  :where(&) {
78
- flex-flow: column nowrap;
79
- }
80
-
81
- :where(& > [oui-tabs-tab]) {
82
- border-radius: 0.25em 0 0 0.25em;
70
+ margin: 0 0.5em 0 0;
71
+ flex-flow: column wrap;
83
72
  }
84
73
  }
85
74
  }