opui-css 3.3.0 → 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,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
+ }
@@ -1,123 +1,123 @@
1
- @layer components.root {
2
- label:where(.checkbox, .radio) {
3
- align-items: center;
4
- color: var(--text-color-1);
5
- cursor: pointer;
6
- display: inline-grid;
7
- gap: 0 var(--size-2);
8
- grid-auto-columns: auto;
9
- grid-auto-flow: column;
10
- inline-size: fit-content;
11
- line-height: 1.5;
12
- transform: translateZ(0);
13
- user-select: none;
14
-
15
- /* Disabled */
16
- &:has([disabled]) {
17
- cursor: not-allowed;
18
- opacity: 0.64;
19
- user-select: none;
20
-
21
- input {
22
- cursor: not-allowed;
23
- }
24
- }
25
-
26
- /* Required dot */
27
- &:has([required]:not([type="checkbox"]:checked)) {
28
- .label:after {
29
- color: var(--red);
30
- content: "*";
31
- inset: 0 -0.25ex auto auto;
32
- position: absolute;
33
- }
34
- }
35
-
36
- /* Label */
37
- .label {
38
- grid-column: 2;
39
- grid-row: 1;
40
- position: relative;
41
- padding-inline: 0 1ex;
42
- }
43
-
44
- /* Supporting text */
45
- .supporting-text {
46
- color: var(--text-color-2);
47
- font-size: var(--font-size-xs);
48
- grid-column: 2;
49
- grid-row: 2;
50
- line-height: 1.5;
51
- z-index: 1;
52
- }
53
-
54
- /* Stacked layout */
55
- &.stack {
56
- justify-items: center;
57
- grid-auto-columns: unset;
58
-
59
- .label {
60
- grid-column: 1/-1;
61
- grid-row: 2;
62
- margin-block-start: var(--size-1);
63
- padding-inline: 1ex;
64
-
65
- /* Required dot */
66
- &::after {
67
- inset: 0 -0.25ex auto auto;
68
- }
69
- }
70
-
71
- .supporting-text {
72
- grid-column: 1/-1;
73
- grid-row: 3;
74
- }
75
- }
76
-
77
- /* Input */
78
- input {
79
- aspect-ratio: 1;
80
- block-size: 1.125rem;
81
- cursor: pointer;
82
- inline-size: 1.125rem;
83
-
84
- &::before {
85
- --highlight-size: 175%;
86
- }
87
- }
88
-
89
- /* Sizes */
90
- &.small {
91
- input {
92
- block-size: var(--size-3);
93
- inline-size: var(--size-3);
94
- }
95
- }
96
-
97
- &.large {
98
- input {
99
- block-size: var(--size-4);
100
- inline-size: var(--size-4);
101
- }
102
- }
103
-
104
- /* Validation */
105
- &.error {
106
- input[type="checkbox"] {
107
- accent-color: var(--color-9);
108
-
109
- & ~ :where(.label, .supporting-text) {
110
- color: var(--color-9);
111
- }
112
- }
113
- }
114
-
115
- /* Touch devices */
116
- @media (pointer: coarse) {
117
- input {
118
- block-size: var(--size-4);
119
- inline-size: var(--size-4);
120
- }
121
- }
122
- }
123
- }
1
+ @layer components.root {
2
+ label:where(.checkbox, .radio) {
3
+ align-items: center;
4
+ color: var(--text-color-1);
5
+ cursor: pointer;
6
+ display: inline-grid;
7
+ gap: 0 var(--size-2);
8
+ grid-auto-columns: auto;
9
+ grid-auto-flow: column;
10
+ inline-size: fit-content;
11
+ line-height: 1.5;
12
+ transform: translateZ(0);
13
+ user-select: none;
14
+
15
+ /* Disabled */
16
+ &:has([disabled]) {
17
+ cursor: not-allowed;
18
+ opacity: 0.64;
19
+ user-select: none;
20
+
21
+ input {
22
+ cursor: not-allowed;
23
+ }
24
+ }
25
+
26
+ /* Required dot */
27
+ &:has([required]:not([type="checkbox"]:checked)) {
28
+ .label:after {
29
+ color: var(--red);
30
+ content: "*";
31
+ inset: 0 -0.25ex auto auto;
32
+ position: absolute;
33
+ }
34
+ }
35
+
36
+ /* Label */
37
+ .label {
38
+ grid-column: 2;
39
+ grid-row: 1;
40
+ position: relative;
41
+ padding-inline: 0 1ex;
42
+ }
43
+
44
+ /* Supporting text */
45
+ .supporting-text {
46
+ color: var(--text-color-2);
47
+ font-size: var(--font-size-xs);
48
+ grid-column: 2;
49
+ grid-row: 2;
50
+ line-height: 1.5;
51
+ z-index: 1;
52
+ }
53
+
54
+ /* Stacked layout */
55
+ &.stack {
56
+ justify-items: center;
57
+ grid-auto-columns: unset;
58
+
59
+ .label {
60
+ grid-column: 1/-1;
61
+ grid-row: 2;
62
+ margin-block-start: var(--size-1);
63
+ padding-inline: 1ex;
64
+
65
+ /* Required dot */
66
+ &::after {
67
+ inset: 0 -0.25ex auto auto;
68
+ }
69
+ }
70
+
71
+ .supporting-text {
72
+ grid-column: 1/-1;
73
+ grid-row: 3;
74
+ }
75
+ }
76
+
77
+ /* Input */
78
+ input {
79
+ aspect-ratio: 1;
80
+ block-size: 1.125rem;
81
+ cursor: pointer;
82
+ inline-size: 1.125rem;
83
+
84
+ &::before {
85
+ --highlight-size: 175%;
86
+ }
87
+ }
88
+
89
+ /* Sizes */
90
+ &.small {
91
+ input {
92
+ block-size: var(--size-3);
93
+ inline-size: var(--size-3);
94
+ }
95
+ }
96
+
97
+ &.large {
98
+ input {
99
+ block-size: var(--size-4);
100
+ inline-size: var(--size-4);
101
+ }
102
+ }
103
+
104
+ /* Validation */
105
+ &.error {
106
+ input[type="checkbox"] {
107
+ accent-color: var(--color-9);
108
+
109
+ & ~ :where(.label, .supporting-text) {
110
+ color: var(--color-9);
111
+ }
112
+ }
113
+ }
114
+
115
+ /* Touch devices */
116
+ @media (pointer: coarse) {
117
+ input {
118
+ block-size: var(--size-4);
119
+ inline-size: var(--size-4);
120
+ }
121
+ }
122
+ }
123
+ }
@@ -1,135 +1,135 @@
1
- @layer components.root {
2
- :where(.chip) {
3
- --_bg-color: var(--surface-tonal);
4
- --_border-color: var(--border-color);
5
- --_color: var(--text-color-1);
6
-
7
- align-items: center;
8
- background: var(--_bg-color) var(--ripple, none);
9
- border: 1px solid var(--_border-color);
10
- border-radius: var(--radius-2, 0.5rem);
11
- color: var(--_color);
12
- display: inline-flex;
13
- font-size: var(--font-size-0, 0.75rem);
14
- gap: var(--size-1);
15
- block-size: var(--size-7, 2rem);
16
- padding-inline: var(--size-2);
17
- text-decoration: none;
18
-
19
- /* Variants */
20
- &.tonal {
21
- --_bg-color: var(--surface-tonal);
22
- --_color: var(--text-color-1);
23
- }
24
-
25
- &.outlined {
26
- --_bg-color: var(--surface-default);
27
- --_color: var(--text-color-1);
28
- }
29
-
30
- /* TODO: should this be out of the box? */
31
- /* Colors */
32
- /* &:hover {
33
- --_bg-color: var(--color-11);
34
- --_border-color: var(--color-11);
35
- --_color: var(--text-color-1);
36
- } */
37
- /* &.red,
38
- &.blue,
39
- &.green,
40
- &.orange,
41
- &.primary {
42
- --_bg-color: var(--color-5);
43
- --_border-color: var(--color-7);
44
- --_color: var(--text-color-1-contrast);
45
-
46
- &:hover {
47
- --_bg-color: var(--color-7);
48
- --_border-color: var(--color-7);
49
- --_color: var(--text-color-1-contrast);
50
-
51
- &:active {
52
- --_bg-color: var(--color-8);
53
- --_border-color: var(--color-8);
54
- }
55
- }
56
-
57
- &.outlined {
58
- --_bg-color: var(--surface-tonal);
59
- --_color: var(--text-color-1);
60
- --_border-color: var(--color-9);
61
-
62
- &:hover {
63
- --_bg-color: var(--color-9);
64
- --_border-color: var(--color-9);
65
- --_color: var(--text-color-1);
66
-
67
- &:active {
68
- --_bg-color: var(--color-11);
69
- --_border-color: var(--color-11);
70
- }
71
- }
72
- }
73
- } */
74
-
75
- &:where(button, a):where(:not([disabled])) {
76
- &:where(:not(:active)):hover {
77
- --_bg-color: light-dark(
78
- oklch(from var(--surface-tonal) calc(l * 0.98) c h),
79
- oklch(from var(--surface-tonal) calc(l * 1.1) c h)
80
- );
81
- }
82
- }
83
-
84
- /* Icon */
85
- &:has(svg:first-child) {
86
- padding-inline: var(--size-1) var(--size-2);
87
- }
88
- &:has(svg:last-child) {
89
- padding-inline: var(--size-2) var(--size-1);
90
- }
91
-
92
- &:has(svg) {
93
- svg {
94
- flex-shrink: 0;
95
- inline-size: var(--size-3);
96
- }
97
- }
98
-
99
- /* Sizes */
100
- &.small {
101
- block-size: var(--size-5);
102
- }
103
- &.multiline {
104
- block-size: auto;
105
- }
106
-
107
- /* Ripple effect */
108
- background-position: center;
109
-
110
- &:where(:not([disabled])) {
111
- &:where(:not(:active):hover) {
112
- --ripple: radial-gradient(circle, transparent 1%, var(--_bg-color) 1%)
113
- center/15000%;
114
-
115
- transition: background var(--button-ripple-duration);
116
- }
117
-
118
- &:where(:hover:active) {
119
- background-size: var(--button-ripple-size);
120
- transition: background 0s;
121
- }
122
- }
123
-
124
- /* Disabled */
125
- &:where([disabled]) {
126
- opacity: 0.64;
127
- --_text-color: color-mix(
128
- in oklch,
129
- var(--text-color-2) 50%,
130
- var(--surface-default)
131
- );
132
- cursor: not-allowed;
133
- }
134
- }
135
- }
1
+ @layer components.root {
2
+ :where(.chip) {
3
+ --_bg-color: var(--surface-tonal);
4
+ --_border-color: var(--border-color);
5
+ --_color: var(--text-color-1);
6
+
7
+ align-items: center;
8
+ background: var(--_bg-color) var(--ripple, none);
9
+ border: 1px solid var(--_border-color);
10
+ border-radius: var(--radius-2, 0.5rem);
11
+ color: var(--_color);
12
+ display: inline-flex;
13
+ font-size: var(--font-size-0, 0.75rem);
14
+ gap: var(--size-1);
15
+ block-size: var(--size-7, 2rem);
16
+ padding-inline: var(--size-2);
17
+ text-decoration: none;
18
+
19
+ /* Variants */
20
+ &.tonal {
21
+ --_bg-color: var(--surface-tonal);
22
+ --_color: var(--text-color-1);
23
+ }
24
+
25
+ &.outlined {
26
+ --_bg-color: var(--surface-default);
27
+ --_color: var(--text-color-1);
28
+ }
29
+
30
+ /* TODO: should this be out of the box? */
31
+ /* Colors */
32
+ /* &:hover {
33
+ --_bg-color: var(--color-11);
34
+ --_border-color: var(--color-11);
35
+ --_color: var(--text-color-1);
36
+ } */
37
+ /* &.red,
38
+ &.blue,
39
+ &.green,
40
+ &.orange,
41
+ &.primary {
42
+ --_bg-color: var(--color-5);
43
+ --_border-color: var(--color-7);
44
+ --_color: var(--text-color-1-contrast);
45
+
46
+ &:hover {
47
+ --_bg-color: var(--color-7);
48
+ --_border-color: var(--color-7);
49
+ --_color: var(--text-color-1-contrast);
50
+
51
+ &:active {
52
+ --_bg-color: var(--color-8);
53
+ --_border-color: var(--color-8);
54
+ }
55
+ }
56
+
57
+ &.outlined {
58
+ --_bg-color: var(--surface-tonal);
59
+ --_color: var(--text-color-1);
60
+ --_border-color: var(--color-9);
61
+
62
+ &:hover {
63
+ --_bg-color: var(--color-9);
64
+ --_border-color: var(--color-9);
65
+ --_color: var(--text-color-1);
66
+
67
+ &:active {
68
+ --_bg-color: var(--color-11);
69
+ --_border-color: var(--color-11);
70
+ }
71
+ }
72
+ }
73
+ } */
74
+
75
+ &:where(button, a):where(:not([disabled])) {
76
+ &:where(:not(:active)):hover {
77
+ --_bg-color: light-dark(
78
+ oklch(from var(--surface-tonal) calc(l * 0.98) c h),
79
+ oklch(from var(--surface-tonal) calc(l * 1.1) c h)
80
+ );
81
+ }
82
+ }
83
+
84
+ /* Icon */
85
+ &:has(svg:first-child) {
86
+ padding-inline: var(--size-1) var(--size-2);
87
+ }
88
+ &:has(svg:last-child) {
89
+ padding-inline: var(--size-2) var(--size-1);
90
+ }
91
+
92
+ &:has(svg) {
93
+ svg {
94
+ flex-shrink: 0;
95
+ inline-size: var(--size-3);
96
+ }
97
+ }
98
+
99
+ /* Sizes */
100
+ &.small {
101
+ block-size: var(--size-5);
102
+ }
103
+ &.multiline {
104
+ block-size: auto;
105
+ }
106
+
107
+ /* Ripple effect */
108
+ background-position: center;
109
+
110
+ &:where(:not([disabled])) {
111
+ &:where(:not(:active):hover) {
112
+ --ripple: radial-gradient(circle, transparent 1%, var(--_bg-color) 1%)
113
+ center/15000%;
114
+
115
+ transition: background var(--button-ripple-duration);
116
+ }
117
+
118
+ &:where(:hover:active) {
119
+ background-size: var(--button-ripple-size);
120
+ transition: background 0s;
121
+ }
122
+ }
123
+
124
+ /* Disabled */
125
+ &:where([disabled]) {
126
+ opacity: 0.64;
127
+ --_text-color: color-mix(
128
+ in oklch,
129
+ var(--text-color-2) 50%,
130
+ var(--surface-default)
131
+ );
132
+ cursor: not-allowed;
133
+ }
134
+ }
135
+ }