@godxjp/ui 28.8.0 → 28.9.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.
Files changed (49) hide show
  1. package/dist/contracts/measurement.json +1 -1
  2. package/dist/lib/variants.js +4 -1
  3. package/dist/props/vocabulary/layout.prop.d.ts +1 -1
  4. package/dist/styles/base.css +47 -14
  5. package/dist/styles/card-layout.css +2 -2
  6. package/dist/styles/chart-layout.css +6 -6
  7. package/dist/styles/control.css +10 -4
  8. package/dist/styles/data-display-layout.css +20 -5
  9. package/dist/styles/density.css +2 -0
  10. package/dist/styles/dialog-layout.css +4 -1
  11. package/dist/styles/focus-ring.css +4 -1
  12. package/dist/styles/layout.css +13 -3
  13. package/dist/styles/shell-layout.css +25 -21
  14. package/dist/styles/text-layout.css +94 -23
  15. package/dist/tokens/components/activity.css +13 -4
  16. package/dist/tokens/components/attachments.css +1 -1
  17. package/dist/tokens/components/badge.css +1 -1
  18. package/dist/tokens/components/card.css +28 -7
  19. package/dist/tokens/components/chart.css +4 -1
  20. package/dist/tokens/components/chat-composer.css +4 -1
  21. package/dist/tokens/components/control.css +69 -30
  22. package/dist/tokens/components/conversations.css +4 -1
  23. package/dist/tokens/components/data-display.css +42 -15
  24. package/dist/tokens/components/data-entry.css +8 -2
  25. package/dist/tokens/components/descriptions.css +1 -1
  26. package/dist/tokens/components/feedback.css +8 -5
  27. package/dist/tokens/components/float-button.css +8 -2
  28. package/dist/tokens/components/legal-document.css +12 -3
  29. package/dist/tokens/components/logo.css +15 -6
  30. package/dist/tokens/components/mega-menu.css +14 -5
  31. package/dist/tokens/components/navigation.css +37 -13
  32. package/dist/tokens/components/segmented.css +4 -1
  33. package/dist/tokens/components/separator.css +4 -1
  34. package/dist/tokens/components/shell.css +96 -31
  35. package/dist/tokens/components/table.css +11 -5
  36. package/dist/tokens/components/thought-chain.css +4 -1
  37. package/dist/tokens/components/toggle.css +4 -1
  38. package/dist/tokens/components/tree.css +1 -1
  39. package/dist/tokens/components/upload.css +21 -9
  40. package/dist/tokens/foundation.css +24 -30
  41. package/dist/tokens/semantic/layout.css +19 -5
  42. package/docs/TOKENS.md +16 -1
  43. package/docs/showcase/case4-login.tsx +10 -2
  44. package/docs/showcase/case5-shift-calendar.tsx +1 -1
  45. package/docs/showcase/case6-agency-handy.tsx +6 -6
  46. package/docs/showcase/futurelastic-web.tsx +7 -9
  47. package/docs/showcase/marketing-page.tsx +13 -13
  48. package/docs/showcase/table-expandable-rows.tsx +4 -1
  49. package/package.json +4 -3
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$comment": "AUTO-GENERATED by scripts/gen-measurement-contract.mjs — do not edit. Read this instead of guessing: docs/MEASUREMENT-CONTRACT.md.",
3
- "version": "28.8.0",
3
+ "version": "28.9.0",
4
4
  "targetSize": {
5
5
  "standard": "WCAG 2.2 SC 2.5.8 Target Size (Minimum), level AA — 24×24 CSS px",
6
6
  "min": 24,
@@ -39,7 +39,10 @@ const flexGapClass = {
39
39
  6: "ui-flex-gap-6",
40
40
  8: "ui-flex-gap-8",
41
41
  10: "ui-flex-gap-10",
42
- 12: "ui-flex-gap-12"
42
+ 12: "ui-flex-gap-12",
43
+ // Bậc BAND của trang marketing (gh#839) — xem GapStepProp.
44
+ 20: "ui-flex-gap-20",
45
+ 24: "ui-flex-gap-24"
43
46
  };
44
47
  function padStepToken(step) {
45
48
  if (step === "none" || step === 0) {
@@ -84,7 +84,7 @@ export type GapNameProp = "none" | "xs" | "sm" | "md" | "lg" | "xl";
84
84
  * tên mang ý ĐỊNH ("cách nhau vừa phải, tuỳ trục"), số mang GIÁ TRỊ ("đúng
85
85
  * 12px"). Trộn hai nghĩa vào một thang là lý do thang cũ vừa thô vừa khó đoán.
86
86
  */
87
- export type GapStepProp = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12;
87
+ export type GapStepProp = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12 | 20 | 24;
88
88
  export type GapProp = GapNameProp | GapStepProp;
89
89
  /**
90
90
  * Đệm TRONG của một primitive bố cục.
@@ -130,17 +130,38 @@
130
130
  --color-wa-sumi: var(--wa-sumi);
131
131
  --color-wa-nezu: var(--wa-nezu);
132
132
 
133
- --text-2xs: var(--font-size-2xs);
134
- --text-xs: var(--font-size-xs);
135
- --text-sm: var(--font-size-sm);
133
+ --text-2xs: var(
134
+ --font-size-2xs,
135
+ calc(var(--font-size-base) / var(--font-size-ratio) / var(--font-size-ratio))
136
+ );
137
+ --text-xs: var(--font-size-xs, calc(var(--font-size-base) / var(--font-size-ratio)));
138
+ --text-sm: var(--font-size-sm, var(--font-size-base));
136
139
  --text-base: var(--font-size-base);
137
- --text-lg: var(--font-size-lg);
138
- --text-xl: var(--font-size-xl);
139
- --text-2xl: var(--font-size-2xl);
140
+ --text-lg: var(
141
+ --font-size-lg,
142
+ calc(var(--font-size-base) * var(--font-size-ratio) * var(--font-size-ratio))
143
+ );
144
+ --text-xl: var(
145
+ --font-size-xl,
146
+ calc(
147
+ var(--font-size-base) * var(--font-size-ratio) * var(--font-size-ratio) *
148
+ var(--font-size-ratio)
149
+ )
150
+ );
151
+ --text-2xl: var(
152
+ --font-size-2xl,
153
+ calc(
154
+ var(--font-size-base) * var(--font-size-ratio) * var(--font-size-ratio) *
155
+ var(--font-size-ratio) * var(--font-size-ratio)
156
+ )
157
+ );
140
158
 
141
- --text-3xl: var(--font-size-3xl);
142
- --text-4xl: var(--font-size-4xl);
143
- --text-5xl: var(--font-size-5xl);
159
+ --text-3xl: var(
160
+ --font-size-3xl,
161
+ calc(var(--font-size-display) / var(--font-size-display-ratio) / var(--font-size-display-ratio))
162
+ );
163
+ --text-4xl: var(--font-size-4xl, calc(var(--font-size-display) / var(--font-size-display-ratio)));
164
+ --text-5xl: var(--font-size-5xl, var(--font-size-display));
144
165
  }
145
166
 
146
167
  @layer base {
@@ -175,32 +196,44 @@
175
196
  }
176
197
 
177
198
  h1 {
178
- font-size: var(--heading-h1);
199
+ font-size: var(
200
+ --heading-h1,
201
+ calc(
202
+ var(--font-size-base) * var(--font-size-ratio) * var(--font-size-ratio) *
203
+ var(--font-size-ratio)
204
+ )
205
+ );
179
206
  font-weight: var(--font-weight-medium);
180
207
  line-height: var(--line-height-tight);
181
208
  }
182
209
 
183
210
  h2 {
184
- font-size: var(--heading-h2);
211
+ font-size: var(
212
+ --heading-h2,
213
+ calc(var(--font-size-base) * var(--font-size-ratio) * var(--font-size-ratio))
214
+ );
185
215
  font-weight: var(--font-weight-medium);
186
216
  line-height: var(--line-height-tight);
187
217
  }
188
218
 
189
219
  h3 {
190
- font-size: var(--heading-h3);
220
+ font-size: var(--heading-h3, var(--font-size-base));
191
221
  font-weight: var(--font-weight-medium);
192
222
  line-height: var(--line-height-tight);
193
223
  }
194
224
 
195
225
  h4 {
196
- font-size: var(--heading-h4);
226
+ font-size: var(
227
+ --heading-h4,
228
+ var(--font-size-xs, calc(var(--font-size-base) / var(--font-size-ratio)))
229
+ );
197
230
  font-weight: var(--font-weight-medium);
198
231
  line-height: var(--line-height-tight);
199
232
  }
200
233
 
201
234
  h5,
202
235
  h6 {
203
- font-size: var(--font-size-xs);
236
+ font-size: var(--font-size-xs, calc(var(--font-size-base) / var(--font-size-ratio)));
204
237
  font-weight: var(--font-weight-medium);
205
238
  line-height: var(--line-height-tight);
206
239
  }
@@ -666,7 +666,7 @@
666
666
 
667
667
  [data-slot="service-launcher-skeleton-status"] {
668
668
  width: var(--card-service-launcher-skeleton-status-width);
669
- height: var(--font-size-xs);
669
+ height: var(--font-size-xs, calc(var(--font-size-base) / var(--font-size-ratio)));
670
670
  margin-inline-start: auto;
671
671
  }
672
672
 
@@ -674,7 +674,7 @@
674
674
  [data-slot="service-launcher-skeleton-metadata"],
675
675
  [data-slot="service-launcher-skeleton-action"] {
676
676
  width: 100%;
677
- height: var(--font-size-xs);
677
+ height: var(--font-size-xs, calc(var(--font-size-base) / var(--font-size-ratio)));
678
678
  }
679
679
 
680
680
  [data-slot="service-launcher-skeleton-action"] {
@@ -10,7 +10,7 @@
10
10
  }
11
11
 
12
12
  .ui-chart-title {
13
- font-size: var(--font-size-sm);
13
+ font-size: var(--font-size-sm, var(--font-size-base));
14
14
  font-weight: var(--font-weight-medium);
15
15
  color: hsl(var(--foreground));
16
16
  }
@@ -22,7 +22,7 @@
22
22
 
23
23
  .ui-chart .recharts-text,
24
24
  .ui-chart .recharts-legend-item-text {
25
- font-size: var(--font-size-xs);
25
+ font-size: var(--font-size-xs, calc(var(--font-size-base) / var(--font-size-ratio)));
26
26
  fill: hsl(var(--muted-foreground));
27
27
  color: hsl(var(--muted-foreground));
28
28
  }
@@ -36,12 +36,12 @@
36
36
  border: 1px solid hsl(var(--border)) !important;
37
37
  background: hsl(var(--popover)) !important;
38
38
  color: hsl(var(--popover-foreground));
39
- font-size: var(--font-size-xs);
39
+ font-size: var(--font-size-xs, calc(var(--font-size-base) / var(--font-size-ratio)));
40
40
  }
41
41
 
42
42
  .ui-chart-footer {
43
43
  margin-block-start: var(--chart-trend-footer-gap);
44
- font-size: var(--font-size-xs);
44
+ font-size: var(--font-size-xs, calc(var(--font-size-base) / var(--font-size-ratio)));
45
45
  color: hsl(var(--muted-foreground));
46
46
  }
47
47
 
@@ -118,7 +118,7 @@
118
118
  overflow: hidden;
119
119
  font-size: var(--chart-trend-tick-font-size);
120
120
 
121
- line-height: var(--line-height-normal);
121
+ line-height: var(--line-height-normal);
122
122
  color: hsl(var(--muted-foreground));
123
123
  text-align: center;
124
124
  text-overflow: ellipsis;
@@ -131,7 +131,7 @@
131
131
  inset-inline-start: 0;
132
132
  visibility: hidden;
133
133
  margin-inline-end: var(--chart-category-axis-gap);
134
- font-size: var(--font-size-xs);
134
+ font-size: var(--font-size-xs, calc(var(--font-size-base) / var(--font-size-ratio)));
135
135
  white-space: nowrap;
136
136
  pointer-events: none;
137
137
  }
@@ -100,7 +100,7 @@
100
100
 
101
101
  .ui-button {
102
102
  flex-shrink: 0;
103
- font-size: var(--font-size-sm);
103
+ font-size: var(--font-size-sm, var(--font-size-base));
104
104
  outline: none;
105
105
  }
106
106
 
@@ -859,7 +859,7 @@
859
859
  .ui-command-palette-meta {
860
860
  margin-inline-start: auto;
861
861
  color: hsl(var(--muted-foreground));
862
- font-size: var(--font-size-xs);
862
+ font-size: var(--font-size-xs, calc(var(--font-size-base) / var(--font-size-ratio)));
863
863
  }
864
864
 
865
865
  .ui-command-palette-state {
@@ -878,7 +878,7 @@
878
878
  padding: var(--command-palette-hint-padding-y) var(--command-palette-hint-padding-x);
879
879
  color: hsl(var(--muted-foreground));
880
880
  font-family: var(--font-mono);
881
- font-size: var(--font-size-xs);
881
+ font-size: var(--font-size-xs, calc(var(--font-size-base) / var(--font-size-ratio)));
882
882
  }
883
883
 
884
884
  .ui-search-input {
@@ -2959,7 +2959,13 @@
2959
2959
  }
2960
2960
 
2961
2961
  .ui-slider[data-has-marks="true"]:not([data-orientation="vertical"]) {
2962
- margin-block-end: calc(var(--slider-mark-space-block-start) + var(--font-size-lg));
2962
+ margin-block-end: calc(
2963
+ var(--slider-mark-space-block-start) +
2964
+ var(
2965
+ --font-size-lg,
2966
+ calc(var(--font-size-base) * var(--font-size-ratio) * var(--font-size-ratio))
2967
+ )
2968
+ );
2963
2969
  }
2964
2970
 
2965
2971
  .ui-slider-marks {
@@ -1159,19 +1159,31 @@
1159
1159
  }
1160
1160
 
1161
1161
  .ui-prose h1 {
1162
- font-size: var(--heading-h1);
1162
+ font-size: var(
1163
+ --heading-h1,
1164
+ calc(
1165
+ var(--font-size-base) * var(--font-size-ratio) * var(--font-size-ratio) *
1166
+ var(--font-size-ratio)
1167
+ )
1168
+ );
1163
1169
  }
1164
1170
 
1165
1171
  .ui-prose h2 {
1166
- font-size: var(--heading-h2);
1172
+ font-size: var(
1173
+ --heading-h2,
1174
+ calc(var(--font-size-base) * var(--font-size-ratio) * var(--font-size-ratio))
1175
+ );
1167
1176
  }
1168
1177
 
1169
1178
  .ui-prose h3 {
1170
- font-size: var(--heading-h3);
1179
+ font-size: var(--heading-h3, var(--font-size-base));
1171
1180
  }
1172
1181
 
1173
1182
  .ui-prose h4 {
1174
- font-size: var(--heading-h4);
1183
+ font-size: var(
1184
+ --heading-h4,
1185
+ var(--font-size-xs, calc(var(--font-size-base) / var(--font-size-ratio)))
1186
+ );
1175
1187
  }
1176
1188
 
1177
1189
  .ui-prose :is(ul, ol) {
@@ -2059,7 +2071,10 @@
2059
2071
 
2060
2072
  .ui-tree[data-size="xs"] {
2061
2073
  --tree-node-height: var(--control-height-xs);
2062
- --tree-node-font-size: var(--font-size-xs);
2074
+ --tree-node-font-size: var(
2075
+ --font-size-xs,
2076
+ calc(var(--font-size-base) / var(--font-size-ratio))
2077
+ );
2063
2078
  }
2064
2079
 
2065
2080
  .ui-tree[data-size="sm"] {
@@ -61,6 +61,8 @@
61
61
  --space-inline-sm: var(--space-2);
62
62
  --space-inline-md: var(--space-3);
63
63
  --space-inline-lg: var(--space-4);
64
+
65
+ --space-inline-xl: var(--space-6);
64
66
  --space-chrome-x: var(--space-6);
65
67
  --space-chrome-y: var(--space-4);
66
68
  --space-chrome-gap: var(--space-2);
@@ -163,7 +163,10 @@
163
163
  }
164
164
 
165
165
  [data-slot="dialog-title"] {
166
- font-size: var(--font-size-lg);
166
+ font-size: var(
167
+ --font-size-lg,
168
+ calc(var(--font-size-base) * var(--font-size-ratio) * var(--font-size-ratio))
169
+ );
167
170
  font-weight: var(--font-weight-semibold);
168
171
  line-height: var(--line-height-tight);
169
172
  letter-spacing: var(--letter-spacing-tight);
@@ -56,7 +56,10 @@
56
56
  .ui-otp-slot[data-active="true"],
57
57
  .ui-otp-group[data-appearance="grouped"]:has(.ui-otp-slot[data-active="true"]) {
58
58
  outline: var(--focus-ring-width) solid
59
- hsl(var(--focus-outline-color, var(--focus-ring-color, var(--ring))) / var(--focus-ring-opacity, 1));
59
+ hsl(
60
+ var(--focus-outline-color, var(--focus-ring-color, var(--ring))) /
61
+ var(--focus-ring-opacity, 1)
62
+ );
60
63
  outline-offset: var(--focus-ring-offset);
61
64
 
62
65
  transition:
@@ -218,6 +218,13 @@
218
218
  gap: var(--space-12);
219
219
  }
220
220
 
221
+ .ui-flex-gap-20 {
222
+ gap: var(--space-20);
223
+ }
224
+ .ui-flex-gap-24 {
225
+ gap: var(--space-24);
226
+ }
227
+
221
228
  .ui-flex[data-direction="row"].ui-flex-gap-xs {
222
229
  gap: var(--space-inline-xs);
223
230
  }
@@ -1693,13 +1700,16 @@
1693
1700
  }
1694
1701
  }
1695
1702
  .ui-separator[data-label-size="2xs"] .ui-separator-label {
1696
- font-size: var(--font-size-2xs);
1703
+ font-size: var(
1704
+ --font-size-2xs,
1705
+ calc(var(--font-size-base) / var(--font-size-ratio) / var(--font-size-ratio))
1706
+ );
1697
1707
  }
1698
1708
  .ui-separator[data-label-size="xs"] .ui-separator-label {
1699
- font-size: var(--font-size-xs);
1709
+ font-size: var(--font-size-xs, calc(var(--font-size-base) / var(--font-size-ratio)));
1700
1710
  }
1701
1711
  .ui-separator[data-label-size="sm"] .ui-separator-label {
1702
- font-size: var(--font-size-sm);
1712
+ font-size: var(--font-size-sm, var(--font-size-base));
1703
1713
  }
1704
1714
  .ui-separator[data-label-size="md"] .ui-separator-label {
1705
1715
  font-size: var(--font-size-base);
@@ -853,14 +853,18 @@
853
853
  grid-template-columns: var(--app-shell-nav-rail-width) minmax(0, 1fr);
854
854
  grid-template-areas: "navrail topbar" "navrail main" "navrail footer";
855
855
  }
856
- .app-root:where([data-sidebar="none"])[data-nav-rail][data-nav-rail-position="start"][data-topbar-span="full"] {
856
+ .app-root:where(
857
+ [data-sidebar="none"]
858
+ )[data-nav-rail][data-nav-rail-position="start"][data-topbar-span="full"] {
857
859
  grid-template-areas: "topbar topbar" "navrail main" "navrail footer";
858
860
  }
859
861
  .app-root:where([data-sidebar="none"])[data-nav-rail][data-nav-rail-position="end"] {
860
862
  grid-template-columns: minmax(0, 1fr) var(--app-shell-nav-rail-width);
861
863
  grid-template-areas: "topbar navrail" "main navrail" "footer navrail";
862
864
  }
863
- .app-root:where([data-sidebar="none"])[data-nav-rail][data-nav-rail-position="end"][data-topbar-span="full"] {
865
+ .app-root:where(
866
+ [data-sidebar="none"]
867
+ )[data-nav-rail][data-nav-rail-position="end"][data-topbar-span="full"] {
864
868
  grid-template-areas: "topbar topbar" "main navrail" "footer navrail";
865
869
  }
866
870
 
@@ -873,12 +877,12 @@
873
877
  minmax(0, 1fr)
874
878
  auto;
875
879
  }
876
- .app-root:where([data-sidebar="none"])[data-nav-rail][data-nav-rail-position="top"][data-topbar-span="full"] {
880
+ .app-root:where(
881
+ [data-sidebar="none"]
882
+ )[data-nav-rail][data-nav-rail-position="top"][data-topbar-span="full"] {
877
883
  grid-template-areas: "navrail" "topbar" "main" "footer";
878
884
  }
879
- .app-root:where([data-sidebar="none"])[data-nav-rail]:is(
880
- [data-nav-rail-position="bottom"]
881
- ) {
885
+ .app-root:where([data-sidebar="none"])[data-nav-rail]:is([data-nav-rail-position="bottom"]) {
882
886
  grid-template-columns: minmax(0, 1fr);
883
887
  grid-template-areas: "topbar" "main" "footer" "navrail";
884
888
  grid-template-rows:
@@ -888,7 +892,9 @@
888
892
  var(--app-shell-nav-rail-height);
889
893
  }
890
894
 
891
- .app-root:where([data-sidebar="none"])[data-nav-rail][data-nav-rail-position="bottom"][data-topbar-span="full"] {
895
+ .app-root:where(
896
+ [data-sidebar="none"]
897
+ )[data-nav-rail][data-nav-rail-position="bottom"][data-topbar-span="full"] {
892
898
  grid-template-areas: "topbar" "main" "footer" "navrail";
893
899
  }
894
900
  }
@@ -908,10 +914,7 @@
908
914
  display: none;
909
915
  }
910
916
 
911
- .app-root[data-nav-rail]:is(
912
- [data-nav-rail-position="top"],
913
- [data-nav-rail-position="bottom"]
914
- ) {
917
+ .app-root[data-nav-rail]:is([data-nav-rail-position="top"], [data-nav-rail-position="bottom"]) {
915
918
  grid-template-rows: var(--app-shell-bar-height) minmax(0, 1fr) auto;
916
919
  }
917
920
 
@@ -1325,16 +1328,11 @@
1325
1328
  }
1326
1329
 
1327
1330
  .ui-app-launcher-launchpad .ui-app-launcher-grid {
1328
- grid-template-columns: repeat(
1329
- auto-fit,
1330
- var(--app-launcher-launchpad-tile-inline-size)
1331
- );
1331
+ grid-template-columns: repeat(auto-fit, var(--app-launcher-launchpad-tile-inline-size));
1332
1332
  max-width: calc(
1333
1333
  var(--app-launcher-columns) *
1334
- (
1335
- var(--app-launcher-launchpad-tile-inline-size) +
1336
- var(--app-launcher-launchpad-grid-gap)
1337
- ) - var(--app-launcher-launchpad-grid-gap)
1334
+ (var(--app-launcher-launchpad-tile-inline-size) + var(--app-launcher-launchpad-grid-gap)) -
1335
+ var(--app-launcher-launchpad-grid-gap)
1338
1336
  );
1339
1337
  justify-content: start;
1340
1338
  gap: var(--app-launcher-launchpad-grid-gap);
@@ -1664,7 +1662,10 @@
1664
1662
  transparent
1665
1663
  )
1666
1664
  );
1667
- color: var(--sidebar-item-active-foreground, hsl(var(--primary-active, from hsl(var(--primary)) var(--primary-active-channels))));
1665
+ color: var(
1666
+ --sidebar-item-active-foreground,
1667
+ hsl(var(--primary-active, from hsl(var(--primary)) var(--primary-active-channels)))
1668
+ );
1668
1669
  font-weight: var(--font-weight-medium);
1669
1670
  }
1670
1671
 
@@ -1781,7 +1782,10 @@
1781
1782
 
1782
1783
  .sb-nav-item--sub[data-active="true"] {
1783
1784
  background: transparent;
1784
- color: var(--sidebar-item-active-foreground, hsl(var(--primary-active, from hsl(var(--primary)) var(--primary-active-channels))));
1785
+ color: var(
1786
+ --sidebar-item-active-foreground,
1787
+ hsl(var(--primary-active, from hsl(var(--primary)) var(--primary-active-channels)))
1788
+ );
1785
1789
  font-weight: var(--font-weight-medium);
1786
1790
  }
1787
1791
 
@@ -6,25 +6,43 @@
6
6
  }
7
7
 
8
8
  [data-slot="text"][data-size="2xs"] {
9
- font-size: var(--font-size-2xs);
9
+ font-size: var(
10
+ --font-size-2xs,
11
+ calc(var(--font-size-base) / var(--font-size-ratio) / var(--font-size-ratio))
12
+ );
10
13
  }
11
14
  [data-slot="text"][data-size="xs"] {
12
- font-size: var(--font-size-xs);
15
+ font-size: var(--font-size-xs, calc(var(--font-size-base) / var(--font-size-ratio)));
13
16
  }
14
17
  [data-slot="text"][data-size="sm"] {
15
- font-size: var(--font-size-sm);
18
+ font-size: var(--font-size-sm, var(--font-size-base));
16
19
  }
17
20
  [data-slot="text"][data-size="md"] {
18
21
  font-size: var(--font-size-base);
19
22
  }
20
23
  [data-slot="text"][data-size="lg"] {
21
- font-size: var(--font-size-lg);
24
+ font-size: var(
25
+ --font-size-lg,
26
+ calc(var(--font-size-base) * var(--font-size-ratio) * var(--font-size-ratio))
27
+ );
22
28
  }
23
29
  [data-slot="text"][data-size="xl"] {
24
- font-size: var(--font-size-xl);
30
+ font-size: var(
31
+ --font-size-xl,
32
+ calc(
33
+ var(--font-size-base) * var(--font-size-ratio) * var(--font-size-ratio) *
34
+ var(--font-size-ratio)
35
+ )
36
+ );
25
37
  }
26
38
  [data-slot="text"][data-size="2xl"] {
27
- font-size: var(--font-size-2xl);
39
+ font-size: var(
40
+ --font-size-2xl,
41
+ calc(
42
+ var(--font-size-base) * var(--font-size-ratio) * var(--font-size-ratio) *
43
+ var(--font-size-ratio) * var(--font-size-ratio)
44
+ )
45
+ );
28
46
  }
29
47
 
30
48
  [data-slot="text"][data-size="3xl"],
@@ -34,13 +52,21 @@
34
52
  letter-spacing: var(--letter-spacing-tight);
35
53
  }
36
54
  [data-slot="text"][data-size="3xl"] {
37
- font-size: var(--font-size-3xl);
55
+ font-size: var(
56
+ --font-size-3xl,
57
+ calc(
58
+ var(--font-size-display) / var(--font-size-display-ratio) / var(--font-size-display-ratio)
59
+ )
60
+ );
38
61
  }
39
62
  [data-slot="text"][data-size="4xl"] {
40
- font-size: var(--font-size-4xl);
63
+ font-size: var(
64
+ --font-size-4xl,
65
+ calc(var(--font-size-display) / var(--font-size-display-ratio))
66
+ );
41
67
  }
42
68
  [data-slot="text"][data-size="5xl"] {
43
- font-size: var(--font-size-5xl);
69
+ font-size: var(--font-size-5xl, var(--font-size-display));
44
70
  }
45
71
 
46
72
  [data-slot="text"][data-weight="regular"],
@@ -132,6 +158,7 @@
132
158
  [data-slot="text"][data-whitespace="pre-wrap"] {
133
159
  white-space: pre-wrap;
134
160
  overflow-wrap: break-word;
161
+ min-inline-size: 0;
135
162
  }
136
163
 
137
164
  [data-slot="text"][data-clamp] {
@@ -172,54 +199,98 @@
172
199
  }
173
200
 
174
201
  [data-slot="heading"][data-level="1"]:not([data-size]) {
175
- font-size: var(--heading-h1);
202
+ font-size: var(
203
+ --heading-h1,
204
+ calc(
205
+ var(--font-size-base) * var(--font-size-ratio) * var(--font-size-ratio) *
206
+ var(--font-size-ratio)
207
+ )
208
+ );
176
209
  }
177
210
  [data-slot="heading"][data-level="2"]:not([data-size]) {
178
- font-size: var(--heading-h2);
211
+ font-size: var(
212
+ --heading-h2,
213
+ calc(var(--font-size-base) * var(--font-size-ratio) * var(--font-size-ratio))
214
+ );
179
215
  }
180
216
  [data-slot="heading"][data-level="3"]:not([data-size]) {
181
- font-size: var(--heading-h3);
217
+ font-size: var(--heading-h3, var(--font-size-base));
182
218
  }
183
219
  [data-slot="heading"][data-level="4"]:not([data-size]) {
184
- font-size: var(--heading-h4);
220
+ font-size: var(
221
+ --heading-h4,
222
+ var(--font-size-xs, calc(var(--font-size-base) / var(--font-size-ratio)))
223
+ );
185
224
  }
186
225
 
187
226
  [data-slot="heading"][data-size="2xs"] {
188
- font-size: var(--font-size-2xs);
227
+ font-size: var(
228
+ --font-size-2xs,
229
+ calc(var(--font-size-base) / var(--font-size-ratio) / var(--font-size-ratio))
230
+ );
189
231
  }
190
232
  [data-slot="heading"][data-size="xs"] {
191
- font-size: var(--font-size-xs);
233
+ font-size: var(--font-size-xs, calc(var(--font-size-base) / var(--font-size-ratio)));
192
234
  }
193
235
  [data-slot="heading"][data-size="sm"] {
194
- font-size: var(--font-size-sm);
236
+ font-size: var(--font-size-sm, var(--font-size-base));
195
237
  }
196
238
  [data-slot="heading"][data-size="md"] {
197
239
  font-size: var(--font-size-base);
198
240
  }
199
241
  [data-slot="heading"][data-size="lg"] {
200
- font-size: var(--font-size-lg);
242
+ font-size: var(
243
+ --font-size-lg,
244
+ calc(var(--font-size-base) * var(--font-size-ratio) * var(--font-size-ratio))
245
+ );
201
246
  }
202
247
  [data-slot="heading"][data-size="xl"] {
203
- font-size: var(--font-size-xl);
248
+ font-size: var(
249
+ --font-size-xl,
250
+ calc(
251
+ var(--font-size-base) * var(--font-size-ratio) * var(--font-size-ratio) *
252
+ var(--font-size-ratio)
253
+ )
254
+ );
204
255
  }
205
256
  [data-slot="heading"][data-size="2xl"] {
206
- font-size: var(--font-size-2xl);
257
+ font-size: var(
258
+ --font-size-2xl,
259
+ calc(
260
+ var(--font-size-base) * var(--font-size-ratio) * var(--font-size-ratio) *
261
+ var(--font-size-ratio) * var(--font-size-ratio)
262
+ )
263
+ );
207
264
  }
208
265
  [data-slot="heading"][data-size="3xl"] {
209
- font-size: var(--font-size-3xl);
266
+ font-size: var(
267
+ --font-size-3xl,
268
+ calc(
269
+ var(--font-size-display) / var(--font-size-display-ratio) / var(--font-size-display-ratio)
270
+ )
271
+ );
210
272
  }
211
273
  [data-slot="heading"][data-size="4xl"] {
212
- font-size: var(--font-size-4xl);
274
+ font-size: var(
275
+ --font-size-4xl,
276
+ calc(var(--font-size-display) / var(--font-size-display-ratio))
277
+ );
213
278
  }
214
279
  [data-slot="heading"][data-size="5xl"] {
215
- font-size: var(--font-size-5xl);
280
+ font-size: var(--font-size-5xl, var(--font-size-display));
216
281
  }
217
282
  }
218
283
 
219
284
  @layer components {
220
285
 
221
286
  [data-slot="heading"][data-level="5"] {
222
- font-size: var(--heading-h5);
287
+ font-size: var(
288
+ --heading-h5,
289
+ var(
290
+ --font-size-2xs,
291
+ calc(var(--font-size-base) / var(--font-size-ratio) / var(--font-size-ratio))
292
+ )
293
+ );
223
294
  }
224
295
 
225
296
  [data-slot="text"][data-disabled],
@@ -12,10 +12,19 @@
12
12
 
13
13
  --activity-gap: var(--space-1);
14
14
 
15
- --activity-font-size-xs: var(--font-size-2xs);
16
- --activity-font-size-sm: var(--font-size-xs);
17
- --activity-font-size-md: var(--font-size-sm);
18
- --activity-font-size-lg: var(--font-size-lg);
15
+ --activity-font-size-xs: var(
16
+ --font-size-2xs,
17
+ calc(var(--font-size-base) / var(--font-size-ratio) / var(--font-size-ratio))
18
+ );
19
+ --activity-font-size-sm: var(
20
+ --font-size-xs,
21
+ calc(var(--font-size-base) / var(--font-size-ratio))
22
+ );
23
+ --activity-font-size-md: var(--font-size-sm, var(--font-size-base));
24
+ --activity-font-size-lg: var(
25
+ --font-size-lg,
26
+ calc(var(--font-size-base) * var(--font-size-ratio) * var(--font-size-ratio))
27
+ );
19
28
 
20
29
  --activity-bar-width: 4rem;
21
30
  --activity-bar-radius: var(--radius-pill);