@typlog/ui 0.12.3 → 0.13.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.
@@ -1,116 +0,0 @@
1
-
2
- .ui-root {
3
- --scrollarea-scrollbar-horizontal-margin-top: var(--space-1);
4
- --scrollarea-scrollbar-horizontal-margin-bottom: var(--space-1);
5
- --scrollarea-scrollbar-horizontal-margin-left: var(--space-1);
6
- --scrollarea-scrollbar-horizontal-margin-right: var(--space-1);
7
- --scrollarea-scrollbar-vertical-margin-top: var(--space-1);
8
- --scrollarea-scrollbar-vertical-margin-bottom: var(--space-1);
9
- --scrollarea-scrollbar-vertical-margin-left: var(--space-1);
10
- --scrollarea-scrollbar-vertical-margin-right: var(--space-1);
11
- }
12
- @layer components {
13
- .ui-ScrollArea {
14
- display: flex;
15
- flex-direction: column;
16
- overflow: hidden;
17
- width: 100%;
18
- height: 100%;
19
- }
20
- }
21
- .ui-ScrollAreaViewport {
22
- display: flex;
23
- flex-direction: column;
24
- width: 100%;
25
- height: 100%;
26
- }
27
- .ui-ScrollAreaViewport > div {
28
- display: block;
29
- min-width: -moz-fit-content;
30
- min-width: fit-content;
31
- width: 100%;
32
- flex-grow: 1;
33
- }
34
- .ui-ScrollAreaViewport:where(:focus-visible) + :where(.ui-ScrollAreaViewportFocusRing) {
35
- position: absolute;
36
- inset: 0;
37
- pointer-events: none;
38
- outline: 2px solid var(--focus-8);
39
- outline-offset: -2px;
40
- }
41
- .ui-ScrollAreaViewport:where(:has(.ui-ScrollAreaScrollbar[data-orientation='horizontal'])) {
42
- overscroll-behavior-x: contain;
43
- }
44
- .ui-ScrollAreaScrollbar {
45
- display: flex;
46
- -webkit-user-select: none;
47
- -moz-user-select: none;
48
- user-select: none;
49
- touch-action: none;
50
- }
51
- .ui-ScrollAreaScrollbar:where([data-orientation='vertical']) {
52
- flex-direction: column;
53
- width: var(--scrollarea-scrollbar-size);
54
- }
55
- .ui-ScrollAreaScrollbar:where([data-orientation='horizontal']) {
56
- flex-direction: row;
57
- height: var(--scrollarea-scrollbar-size);
58
- }
59
- .ui-ScrollAreaThumb {
60
- position: relative;
61
- }
62
- .ui-ScrollAreaThumb::before {
63
- content: '';
64
- position: absolute;
65
- top: 50%;
66
- left: 50%;
67
- transform: translate(-50%, -50%);
68
- width: 100%;
69
- height: 100%;
70
- min-width: var(--space-4);
71
- min-height: var(--space-4);
72
- }
73
- .ui-ScrollAreaScrollbar:where([data-size="1"]) {
74
- --scrollarea-scrollbar-size: var(--space-1);
75
- --scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full));
76
- }
77
- .ui-ScrollAreaScrollbar:where([data-size="2"]) {
78
- --scrollarea-scrollbar-size: var(--space-2);
79
- --scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full));
80
- }
81
- .ui-ScrollAreaScrollbar:where([data-size="3"]) {
82
- --scrollarea-scrollbar-size: var(--space-3);
83
- --scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full));
84
- }
85
- .ui-ScrollAreaScrollbar {
86
- background-color: var(--gray-a3);
87
- border-radius: var(--scrollarea-scrollbar-border-radius);
88
- animation-duration: 120ms;
89
- animation-timing-function: ease-out;
90
- }
91
- .ui-ScrollAreaScrollbar:where([data-state='visible']) {
92
- animation-name: ui-fade-in;
93
- }
94
- .ui-ScrollAreaScrollbar:where([data-state='hidden']) {
95
- animation-name: ui-fade-out;
96
- }
97
- .ui-ScrollAreaScrollbar:where([data-orientation='horizontal']) {
98
- margin-top: var(--scrollarea-scrollbar-horizontal-margin-top);
99
- margin-bottom: var(--scrollarea-scrollbar-horizontal-margin-bottom);
100
- margin-left: var(--scrollarea-scrollbar-horizontal-margin-left);
101
- margin-right: var(--scrollarea-scrollbar-horizontal-margin-right);
102
- }
103
- .ui-ScrollAreaScrollbar:where([data-orientation='vertical']) {
104
- margin-top: var(--scrollarea-scrollbar-vertical-margin-top);
105
- margin-bottom: var(--scrollarea-scrollbar-vertical-margin-bottom);
106
- margin-left: var(--scrollarea-scrollbar-vertical-margin-left);
107
- margin-right: var(--scrollarea-scrollbar-vertical-margin-right);
108
- }
109
- .ui-ScrollAreaThumb {
110
- background-color: var(--gray-a8);
111
- border-radius: inherit;
112
- transition: background-color 100ms;
113
- }
114
- .ui-ScrollAreaThumb:hover {
115
- background-color: var(--gray-a9);
116
- }
@@ -1,28 +0,0 @@
1
-
2
- @layer components {
3
- .ui-Separator {
4
- display: block;
5
- box-sizing: border-box;
6
- background-color: var(--accent-a6);
7
- }
8
- .ui-Separator:where([aria-orientation="horizontal"]) {
9
- width: var(--separator-size, auto);
10
- height: 1px;
11
- }
12
- .ui-Separator:where([aria-orientation="vertical"]) {
13
- width: 1px;
14
- height: var(--separator-size, auto);
15
- }
16
- }
17
- .ui-Separator:where(.r-size-1) {
18
- --separator-size: var(--space-4);
19
- }
20
- .ui-Separator:where(.r-size-2) {
21
- --separator-size: var(--space-6);
22
- }
23
- .ui-Separator:where(.r-size-3) {
24
- --separator-size: var(--space-9);
25
- }
26
- .ui-Separator:where(.r-size-4) {
27
- --separator-size: 100%;
28
- }
@@ -1,176 +0,0 @@
1
-
2
- .ui-root {
3
- --switch-disabled-blend-mode: multiply;
4
- --switch-high-contrast-checked-color-overlay: var(--black-a8);
5
- --switch-high-contrast-checked-active-before-filter: contrast(0.82) saturate(1.2) brightness(1.16);
6
- --switch-surface-checked-active-filter: brightness(0.92) saturate(1.1);
7
- }
8
- :is(.dark, .dark-theme) .ui-root {
9
- --switch-disabled-blend-mode: screen;
10
- --switch-high-contrast-checked-color-overlay: transparent;
11
- --switch-high-contrast-checked-active-before-filter: brightness(1.08);
12
- --switch-surface-checked-active-filter: brightness(1.08);
13
- }
14
- .ui-Switch {
15
- position: relative;
16
- display: inline-flex;
17
- align-items: center;
18
- vertical-align: top;
19
- flex-shrink: 0;
20
- outline: none;
21
-
22
- height: var(--switch-height);
23
- --switch-width: calc(var(--switch-height) * 1.75);
24
- --switch-thumb-inset: 1px;
25
- --switch-thumb-size: calc(var(--switch-height) - var(--switch-thumb-inset) * 2);
26
- --switch-thumb-translate-x: calc(var(--switch-width) - var(--switch-height));
27
- }
28
- .ui-Switch::before {
29
- content: '';
30
- display: block;
31
- width: var(--switch-width);
32
- height: var(--switch-height);
33
- border-radius: var(--switch-border-radius);
34
- transition: background-position, background-color, box-shadow, filter;
35
- transition-timing-function: linear, ease-in-out, ease-in-out, ease-in-out;
36
- background-repeat: no-repeat;
37
- background-size: calc(var(--switch-width) * 2 + var(--switch-height)) 100%;
38
- }
39
- .ui-Switch:where([data-state='unchecked'])::before {
40
- transition-duration: 120ms, 140ms, 140ms, 140ms;
41
- background-position-x: 100%;
42
- }
43
- .ui-Switch:where([data-state='checked'])::before {
44
- transition-duration: 160ms, 140ms, 140ms, 140ms;
45
- background-position: 0%;
46
- }
47
- .ui-Switch:where(:active)::before {
48
- transition-duration: 30ms;
49
- }
50
- .ui-Switch:where(:focus-visible)::before {
51
- outline: 2px solid var(--focus-8);
52
- outline-offset: 2px;
53
- }
54
- .ui-Switch::before {
55
- cursor: default;
56
- }
57
- .ui-Switch:where([data-disabled])::before {
58
- cursor: not-allowed;
59
- }
60
- .ui-SwitchThumb {
61
- background-color: white;
62
- position: absolute;
63
- left: var(--switch-thumb-inset);
64
- width: var(--switch-thumb-size);
65
- height: var(--switch-thumb-size);
66
- border-radius: calc(var(--switch-border-radius) - var(--switch-thumb-inset));
67
- transition: transform 140ms cubic-bezier(0.45, 0.05, 0.55, 0.95), box-shadow 140ms ease-in-out;
68
- }
69
- .ui-SwitchThumb:where([data-state='checked']) {
70
- transform: translateX(var(--switch-thumb-translate-x));
71
- }
72
- .ui-Switch:where(.r-size-1) {
73
- --switch-height: var(--space-4);
74
- --switch-border-radius: max(var(--radius-1), var(--radius-thumb));
75
- }
76
- .ui-Switch:where(.r-size-2) {
77
- --switch-height: calc(var(--space-5) * 5 / 6);
78
- --switch-border-radius: max(var(--radius-2), var(--radius-thumb));
79
- }
80
- .ui-Switch:where(.r-size-3) {
81
- --switch-height: var(--space-5);
82
- --switch-border-radius: max(var(--radius-2), var(--radius-thumb));
83
- }
84
- .ui-Switch:where(.r-variant-surface)::before {
85
- background-color: var(--gray-a3);
86
- background-image: linear-gradient(to right, var(--accent-track) 40%, transparent 60%);
87
- box-shadow: inset 0 0 0 1px var(--gray-a5);
88
- }
89
- .ui-Switch:where(.r-variant-surface):where(:active)::before {
90
- background-color: var(--gray-a4);
91
- }
92
- .ui-Switch:where(.r-variant-surface):where([data-state='checked']:active)::before {
93
- filter: var(--switch-surface-checked-active-filter);
94
- }
95
- .ui-Switch:where(.r-variant-surface):where(.r-high-contrast)::before {
96
- background-image:
97
- linear-gradient(to right, var(--switch-high-contrast-checked-color-overlay) 40%, transparent 60%),
98
- linear-gradient(to right, var(--accent-track) 40%, transparent 60%);
99
- }
100
- .ui-Switch:where(.r-variant-surface):where(.r-high-contrast):where([data-state='checked']:active)::before {
101
- filter: var(--switch-high-contrast-checked-active-before-filter);
102
- }
103
- .ui-Switch:where(.r-variant-surface):where([data-disabled]) {
104
- mix-blend-mode: var(--switch-disabled-blend-mode);
105
- }
106
- .ui-Switch:where(.r-variant-surface):where([data-disabled])::before {
107
- filter: none;
108
- background-image: none;
109
- background-color: var(--gray-a3);
110
- box-shadow: inset 0 0 0 1px var(--gray-a3);
111
- }
112
- .ui-Switch:where(.r-variant-surface) .ui-SwitchThumb:where([data-state='unchecked']) {
113
- box-shadow: 0 0 1px 1px var(--black-a2), 0 1px 1px var(--black-a1), 0 2px 4px -1px var(--black-a1);
114
- }
115
- .ui-Switch:where(.r-variant-surface) .ui-SwitchThumb:where([data-state='checked']) {
116
- box-shadow: 0 1px 3px var(--black-a2), 0 2px 4px -1px var(--black-a1), 0 0 0 1px var(--black-a1),
117
- 0 0 0 1px var(--accent-a4), -1px 0 1px var(--black-a2);
118
- }
119
- .ui-Switch:where(.r-variant-surface):where(.r-high-contrast) .ui-SwitchThumb:where([data-state='checked']) {
120
- box-shadow: 0 1px 3px var(--black-a2), 0 2px 4px -1px var(--black-a1), 0 0 0 1px var(--black-a2),
121
- -1px 0 1px var(--black-a2);
122
- }
123
- .ui-Switch:where(.r-variant-surface) .ui-SwitchThumb:where([data-disabled]) {
124
- background-color: var(--gray-2);
125
- box-shadow: 0 0 0 1px var(--gray-a2), 0 1px 3px var(--black-a1);
126
- transition: none;
127
- }
128
- .ui-Switch:where(.r-variant-soft)::before {
129
- background-image:
130
- linear-gradient(to right, var(--accent-a4) 40%, transparent 60%),
131
- linear-gradient(to right, var(--accent-a4) 40%, transparent 60%),
132
- linear-gradient(to right, var(--accent-a4) 40%, var(--white-a1) 60%),
133
- linear-gradient(to right, var(--gray-a2) 40%, var(--gray-a3) 60%);
134
- }
135
- .ui-Switch:where(.r-variant-soft):where([data-state='unchecked'])::before {
136
- background-color: var(--gray-a3);
137
- }
138
- .ui-Switch:where(.r-variant-soft):where(:active)::before {
139
- background-color: var(--gray-a4);
140
- }
141
- .ui-Switch:where(.r-variant-soft):where(.r-high-contrast)::before {
142
- background-image:
143
- linear-gradient(to right, var(--switch-high-contrast-checked-color-overlay) 40%, transparent 60%),
144
- linear-gradient(to right, var(--accent-a6) 40%, transparent 60%),
145
- linear-gradient(to right, var(--accent-a6) 40%, transparent 60%),
146
- linear-gradient(to right, var(--accent-a6) 40%, var(--white-a1) 60%),
147
- linear-gradient(to right, var(--accent-a3) 40%, var(--gray-a3) 60%);
148
- }
149
- .ui-Switch:where(.r-variant-soft):where(.r-high-contrast):where([data-state='checked']:active)::before {
150
- filter: var(--switch-high-contrast-checked-active-before-filter);
151
- }
152
- .ui-Switch:where(.r-variant-soft):where([data-disabled]) {
153
- mix-blend-mode: var(--switch-disabled-blend-mode);
154
- }
155
- .ui-Switch:where(.r-variant-soft):where([data-disabled])::before {
156
- filter: none;
157
- background-image: none;
158
- background-color: var(--gray-a4);
159
- }
160
- .ui-Switch:where(.r-variant-soft) .ui-SwitchThumb {
161
- filter: saturate(0.45);
162
- }
163
- .ui-Switch:where(.r-variant-soft) .ui-SwitchThumb:where([data-state='unchecked']) {
164
- box-shadow: 0 0 0 1px var(--black-a1), 0 1px 3px var(--black-a1), 0 1px 3px var(--black-a1),
165
- 0 2px 4px -1px var(--black-a1);
166
- }
167
- .ui-Switch:where(.r-variant-soft) .ui-SwitchThumb:where([data-state='checked']) {
168
- box-shadow: 0 0 0 1px var(--black-a1), 0 1px 3px var(--black-a2), 0 1px 3px var(--accent-a3),
169
- 0 2px 4px -1px var(--accent-a3);
170
- }
171
- .ui-Switch:where(.r-variant-soft) .ui-SwitchThumb:where([data-disabled]) {
172
- filter: none;
173
- background-color: var(--gray-2);
174
- box-shadow: 0 0 0 1px var(--gray-a2), 0 1px 3px var(--black-a1);
175
- transition: none;
176
- }
@@ -1,206 +0,0 @@
1
-
2
- .ui-root {
3
- --scrollarea-scrollbar-horizontal-margin-top: var(--space-1);
4
- --scrollarea-scrollbar-horizontal-margin-bottom: var(--space-1);
5
- --scrollarea-scrollbar-horizontal-margin-left: var(--space-1);
6
- --scrollarea-scrollbar-horizontal-margin-right: var(--space-1);
7
- --scrollarea-scrollbar-vertical-margin-top: var(--space-1);
8
- --scrollarea-scrollbar-vertical-margin-bottom: var(--space-1);
9
- --scrollarea-scrollbar-vertical-margin-left: var(--space-1);
10
- --scrollarea-scrollbar-vertical-margin-right: var(--space-1);
11
- }
12
- @layer components {
13
- .ui-ScrollArea {
14
- display: flex;
15
- flex-direction: column;
16
- overflow: hidden;
17
- width: 100%;
18
- height: 100%;
19
- }
20
- }
21
- .ui-ScrollAreaViewport {
22
- display: flex;
23
- flex-direction: column;
24
- width: 100%;
25
- height: 100%;
26
- }
27
- .ui-ScrollAreaViewport > div {
28
- display: block;
29
- min-width: -moz-fit-content;
30
- min-width: fit-content;
31
- width: 100%;
32
- flex-grow: 1;
33
- }
34
- .ui-ScrollAreaViewport:where(:focus-visible) + :where(.ui-ScrollAreaViewportFocusRing) {
35
- position: absolute;
36
- inset: 0;
37
- pointer-events: none;
38
- outline: 2px solid var(--focus-8);
39
- outline-offset: -2px;
40
- }
41
- .ui-ScrollAreaViewport:where(:has(.ui-ScrollAreaScrollbar[data-orientation='horizontal'])) {
42
- overscroll-behavior-x: contain;
43
- }
44
- .ui-ScrollAreaScrollbar {
45
- display: flex;
46
- -webkit-user-select: none;
47
- -moz-user-select: none;
48
- user-select: none;
49
- touch-action: none;
50
- }
51
- .ui-ScrollAreaScrollbar:where([data-orientation='vertical']) {
52
- flex-direction: column;
53
- width: var(--scrollarea-scrollbar-size);
54
- }
55
- .ui-ScrollAreaScrollbar:where([data-orientation='horizontal']) {
56
- flex-direction: row;
57
- height: var(--scrollarea-scrollbar-size);
58
- }
59
- .ui-ScrollAreaThumb {
60
- position: relative;
61
- }
62
- .ui-ScrollAreaThumb::before {
63
- content: '';
64
- position: absolute;
65
- top: 50%;
66
- left: 50%;
67
- transform: translate(-50%, -50%);
68
- width: 100%;
69
- height: 100%;
70
- min-width: var(--space-4);
71
- min-height: var(--space-4);
72
- }
73
- .ui-ScrollAreaScrollbar:where([data-size="1"]) {
74
- --scrollarea-scrollbar-size: var(--space-1);
75
- --scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full));
76
- }
77
- .ui-ScrollAreaScrollbar:where([data-size="2"]) {
78
- --scrollarea-scrollbar-size: var(--space-2);
79
- --scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full));
80
- }
81
- .ui-ScrollAreaScrollbar:where([data-size="3"]) {
82
- --scrollarea-scrollbar-size: var(--space-3);
83
- --scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full));
84
- }
85
- .ui-ScrollAreaScrollbar {
86
- background-color: var(--gray-a3);
87
- border-radius: var(--scrollarea-scrollbar-border-radius);
88
- animation-duration: 120ms;
89
- animation-timing-function: ease-out;
90
- }
91
- .ui-ScrollAreaScrollbar:where([data-state='visible']) {
92
- animation-name: ui-fade-in;
93
- }
94
- .ui-ScrollAreaScrollbar:where([data-state='hidden']) {
95
- animation-name: ui-fade-out;
96
- }
97
- .ui-ScrollAreaScrollbar:where([data-orientation='horizontal']) {
98
- margin-top: var(--scrollarea-scrollbar-horizontal-margin-top);
99
- margin-bottom: var(--scrollarea-scrollbar-horizontal-margin-bottom);
100
- margin-left: var(--scrollarea-scrollbar-horizontal-margin-left);
101
- margin-right: var(--scrollarea-scrollbar-horizontal-margin-right);
102
- }
103
- .ui-ScrollAreaScrollbar:where([data-orientation='vertical']) {
104
- margin-top: var(--scrollarea-scrollbar-vertical-margin-top);
105
- margin-bottom: var(--scrollarea-scrollbar-vertical-margin-bottom);
106
- margin-left: var(--scrollarea-scrollbar-vertical-margin-left);
107
- margin-right: var(--scrollarea-scrollbar-vertical-margin-right);
108
- }
109
- .ui-ScrollAreaThumb {
110
- background-color: var(--gray-a8);
111
- border-radius: inherit;
112
- transition: background-color 100ms;
113
- }
114
- .ui-ScrollAreaThumb:hover {
115
- background-color: var(--gray-a9);
116
- }
117
-
118
- .ui-TableContent {
119
- --table-row-background-color: transparent;
120
- --table-row-box-shadow: inset 0 -1px var(--gray-a5);
121
-
122
- width: 100%;
123
- text-align: left;
124
- vertical-align: top;
125
- border-collapse: collapse;
126
- border-radius: calc(var(--table-border-radius) - 1px);
127
- border-spacing: 0;
128
- box-sizing: border-box;
129
-
130
- /* Makes "height: 100%" work on content inside cells */
131
- height: 0;
132
- }
133
- .ui-TableContent tr {
134
- color: var(--gray-12);
135
- }
136
- .ui-TableContent td,
137
- .ui-TableContent th {
138
- background-color: var(--table-row-background-color);
139
- box-shadow: var(--table-row-box-shadow);
140
- box-sizing: border-box;
141
- padding: var(--table-cell-padding);
142
- min-height: var(--table-cell-min-height);
143
- }
144
- .ui-TableContent thead th {
145
- font-weight: var(--font-weight-semibold);
146
- }
147
- .ui-TableContent tbody th {
148
- font-weight: var(--font-weight-regular);
149
- }
150
- .ui-TableContent button {
151
- vertical-align: middle;
152
- }
153
- .ui-Table[data-size="1"] {
154
- --table-border-radius: var(--radius-3);
155
- --table-cell-padding: var(--space-2);
156
- --table-cell-min-height: calc(36px * var(--scaling));
157
- }
158
- .ui-Table[data-size="1"] .ui-TableContent {
159
- font-size: var(--font-size-2);
160
- line-height: var(--line-height-2);
161
- }
162
- .ui-Table[data-size="2"] {
163
- --table-border-radius: var(--radius-4);
164
- --table-cell-padding: var(--space-3);
165
- --table-cell-min-height: calc(44px * var(--scaling));
166
- }
167
- .ui-Table[data-size="2"] .ui-TableContent {
168
- font-size: var(--font-size-2);
169
- line-height: var(--line-height-2);
170
- }
171
- .ui-Table[data-size="3"] {
172
- --table-border-radius: var(--radius-4);
173
- --table-cell-padding: var(--space-3) var(--space-4);
174
- --table-cell-min-height: var(--space-8);
175
- }
176
- .ui-Table[data-size="3"] .ui-TableContent {
177
- font-size: var(--font-size-3);
178
- line-height: var(--line-height-3);
179
- }
180
- .ui-Table:where([data-variant="surface"]) {
181
- box-sizing: border-box;
182
- border: 1px solid var(--gray-a5);
183
- border-radius: var(--table-border-radius);
184
- background-color: var(--color-panel);
185
- backdrop-filter: var(--backdrop-filter-panel);
186
- background-clip: padding-box;
187
- position: relative;
188
- }
189
- @supports (box-shadow: 0 0 0 1px color-mix(in oklab, white, black)) {
190
- .ui-Table:where([data-variant="surface"]) {
191
- border-color: color-mix(in oklab, var(--gray-a5), var(--gray-6));
192
- }
193
- }
194
- .ui-Table:where([data-variant="surface"]) .ui-TableContent {
195
- overflow: hidden;
196
- }
197
- .ui-Table:where([data-variant="surface"]) thead {
198
- --table-row-background-color: var(--gray-a2);
199
- }
200
- .ui-Table:where([data-variant="surface"]) tbody :where(tr:last-child) {
201
- --table-row-box-shadow: none;
202
- }
203
- .ui-Table:where([data-variant="ghost"]) {
204
- --scrollarea-scrollbar-horizontal-margin-left: 0;
205
- --scrollarea-scrollbar-horizontal-margin-right: 0;
206
- }