@typlog/ui 0.12.1 → 0.12.3

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,16 +1,18 @@
1
1
 
2
+ @layer components {
2
3
  .ui-Badge {
3
- display: inline-flex;
4
- align-items: center;
5
- white-space: nowrap;
6
- font-weight: var(--font-weight-medium);
7
- font-style: normal;
8
- flex-shrink: 0;
9
- line-height: 1;
10
- height: -moz-fit-content;
11
- height: fit-content;
12
- width: -moz-fit-content;
13
- width: fit-content;
4
+ display: inline-flex;
5
+ align-items: center;
6
+ white-space: nowrap;
7
+ font-weight: var(--font-weight-medium);
8
+ font-style: normal;
9
+ flex-shrink: 0;
10
+ line-height: 1;
11
+ height: -moz-fit-content;
12
+ height: fit-content;
13
+ width: -moz-fit-content;
14
+ width: fit-content;
15
+ }
14
16
  }
15
17
  .ui-Badge:where(.r-size-1) {
16
18
  font-size: var(--font-size-1);
@@ -1,14 +1,16 @@
1
1
 
2
+ @layer components {
2
3
  .ui-Checkbox {
3
- position: relative;
4
- display: inline-flex;
5
- align-items: center;
6
- justify-content: center;
7
- vertical-align: top;
8
- flex-shrink: 0;
9
- cursor: default;
10
- height: var(--checkbox-size);
11
- border-radius: var(--checkbox-border-radius);
4
+ position: relative;
5
+ display: inline-flex;
6
+ align-items: center;
7
+ justify-content: center;
8
+ vertical-align: top;
9
+ flex-shrink: 0;
10
+ cursor: default;
11
+ height: var(--checkbox-size);
12
+ border-radius: var(--checkbox-border-radius);
13
+ }
12
14
  }
13
15
  .ui-Checkbox::before {
14
16
  content: '';
@@ -9,12 +9,14 @@
9
9
  --scrollarea-scrollbar-vertical-margin-left: var(--space-1);
10
10
  --scrollarea-scrollbar-vertical-margin-right: var(--space-1);
11
11
  }
12
+ @layer components {
12
13
  .ui-ScrollArea {
13
- display: flex;
14
- flex-direction: column;
15
- overflow: hidden;
16
- width: 100%;
17
- height: 100%;
14
+ display: flex;
15
+ flex-direction: column;
16
+ overflow: hidden;
17
+ width: 100%;
18
+ height: 100%;
19
+ }
18
20
  }
19
21
  .ui-ScrollAreaViewport {
20
22
  display: flex;
@@ -22,6 +24,13 @@
22
24
  width: 100%;
23
25
  height: 100%;
24
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
+ }
25
34
  .ui-ScrollAreaViewport:where(:focus-visible) + :where(.ui-ScrollAreaViewportFocusRing) {
26
35
  position: absolute;
27
36
  inset: 0;
@@ -152,7 +161,6 @@
152
161
  box-sizing: border-box;
153
162
  overflow: hidden;
154
163
  border-radius: var(--menu-content-border-radius);
155
-
156
164
  box-shadow: var(--shadow-5);
157
165
  background-color: var(--color-panel-solid);
158
166
  }
@@ -34,17 +34,19 @@
34
34
  }
35
35
  }
36
36
 
37
+ @layer components {
37
38
  .ui-PopoverPopup {
38
- background-color: var(--color-panel-solid);
39
- box-shadow: var(--shadow-5);
40
- min-width: var(--reka-popover-trigger-width);
41
- max-width: var(--reka-popover-content-available-width);
42
- outline: 0;
43
- overflow: auto;
44
- position: relative;
45
- box-sizing: border-box;
46
- transform-origin: var(--reka-popover-content-transform-origin);
47
- padding: var(--popover-popup-padding);
39
+ background-color: var(--color-panel-solid);
40
+ box-shadow: var(--shadow-5);
41
+ min-width: var(--reka-popover-trigger-width);
42
+ max-width: var(--reka-popover-content-available-width);
43
+ outline: 0;
44
+ overflow: auto;
45
+ position: relative;
46
+ box-sizing: border-box;
47
+ transform-origin: var(--reka-popover-content-transform-origin);
48
+ padding: var(--popover-popup-padding);
49
+ }
48
50
  }
