@womp/kookie-ui 0.13.0 → 0.13.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.
package/layout/tokens.css CHANGED
@@ -22,6 +22,10 @@
22
22
  --space-6: calc(32px * var(--scaling));
23
23
  --space-7: calc(40px * var(--scaling));
24
24
  --space-8: calc(48px * var(--scaling));
25
+ --control-height-1: var(--space-5);
26
+ --control-height-2: var(--space-6);
27
+ --control-height-3: var(--space-7);
28
+ --control-height-4: var(--space-8);
25
29
  --space-9: calc(64px * var(--scaling));
26
30
  --space-10: calc(80px * var(--scaling));
27
31
  --space-11: calc(96px * var(--scaling));
package/layout.css CHANGED
@@ -22,6 +22,10 @@
22
22
  --space-6: calc(32px * var(--scaling));
23
23
  --space-7: calc(40px * var(--scaling));
24
24
  --space-8: calc(48px * var(--scaling));
25
+ --control-height-1: var(--space-5);
26
+ --control-height-2: var(--space-6);
27
+ --control-height-3: var(--space-7);
28
+ --control-height-4: var(--space-8);
25
29
  --space-9: calc(64px * var(--scaling));
26
30
  --space-10: calc(80px * var(--scaling));
27
31
  --space-11: calc(96px * var(--scaling));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@womp/kookie-ui",
3
- "version": "0.13.0",
3
+ "version": "0.13.2",
4
4
  "description": "Kookie UI v1: a React component library with design tokens, flexible theming, a full layout shell, and comprehensive documentation.",
