opui-css 3.3.3 → 3.3.4

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 (78) hide show
  1. package/LICENSE +21 -21
  2. package/dist/op.css +52 -52
  3. package/dist/theme-one/components.css +3869 -3869
  4. package/dist/theme-one/theme-one.css +4404 -4404
  5. package/dist/theme-two/components.css +3591 -3591
  6. package/dist/theme-two/theme-two.css +4121 -4121
  7. package/package.json +9 -10
  8. package/src/core/normalize.css +196 -196
  9. package/src/core/utils.css +60 -60
  10. package/src/open-props.css +10 -10
  11. package/src/themes/theme-one/components/accordion.css +172 -172
  12. package/src/themes/theme-one/components/alert.css +85 -85
  13. package/src/themes/theme-one/components/avatar.css +68 -68
  14. package/src/themes/theme-one/components/badge.css +101 -101
  15. package/src/themes/theme-one/components/button-group.css +69 -69
  16. package/src/themes/theme-one/components/button.css +281 -281
  17. package/src/themes/theme-one/components/card.css +82 -82
  18. package/src/themes/theme-one/components/checkbox-radio.css +123 -123
  19. package/src/themes/theme-one/components/chip.css +135 -135
  20. package/src/themes/theme-one/components/definition-list.css +68 -68
  21. package/src/themes/theme-one/components/dialog.css +59 -59
  22. package/src/themes/theme-one/components/divider.css +7 -7
  23. package/src/themes/theme-one/components/field-group.css +83 -83
  24. package/src/themes/theme-one/components/field.css +494 -494
  25. package/src/themes/theme-one/components/icon-button.css +40 -40
  26. package/src/themes/theme-one/components/link.css +21 -21
  27. package/src/themes/theme-one/components/list.css +318 -318
  28. package/src/themes/theme-one/components/progress.css +83 -83
  29. package/src/themes/theme-one/components/range.css +121 -121
  30. package/src/themes/theme-one/components/rich-text.css +210 -210
  31. package/src/themes/theme-one/components/select.css +163 -163
  32. package/src/themes/theme-one/components/snackbar.css +148 -148
  33. package/src/themes/theme-one/components/spinner.css +38 -38
  34. package/src/themes/theme-one/components/switch.css +225 -225
  35. package/src/themes/theme-one/components/tab-buttons.css +120 -120
  36. package/src/themes/theme-one/components/table.css +92 -92
  37. package/src/themes/theme-one/components/text-field.css +57 -57
  38. package/src/themes/theme-one/components/textarea.css +25 -25
  39. package/src/themes/theme-one/components/toggle-button-group.css +135 -135
  40. package/src/themes/theme-one/components/tooltip.css +94 -94
  41. package/src/themes/theme-one/components/typography.css +209 -209
  42. package/src/themes/theme-one/components.css +37 -37
  43. package/src/themes/theme-one/imports.css +16 -16
  44. package/src/themes/theme-one/theme.css +163 -163
  45. package/src/themes/theme-two/components/accordion.css +172 -172
  46. package/src/themes/theme-two/components/alert.css +85 -85
  47. package/src/themes/theme-two/components/avatar.css +68 -68
  48. package/src/themes/theme-two/components/badge.css +101 -101
  49. package/src/themes/theme-two/components/button-group.css +50 -50
  50. package/src/themes/theme-two/components/button.css +229 -229
  51. package/src/themes/theme-two/components/card.css +82 -82
  52. package/src/themes/theme-two/components/checkbox-radio.css +123 -123
  53. package/src/themes/theme-two/components/chip.css +135 -135
  54. package/src/themes/theme-two/components/definition-list.css +68 -68
  55. package/src/themes/theme-two/components/dialog.css +59 -59
  56. package/src/themes/theme-two/components/divider.css +7 -7
  57. package/src/themes/theme-two/components/field-group.css +83 -83
  58. package/src/themes/theme-two/components/field.css +281 -281
  59. package/src/themes/theme-two/components/icon-button.css +40 -40
  60. package/src/themes/theme-two/components/link.css +21 -21
  61. package/src/themes/theme-two/components/list.css +318 -318
  62. package/src/themes/theme-two/components/progress.css +83 -83
  63. package/src/themes/theme-two/components/range.css +121 -121
  64. package/src/themes/theme-two/components/rich-text.css +210 -210
  65. package/src/themes/theme-two/components/select.css +162 -162
  66. package/src/themes/theme-two/components/snackbar.css +148 -148
  67. package/src/themes/theme-two/components/spinner.css +38 -38
  68. package/src/themes/theme-two/components/switch.css +225 -225
  69. package/src/themes/theme-two/components/tab-buttons.css +120 -120
  70. package/src/themes/theme-two/components/table.css +99 -99
  71. package/src/themes/theme-two/components/text-field.css +57 -57
  72. package/src/themes/theme-two/components/textarea.css +25 -25
  73. package/src/themes/theme-two/components/toggle-button-group.css +135 -135
  74. package/src/themes/theme-two/components/tooltip.css +94 -94
  75. package/src/themes/theme-two/components/typography.css +209 -209
  76. package/src/themes/theme-two/components.css +37 -37
  77. package/src/themes/theme-two/imports.css +16 -16
  78. package/src/themes/theme-two/theme.css +158 -158
