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,229 +1,229 @@
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
- }
211
-
212
- /* file input */
213
- :where(input[type="file"]) {
214
- align-self: flex-start;
215
- border-radius: var(--radius-2);
216
- border: var(--border-size-1) solid var(--surface-filled);
217
- box-shadow: var(--inner-shadow-4);
218
- color: var(--text-color-2-contrast);
219
- cursor: initial;
220
- max-inline-size: 100%;
221
- padding: 0;
222
- }
223
-
224
- :where(input[type="file"])::-webkit-file-upload-button,
225
- :where(input[type="file"])::file-selector-button {
226
- cursor: pointer;
227
- margin-inline-end: var(--size-relative-6);
228
- }
229
- }
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
+ }
211
+
212
+ /* file input */
213
+ :where(input[type="file"]) {
214
+ align-self: flex-start;
215
+ border-radius: var(--radius-2);
216
+ border: var(--border-size-1) solid var(--surface-filled);
217
+ box-shadow: var(--inner-shadow-4);
218
+ color: var(--text-color-2-contrast);
219
+ cursor: initial;
220
+ max-inline-size: 100%;
221
+ padding: 0;
222
+ }
223
+
224
+ :where(input[type="file"])::-webkit-file-upload-button,
225
+ :where(input[type="file"])::file-selector-button {
226
+ cursor: pointer;
227
+ margin-inline-end: var(--size-relative-6);
228
+ }
229
+ }
@@ -1,82 +1,82 @@
1
- @layer components.root {
2
- :where(.card) {
3
- --_bg-color: transparent;
4
- --_border-color: transparent;
5
- --_border-width: 0;
6
- --_shadow: none;
7
-
8
- background-color: var(--_bg-color);
9
- border-color: var(--_border-color);
10
- border-radius: var(--border-radius, 0.25rem);
11
- border-style: solid;
12
- border-width: var(--_border-width);
13
- box-shadow: var(--_shadow);
14
- display: flex;
15
- flex-direction: column;
16
- gap: var(--size-3);
17
- overflow: hidden;
18
- padding-inline: 0;
19
-
20
- /* Variants */
21
- &.text {
22
- --_bg-color: transparent;
23
- --_border-color: transparent;
24
- --_border-width: 0;
25
- --_shadow: none;
26
- padding-inline: 0;
27
- }
28
-
29
- &.tonal {
30
- --_bg-color: var(--surface-tonal);
31
- --_border-width: 1px;
32
- }
33
-
34
- &.elevated {
35
- --_bg-color: var(--surface-elevated);
36
- --_border-color: transparent;
37
- --_border-width: 0;
38
- --_shadow: var(--shadow-3);
39
-
40
- /* Adjust shadow in dark mode */
41
- @container style(--color-scheme: dark) {
42
- --_shadow: var(--shadow-4);
43
- }
44
- }
45
-
46
- &.outlined {
47
- --_bg-color: var(--surface-default);
48
- --_border-color: var(--border-color);
49
- --_border-width: 1px;
50
- }
51
-
52
- & > :where(hgroup, .content) {
53
- padding-inline: var(--size-3);
54
- }
55
-
56
- & > hgroup {
57
- padding-block: var(--size-3) 0;
58
-
59
- /* Top paragraph */
60
- & > p:first-of-type:first-child {
61
- line-height: 1.3;
62
- }
63
-
64
- /* Bottom paragraph */
65
- & > p:last-of-type:last-child:not(:first-child) {
66
- font-size: var(--font-size-1, 1rem);
67
- }
68
- }
69
-
70
- & > .content:where(:only-child, :first-child) {
71
- padding-block: var(--size-3) var(--size-4);
72
- }
73
-
74
- & > .actions {
75
- display: flex;
76
- gap: var(--size-1);
77
- margin-block: var(--size-2) 0;
78
- padding-block-end: var(--size-1);
79
- padding-inline: var(--size-1) var(--size-3);
80
- }
81
- }
82
- }
1
+ @layer components.root {
2
+ :where(.card) {
3
+ --_bg-color: transparent;
4
+ --_border-color: transparent;
5
+ --_border-width: 0;
6
+ --_shadow: none;
7
+
8
+ background-color: var(--_bg-color);
9
+ border-color: var(--_border-color);
10
+ border-radius: var(--border-radius, 0.25rem);
11
+ border-style: solid;
12
+ border-width: var(--_border-width);
13
+ box-shadow: var(--_shadow);
14
+ display: flex;
15
+ flex-direction: column;
16
+ gap: var(--size-3);
17
+ overflow: hidden;
18
+ padding-inline: 0;
19
+
20
+ /* Variants */
21
+ &.text {
22
+ --_bg-color: transparent;
23
+ --_border-color: transparent;
24
+ --_border-width: 0;
25
+ --_shadow: none;
26
+ padding-inline: 0;
27
+ }
28
+
29
+ &.tonal {
30
+ --_bg-color: var(--surface-tonal);
31
+ --_border-width: 1px;
32
+ }
33
+
34
+ &.elevated {
35
+ --_bg-color: var(--surface-elevated);
36
+ --_border-color: transparent;
37
+ --_border-width: 0;
38
+ --_shadow: var(--shadow-3);
39
+
40
+ /* Adjust shadow in dark mode */
41
+ @container style(--color-scheme: dark) {
42
+ --_shadow: var(--shadow-4);
43
+ }
44
+ }
45
+
46
+ &.outlined {
47
+ --_bg-color: var(--surface-default);
48
+ --_border-color: var(--border-color);
49
+ --_border-width: 1px;
50
+ }
51
+
52
+ & > :where(hgroup, .content) {
53
+ padding-inline: var(--size-3);
54
+ }
55
+
56
+ & > hgroup {
57
+ padding-block: var(--size-3) 0;
58
+
59
+ /* Top paragraph */
60
+ & > p:first-of-type:first-child {
61
+ line-height: 1.3;
62
+ }
63
+
64
+ /* Bottom paragraph */
65
+ & > p:last-of-type:last-child:not(:first-child) {
66
+ font-size: var(--font-size-1, 1rem);
67
+ }
68
+ }
69
+
70
+ & > .content:where(:only-child, :first-child) {
71
+ padding-block: var(--size-3) var(--size-4);
72
+ }
73
+
74
+ & > .actions {
75
+ display: flex;
76
+ gap: var(--size-1);
77
+ margin-block: var(--size-2) 0;
78
+ padding-block-end: var(--size-1);
79
+ padding-inline: var(--size-1) var(--size-3);
80
+ }
81
+ }
82
+ }