49
51
  .ui-PopoverPopup:where(.r-size-1) {
50
52
  border-radius: var(--radius-4);
@@ -54,6 +56,3 @@
54
56
  border-radius: var(--radius-5);
55
57
  --popover-popup-padding: var(--space-4);
56
58
  }
57
- .ui-PopoverPopup:where(.p-0) {
58
- --popover-popup-padding: 0;
59
- }
@@ -128,12 +128,14 @@
128
128
  --radio-size: calc(var(--space-4) * 1.25);
129
129
  }
130
130
 
131
+ @layer components {
131
132
  .ui-RadioGroupItem {
132
- display: inline-flex;
133
- align-items: center;
134
- gap: .5em;
135
- width: -moz-fit-content;
136
- width: fit-content;
133
+ display: inline-flex;
134
+ align-items: center;
135
+ gap: .5em;
136
+ width: -moz-fit-content;
137
+ width: fit-content;
138
+ }
137
139
  }
138
140
 
139
141
  .ui-RadioCardsRoot:where(.r-size-1) {
@@ -148,19 +150,21 @@
148
150
  --card-padding: var(--space-5);
149
151
  --card-border-radius: max(var(--radius-5), var(--radius-full));
150
152
  }
153
+ @layer components {
151
154
  .ui-BaseCard {
152
- display: block;
153
- position: relative;
154
- overflow: hidden;
155
- font-style: normal;
156
- text-align: start;
157
- box-sizing: border-box;
158
- border-radius: var(--card-border-radius);
159
- padding: var(--card-padding);
160
- border-color: var(--card-border-color, var(--gray-a5));
161
- border-width: var(--card-border-width, 1px);
162
- border-style: solid;
163
- width: 100%;
155
+ display: block;
156
+ position: relative;
157
+ overflow: hidden;
158
+ font-style: normal;
159
+ text-align: start;
160
+ box-sizing: border-box;
161
+ border-radius: var(--card-border-radius);
162
+ padding: var(--card-padding);
163
+ border-color: var(--card-border-color, var(--gray-a5));
164
+ border-width: var(--card-border-width, 1px);
165
+ border-style: solid;
166
+ width: 100%;
167
+ }
164
168
  }
165
169
  .ui-BaseCard:where(:-moz-any-link, button, label):where(:hover) {
166
170
  --card-border-color: var(--gray-a7);
@@ -177,11 +181,6 @@
177
181
  box-shadow: 0 0 0 2px var(--accent-4), 0 1px 2px 0 rgb(0 0 0 / 0.05);
178
182
  }
179
183
 
180
- /** special enhancement for tailwindcss */
181
- .ui-BaseCard:where(.p-0) {
182
- --card-padding: 0;
183
- }
184
-
185
184
  .ui-RadioCardsItem {
186
185
  height: 100%;
187
186
  }
@@ -190,15 +189,17 @@
190
189
  box-shadow: 0 0 0 1px var(--accent-10);
191
190
  }
192
191
 
192
+ @layer components {
193
193
  .ui-RadioTabsRoot {
194
- display: inline-flex;
195
- width: -moz-fit-content;
196
- width: fit-content;
197
- align-items: center;
198
- box-sizing: border-box;
199
- padding: var(--radio-tabs-list-padding);
200
- border-radius: var(--radio-tabs-list-radius);
201
- font-size: var(--radio-tabs-font-size);
194
+ display: inline-flex;
195
+ width: -moz-fit-content;
196
+ width: fit-content;
197
+ align-items: center;
198
+ box-sizing: border-box;
199
+ padding: var(--radio-tabs-list-padding);
200
+ border-radius: var(--radio-tabs-list-radius);
201
+ font-size: var(--radio-tabs-font-size);
202
+ }
202
203
  }