5
5
  "keywords": [
6
6
  "react",
@@ -176,22 +176,22 @@
176
176
  @breakpoints {
177
177
  .rt-BaseButton {
178
178
  &:where(.rt-r-size-1) {
179
- --base-button-height: var(--space-5);
179
+ --base-button-height: var(--control-height-1);
180
180
  border-radius: max(var(--radius-1), var(--radius-full));
181
181
  }
182
182
 
183
183
  &:where(.rt-r-size-2) {
184
- --base-button-height: var(--space-6);
184
+ --base-button-height: var(--control-height-2);
185
185
  border-radius: max(var(--radius-2), var(--radius-full));
186
186
  }
187
187
 
188
188
  &:where(.rt-r-size-3) {
189
- --base-button-height: var(--space-7);
189
+ --base-button-height: var(--control-height-3);
190
190
  border-radius: max(var(--radius-3), var(--radius-full));
191
191
  }
192
192
 
193
193
  &:where(.rt-r-size-4) {
194
- --base-button-height: var(--space-8);
194
+ --base-button-height: var(--control-height-4);
195
195
  border-radius: max(var(--radius-4), var(--radius-full));
196
196
  }
197
197
  }
@@ -167,7 +167,7 @@
167
167
  --base-menu-item-padding-left-indicator: calc(var(--space-5) / 1.2);
168
168
  --base-menu-item-padding-right: var(--space-2);
169
169
  --base-menu-item-padding-y: var(--space-1);
170
- --base-menu-item-height: var(--space-5);
170
+ --base-menu-item-height: var(--control-height-1);
171
171
  border-radius: var(--radius-surface-3);
172
172
 
173
173
  & :where(.rt-BaseMenuItem) {
@@ -205,7 +205,7 @@
205
205
  --base-menu-item-padding-left-indicator: var(--space-5);
206
206
  --base-menu-item-padding-right: var(--space-3);
207
207
  --base-menu-item-padding-y: var(--space-1);
208
- --base-menu-item-height: var(--space-6);
208
+ --base-menu-item-height: var(--control-height-2);
209
209
  border-radius: var(--radius-surface-5);
210
210
 
211
211
  & :where(.rt-BaseMenuItem) {
@@ -243,7 +243,7 @@
243
243
  --base-menu-item-padding-left-indicator: var(--space-5);
244
244
  --base-menu-item-padding-right: var(--space-3);
245
245
  --base-menu-item-padding-y: var(--space-2);
246
- --base-menu-item-height: var(--space-7);
246
+ --base-menu-item-height: var(--control-height-3);
247
247
  border-radius: var(--radius-surface-6);
248
248
 
249
249
  & :where(.rt-BaseMenuItem) {
@@ -83,7 +83,7 @@
83
83
  font-size: var(--font-size-1);
84
84
  line-height: var(--line-height-1);
85
85
  letter-spacing: var(--letter-spacing-1);
86
- --tab-height: var(--space-6);
86
+ --tab-height: var(--control-height-1);
87
87
  --tab-padding-x: var(--space-1);
88
88
  --tab-inner-padding-x: var(--space-1);
89
89
  --tab-inner-padding-y: calc(var(--space-1) * var(--spacing-multiplier-small));
@@ -104,7 +104,7 @@
104
104
  font-size: var(--font-size-2);
105
105
  line-height: var(--line-height-2);
106
106
  letter-spacing: var(--letter-spacing-2);
107
- --tab-height: var(--space-7);
107
+ --tab-height: var(--control-height-2);
108
108
  --tab-padding-x: var(--space-2);
109
109
  --tab-inner-padding-x: var(--space-2);
110
110
  --tab-inner-padding-y: var(--space-1);
@@ -405,7 +405,7 @@
405
405
 
406
406
  &:where(.rt-r-size-1) {
407
407
  --segmented-control-border-radius: max(var(--radius-1), var(--radius-full));
408
- --segmented-control-height: var(--space-5);
408
+ --segmented-control-height: var(--control-height-1);
409
409
  height: var(--segmented-control-height);
410
410
 
411
411
  /* Vertical: height auto, width determined by content or icon-only */
@@ -436,7 +436,7 @@
436
436
  }
437
437
  &:where(.rt-r-size-2) {
438
438
  --segmented-control-border-radius: max(var(--radius-2), var(--radius-full));
439
- --segmented-control-height: var(--space-6);
439
+ --segmented-control-height: var(--control-height-2);
440
440
  height: var(--segmented-control-height);
441
441
 
442
442
  /* Vertical: height auto, width determined by content or icon-only */
@@ -467,7 +467,7 @@
467
467
  }
468
468
  &:where(.rt-r-size-3) {
469
469
  --segmented-control-border-radius: max(var(--radius-3), var(--radius-full));
470
- --segmented-control-height: var(--space-7);
470
+ --segmented-control-height: var(--control-height-3);
471
471
  height: var(--segmented-control-height);
472
472
 
473
473
  /* Vertical: height auto, width determined by content or icon-only */
@@ -498,7 +498,7 @@
498
498
  }
499
499
  &:where(.rt-r-size-4) {
500
500
  --segmented-control-border-radius: max(var(--radius-4), var(--radius-full));
501
- --segmented-control-height: var(--space-8);
501
+ --segmented-control-height: var(--control-height-4);
502
502
  height: var(--segmented-control-height);
503
503
 
504
504
  /* Vertical: height auto, width determined by content or icon-only */
@@ -186,7 +186,7 @@
186
186
  @breakpoints {
187
187
  .rt-SelectTrigger {
188
188
  &:where(.rt-r-size-1) {
189
- --select-trigger-height: var(--space-5);
189
+ --select-trigger-height: var(--control-height-1);
190
190
  gap: var(--component-gap-1);
191
191
  font-size: var(--font-size-1);
192
192
  line-height: var(--line-height-1);
@@ -207,7 +207,7 @@
207
207
  }
208
208
  }
209
209
  &:where(.rt-r-size-2) {
210
- --select-trigger-height: var(--space-6);
210
+ --select-trigger-height: var(--control-height-2);
211
211
  gap: var(--component-gap-2);
212
212
  font-size: var(--font-size-2);
213
213
  line-height: var(--line-height-2);
@@ -228,7 +228,7 @@
228
228
  }
229
229
  }
230
230
  &:where(.rt-r-size-3) {
231
- --select-trigger-height: var(--space-7);
231
+ --select-trigger-height: var(--control-height-3);
232
232
  gap: var(--component-gap-3);
233
233
  font-size: var(--font-size-3);
234
234
  line-height: var(--line-height-3);
@@ -261,7 +261,7 @@
261
261
  .rt-SelectContent {
262
262
  &:where(.rt-r-size-1) {
263
263
  --select-content-padding: var(--space-1);
264
- --select-item-height: var(--space-5);
264
+ --select-item-height: var(--control-height-1);
265
265
  --select-item-indicator-width: calc(var(--space-5) / var(--select-item-indicator-width-factor));
266
266
  --select-separator-margin-right: var(--space-2);
267
267
  border-radius: var(--radius-surface-3);
@@ -284,7 +284,6 @@
284
284
  }
285
285
  &:where(.rt-r-size-2, .rt-r-size-3) {
286
286
  --select-content-padding: var(--space-2);
287
- --select-item-height: var(--space-6);
288
287
  --select-item-indicator-width: var(--space-5);
289
288
  --select-separator-margin-right: var(--space-3);
290
289
  border-radius: var(--radius-surface-4);
@@ -300,6 +299,8 @@
300
299
  }
301
300
  }
302
301
  &:where(.rt-r-size-2) {
302
+ --select-item-height: var(--control-height-2);
303
+
303
304
  & :where(.rt-SelectItem) {
304
305
  font-size: var(--font-size-2);
305
306
  letter-spacing: var(--letter-spacing-2);
@@ -310,6 +311,8 @@
310
311
  }
311
312
  }
312
313
  &:where(.rt-r-size-3) {
314
+ --select-item-height: var(--control-height-3);
315
+
313
316
  & :where(.rt-SelectItem) {
314
317
  font-size: var(--font-size-3);
315
318
  letter-spacing: var(--letter-spacing-3);
@@ -230,19 +230,19 @@
230
230
  /* stylelint-disable-next-line selector-max-specificity */
231
231
  .rt-SidebarContainer[data-presentation='thin'] .rt-SidebarContent.rt-r-size-1 .rt-SidebarMenuIconWrapper {
232
232
  padding: var(--space-2) var(--space-2);
233
- border-radius: var(--radius-1);
233
+ border-radius: max(var(--radius-1), var(--radius-full));
234
234
  }
235
235
 
236
236
  /* stylelint-disable-next-line selector-max-specificity */
237
237
  .rt-SidebarContainer[data-presentation='thin'] .rt-SidebarContent.rt-r-size-2 .rt-SidebarMenuIconWrapper {
238
238
  padding: var(--space-2);
239
- border-radius: var(--radius-2);
239
+ border-radius: max(var(--radius-2), var(--radius-full));
240
240
  }
241
241
 
242
242
  /* stylelint-disable-next-line selector-max-specificity */
243
243
  .rt-SidebarContainer[data-presentation='thin'] .rt-SidebarContent.rt-r-size-3 .rt-SidebarMenuIconWrapper {
244
244
  padding: var(--space-3);
245
- border-radius: var(--radius-2);
245
+ border-radius: max(var(--radius-3), var(--radius-full));
246
246
  }
247
247
 
248
248
  /* Label styling in thin mode - outside the background area */
@@ -609,103 +609,50 @@
609
609
  * *
610
610
  ***************************************************************************************************/
611
611
 
612
+ /* A sub-trigger's chevron sits at the row's end; its size comes from the size ladder below */
613
+ .rt-SidebarMenuSubTriggerIcon {
614
+ flex-shrink: 0;
615
+ margin-left: auto;
616
+ }
617
+
612
618
  @breakpoints {
613
- /* Container sizing - inherit from base menu */
619
+ /* Sidebar rows sit on the control height ladder: size N is as tall as a Button,
620
+ menu item or TextField of size N. Content is a BaseMenuContent, so it takes
621
+ every size value from base-menu.css. Header and Footer are not, so they
622
+ restate base-menu's values here; keep the two in step. */
614
623
  .rt-SidebarContainer {
615
624
  &:where(.rt-r-size-1) {
616
625
  --sidebar-base-padding: var(--space-3);
617
- --sidebar-item-height: var(--space-6);
618
626
  }
619
- &:where(.rt-r-size-2) {
627
+ &:where(.rt-r-size-2, .rt-r-size-3) {
620
628
  --sidebar-base-padding: var(--space-4);
621
- --sidebar-item-height: var(--space-7);
622
- }
623
- &:where(.rt-r-size-3) {
624
- --sidebar-base-padding: var(--space-4);
625
- --sidebar-item-height: var(--space-8);
626
629
  }
627
630
  }
628
631
 
629
- /* Content sizing - use base menu tokens directly */
630
- .rt-SidebarContent {
631
- &:where(.rt-r-size-1) {
632
- --sidebar-content-padding: var(--base-menu-content-padding);
633
- --sidebar-item-padding-left: var(--base-menu-item-padding-left);
634
- --sidebar-item-padding-right: var(--base-menu-item-padding-right);
635
- --sidebar-item-padding-y: var(--base-menu-item-padding-y);
636
- --base-menu-item-height: var(--space-6);
637
- --sidebar-item-height: var(--base-menu-item-height);
638
- }
639
- &:where(.rt-r-size-2) {
640
- --sidebar-content-padding: var(--base-menu-content-padding);
641
- --sidebar-item-padding-left: var(--base-menu-item-padding-left);
642
- --sidebar-item-padding-right: var(--base-menu-item-padding-right);
643
- --sidebar-item-padding-y: var(--base-menu-item-padding-y);
644
- --base-menu-item-height: var(--space-7);
645
- --sidebar-item-height: var(--base-menu-item-height);
646
- }
647
- &:where(.rt-r-size-3) {
648
- --sidebar-content-padding: var(--base-menu-content-padding);
649
- --sidebar-item-padding-left: var(--base-menu-item-padding-left);
650
- --sidebar-item-padding-right: var(--base-menu-item-padding-right);
651
- --sidebar-item-padding-y: var(--base-menu-item-padding-y);
652
- --base-menu-item-height: var(--space-8);
653
- --sidebar-item-height: var(--base-menu-item-height);
654
- }
655
- }
656
-
657
- /* Header/Footer sizing - mirror base menu tokens so buttons render correctly */
658
- .rt-SidebarHeader,
659
- .rt-SidebarFooter {
660
- &:where(.rt-r-size-1) {
661
- --base-menu-content-padding: var(--space-2);
662
- --base-menu-item-padding-left: calc(var(--space-5) / 1.2);
663
- --base-menu-item-padding-right: var(--space-2);
664
- --base-menu-item-padding-y: var(--space-1);
665
- --base-menu-item-height: var(--space-6);
666
- --sidebar-item-height: var(--base-menu-item-height);
667
- }
668
-
669
- &:where(.rt-r-size-2) {
670
- --base-menu-content-padding: var(--space-3);
671
- --base-menu-item-padding-left: var(--space-3);
672
- --base-menu-item-padding-right: var(--space-3);
673
- --base-menu-item-padding-y: var(--space-1);
674
- --base-menu-item-height: var(--space-7);
675
- --sidebar-item-height: var(--base-menu-item-height);
676
- }
677
-
678
- &:where(.rt-r-size-3) {
679
- --base-menu-content-padding: var(--space-3);
680
- --base-menu-item-padding-left: var(--space-3);
681
- --base-menu-item-padding-right: var(--space-3);
682
- --base-menu-item-padding-y: var(--space-2);
683
- --base-menu-item-height: var(--space-8);
684
- --sidebar-item-height: var(--base-menu-item-height);
685
- }
686
- }
687
-
688
- /* Size-specific menu button styling - inherit from base menu */
689
- .rt-SidebarContent:where(.rt-r-size-1),
690
632
  .rt-SidebarHeader:where(.rt-r-size-1),
691
633
  .rt-SidebarFooter:where(.rt-r-size-1) {
634
+ --base-menu-content-padding: var(--space-2);
635
+ --base-menu-item-padding-left: var(--space-2);
636
+ --base-menu-item-padding-right: var(--space-2);
637
+ --base-menu-item-padding-y: var(--space-1);
638
+ --base-menu-item-height: var(--control-height-1);
639
+ --sidebar-item-height: var(--base-menu-item-height);
640
+
692
641
  & :where(.rt-SidebarMenuButton) {
693
642
  gap: var(--component-gap-2);
694
643
  font-size: var(--font-size-1);
695
644
  line-height: var(--line-height-1);
696
645
  letter-spacing: var(--letter-spacing-1);
697
646
  border-radius: var(--radius-1);
698
- font-weight: var(--font-weight-regular);
699
647
 
700
648
  /* stylelint-disable-next-line selector-max-type */
701
649
  & :where(svg) {
702
- width: var(--content-icon-size-2);
703
- height: var(--content-icon-size-2);
650
+ width: var(--content-icon-size-1);
651
+ height: var(--content-icon-size-1);
704
652
  flex-shrink: 0;
705
653
  }
706
654
  }
707
655
 
708
- /* Sub-trigger icon sizing - matches base menu exactly */
709
656
  & :where(.rt-BaseMenuSubTriggerIcon) {
710
657
  width: var(--indicator-icon-size-1);
711
658
  height: var(--indicator-icon-size-1);
@@ -714,38 +661,30 @@
714
661
  }
715
662
  }
716
663
 
717
- .rt-SidebarContent:where(.rt-r-size-2),
718
664
  .rt-SidebarHeader:where(.rt-r-size-2),
719
665
  .rt-SidebarFooter:where(.rt-r-size-2) {
666
+ --base-menu-content-padding: var(--space-3);
667
+ --base-menu-item-padding-left: var(--space-3);
668
+ --base-menu-item-padding-right: var(--space-3);
669
+ --base-menu-item-padding-y: var(--space-1);
670
+ --base-menu-item-height: var(--control-height-2);
671
+ --sidebar-item-height: var(--base-menu-item-height);
672
+
720
673
  & :where(.rt-SidebarMenuButton) {
721
674
  gap: var(--component-gap-3);
722
675
  font-size: var(--font-size-2);
723
676
  line-height: var(--line-height-2);
724
677
  letter-spacing: var(--letter-spacing-2);
725
678
  border-radius: var(--radius-2);
726
- font-weight: var(--font-weight-regular);
727
679
 
728
680
  /* stylelint-disable-next-line selector-max-type */
729
681
  & :where(svg) {
730
- width: var(--content-icon-size-3);
731
- height: var(--content-icon-size-3);
682
+ width: var(--content-icon-size-2);
683
+ height: var(--content-icon-size-2);
732
684
  flex-shrink: 0;
733
685
  }
734
686
  }
735
- /* stylelint-disable-next-line selector-max-specificity */
736
- .rt-SidebarContent:where(.rt-r-size-3) {
737
- /* stylelint-disable-next-line selector-max-specificity */
738
- & :where(.rt-SidebarMenuButton) {
739
- /* stylelint-disable-next-line selector-max-type, selector-max-specificity */
740
- & :where(svg) {
741
- width: var(--content-icon-size-3);
742
- height: var(--content-icon-size-3);
743
- flex-shrink: 0;
744
- }
745
- }
746
- }
747
687
 
748
- /* Sub-trigger icon sizing - matches base menu exactly */
749
688
  & :where(.rt-BaseMenuSubTriggerIcon) {
750
689
  width: var(--indicator-icon-size-2);
751
690
  height: var(--indicator-icon-size-2);
@@ -754,16 +693,21 @@
754
693
  }
755
694
  }
756
695
 
757
- .rt-SidebarContent:where(.rt-r-size-3),
758
696
  .rt-SidebarHeader:where(.rt-r-size-3),
759
697
  .rt-SidebarFooter:where(.rt-r-size-3) {
698
+ --base-menu-content-padding: var(--space-3);
699
+ --base-menu-item-padding-left: var(--space-3);
700
+ --base-menu-item-padding-right: var(--space-3);
701
+ --base-menu-item-padding-y: var(--space-2);
702
+ --base-menu-item-height: var(--control-height-3);
703
+ --sidebar-item-height: var(--base-menu-item-height);
704
+
760
705
  & :where(.rt-SidebarMenuButton) {
761
- gap: var(--component-gap-3);
706
+ gap: var(--component-gap-4);
762
707
  font-size: var(--font-size-3);
763
- line-height: var(--line-height-2);
764
- letter-spacing: var(--letter-spacing-2);
708
+ line-height: var(--line-height-3);
709
+ letter-spacing: var(--letter-spacing-3);
765
710
  border-radius: var(--radius-2);
766
- font-weight: var(--font-weight-regular);
767
711
 
768
712
  /* stylelint-disable-next-line selector-max-type */
769
713
  & :where(svg) {
@@ -774,8 +718,8 @@
774
718
  }
775
719
 
776
720
  & :where(.rt-BaseMenuSubTriggerIcon) {
777
- width: var(--indicator-icon-size-2);
778
- height: var(--indicator-icon-size-2);
721
+ width: var(--indicator-icon-size-3);
722
+ height: var(--indicator-icon-size-3);
779
723
  flex-shrink: 0;
780
724
  margin-left: auto;
781
725
  }
@@ -1102,19 +1046,19 @@
1102
1046
  /* stylelint-disable-next-line selector-max-specificity */
1103
1047
  .rt-SidebarContainer[data-presentation='thin'].rt-r-size-1 .rt-SidebarSearchTrigger .rt-SidebarMenuIconWrapper {
1104
1048
  padding: var(--space-2) var(--space-2);
1105
- border-radius: var(--radius-1);
1049
+ border-radius: max(var(--radius-1), var(--radius-full));
1106
1050
  }
1107
1051
 
1108
1052
  /* stylelint-disable-next-line selector-max-specificity */
1109
1053
  .rt-SidebarContainer[data-presentation='thin'].rt-r-size-2 .rt-SidebarSearchTrigger .rt-SidebarMenuIconWrapper {
1110
1054
  padding: var(--space-2);
1111
- border-radius: var(--radius-2);
1055
+ border-radius: max(var(--radius-2), var(--radius-full));
1112
1056
  }
1113
1057
 
1114
1058
  /* stylelint-disable-next-line selector-max-specificity */
1115
1059
  .rt-SidebarContainer[data-presentation='thin'].rt-r-size-3 .rt-SidebarSearchTrigger .rt-SidebarMenuIconWrapper {
1116
1060
  padding: var(--space-3);
1117
- border-radius: var(--radius-2);
1061
+ border-radius: max(var(--radius-3), var(--radius-full));
1118
1062
  }
1119
1063
 
1120
1064
  /* Search trigger icon wrapper hover (soft variant) */
@@ -214,7 +214,7 @@
214
214
  @breakpoints {
215
215
  .rt-TextFieldRoot {
216
216
  &:where(.rt-r-size-1) {
217
- --text-field-height: var(--space-5);
217
+ --text-field-height: var(--control-height-1);
218
218
  --text-field-padding: calc(var(--space-1) * 1.5 - var(--text-field-border-width));
219
219
  --text-field-border-radius: max(var(--radius-1), var(--radius-full));
220
220
  --text-field-native-icon-size: var(--space-3);
@@ -247,7 +247,7 @@
247
247
  }
248
248
 
249
249
  &:where(.rt-r-size-2) {
250
- --text-field-height: var(--space-6);
250
+ --text-field-height: var(--control-height-2);
251
251
  --text-field-padding: calc(var(--space-2) - var(--text-field-border-width));
252
252
  --text-field-border-radius: max(var(--radius-2), var(--radius-full));
253
253
  --text-field-native-icon-size: var(--space-4);
@@ -281,7 +281,7 @@
281
281
  }
282
282
 
283
283
  &:where(.rt-r-size-3) {
284
- --text-field-height: var(--space-7);
284
+ --text-field-height: var(--control-height-3);
285
285
  --text-field-padding: calc(var(--space-3) - var(--text-field-border-width));
286
286
  --text-field-border-radius: max(var(--radius-3), var(--radius-full));
287
287
  --text-field-native-icon-size: var(--space-4);
@@ -26,28 +26,28 @@
26
26
  }
27
27
 
28
28
  &:where(.rt-r-size-1) {
29
- --toolbar-control-height: var(--space-5);
29
+ --toolbar-control-height: var(--control-height-1);
30
30
  --toolbar-radius: max(var(--radius-1), var(--radius-full));
31
31
  --toolbar-gap: var(--space-1);
32
32
  --toolbar-title-gap: var(--space-2);
33
33
  }
34
34
 
35
35
  &:where(.rt-r-size-2) {
36
- --toolbar-control-height: var(--space-6);
36
+ --toolbar-control-height: var(--control-height-2);
37
37
  --toolbar-radius: max(var(--radius-2), var(--radius-full));
38
38
  --toolbar-gap: var(--space-2);
39
39
  --toolbar-title-gap: var(--space-3);
40
40
  }
41
41
 
42
42
  &:where(.rt-r-size-3) {
43
- --toolbar-control-height: var(--space-7);
43
+ --toolbar-control-height: var(--control-height-3);
44
44
  --toolbar-radius: max(var(--radius-3), var(--radius-full));
45
45
  --toolbar-gap: var(--space-2);
46
46
  --toolbar-title-gap: var(--space-4);
47
47
  }
48
48
 
49
49
  &:where(.rt-r-size-4) {
50
- --toolbar-control-height: var(--space-8);
50
+ --toolbar-control-height: var(--control-height-4);
51
51
  --toolbar-radius: max(var(--radius-4), var(--radius-full));
52
52
  --toolbar-gap: var(--space-3);
53
53
  --toolbar-title-gap: var(--space-5);
@@ -12,6 +12,13 @@
12
12
  --space-7: calc(40px * var(--scaling));
13
13
  --space-8: calc(48px * var(--scaling));
14
14
 
15
+ /* Control heights. One ladder for every control: size N is the same height in
16
+ Button, Menu, Sidebar, Tabs, TextField, Select, SegmentedControl and Toolbar. */
17
+ --control-height-1: var(--space-5);
18
+ --control-height-2: var(--space-6);
19
+ --control-height-3: var(--space-7);
20
+ --control-height-4: var(--space-8);
21
+
15
22
  /* */
16
23
  --space-9: calc(64px * var(--scaling));
17
24
  --space-10: calc(80px * var(--scaling));