@@ -1,38 +1,38 @@
1
- @layer components.root {
2
- [aria-busy="true"]:not(
3
- input,
4
- select,
5
- textarea,
6
- html,
7
- progress,
8
- [aria-describedby]
9
- ) {
10
- position: relative;
11
-
12
- &::before {
13
- animation: spin 0.7s linear infinite;
14
- border-color: transparent currentColor currentColor;
15
- border-radius: 50%;
16
- border-style: solid;
17
- border-width: 3px;
18
- content: "";
19
- display: inline-block;
20
- block-size: 1em;
21
- opacity: 0.5;
22
- vertical-align: -0.14em;
23
- inline-size: 1em;
24
- }
25
-
26
- &:not(button.button):not(:empty) {
27
- &::before {
28
- margin-inline-end: 0.5em;
29
- }
30
- }
31
- }
32
-
33
- @keyframes spin {
34
- to {
35
- transform: rotate(1turn);
36
- }
37
- }
38
- }
1
+ @layer components.root {
2
+ [aria-busy="true"]:not(
3
+ input,
4
+ select,
5
+ textarea,
6
+ html,
7
+ progress,
8
+ [aria-describedby]
9
+ ) {
10
+ position: relative;
11
+
12
+ &::before {
13
+ animation: spin 0.7s linear infinite;
14
+ border-color: transparent currentColor currentColor;
15
+ border-radius: 50%;
16
+ border-style: solid;
17
+ border-width: 3px;
18
+ content: "";
19
+ display: inline-block;
20
+ block-size: 1em;
21
+ opacity: 0.5;
22
+ vertical-align: -0.14em;
23
+ inline-size: 1em;
24
+ }
25
+
26
+ &:not(button.button):not(:empty) {
27
+ &::before {
28
+ margin-inline-end: 0.5em;
29
+ }
30
+ }
31
+ }
32
+
33
+ @keyframes spin {
34
+ to {
35
+ transform: rotate(1turn);
36
+ }
37
+ }
38
+ }
@@ -1,225 +1,225 @@
1
- @layer components.root {
2
- :where(.switch) {
3
- --_accent-color: var(--primary);
4
- --_accent-contrast: var(--primary-contrast);
5
-
6
- --_dot-bg-color: light-dark(var(--gray-11), var(--gray-14));
7
- --_dot-inset: var(--size-1) auto auto var(--size-1);
8
- --_dot-outline-size: 0;
9
- --_dot-size: var(--size-3);
10
-
11
- --_track-bg-color: light-dark(var(--gray-3), var(--gray-8));
12
- --_track-height: var(--size-5);
13
- --_track-width: var(--size-8);
14
- --_transition-tf: var(--ease-4);
15
- --_transition-time: 0.2s;
16
-
17
- align-items: center;
18
- color: var(--text-color-1);
19
- display: inline-grid;
20
- gap: 0 var(--size-2);
21
- grid-auto-columns: auto;
22
- grid-auto-flow: column;
23
- inline-size: fit-content;
24
-
25
- input[type="checkbox"][role="switch"] {
26
- appearance: none;
27
- block-size: var(--_track-height);
28
- cursor: pointer;
29
- inline-size: var(--_track-width);
30
- margin: 0;
31
- position: relative;
32
-
33
- /* Track */
34
- &::before {
35
- background-color: var(--_track-bg-color);
36
- block-size: var(--_track-height);
37
- border: 1px solid var(--_dot-bg-color);
38
- border-radius: 100vmax;
39
- content: "";
40
- inline-size: var(--_track-width);
41
- inset: 0;
42
- position: absolute;
43
- }
44
-
45
- &:focus-visible {
46
- outline-offset: 2px;
47
- outline: 2px solid currentColor;
48
- }
49
-
50
- /* Dot */
51
- &::after {
52
- background-color: var(--_dot-bg-color);
53
- block-size: var(--_dot-size);
54
- border-radius: 100vmax;
55
- content: "";
56
- inline-size: var(--_dot-size);
57
- inset: var(--_dot-inset);
58
- outline-offset: -1px;
59
- outline: var(--_dot-outline-size) solid var(--_dot-bg-color);
60
- position: absolute;
61
- }
62
-
63
- /* Checked */
64
- &:checked {
65
- &::before {
66
- background-color: var(--_accent-color);
67
- border-color: var(--_accent-color);
68
- transition:
69
- background-color var(--_transition-time) var(--_transition-tf),
70
- border-color var(--_transition-time) var(--_transition-tf);
71
- }
72
-
73
- /* Dot */
74
- &::after {
75
- --_dot-bg-color: var(--_accent-contrast);
76
- --_dot-outline-size: calc(var(--size-1) - 1px);
77
-
78
- inset-inline-start: calc(
79
- var(--_track-width) - var(--_dot-size) - var(--size-1)
80
- );
81
- }
82
- }
83
-
84
- /* Animation */
85
- @media (prefers-reduced-motion: no-preference) {
86
- /* Track */
87
- &::before {
88
- transition:
89
- background-color var(--_transition-time) var(--_transition-tf),
90
- border-color var(--_transition-time) var(--_transition-tf);
91
- }
92
-
93
- /* Dot */
94
- &::after {
95
- transition: all var(--_transition-time) var(--_transition-tf);
96
- }
97
-
98
- &:active:after {
99
- --_dot-outline-size: calc(var(--size-1) + 1px);
100
- }
101
-
102
- &:checked {
103
- &:active:after {
104
- --_dot-outline-size: calc(var(--size-1) + 1px);
105
- }
106
- }
107
- }
108
- }
109
-
110
- /* Icons */
111
- &:has(.icon-checked, .icon-unchecked) {
112
- [role="switch"] {
113
- grid-column: 1 / -1;
114
- grid-row: 1;
115
- }
116
-
117
- &:has([role="switch"]:checked) {
118
- .icon-unchecked {
119
- display: none;
120
- }
121
- .icon-checked {
122
- display: block;
123
- }
124
- }
125
-
126
- .icon-checked {
127
- display: none;
128
- }
129
-
130
- svg {
131
- grid-column: 1;
132
- grid-row: 1;
133
- inline-size: var(--_dot-size);
134
- margin-inline-start: calc(
135
- var(--_track-width) - var(--_dot-size) - var(--size-1)
136
- );
137
- pointer-events: none;
138
- z-index: 1;
139
-
140
- &.icon-checked {
141
- margin-inline-start: var(--size-1);
142
- }
143
- }
144
- }
145
-
146
- /* Required dot */
147
- &:has([required]:not(:checked)) {
148
- .label:after {
149
- color: var(--red);
150
- content: "*";
151
- inset: 0 -0.25ex auto auto;
152
- position: absolute;
153
- }
154
- }
155
-
156
- /* Disabled */
157
- &:has([disabled]) {
158
- cursor: not-allowed;
159
- opacity: 0.64;
160
- user-select: none;
161
-
162
- input {
163
- cursor: not-allowed;
164
- }
165
- }
166
-
167
- /* Label */
168
- .label {
169
- grid-column: 2;
170
- grid-row: 1;
171
- min-width: 0;
172
- padding-inline: 0 1ex;
173
- position: relative;
174
- user-select: none;
175
- }
176
-
177
- /* Supporting text */
178
- .supporting-text {
179
- color: var(--text-color-2);
180
- font-size: var(--font-size-xs);
181
- grid-column: 2;
182
- grid-row: 2;
183
- line-height: 1.5;
184
- z-index: 1;
185
- }
186
-
187
- /* Size */
188
- &.small {
189
- --_dot-size: 0.75rem;
190
- --_track-height: var(--size-4);
191
- --_track-width: 2.5rem;
192
- }
193
-
194
- /* Stacked layout */
195
- &.stack {
196
- justify-items: center;
197
- grid-auto-columns: unset;
198
-
199
- .label {
200
- grid-column: 1/-1;
201
- grid-row: 2;
202
- margin-block-start: var(--size-1);
203
- padding-inline: 1ex;
204
- }
205
-
206
- .supporting-text {
207
- grid-column: 1/-1;
208
- grid-row: 3;
209
- }
210
- }
211
-
212
- /* Validation */
213
- &.error {
214
- input {
215
- outline: 2px solid var(--color-9);
216
- border-radius: var(--radius-round);
217
- }
218
-
219
- .label,
220
- .supporting-text {
221
- color: var(--color-9);
222
- }
223
- }
224
- }
225
- }
1
+ @layer components.root {
2
+ :where(.switch) {
3
+ --_accent-color: var(--primary);
4
+ --_accent-contrast: var(--primary-contrast);
5
+
6
+ --_dot-bg-color: light-dark(var(--gray-11), var(--gray-14));
7
+ --_dot-inset: var(--size-1) auto auto var(--size-1);
8
+ --_dot-outline-size: 0;
9
+ --_dot-size: var(--size-3);
10
+
11
+ --_track-bg-color: light-dark(var(--gray-3), var(--gray-8));
12
+ --_track-height: var(--size-5);
13
+ --_track-width: var(--size-8);
14
+ --_transition-tf: var(--ease-4);
15
+ --_transition-time: 0.2s;
16
+
17
+ align-items: center;
18
+ color: var(--text-color-1);
19
+ display: inline-grid;
20
+ gap: 0 var(--size-2);
21
+ grid-auto-columns: auto;
22
+ grid-auto-flow: column;
23
+ inline-size: fit-content;
24
+
25
+ input[type="checkbox"][role="switch"] {
26
+ appearance: none;
27
+ block-size: var(--_track-height);
28
+ cursor: pointer;
29
+ inline-size: var(--_track-width);
30
+ margin: 0;
31
+ position: relative;
32
+
33
+ /* Track */
34
+ &::before {
35
+ background-color: var(--_track-bg-color);
36
+ block-size: var(--_track-height);
37
+ border: 1px solid var(--_dot-bg-color);
38
+ border-radius: 100vmax;
39
+ content: "";
40
+ inline-size: var(--_track-width);
41
+ inset: 0;
42
+ position: absolute;
43
+ }
44
+
45
+ &:focus-visible {
46
+ outline-offset: 2px;
47
+ outline: 2px solid currentColor;
48
+ }
49
+
50
+ /* Dot */
51
+ &::after {
52
+ background-color: var(--_dot-bg-color);
53
+ block-size: var(--_dot-size);
54
+ border-radius: 100vmax;
55
+ content: "";
56
+ inline-size: var(--_dot-size);
57
+ inset: var(--_dot-inset);
58
+ outline-offset: -1px;
59
+ outline: var(--_dot-outline-size) solid var(--_dot-bg-color);
60
+ position: absolute;
61
+ }
62
+
63
+ /* Checked */
64
+ &:checked {
65
+ &::before {
66
+ background-color: var(--_accent-color);
67
+ border-color: var(--_accent-color);
68
+ transition:
69
+ background-color var(--_transition-time) var(--_transition-tf),
70
+ border-color var(--_transition-time) var(--_transition-tf);
71
+ }
72
+
73
+ /* Dot */
74
+ &::after {
75
+ --_dot-bg-color: var(--_accent-contrast);
76
+ --_dot-outline-size: calc(var(--size-1) - 1px);
77
+
78
+ inset-inline-start: calc(
79
+ var(--_track-width) - var(--_dot-size) - var(--size-1)
80
+ );
81
+ }
82
+ }
83
+
84
+ /* Animation */
85
+ @media (prefers-reduced-motion: no-preference) {
86
+ /* Track */
87
+ &::before {
88
+ transition:
89
+ background-color var(--_transition-time) var(--_transition-tf),
90
+ border-color var(--_transition-time) var(--_transition-tf);
91
+ }
92
+
93
+ /* Dot */
94
+ &::after {
95
+ transition: all var(--_transition-time) var(--_transition-tf);
96
+ }
97
+
98
+ &:active:after {
99
+ --_dot-outline-size: calc(var(--size-1) + 1px);
100
+ }
101
+
102
+ &:checked {
103
+ &:active:after {
104
+ --_dot-outline-size: calc(var(--size-1) + 1px);
105
+ }
106
+ }
107
+ }
108
+ }
109
+
110
+ /* Icons */
111
+ &:has(.icon-checked, .icon-unchecked) {
112
+ [role="switch"] {
113
+ grid-column: 1 / -1;
114
+ grid-row: 1;
115
+ }
116
+
117
+ &:has([role="switch"]:checked) {
118
+ .icon-unchecked {
119
+ display: none;
120
+ }
121
+ .icon-checked {
122
+ display: block;
123
+ }
124
+ }
125
+
126
+ .icon-checked {
127
+ display: none;
128
+ }
129
+
130
+ svg {
131
+ grid-column: 1;
132
+ grid-row: 1;
133
+ inline-size: var(--_dot-size);
134
+ margin-inline-start: calc(
135
+ var(--_track-width) - var(--_dot-size) - var(--size-1)
136
+ );
137
+ pointer-events: none;
138
+ z-index: 1;
139
+
140
+ &.icon-checked {
141
+ margin-inline-start: var(--size-1);
142
+ }
143
+ }
144
+ }
145
+
146
+ /* Required dot */
147
+ &:has([required]:not(:checked)) {
148
+ .label:after {
149
+ color: var(--red);
150
+ content: "*";
151
+ inset: 0 -0.25ex auto auto;
152
+ position: absolute;
153
+ }
154
+ }
155
+
156
+ /* Disabled */
157
+ &:has([disabled]) {
158
+ cursor: not-allowed;
159
+ opacity: 0.64;
160
+ user-select: none;
161
+
162
+ input {
163
+ cursor: not-allowed;
164
+ }
165
+ }
166
+
167
+ /* Label */
168
+ .label {
169
+ grid-column: 2;
170
+ grid-row: 1;
171
+ min-width: 0;
172
+ padding-inline: 0 1ex;
173
+ position: relative;
174
+ user-select: none;
175
+ }
176
+
177
+ /* Supporting text */
178
+ .supporting-text {
179
+ color: var(--text-color-2);
180
+ font-size: var(--font-size-xs);
181
+ grid-column: 2;
182
+ grid-row: 2;
183
+ line-height: 1.5;
184
+ z-index: 1;
185
+ }
186
+
187
+ /* Size */
188
+ &.small {
189
+ --_dot-size: 0.75rem;
190
+ --_track-height: var(--size-4);
191
+ --_track-width: 2.5rem;
192
+ }
193
+
194
+ /* Stacked layout */
195
+ &.stack {
196
+ justify-items: center;
197
+ grid-auto-columns: unset;
198
+
199
+ .label {
200
+ grid-column: 1/-1;
201
+ grid-row: 2;
202
+ margin-block-start: var(--size-1);
203
+ padding-inline: 1ex;
204
+ }
205
+
206
+ .supporting-text {
207
+ grid-column: 1/-1;
208
+ grid-row: 3;
209
+ }
210
+ }
211
+
212
+ /* Validation */
213
+ &.error {
214
+ input {
215
+ outline: 2px solid var(--color-9);
216
+ border-radius: var(--radius-round);
217
+ }
218
+
219
+ .label,
220
+ .supporting-text {
221
+ color: var(--color-9);
222
+ }
223
+ }
224
+ }
225
+ }