203
204
  .ui-RadioTabsRoot:where(.r-size-1) {
204
205
  --radio-tabs-font-size: var(--font-size-1);
@@ -225,11 +226,6 @@
225
226
  background-color: var(--accent-a3);
226
227
  }
227
228
 
228
- /* special fix for tailwind */
229
- .ui-RadioTabsRoot:where(.w-full) {
230
- width: 100%;
231
- }
232
-
233
229
  .ui-RadioTabsItem {
234
230
  display: inline-flex;
235
231
  flex-grow: 1;
@@ -9,12 +9,14 @@
9
9
  --scrollarea-scrollbar-vertical-margin-left: var(--space-1);
10
10
  --scrollarea-scrollbar-vertical-margin-right: var(--space-1);
11
11
  }
12
+ @layer components {
12
13
  .ui-ScrollArea {
13
- display: flex;
14
- flex-direction: column;
15
- overflow: hidden;
16
- width: 100%;
17
- height: 100%;
14
+ display: flex;
15
+ flex-direction: column;
16
+ overflow: hidden;
17
+ width: 100%;
18
+ height: 100%;
19
+ }
18
20
  }
19
21
  .ui-ScrollAreaViewport {
20
22
  display: flex;
@@ -22,6 +24,13 @@
22
24
  width: 100%;
23
25
  height: 100%;
24
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
+ }
25
34
  .ui-ScrollAreaViewport:where(:focus-visible) + :where(.ui-ScrollAreaViewportFocusRing) {
26
35
  position: absolute;
27
36
  inset: 0;
@@ -1,16 +1,18 @@
1
1
 
2
+ @layer components {
2
3
  .ui-Separator {
3
- display: block;
4
- box-sizing: border-box;
5
- background-color: var(--accent-a6);
4
+ display: block;
5
+ box-sizing: border-box;
6
+ background-color: var(--accent-a6);
6
7
  }
7
- .ui-Separator[aria-orientation="horizontal"] {
8
- width: var(--separator-size, auto);
9
- height: 1px;
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);
10
15
  }
11
- .ui-Separator[aria-orientation="vertical"] {
12
- width: 1px;
13
- height: var(--separator-size, auto);
14
16
  }
15
17
  .ui-Separator:where(.r-size-1) {
16
18
  --separator-size: var(--space-4);
@@ -9,12 +9,14 @@
9
9
  --scrollarea-scrollbar-vertical-margin-left: var(--space-1);
10
10
  --scrollarea-scrollbar-vertical-margin-right: var(--space-1);
11
11
  }
12
+ @layer components {
12
13
  .ui-ScrollArea {
13
- display: flex;
14
- flex-direction: column;
15
- overflow: hidden;
16
- width: 100%;
17
- height: 100%;
14
+ display: flex;
15
+ flex-direction: column;
16
+ overflow: hidden;
17
+ width: 100%;
18
+ height: 100%;
19
+ }
18
20
  }
19
21
  .ui-ScrollAreaViewport {
20
22
  display: flex;
@@ -22,6 +24,13 @@
22
24
  width: 100%;
23
25
  height: 100%;
24
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
+ }
25
34
  .ui-ScrollAreaViewport:where(:focus-visible) + :where(.ui-ScrollAreaViewportFocusRing) {
26
35
  position: absolute;
27
36
  inset: 0;
@@ -173,8 +182,7 @@
173
182
  border: 1px solid var(--gray-a5);
174
183
  border-radius: var(--table-border-radius);
175
184
  background-color: var(--color-panel);
176
- -webkit-backdrop-filter: var(--backdrop-filter-panel);
177
- backdrop-filter: var(--backdrop-filter-panel);
185
+ backdrop-filter: var(--backdrop-filter-panel);
178
186
  background-clip: padding-box;
179
187
  position: relative;
180
188
  }
@@ -1,19 +1,11 @@
1
1
 
2
- .ui-TabList {
3
- justify-content: flex-start;
4
- position: relative;
5
- overflow-x: auto;
6
- white-space: nowrap;
7
- font-style: normal;
8
- scrollbar-width: none;
9
- }
10
- .ui-TabList::-webkit-scrollbar {
2
+ .ui-TabsList::-webkit-scrollbar {
11
3
  display: none;
12
4
  }
13
- .ui-TabList:where(.r-size-1) {
14
- font-size: var(--font-size-1);
15
- line-height: var(--line-height-1);
16
- letter-spacing: var(--letter-spacing-1);
5
+ .ui-TabsList:where(.r-size-1) {
6
+ --tab-font-size: var(--font-size-1);
7
+ --tab-line-height: var(--line-height-1);
8
+ --tab-letter-spacing: var(--letter-spacing-1);
17
9
  --tab-height: var(--space-6);
18
10
  --tab-padding-x: var(--space-1);
19
11
  --tab-radius: max(var(--radius-2), var(--radius-full));
@@ -21,10 +13,10 @@
21
13
  --tab-inner-padding-x: var(--space-1);
22
14
  --tab-inner-height: var(--space-5);
23
15
  }
24
- .ui-TabList:where(.r-size-2) {
25
- font-size: var(--font-size-2);
26
- line-height: var(--line-height-2);
27
- letter-spacing: var(--letter-spacing-2);
16
+ .ui-TabsList:where(.r-size-2) {
17
+ --tab-font-size: var(--font-size-2);
18
+ --tab-line-height: var(--line-height-2);
19
+ --tab-letter-spacing: var(--letter-spacing-2);
28
20
  --tab-height: var(--space-7);
29
21
  --tab-padding-x: var(--space-2);
30
22
  --tab-radius: max(var(--radius-3), var(--radius-full));
@@ -32,6 +24,55 @@
32
24
  --tab-inner-padding-x: var(--space-2);
33
25
  --tab-inner-height: calc(var(--space-6) - var(--space-1));
34
26
  }
27
+ .ui-TabsList:where(.r-variant-surface.r-size-1),
28
+ .ui-TabsList:where(.r-variant-soft.r-size-1) {
29
+ --tab-inner-padding-x: calc(var(--space-2) / 4 * 3);
30
+ }
31
+ @layer components {
32
+ .ui-TabsList {
33
+ justify-content: flex-start;
34
+ position: relative;
35
+ overflow-x: auto;
36
+ white-space: nowrap;
37
+ font-style: normal;
38
+ scrollbar-width: none;
39
+ font-size: var(--tab-font-size);
40
+ line-height: var(--tab-line-height);
41
+ letter-spacing: var(--tab-letter-spacing);
42
+ }
43
+
44
+ /** classic & surface */
45
+ .ui-TabsList:where(.r-variant-surface, .r-variant-classic) {
46
+ position: relative;
47
+ display: inline-flex;
48
+ width: -moz-fit-content;
49
+ width: fit-content;
50
+ align-items: center;
51
+ vertical-align: top;
52
+ flex-shrink: 0;
53
+ border-radius: var(--tab-radius);
54
+ }
55
+ .ui-TabsList:where(.r-variant-classic) {
56
+ background-color: var(--accent-a3);
57
+ padding-left: var(--tab-padding-x);
58
+ padding-right: var(--tab-padding-x);
59
+ }
60
+ .ui-TabsList:where(.r-variant-surface) {
61
+ --tab-item-radius: 0;
62
+ --tab-inner-height: var(--tab-height);
63
+ box-shadow: inset 0 0 0 1px var(--gray-a6);
64
+ }
65
+
66
+ /** soft & outline */
67
+ .ui-TabsList:where(.r-variant-outline, .r-variant-soft) {
68
+ display: flex;
69
+ box-shadow: inset 0 -1px 0 0 var(--gray-a5);
70
+ }
71
+ .ui-TabsList:where(.r-variant-soft) {
72
+ padding-left: var(--tab-padding-x);
73
+ padding-right: var(--tab-padding-x);
74
+ }
75
+ }
35
76
  .ui-TabsIndicator {
36
77
  position: absolute;
37
78
  left: 0;
@@ -39,36 +80,13 @@
39
80
  transform: translateX(var(--reka-tabs-indicator-position));
40
81
  width: var(--reka-tabs-indicator-size);
41
82
  }
42
-
43
- /** classic & surface */
44
- .ui-TabList:where(.r-variant-surface, .r-variant-classic) {
45
- position: relative;
46
- display: inline-flex;
47
- width: -moz-fit-content;
48
- width: fit-content;
49
- align-items: center;
50
- justify-content: center;
51
- vertical-align: top;
52
- flex-shrink: 0;
53
- border-radius: var(--tab-radius);
54
- }
55
- .ui-TabList:where(.r-variant-classic) {
56
- background-color: var(--accent-a3);
57
- padding-left: var(--tab-padding-x);
58
- padding-right: var(--tab-padding-x);
59
- }
60
- .ui-TabList:where(.r-variant-surface) {
61
- --tab-item-radius: 0;
62
- --tab-inner-height: var(--tab-height);
63
- box-shadow: inset 0 0 0 1px var(--gray-a6);
64
- }
65
- .ui-TabList:where(.r-variant-surface) :where(.ui-TabsIndicator) {
83
+ .ui-TabsList:where(.r-variant-surface) :where(.ui-TabsIndicator) {
66
84
  top: 0;
67
- height: var(--tab-inner-height);
85
+ height: var(--tab-height);
68
86
  background-color: var(--accent-a3);
69
87
  transition-duration: 100ms;
70
88
  }
71
- .ui-TabList:where(.r-variant-classic) :where(.ui-TabsIndicator) {
89
+ .ui-TabsList:where(.r-variant-classic) :where(.ui-TabsIndicator) {
72
90
  top: calc((var(--tab-height) - var(--tab-inner-height)) / 2);
73
91
  height: var(--tab-inner-height);
74
92
  background-color: var(--color-panel-solid);
@@ -80,28 +98,14 @@
80
98
  border-radius: var(--tab-item-radius);
81
99
  transition-duration: 100ms;
82
100
  }
83
- .ui-TabList:where(.r-variant-surface.r-size-1),
84
- .ui-TabList:where(.r-variant-soft.r-size-1) {
85
- --tab-inner-padding-x: calc(var(--space-2) / 4 * 3);
86
- }
87
-
88
- /** soft & outline */
89
- .ui-TabList:where(.r-variant-outline, .r-variant-soft) {
90
- display: flex;
91
- box-shadow: inset 0 -1px 0 0 var(--gray-a5);
92
- }
93
- .ui-TabList:where(.r-variant-soft) {
94
- padding-left: var(--tab-padding-x);
95
- padding-right: var(--tab-padding-x);
96
- }
97
- .ui-TabList:where(.r-variant-soft) :where(.ui-TabsIndicator) {
101
+ .ui-TabsList:where(.r-variant-soft) :where(.ui-TabsIndicator) {
98
102
  top: calc((var(--tab-height) - var(--tab-inner-height)) / 2);
99
103
  height: var(--tab-inner-height);
100
104
  background-color: var(--accent-a3);
101
105
  border-radius: var(--tab-item-radius);
102
106
  transition-duration: 100ms;
103
107
  }
104
- .ui-TabList:where(.r-variant-outline) :where(.ui-TabsIndicator) {
108
+ .ui-TabsList:where(.r-variant-outline) :where(.ui-TabsIndicator) {
105
109
  bottom: 0;
106
110
  height: 2px;
107
111
  background-color: var(--accent-indicator);
@@ -109,15 +113,10 @@
109
113
  }
110
114
 
111
115
  /** high contrast */
112
- :where(.ui-TabList.r-variant-outline.r-high-contrast) .ui-TabsIndicator {
116
+ :where(.ui-TabsList.r-variant-outline.r-high-contrast) .ui-TabsIndicator {
113
117
  background-color: var(--accent-12);
114
118
  }
115
119
 
116
- /** special fix for tailwind */
117
- .ui-TabList:where(.w-full) {
118
- width: 100%;
119
- }
120
-
121
120
  .ui-TabTrigger {
122
121
  display: flex;
123
122
  align-items: center;
@@ -166,13 +165,13 @@
166
165
  word-spacing: var(--tab-active-word-spacing);
167
166
  }
168
167
  @media (hover: hover) {
169
- .ui-TabList:where(.r-variant-outline, .r-variant-classic) :where(.ui-TabTrigger:hover) {
168
+ .ui-TabsList:where(.r-variant-outline, .r-variant-classic) :where(.ui-TabTrigger:hover) {
170
169
  color: var(--gray-12);
171
170
  }
172
- .ui-TabList:where(.r-variant-surface, .r-variant-soft) :where(.ui-TabTrigger:hover) {
171
+ .ui-TabsList:where(.r-variant-surface, .r-variant-soft) :where(.ui-TabTrigger:hover) {
173
172
  color: var(--accent-a11);
174
173
  }
175
- .ui-TabList:where(.r-variant-outline) :where(.ui-TabTrigger:not(:disabled):hover) :where(.ui-TabTriggerInner) {
174
+ .ui-TabsList:where(.r-variant-outline) :where(.ui-TabTrigger:not(:disabled):hover) :where(.ui-TabTriggerInner) {
176
175
  background-color: var(--gray-a3);
177
176
  }
178
177
  .ui-TabTrigger:where(:focus-visible:hover) :where(.ui-TabTriggerInner) {
@@ -183,19 +182,19 @@
183
182
  outline: 2px solid var(--focus-8);
184
183
  outline-offset: -2px;
185
184
  }
186
- .ui-TabList:where(.r-variant-outline) :where(.ui-TabTrigger) {
185
+ .ui-TabsList:where(.r-variant-outline) :where(.ui-TabTrigger) {
187
186
  padding-left: var(--tab-padding-x);
188
187
  padding-right: var(--tab-padding-x);
189
188
  }
190
- .ui-TabList:where(.r-variant-classic, .r-variant-outline) :where(.ui-TabTrigger[data-state='active']) {
189
+ .ui-TabsList:where(.r-variant-classic, .r-variant-outline) :where(.ui-TabTrigger[data-state='active']) {
191
190
  color: var(--gray-12);
192
191
  }
193
- .ui-TabList:where(.r-variant-soft) :where(.ui-TabTrigger + .ui-TabTrigger) {
192
+ .ui-TabsList:where(.r-variant-soft) :where(.ui-TabTrigger + .ui-TabTrigger) {
194
193
  margin-left: calc(var(--tab-padding-x) / 2)
195
194
  }
196
- .ui-TabList:where(.r-variant-surface) :where(.ui-TabTrigger + .ui-TabTrigger) {
195
+ .ui-TabsList:where(.r-variant-surface) :where(.ui-TabTrigger + .ui-TabTrigger) {
197
196
  box-shadow: inset 1px 0 0 var(--gray-a4);
198
197
  }
199
- .ui-TabList:where(.r-variant-surface, .r-variant-soft) :where(.ui-TabTrigger[data-state='active']) {
198
+ .ui-TabsList:where(.r-variant-surface, .r-variant-soft) :where(.ui-TabTrigger[data-state='active']) {
200
199
  color: var(--accent-a11);
201
200
  }
@@ -1,27 +1,31 @@
1
1
 
2
+ @layer components {
2
3
  .ui-Toggle {
3
- position: relative;
4
- display: inline-flex;
5
- align-items: center;
6
- justify-content: center;
7
- vertical-align: top;
8
- flex-shrink: 0;
9
- width: var(--toggle-size);
10
- height: var(--toggle-size);
4
+ position: relative;
5
+ display: inline-flex;
6
+ align-items: center;
7
+ justify-content: center;
8
+ vertical-align: top;
9
+ flex-shrink: 0;
10
+ border-radius: var(--toggle-border-radius);
11
+ font-size: var(--toggle-font-size);
12
+ width: var(--toggle-size);
13
+ height: var(--toggle-size);
14
+ }
11
15
  }
12
16
  .ui-Toggle:where(.r-size-1) {
13
- border-radius: max(var(--radius-1), var(--radius-full));
14
- font-size: var(--font-size-1);
17
+ --toggle-border-radius: max(var(--radius-1), var(--radius-full));
18
+ --toggle-font-size: var(--font-size-1);
15
19
  --toggle-size: var(--space-5);
16
20
  }
17
21
  .ui-Toggle:where(.r-size-2) {
18
- border-radius: max(var(--radius-2), var(--radius-full));
19
- font-size: var(--font-size-3);
22
+ --toggle-border-radius: max(var(--radius-2), var(--radius-full));
23
+ --toggle-font-size: var(--font-size-3);
20
24
  --toggle-size: var(--space-6);
21
25
  }
22
26
  .ui-Toggle:where(.r-size-3) {
23
- border-radius: max(var(--radius-3), var(--radius-full));
24
- font-size: var(--font-size-6);
27
+ --toggle-border-radius: max(var(--radius-3), var(--radius-full));
28
+ --toggle-font-size: var(--font-size-6);
25
29
  --toggle-size: var(--space-7);
26
30
  }
27
31
 
@@ -84,14 +88,16 @@
84
88
  color: var(--gray-1);
85
89
  }
86
90
 
91
+ @layer components {
87
92
  .ui-ToggleGroupRoot {
88
- position: relative;
89
- display: inline-flex;
90
- align-items: center;
91
- justify-content: center;
92
- vertical-align: top;
93
- flex-shrink: 0;
94
- height: var(--toggle-group-height);
93
+ position: relative;
94
+ display: inline-flex;
95
+ align-items: center;
96
+ justify-content: center;
97
+ vertical-align: top;
98
+ flex-shrink: 0;
99
+ height: var(--toggle-group-height);
100
+ }
95
101
  }
96
102
  .ui-ToggleGroupRoot:where(.r-size-1) {
97
103
  font-size: var(--font-size-1);
@@ -132,15 +138,17 @@
132
138
  --toggle-item-size: var(--toggle-group-height);
133
139
  }
134
140
 
141
+ @layer components {
135
142
  .ui-ToggleGroupItem {
136
- position: relative;
137
- display: inline-flex;
138
- align-items: center;
139
- justify-content: center;
140
- vertical-align: top;
141
- flex-shrink: 0;
142
- width: var(--toggle-item-size);
143
- height: var(--toggle-item-size);
143
+ position: relative;
144
+ display: inline-flex;
145
+ align-items: center;
146
+ justify-content: center;
147
+ vertical-align: top;
148
+ flex-shrink: 0;
149
+ width: var(--toggle-item-size);
150
+ height: var(--toggle-item-size);
151
+ }
144
152
  }
145
153
  .ui-ToggleGroupRoot:where(.r-variant-solid, .r-variant-surface, .r-variant-outline) :where(.ui-ToggleGroupItem:first-child) {
146
154
  border-top-left-radius: var(--toggle-radius);