opui-css 3.3.1 → 3.3.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 (76) hide show
  1. package/LICENSE +21 -21
  2. package/dist/op.css +52 -52
  3. package/dist/theme-one.css +4404 -4404
  4. package/dist/theme-two.css +4121 -4121
  5. package/package.json +1 -1
  6. package/src/core/normalize.css +196 -196
  7. package/src/core/utils.css +60 -60
  8. package/src/open-props.css +10 -10
  9. package/src/themes/theme-one/components/accordion.css +172 -172
  10. package/src/themes/theme-one/components/alert.css +85 -85
  11. package/src/themes/theme-one/components/avatar.css +68 -68
  12. package/src/themes/theme-one/components/badge.css +101 -101
  13. package/src/themes/theme-one/components/button-group.css +69 -69
  14. package/src/themes/theme-one/components/button.css +281 -281
  15. package/src/themes/theme-one/components/card.css +82 -82
  16. package/src/themes/theme-one/components/checkbox-radio.css +123 -123
  17. package/src/themes/theme-one/components/chip.css +135 -135
  18. package/src/themes/theme-one/components/definition-list.css +68 -68
  19. package/src/themes/theme-one/components/dialog.css +59 -59
  20. package/src/themes/theme-one/components/divider.css +7 -7
  21. package/src/themes/theme-one/components/field-group.css +83 -83
  22. package/src/themes/theme-one/components/field.css +494 -494
  23. package/src/themes/theme-one/components/icon-button.css +40 -40
  24. package/src/themes/theme-one/components/link.css +21 -21
  25. package/src/themes/theme-one/components/list.css +318 -318
  26. package/src/themes/theme-one/components/progress.css +83 -83
  27. package/src/themes/theme-one/components/range.css +121 -121
  28. package/src/themes/theme-one/components/rich-text.css +210 -210
  29. package/src/themes/theme-one/components/select.css +163 -163
  30. package/src/themes/theme-one/components/snackbar.css +148 -148
  31. package/src/themes/theme-one/components/spinner.css +38 -38
  32. package/src/themes/theme-one/components/switch.css +225 -225
  33. package/src/themes/theme-one/components/tab-buttons.css +120 -120
  34. package/src/themes/theme-one/components/table.css +92 -92
  35. package/src/themes/theme-one/components/text-field.css +57 -57
  36. package/src/themes/theme-one/components/textarea.css +25 -25
  37. package/src/themes/theme-one/components/toggle-button-group.css +135 -135
  38. package/src/themes/theme-one/components/tooltip.css +94 -94
  39. package/src/themes/theme-one/components/typography.css +209 -209
  40. package/src/themes/theme-one/components.css +37 -37
  41. package/src/themes/theme-one/imports.css +16 -16
  42. package/src/themes/theme-one/theme.css +163 -163
  43. package/src/themes/theme-two/components/accordion.css +172 -172
  44. package/src/themes/theme-two/components/alert.css +85 -85
  45. package/src/themes/theme-two/components/avatar.css +68 -68
  46. package/src/themes/theme-two/components/badge.css +101 -101
  47. package/src/themes/theme-two/components/button-group.css +50 -50
  48. package/src/themes/theme-two/components/button.css +229 -229
  49. package/src/themes/theme-two/components/card.css +82 -82
  50. package/src/themes/theme-two/components/checkbox-radio.css +123 -123
  51. package/src/themes/theme-two/components/chip.css +135 -135
  52. package/src/themes/theme-two/components/definition-list.css +68 -68
  53. package/src/themes/theme-two/components/dialog.css +59 -59
  54. package/src/themes/theme-two/components/divider.css +7 -7
  55. package/src/themes/theme-two/components/field-group.css +83 -83
  56. package/src/themes/theme-two/components/field.css +281 -281
  57. package/src/themes/theme-two/components/icon-button.css +40 -40
  58. package/src/themes/theme-two/components/link.css +21 -21
  59. package/src/themes/theme-two/components/list.css +318 -318
  60. package/src/themes/theme-two/components/progress.css +83 -83
  61. package/src/themes/theme-two/components/range.css +121 -121
  62. package/src/themes/theme-two/components/rich-text.css +210 -210
  63. package/src/themes/theme-two/components/select.css +162 -162
  64. package/src/themes/theme-two/components/snackbar.css +148 -148
  65. package/src/themes/theme-two/components/spinner.css +38 -38
  66. package/src/themes/theme-two/components/switch.css +225 -225
  67. package/src/themes/theme-two/components/tab-buttons.css +120 -120
  68. package/src/themes/theme-two/components/table.css +99 -99
  69. package/src/themes/theme-two/components/text-field.css +57 -57
  70. package/src/themes/theme-two/components/textarea.css +25 -25
  71. package/src/themes/theme-two/components/toggle-button-group.css +135 -135
  72. package/src/themes/theme-two/components/tooltip.css +94 -94
  73. package/src/themes/theme-two/components/typography.css +209 -209
  74. package/src/themes/theme-two/components.css +37 -37
  75. package/src/themes/theme-two/imports.css +16 -16
  76. package/src/themes/theme-two/theme.css +158 -158
@@ -1,281 +1,281 @@
1
- @layer components.root {
2
- :where(.button) {
3
- --_bg-color: transparent;
4
- --_border-color: transparent;
5
- --_border-radius: var(--button-border-radius);
6
- --_font-size: initial;
7
- --_min-height: 2.375rem;
8
- --_text-color: var(--primary);
9
-
10
- -webkit-tap-highlight-color: transparent;
11
- -webkit-touch-callout: none;
12
- align-items: center;
13
- background: var(--_bg-color) var(--ripple, none);
14
- border-radius: var(--_border-radius);
15
- border: var(--border-size-1) solid var(--_border-color);
16
- color: var(--_text-color);
17
- display: inline-flex;
18
- font-size: var(--_font-size);
19
- font-weight: 700;
20
- gap: var(--size-2);
21
- justify-content: center;
22
- min-block-size: var(--_min-height);
23
- padding-block: 0.5ex;
24
- padding-inline: 1.5ex;
25
- text-align: center;
26
- text-decoration: none;
27
-
28
- user-select: none;
29
-
30
- &:where([disabled]) {
31
- cursor: not-allowed;
32
- opacity: 0.64;
33
- }
34
-
35
- @media (prefers-reduced-motion: no-preference) {
36
- transition:
37
- background-color 0.2s var(--ease-out-3),
38
- box-shadow 0.2s var(--ease-out-3),
39
- border-color 0.2s var(--ease-out-3),
40
- color 0.2s var(--ease-out-3),
41
- outline-offset 0.05s var(--ease-1);
42
-
43
- /* Ripple effect */
44
- background-position: center;
45
-
46
- &:where(:not([disabled])) {
47
- &:where(:not(:active):hover) {
48
- --ripple: radial-gradient(circle, transparent 1%, var(--_bg-color) 1%)
49
- center/15000%;
50
-
51
- transition: background var(--button-ripple-duration);
52
- }
53
-
54
- &:where(:hover:active) {
55
- background-size: var(--button-ripple-size);
56
- transition: background 0s;
57
- }
58
- }
59
- }
60
-
61
- /* Element states */
62
- &:where(:not([disabled])) {
63
- &:where(:not(:active):hover) {
64
- --_bg-color: light-dark(
65
- oklch(from var(--primary) l 0.01 h / 20%),
66
- oklch(from var(--primary) l 0.01 h / 40%)
67
- );
68
- }
69
-
70
- &:where(:hover:active) {
71
- --_bg-color: light-dark(
72
- oklch(from var(--primary) l 0.06 h / 30%),
73
- oklch(from var(--primary) l 0.06 h / 40%)
74
- );
75
- }
76
- }
77
-
78
- /* Disabled */
79
- &:where([disabled]) {
80
- --_text-color: color-mix(
81
- in oklch,
82
- var(--text-color-2) 50%,
83
- var(--surface-default)
84
- );
85
- }
86
-
87
- /* Icon */
88
- &:where(:has(svg), &.icon-only) {
89
- gap: 1ex;
90
-
91
- svg {
92
- max-block-size: 0.7lh;
93
- color: currentColor;
94
- }
95
- }
96
-
97
- /* Keyboard input */
98
- :is(kbd) {
99
- background-color: inherit;
100
- border-color: currentColor;
101
- color: inherit;
102
- font-size: 0.85em;
103
- line-height: 1.2;
104
- }
105
-
106
- /* Sizes */
107
- &.small {
108
- --_min-height: 1.875rem;
109
- padding-block: 0;
110
- padding-inline: 1ex;
111
- }
112
-
113
- &.large {
114
- --_min-height: 2.875rem;
115
- padding-inline: 4ex;
116
- }
117
-
118
- /* Variants */
119
- &.outlined {
120
- --_bg-color: var(--surface-default);
121
- --_border-color: var(--color-8);
122
- --_text-color: var(--color-8);
123
-
124
- &:where(:not([disabled])) {
125
- &:where(:not(:active):hover) {
126
- --_bg-color: var(--color-10);
127
- --_border-color: var(--color-10);
128
- --_text-color: var(--color-1);
129
- }
130
-
131
- &:where(:active) {
132
- --_bg-color: var(--color-9);
133
- --_border-color: var(--color-9);
134
- --_text-color: var(--color-1);
135
- }
136
- }
137
-
138
- &:where([disabled]) {
139
- --_bg-color: var(--surface-default);
140
- --_border-color: color-mix(
141
- in oklch,
142
- var(--text-color-2) 20%,
143
- var(--surface-default)
144
- );
145
- --_text-color: color-mix(
146
- in oklch,
147
- var(--text-color-2) 40%,
148
- var(--surface-default)
149
- );
150
- }
151
- }
152
- &.tonal {
153
- --_bg-color: var(--color-6);
154
- --_text-color: var(--color-16);
155
-
156
- &:where(:not([disabled])) {
157
- &:where(:not(:active):hover) {
158
- --_bg-color: var(--color-9);
159
- --_border-color: var(--color-9);
160
- }
161
-
162
- &:where(:active) {
163
- --_bg-color: var(--color-7);
164
- --_border-color: var(--color-7);
165
- }
166
- }
167
-
168
- &:where([disabled]) {
169
- --_bg-color: color-mix(
170
- in oklch,
171
- var(--text-color-2) 8%,
172
- var(--surface-default)
173
- );
174
- --_text-color: color-mix(
175
- in oklch,
176
- var(--text-color-2) 70%,
177
- var(--surface-default)
178
- );
179
- }
180
- }
181
- &.filled {
182
- --_bg-color: var(--color-8);
183
- --_text-color: var(--color-1);
184
-
185
- &:where(:not([disabled])) {
186
- &:where(:not(:active):hover) {
187
- --_bg-color: var(--color-10);
188
- --_border-color: var(--color-10);
189
- }
190
-
191
- &:where(:active) {
192
- --_bg-color: var(--color-9);
193
- --_border-color: var(--color-9);
194
- }
195
- }
196
-
197
- &:where([disabled]) {
198
- --_bg-color: color-mix(
199
- in oklch,
200
- var(--text-color-2) 20%,
201
- var(--surface-default)
202
- );
203
- --_text-color: color-mix(
204
- in oklch,
205
- var(--text-color-2) 70%,
206
- var(--surface-default)
207
- );
208
- }
209
- }
210
- &.elevated {
211
- --_bg-color: light-dark(
212
- color-mix(in oklch, var(--gray-2) 97%, var(--color-16)),
213
- color-mix(in oklch, var(--gray-13) 97%, var(--color-1))
214
- );
215
- --_ripple-color: light-dark(
216
- color-mix(in oklch, var(--gray-2) 80%, var(--color-8)),
217
- color-mix(in oklch, var(--gray-13) 80%, var(--color-8))
218
- );
219
- --_text-color: var(--color-8);
220
-
221
- box-shadow:
222
- 0px 3px 1px -2px oklch(0 0 0 / 20%),
223
- 0px 2px 2px 0px oklch(0 0 0 / 14%),
224
- 0px 1px 5px 0px oklch(0 0 0 / 12%);
225
-
226
- &:where(:not([disabled])) {
227
- &:where(:not(:active):hover) {
228
- --ripple: radial-gradient(
229
- circle,
230
- transparent 1%,
231
- var(--_ripple-color) 1%
232
- )
233
- center/15000%;
234
-
235
- --_bg-color: light-dark(
236
- color-mix(in oklch, var(--gray-2) 93%, var(--color-8)),
237
- color-mix(in oklch, var(--gray-13) 93%, var(--color-8))
238
- );
239
- }
240
-
241
- &:where(:hover:active) {
242
- --_bg-color: light-dark(
243
- color-mix(in oklch, var(--gray-2) 91%, var(--color-8)),
244
- color-mix(in oklch, var(--gray-13) 91%, var(--color-8))
245
- );
246
- }
247
- }
248
-
249
- &:where([disabled]) {
250
- --_bg-color: color-mix(
251
- in oklch,
252
- var(--text-color-2) 8%,
253
- var(--surface-elevated)
254
- );
255
- --_text-color: color-mix(
256
- in oklch,
257
- var(--text-color-2) 70%,
258
- var(--surface-elevated)
259
- );
260
- }
261
- }
262
- }
263
-
264
- /* file input */
265
- :where(input[type="file"]) {
266
- align-self: flex-start;
267
- border-radius: var(--radius-2);
268
- border: var(--border-size-1) solid var(--surface-filled);
269
- box-shadow: var(--inner-shadow-4);
270
- color: var(--text-color-2-contrast);
271
- cursor: initial;
272
- max-inline-size: 100%;
273
- padding: 0;
274
- }
275
-
276
- :where(input[type="file"])::-webkit-file-upload-button,
277
- :where(input[type="file"])::file-selector-button {
278
- cursor: pointer;
279
- margin-inline-end: var(--size-relative-6);
280
- }
281
- }
1
+ @layer components.root {
2
+ :where(.button) {
3
+ --_bg-color: transparent;
4
+ --_border-color: transparent;
5
+ --_border-radius: var(--button-border-radius);
6
+ --_font-size: initial;
7
+ --_min-height: 2.375rem;
8
+ --_text-color: var(--primary);
9
+
10
+ -webkit-tap-highlight-color: transparent;
11
+ -webkit-touch-callout: none;
12
+ align-items: center;
13
+ background: var(--_bg-color) var(--ripple, none);
14
+ border-radius: var(--_border-radius);
15
+ border: var(--border-size-1) solid var(--_border-color);
16
+ color: var(--_text-color);
17
+ display: inline-flex;
18
+ font-size: var(--_font-size);
19
+ font-weight: 700;
20
+ gap: var(--size-2);
21
+ justify-content: center;
22
+ min-block-size: var(--_min-height);
23
+ padding-block: 0.5ex;
24
+ padding-inline: 1.5ex;
25
+ text-align: center;
26
+ text-decoration: none;
27
+
28
+ user-select: none;
29
+
30
+ &:where([disabled]) {
31
+ cursor: not-allowed;
32
+ opacity: 0.64;
33
+ }
34
+
35
+ @media (prefers-reduced-motion: no-preference) {
36
+ transition:
37
+ background-color 0.2s var(--ease-out-3),
38
+ box-shadow 0.2s var(--ease-out-3),
39
+ border-color 0.2s var(--ease-out-3),
40
+ color 0.2s var(--ease-out-3),
41
+ outline-offset 0.05s var(--ease-1);
42
+
43
+ /* Ripple effect */
44
+ background-position: center;
45
+
46
+ &:where(:not([disabled])) {
47
+ &:where(:not(:active):hover) {
48
+ --ripple: radial-gradient(circle, transparent 1%, var(--_bg-color) 1%)
49
+ center/15000%;
50
+
51
+ transition: background var(--button-ripple-duration);
52
+ }
53
+
54
+ &:where(:hover:active) {
55
+ background-size: var(--button-ripple-size);
56
+ transition: background 0s;
57
+ }
58
+ }
59
+ }
60
+
61
+ /* Element states */
62
+ &:where(:not([disabled])) {
63
+ &:where(:not(:active):hover) {
64
+ --_bg-color: light-dark(
65
+ oklch(from var(--primary) l 0.01 h / 20%),
66
+ oklch(from var(--primary) l 0.01 h / 40%)
67
+ );
68
+ }
69
+
70
+ &:where(:hover:active) {
71
+ --_bg-color: light-dark(
72
+ oklch(from var(--primary) l 0.06 h / 30%),
73
+ oklch(from var(--primary) l 0.06 h / 40%)
74
+ );
75
+ }
76
+ }
77
+
78
+ /* Disabled */
79
+ &:where([disabled]) {
80
+ --_text-color: color-mix(
81
+ in oklch,
82
+ var(--text-color-2) 50%,
83
+ var(--surface-default)
84
+ );
85
+ }
86
+
87
+ /* Icon */
88
+ &:where(:has(svg), &.icon-only) {
89
+ gap: 1ex;
90
+
91
+ svg {
92
+ max-block-size: 0.7lh;
93
+ color: currentColor;
94
+ }
95
+ }
96
+
97
+ /* Keyboard input */
98
+ :is(kbd) {
99
+ background-color: inherit;
100
+ border-color: currentColor;
101
+ color: inherit;
102
+ font-size: 0.85em;
103
+ line-height: 1.2;
104
+ }
105
+
106
+ /* Sizes */
107
+ &.small {
108
+ --_min-height: 1.875rem;
109
+ padding-block: 0;
110
+ padding-inline: 1ex;
111
+ }
112
+
113
+ &.large {
114
+ --_min-height: 2.875rem;
115
+ padding-inline: 4ex;
116
+ }
117
+
118
+ /* Variants */
119
+ &.outlined {
120
+ --_bg-color: var(--surface-default);
121
+ --_border-color: var(--color-8);
122
+ --_text-color: var(--color-8);
123
+
124
+ &:where(:not([disabled])) {
125
+ &:where(:not(:active):hover) {
126
+ --_bg-color: var(--color-10);
127
+ --_border-color: var(--color-10);
128
+ --_text-color: var(--color-1);
129
+ }
130
+
131
+ &:where(:active) {
132
+ --_bg-color: var(--color-9);
133
+ --_border-color: var(--color-9);
134
+ --_text-color: var(--color-1);
135
+ }
136
+ }
137
+
138
+ &:where([disabled]) {
139
+ --_bg-color: var(--surface-default);
140
+ --_border-color: color-mix(
141
+ in oklch,
142
+ var(--text-color-2) 20%,
143
+ var(--surface-default)
144
+ );
145
+ --_text-color: color-mix(
146
+ in oklch,
147
+ var(--text-color-2) 40%,
148
+ var(--surface-default)
149
+ );
150
+ }
151
+ }
152
+ &.tonal {
153
+ --_bg-color: var(--color-6);
154
+ --_text-color: var(--color-16);
155
+
156
+ &:where(:not([disabled])) {
157
+ &:where(:not(:active):hover) {
158
+ --_bg-color: var(--color-9);
159
+ --_border-color: var(--color-9);
160
+ }
161
+
162
+ &:where(:active) {
163
+ --_bg-color: var(--color-7);
164
+ --_border-color: var(--color-7);
165
+ }
166
+ }
167
+
168
+ &:where([disabled]) {
169
+ --_bg-color: color-mix(
170
+ in oklch,
171
+ var(--text-color-2) 8%,
172
+ var(--surface-default)
173
+ );
174
+ --_text-color: color-mix(
175
+ in oklch,
176
+ var(--text-color-2) 70%,
177
+ var(--surface-default)
178
+ );
179
+ }
180
+ }
181
+ &.filled {
182
+ --_bg-color: var(--color-8);
183
+ --_text-color: var(--color-1);
184
+
185
+ &:where(:not([disabled])) {
186
+ &:where(:not(:active):hover) {
187
+ --_bg-color: var(--color-10);
188
+ --_border-color: var(--color-10);
189
+ }
190
+
191
+ &:where(:active) {
192
+ --_bg-color: var(--color-9);
193
+ --_border-color: var(--color-9);
194
+ }
195
+ }
196
+
197
+ &:where([disabled]) {
198
+ --_bg-color: color-mix(
199
+ in oklch,
200
+ var(--text-color-2) 20%,
201
+ var(--surface-default)
202
+ );
203
+ --_text-color: color-mix(
204
+ in oklch,
205
+ var(--text-color-2) 70%,
206
+ var(--surface-default)
207
+ );
208
+ }
209
+ }
210
+ &.elevated {
211
+ --_bg-color: light-dark(
212
+ color-mix(in oklch, var(--gray-2) 97%, var(--color-16)),
213
+ color-mix(in oklch, var(--gray-13) 97%, var(--color-1))
214
+ );
215
+ --_ripple-color: light-dark(
216
+ color-mix(in oklch, var(--gray-2) 80%, var(--color-8)),
217
+ color-mix(in oklch, var(--gray-13) 80%, var(--color-8))
218
+ );
219
+ --_text-color: var(--color-8);
220
+
221
+ box-shadow:
222
+ 0px 3px 1px -2px oklch(0 0 0 / 20%),
223
+ 0px 2px 2px 0px oklch(0 0 0 / 14%),
224
+ 0px 1px 5px 0px oklch(0 0 0 / 12%);
225
+
226
+ &:where(:not([disabled])) {
227
+ &:where(:not(:active):hover) {
228
+ --ripple: radial-gradient(
229
+ circle,
230
+ transparent 1%,
231
+ var(--_ripple-color) 1%
232
+ )
233
+ center/15000%;
234
+
235
+ --_bg-color: light-dark(
236
+ color-mix(in oklch, var(--gray-2) 93%, var(--color-8)),
237
+ color-mix(in oklch, var(--gray-13) 93%, var(--color-8))
238
+ );
239
+ }
240
+
241
+ &:where(:hover:active) {
242
+ --_bg-color: light-dark(
243
+ color-mix(in oklch, var(--gray-2) 91%, var(--color-8)),
244
+ color-mix(in oklch, var(--gray-13) 91%, var(--color-8))
245
+ );
246
+ }
247
+ }
248
+
249
+ &:where([disabled]) {
250
+ --_bg-color: color-mix(
251
+ in oklch,
252
+ var(--text-color-2) 8%,
253
+ var(--surface-elevated)
254
+ );
255
+ --_text-color: color-mix(
256
+ in oklch,
257
+ var(--text-color-2) 70%,
258
+ var(--surface-elevated)
259
+ );
260
+ }
261
+ }
262
+ }
263
+
264
+ /* file input */
265
+ :where(input[type="file"]) {
266
+ align-self: flex-start;
267
+ border-radius: var(--radius-2);
268
+ border: var(--border-size-1) solid var(--surface-filled);
269
+ box-shadow: var(--inner-shadow-4);
270
+ color: var(--text-color-2-contrast);
271
+ cursor: initial;
272
+ max-inline-size: 100%;
273
+ padding: 0;
274
+ }
275
+
276
+ :where(input[type="file"])::-webkit-file-upload-button,
277
+ :where(input[type="file"])::file-selector-button {
278
+ cursor: pointer;
279
+ margin-inline-end: var(--size-relative-6);
280
+ }
281
+ }