@slotted/styles 0.0.0-stage → 0.1.0-beta.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 (254) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +10 -2
  3. package/package.json +276 -3
  4. package/src/accordion/accordion.css +96 -0
  5. package/src/accordion/accordion.tokens.json +14 -0
  6. package/src/action-bar/action-bar.css +455 -0
  7. package/src/action-bar/action-bar.tokens.json +50 -0
  8. package/src/action-sheet/action-sheet.css +462 -0
  9. package/src/action-sheet/action-sheet.tokens.json +59 -0
  10. package/src/alert/alert.css +764 -0
  11. package/src/alert/alert.tokens.json +77 -0
  12. package/src/app-shell/app-shell.css +1899 -0
  13. package/src/app-shell/app-shell.tokens.json +88 -0
  14. package/src/aspect-ratio/aspect-ratio.css +131 -0
  15. package/src/aspect-ratio/aspect-ratio.tokens.json +1 -0
  16. package/src/attachment/attachment.css +906 -0
  17. package/src/attachment/attachment.tokens.json +85 -0
  18. package/src/avatar/avatar.css +598 -0
  19. package/src/avatar/avatar.tokens.json +64 -0
  20. package/src/avatar-group/avatar-group.css +268 -0
  21. package/src/avatar-group/avatar-group.tokens.json +16 -0
  22. package/src/badge/badge.css +462 -0
  23. package/src/badge/badge.tokens.json +58 -0
  24. package/src/breadcrumb/breadcrumb.css +441 -0
  25. package/src/breadcrumb/breadcrumb.tokens.json +50 -0
  26. package/src/button/button.css +754 -0
  27. package/src/button/button.tokens.json +72 -0
  28. package/src/button-group/button-group.css +455 -0
  29. package/src/button-group/button-group.tokens.json +11 -0
  30. package/src/calendar/calendar.css +846 -0
  31. package/src/calendar/calendar.tokens.json +67 -0
  32. package/src/card/card.css +602 -0
  33. package/src/card/card.tokens.json +68 -0
  34. package/src/carousel/carousel.css +860 -0
  35. package/src/carousel/carousel.tokens.json +62 -0
  36. package/src/cascader/cascader.css +1320 -0
  37. package/src/cascader/cascader.tokens.json +103 -0
  38. package/src/chart/chart.css +1473 -0
  39. package/src/chart/chart.tokens.json +107 -0
  40. package/src/checkbox/checkbox.css +1011 -0
  41. package/src/checkbox/checkbox.tokens.json +102 -0
  42. package/src/checkbox-group/checkbox-group.css +70 -0
  43. package/src/checkbox-group/checkbox-group.tokens.json +6 -0
  44. package/src/code-block/code-block.css +555 -0
  45. package/src/code-block/code-block.tokens.json +69 -0
  46. package/src/collapsible/collapsible.css +546 -0
  47. package/src/collapsible/collapsible.tokens.json +55 -0
  48. package/src/color-picker/color-picker.css +607 -0
  49. package/src/color-picker/color-picker.tokens.json +58 -0
  50. package/src/column-manager/column-manager.css +452 -0
  51. package/src/column-manager/column-manager.tokens.json +43 -0
  52. package/src/combobox/combobox.css +1048 -0
  53. package/src/combobox/combobox.tokens.json +112 -0
  54. package/src/command-palette/command-palette.css +1000 -0
  55. package/src/command-palette/command-palette.tokens.json +75 -0
  56. package/src/container/container.css +198 -0
  57. package/src/container/container.tokens.json +18 -0
  58. package/src/context-menu/context-menu.css +104 -0
  59. package/src/context-menu/context-menu.tokens.json +11 -0
  60. package/src/currency-field/currency-field.css +787 -0
  61. package/src/currency-field/currency-field.tokens.json +80 -0
  62. package/src/dashboard-grid/dashboard-grid.css +748 -0
  63. package/src/dashboard-grid/dashboard-grid.tokens.json +67 -0
  64. package/src/data-grid/data-grid.css +2484 -0
  65. package/src/data-grid/data-grid.tokens.json +100 -0
  66. package/src/data-list/data-list.css +455 -0
  67. package/src/data-list/data-list.tokens.json +35 -0
  68. package/src/date-field/date-field.css +560 -0
  69. package/src/date-field/date-field.tokens.json +80 -0
  70. package/src/date-picker/date-picker.css +420 -0
  71. package/src/date-picker/date-picker.tokens.json +49 -0
  72. package/src/date-range-picker/date-range-picker.css +983 -0
  73. package/src/date-range-picker/date-range-picker.tokens.json +109 -0
  74. package/src/datetime-field/datetime-field.css +850 -0
  75. package/src/datetime-field/datetime-field.tokens.json +91 -0
  76. package/src/datetime-picker/datetime-picker.css +843 -0
  77. package/src/datetime-picker/datetime-picker.tokens.json +78 -0
  78. package/src/datetime-range-picker/datetime-range-picker.css +1375 -0
  79. package/src/datetime-range-picker/datetime-range-picker.tokens.json +135 -0
  80. package/src/description-list/description-list.css +675 -0
  81. package/src/description-list/description-list.tokens.json +66 -0
  82. package/src/detail-panel/detail-panel.css +329 -0
  83. package/src/detail-panel/detail-panel.tokens.json +33 -0
  84. package/src/dialog/dialog.css +968 -0
  85. package/src/dialog/dialog.tokens.json +66 -0
  86. package/src/divider/divider.css +131 -0
  87. package/src/divider/divider.tokens.json +18 -0
  88. package/src/drawer/drawer.css +1303 -0
  89. package/src/drawer/drawer.tokens.json +75 -0
  90. package/src/entity-picker/entity-picker.css +1367 -0
  91. package/src/entity-picker/entity-picker.tokens.json +118 -0
  92. package/src/event-calendar/event-calendar.css +2148 -0
  93. package/src/event-calendar/event-calendar.tokens.json +87 -0
  94. package/src/field/field.css +707 -0
  95. package/src/field/field.tokens.json +58 -0
  96. package/src/field-group/field-group.css +226 -0
  97. package/src/field-group/field-group.tokens.json +33 -0
  98. package/src/filter-bar/filter-bar.css +1306 -0
  99. package/src/filter-bar/filter-bar.tokens.json +78 -0
  100. package/src/form/form.css +218 -0
  101. package/src/form/form.tokens.json +32 -0
  102. package/src/fullscreen/fullscreen.css +376 -0
  103. package/src/fullscreen/fullscreen.tokens.json +50 -0
  104. package/src/grid/grid.css +173 -0
  105. package/src/grid/grid.tokens.json +20 -0
  106. package/src/highlight/highlight.css +135 -0
  107. package/src/highlight/highlight.tokens.json +16 -0
  108. package/src/hover-card/hover-card.css +93 -0
  109. package/src/hover-card/hover-card.tokens.json +17 -0
  110. package/src/icon/icon.css +136 -0
  111. package/src/icon/icon.tokens.json +14 -0
  112. package/src/image/image.css +449 -0
  113. package/src/image/image.tokens.json +27 -0
  114. package/src/import-export-center/import-export-center.css +1175 -0
  115. package/src/import-export-center/import-export-center.tokens.json +84 -0
  116. package/src/inline/inline.css +149 -0
  117. package/src/inline/inline.tokens.json +14 -0
  118. package/src/inline-message/inline-message.css +396 -0
  119. package/src/inline-message/inline-message.tokens.json +19 -0
  120. package/src/kbd/kbd.css +490 -0
  121. package/src/kbd/kbd.tokens.json +40 -0
  122. package/src/link/link.css +237 -0
  123. package/src/link/link.tokens.json +25 -0
  124. package/src/list/list.css +240 -0
  125. package/src/list/list.tokens.json +42 -0
  126. package/src/list-item/list-item.css +937 -0
  127. package/src/list-item/list-item.tokens.json +114 -0
  128. package/src/listbox/listbox.css +674 -0
  129. package/src/listbox/listbox.tokens.json +72 -0
  130. package/src/loading-overlay/loading-overlay.css +730 -0
  131. package/src/loading-overlay/loading-overlay.tokens.json +48 -0
  132. package/src/markdown/markdown.css +168 -0
  133. package/src/markdown/markdown.tokens.json +18 -0
  134. package/src/menu/menu.css +817 -0
  135. package/src/menu/menu.tokens.json +78 -0
  136. package/src/menubar/menubar.css +170 -0
  137. package/src/menubar/menubar.tokens.json +32 -0
  138. package/src/message/message.css +1453 -0
  139. package/src/message/message.tokens.json +85 -0
  140. package/src/message-scroller/message-scroller.css +371 -0
  141. package/src/message-scroller/message-scroller.tokens.json +47 -0
  142. package/src/multi-select/multi-select.css +1427 -0
  143. package/src/multi-select/multi-select.tokens.json +114 -0
  144. package/src/navigation-menu/navigation-menu.css +1029 -0
  145. package/src/navigation-menu/navigation-menu.tokens.json +70 -0
  146. package/src/notification-center/notification-center.css +856 -0
  147. package/src/notification-center/notification-center.tokens.json +84 -0
  148. package/src/number-field/number-field.css +794 -0
  149. package/src/number-field/number-field.tokens.json +80 -0
  150. package/src/otp-input/otp-input.css +525 -0
  151. package/src/otp-input/otp-input.tokens.json +69 -0
  152. package/src/page/page.css +179 -0
  153. package/src/page/page.tokens.json +20 -0
  154. package/src/page-header/page-header.css +1181 -0
  155. package/src/page-header/page-header.tokens.json +71 -0
  156. package/src/pagination/pagination.css +500 -0
  157. package/src/pagination/pagination.tokens.json +56 -0
  158. package/src/popover/popover.css +526 -0
  159. package/src/popover/popover.tokens.json +60 -0
  160. package/src/progress-indicator/progress-indicator.css +1584 -0
  161. package/src/progress-indicator/progress-indicator.tokens.json +50 -0
  162. package/src/prompt-composer/prompt-composer.css +680 -0
  163. package/src/prompt-composer/prompt-composer.tokens.json +99 -0
  164. package/src/prose/prose.css +733 -0
  165. package/src/prose/prose.tokens.json +79 -0
  166. package/src/radio-group/radio-group.css +778 -0
  167. package/src/radio-group/radio-group.tokens.json +103 -0
  168. package/src/rating/rating.css +1071 -0
  169. package/src/rating/rating.tokens.json +88 -0
  170. package/src/result-state/result-state.css +980 -0
  171. package/src/result-state/result-state.tokens.json +63 -0
  172. package/src/runtime-properties.mjs +321 -0
  173. package/src/saved-views/saved-views.css +394 -0
  174. package/src/saved-views/saved-views.tokens.json +41 -0
  175. package/src/scroll-area/scroll-area.css +481 -0
  176. package/src/scroll-area/scroll-area.tokens.json +15 -0
  177. package/src/section/section.css +177 -0
  178. package/src/section/section.tokens.json +39 -0
  179. package/src/segmented-control/segmented-control.css +564 -0
  180. package/src/segmented-control/segmented-control.tokens.json +67 -0
  181. package/src/select/select.css +1593 -0
  182. package/src/select/select.tokens.json +110 -0
  183. package/src/side-navigation/side-navigation.css +1096 -0
  184. package/src/side-navigation/side-navigation.tokens.json +87 -0
  185. package/src/skeleton/skeleton.css +431 -0
  186. package/src/skeleton/skeleton.tokens.json +29 -0
  187. package/src/slider/slider.css +792 -0
  188. package/src/slider/slider.tokens.json +75 -0
  189. package/src/sparkline/sparkline.css +282 -0
  190. package/src/sparkline/sparkline.tokens.json +45 -0
  191. package/src/spinner/spinner.css +224 -0
  192. package/src/spinner/spinner.tokens.json +8 -0
  193. package/src/split-button/split-button.css +253 -0
  194. package/src/split-button/split-button.tokens.json +12 -0
  195. package/src/splitter/splitter.css +336 -0
  196. package/src/splitter/splitter.tokens.json +24 -0
  197. package/src/stack/stack.css +128 -0
  198. package/src/stack/stack.tokens.json +14 -0
  199. package/src/stat-card/stat-card.css +641 -0
  200. package/src/stat-card/stat-card.tokens.json +95 -0
  201. package/src/status-indicator/status-indicator.css +481 -0
  202. package/src/status-indicator/status-indicator.tokens.json +38 -0
  203. package/src/stepper/stepper.css +629 -0
  204. package/src/stepper/stepper.tokens.json +72 -0
  205. package/src/switch/switch.css +703 -0
  206. package/src/switch/switch.tokens.json +75 -0
  207. package/src/table/table.css +1482 -0
  208. package/src/table/table.tokens.json +69 -0
  209. package/src/table-of-contents/table-of-contents.css +533 -0
  210. package/src/table-of-contents/table-of-contents.tokens.json +53 -0
  211. package/src/tabs/tabs.css +998 -0
  212. package/src/tabs/tabs.tokens.json +82 -0
  213. package/src/tag/tag.css +768 -0
  214. package/src/tag/tag.tokens.json +85 -0
  215. package/src/tags-input/tags-input.css +757 -0
  216. package/src/tags-input/tags-input.tokens.json +84 -0
  217. package/src/text-field/text-field.css +900 -0
  218. package/src/text-field/text-field.tokens.json +87 -0
  219. package/src/textarea/textarea.css +365 -0
  220. package/src/textarea/textarea.tokens.json +59 -0
  221. package/src/time-field/time-field.css +719 -0
  222. package/src/time-field/time-field.tokens.json +86 -0
  223. package/src/time-picker/time-picker.css +665 -0
  224. package/src/time-picker/time-picker.tokens.json +66 -0
  225. package/src/time-range-picker/time-range-picker.css +1287 -0
  226. package/src/time-range-picker/time-range-picker.tokens.json +134 -0
  227. package/src/timeline/timeline.css +1596 -0
  228. package/src/timeline/timeline.tokens.json +96 -0
  229. package/src/toast/toast.css +943 -0
  230. package/src/toast/toast.tokens.json +90 -0
  231. package/src/toggle/toggle.css +290 -0
  232. package/src/toggle/toggle.tokens.json +54 -0
  233. package/src/toggle-group/toggle-group.css +463 -0
  234. package/src/toggle-group/toggle-group.tokens.json +54 -0
  235. package/src/toolbar/toolbar.css +434 -0
  236. package/src/toolbar/toolbar.tokens.json +49 -0
  237. package/src/tooltip/tooltip.css +368 -0
  238. package/src/tooltip/tooltip.tokens.json +39 -0
  239. package/src/top-navigation/top-navigation.css +1287 -0
  240. package/src/top-navigation/top-navigation.tokens.json +91 -0
  241. package/src/tour/tour.css +680 -0
  242. package/src/tour/tour.tokens.json +67 -0
  243. package/src/transfer/transfer.css +571 -0
  244. package/src/transfer/transfer.tokens.json +49 -0
  245. package/src/tree/tree.css +1000 -0
  246. package/src/tree/tree.tokens.json +80 -0
  247. package/src/typography/typography.css +211 -0
  248. package/src/typography/typography.tokens.json +31 -0
  249. package/src/upload/upload.css +1706 -0
  250. package/src/upload/upload.tokens.json +123 -0
  251. package/src/visually-hidden/visually-hidden.css +52 -0
  252. package/src/visually-hidden/visually-hidden.tokens.json +1 -0
  253. package/src/wizard/wizard.css +740 -0
  254. package/src/wizard/wizard.tokens.json +63 -0
@@ -0,0 +1,80 @@
1
+ [
2
+ "--slotted-border-strong",
3
+ "--slotted-border-subtle",
4
+ "--slotted-border-width-medium",
5
+ "--slotted-border-width-thin",
6
+ "--slotted-control-border-color",
7
+ "--slotted-control-font-size-lg",
8
+ "--slotted-control-font-size-md",
9
+ "--slotted-control-font-size-sm",
10
+ "--slotted-control-gap-lg",
11
+ "--slotted-control-gap-md",
12
+ "--slotted-control-gap-sm",
13
+ "--slotted-control-height-lg",
14
+ "--slotted-control-height-md",
15
+ "--slotted-control-height-sm",
16
+ "--slotted-control-icon-size-lg",
17
+ "--slotted-control-icon-size-md",
18
+ "--slotted-control-icon-size-sm",
19
+ "--slotted-control-invalid-edge-width",
20
+ "--slotted-control-padding-inline-lg",
21
+ "--slotted-control-padding-inline-md",
22
+ "--slotted-control-padding-inline-sm",
23
+ "--slotted-control-shadow",
24
+ "--slotted-control-transition-duration",
25
+ "--slotted-control-transition-easing",
26
+ "--slotted-disabled-background",
27
+ "--slotted-disabled-border",
28
+ "--slotted-disabled-foreground",
29
+ "--slotted-duration-medium",
30
+ "--slotted-duration-short",
31
+ "--slotted-easing-standard",
32
+ "--slotted-focus-ring-color",
33
+ "--slotted-focus-ring-color-invalid",
34
+ "--slotted-focus-ring-width",
35
+ "--slotted-font-family-sans",
36
+ "--slotted-font-size-xs",
37
+ "--slotted-font-weight-semibold",
38
+ "--slotted-highlight-tint-opacity",
39
+ "--slotted-line-height-sm",
40
+ "--slotted-radius-md",
41
+ "--slotted-radius-xs",
42
+ "--slotted-selection-size-lg",
43
+ "--slotted-selection-size-md",
44
+ "--slotted-selection-size-sm",
45
+ "--slotted-space-1",
46
+ "--slotted-space-2",
47
+ "--slotted-space-3",
48
+ "--slotted-space-4",
49
+ "--slotted-space-5",
50
+ "--slotted-surface",
51
+ "--slotted-target-min",
52
+ "--slotted-text",
53
+ "--slotted-text-muted",
54
+ "--slotted-tone-accent-border",
55
+ "--slotted-tone-accent-on-solid",
56
+ "--slotted-tone-accent-solid",
57
+ "--slotted-tone-accent-surface",
58
+ "--slotted-tone-accent-text",
59
+ "--slotted-tone-danger-border",
60
+ "--slotted-tone-secondary-subtle-active",
61
+ "--slotted-tone-secondary-subtle-hover",
62
+ "--slotted-tree-border-color",
63
+ "--slotted-tree-guide-color",
64
+ "--slotted-tree-highlight",
65
+ "--slotted-tree-highlight-active",
66
+ "--slotted-tree-indent",
67
+ "--slotted-tree-mark-inset",
68
+ "--slotted-tree-measure",
69
+ "--slotted-tree-padding-block",
70
+ "--slotted-tree-padding-inline",
71
+ "--slotted-tree-radius",
72
+ "--slotted-tree-rows",
73
+ "--slotted-tree-selected-edge",
74
+ "--slotted-tree-selected-surface",
75
+ "--slotted-tree-selected-text",
76
+ "--slotted-tree-shadow",
77
+ "--slotted-tree-surface",
78
+ "--slotted-tree-text",
79
+ "--slotted-tree-text-muted"
80
+ ]
@@ -0,0 +1,211 @@
1
+ @layer slotted.components {
2
+ /**
3
+ * The base rule is the family default: medium step, regular weight, the
4
+ * colour of whatever contains it. Colour is inherited rather than painted,
5
+ * so text placed on a tonal surface reads that surface instead of arguing
6
+ * with it; `data-tone` is how a consumer asks for a colour of its own.
7
+ */
8
+ [data-ui='typography'] {
9
+ font-family: var(
10
+ --slotted-typography-font-family,
11
+ var(--slotted-font-family-sans, ui-sans-serif, system-ui, sans-serif)
12
+ );
13
+ font-size: var(--slotted-font-size-md, 0.875rem);
14
+ font-weight: var(--slotted-font-weight-regular, 400);
15
+ line-height: var(--slotted-line-height-md, 1.5);
16
+ margin: 0;
17
+ /**
18
+ * A word longer than its container breaks rather than escaping it. The
19
+ * `anywhere` form is the one that also shrinks the element's min-content
20
+ * size, so a grid track or a flex item sized from this text stops being as
21
+ * wide as its longest token. `break-word` breaks the same lines and leaves
22
+ * that width in place, which is how a single identifier drags a whole
23
+ * column past the edge of a narrow layout.
24
+ */
25
+ overflow-wrap: anywhere;
26
+ }
27
+
28
+ /**
29
+ * A heading is set in the heading face. The element is the only thing that
30
+ * tells a heading from a line of text here: both carry `data-ui` and
31
+ * `data-part='root'`, and `Heading` always renders `h1` to `h6`.
32
+ */
33
+ [data-ui='typography']:is(h1, h2, h3, h4, h5, h6) {
34
+ font-family: var(
35
+ --slotted-font-family-heading,
36
+ var(--slotted-font-family-sans, ui-sans-serif, system-ui, sans-serif)
37
+ );
38
+ }
39
+
40
+ /* Each step carries the line height the scale pairs it with. */
41
+ [data-ui='typography'][data-size='xs'] {
42
+ font-size: var(--slotted-font-size-xs, 0.75rem);
43
+ line-height: var(--slotted-line-height-xs, 1.4);
44
+ }
45
+
46
+ [data-ui='typography'][data-size='sm'] {
47
+ font-size: var(--slotted-font-size-sm, 0.8125rem);
48
+ line-height: var(--slotted-line-height-sm, 1.45);
49
+ }
50
+
51
+ [data-ui='typography'][data-size='md'] {
52
+ font-size: var(--slotted-font-size-md, 0.875rem);
53
+ line-height: var(--slotted-line-height-md, 1.5);
54
+ }
55
+
56
+ [data-ui='typography'][data-size='lg'] {
57
+ font-size: var(--slotted-font-size-lg, 1rem);
58
+ line-height: var(--slotted-line-height-lg, 1.5);
59
+ }
60
+
61
+ [data-ui='typography'][data-size='xl'] {
62
+ font-size: var(--slotted-font-size-xl, 1.125rem);
63
+ line-height: var(--slotted-line-height-xl, 1.45);
64
+ }
65
+
66
+ [data-ui='typography'][data-size='2xl'] {
67
+ font-size: var(--slotted-font-size-2xl, 1.25rem);
68
+ line-height: var(--slotted-line-height-2xl, 1.4);
69
+ }
70
+
71
+ [data-ui='typography'][data-size='3xl'] {
72
+ font-size: var(--slotted-font-size-3xl, 1.5rem);
73
+ line-height: var(--slotted-line-height-3xl, 1.3);
74
+ }
75
+
76
+ [data-ui='typography'][data-weight='regular'] {
77
+ font-weight: var(--slotted-font-weight-regular, 400);
78
+ }
79
+
80
+ [data-ui='typography'][data-weight='medium'] {
81
+ font-weight: var(--slotted-font-weight-medium, 500);
82
+ }
83
+
84
+ [data-ui='typography'][data-weight='semibold'] {
85
+ font-weight: var(--slotted-font-weight-semibold, 600);
86
+ }
87
+
88
+ [data-ui='typography'][data-tone='default'] {
89
+ color: var(--slotted-text, CanvasText);
90
+ }
91
+
92
+ [data-ui='typography'][data-tone='muted'] {
93
+ color: var(--slotted-text-muted, GrayText);
94
+ }
95
+
96
+ [data-ui='typography'][data-tone='accent'] {
97
+ color: var(--slotted-tone-accent-text, LinkText);
98
+ }
99
+
100
+ [data-ui='typography'][data-tone='success'] {
101
+ color: var(--slotted-tone-success-text, CanvasText);
102
+ }
103
+
104
+ [data-ui='typography'][data-tone='warning'] {
105
+ color: var(--slotted-tone-warning-text, CanvasText);
106
+ }
107
+
108
+ [data-ui='typography'][data-tone='danger'] {
109
+ color: var(--slotted-tone-danger-text, CanvasText);
110
+ }
111
+
112
+ [data-ui='typography'][data-tone='inverse'] {
113
+ color: var(--slotted-text-inverse, Canvas);
114
+ }
115
+
116
+ /**
117
+ * Alignment needs a box to align inside. The default element is a span, so
118
+ * asking for alignment is what turns the span into a block; a consumer who
119
+ * wants inline text simply does not ask.
120
+ */
121
+ [data-ui='typography'][data-align] {
122
+ display: block;
123
+ }
124
+
125
+ [data-ui='typography'][data-align='start'] {
126
+ text-align: start;
127
+ }
128
+
129
+ [data-ui='typography'][data-align='center'] {
130
+ text-align: center;
131
+ }
132
+
133
+ [data-ui='typography'][data-align='end'] {
134
+ text-align: end;
135
+ }
136
+
137
+ /* Every wrapping value is stated, because text-wrap inherits: a heading's
138
+ balance would otherwise reach the running text inside it. */
139
+ [data-ui='typography'][data-wrap='normal'] {
140
+ text-wrap: wrap;
141
+ white-space: normal;
142
+ }
143
+
144
+ [data-ui='typography'][data-wrap='nowrap'] {
145
+ white-space: nowrap;
146
+ }
147
+
148
+ [data-ui='typography'][data-wrap='balance'] {
149
+ text-wrap: balance;
150
+ }
151
+
152
+ [data-ui='typography'][data-wrap='pretty'] {
153
+ text-wrap: pretty;
154
+ }
155
+
156
+ [data-ui='typography'][data-numeric='normal'] {
157
+ font-variant-numeric: normal;
158
+ }
159
+
160
+ [data-ui='typography'][data-numeric='tabular'] {
161
+ font-variant-numeric: tabular-nums;
162
+ }
163
+
164
+ [data-ui='typography'][data-transform='none'] {
165
+ text-transform: none;
166
+ }
167
+
168
+ [data-ui='typography'][data-transform='capitalize'] {
169
+ text-transform: capitalize;
170
+ }
171
+
172
+ /**
173
+ * Capitals lose the word shape a reader scans by, and they set too tight for
174
+ * it, so the family pays back the tracking the capitals took. The scale
175
+ * holds no tracking step, and this value corrects an optical effect rather
176
+ * than stating one; a theme retunes it through the token.
177
+ */
178
+ [data-ui='typography'][data-transform='uppercase'] {
179
+ letter-spacing: var(--slotted-typography-uppercase-tracking, 0.06em);
180
+ text-transform: uppercase;
181
+ }
182
+
183
+ /**
184
+ * The Arabic script joins its letters and has no case at all. Tracking
185
+ * severs the joins, so the correction above is undone for the languages
186
+ * written in it. The list is the common ones, not every one: a language it
187
+ * misses sets --slotted-typography-uppercase-tracking to normal.
188
+ */
189
+ [data-ui='typography']:lang(ar),
190
+ [data-ui='typography']:lang(fa),
191
+ [data-ui='typography']:lang(ur) {
192
+ letter-spacing: normal;
193
+ }
194
+
195
+ /**
196
+ * Truncation clips the picture, never the content: the whole string stays in
197
+ * the DOM, so a screen reader reads it, a search finds it and a selection
198
+ * copies it. `data-truncate` states the line count for a reader of the DOM,
199
+ * and the count reaches CSS as a custom property because a line-clamp cannot
200
+ * be read from an attribute.
201
+ */
202
+ [data-ui='typography'][data-truncate] {
203
+ display: -webkit-box;
204
+ -webkit-box-orient: vertical;
205
+ -webkit-line-clamp: var(--slotted-typography-lines, 1);
206
+ line-clamp: var(--slotted-typography-lines, 1);
207
+ /* A flex or grid item refuses to shrink below its content without this. */
208
+ min-inline-size: 0;
209
+ overflow: hidden;
210
+ }
211
+ }
@@ -0,0 +1,31 @@
1
+ [
2
+ "--slotted-font-family-heading",
3
+ "--slotted-font-family-sans",
4
+ "--slotted-font-size-2xl",
5
+ "--slotted-font-size-3xl",
6
+ "--slotted-font-size-lg",
7
+ "--slotted-font-size-md",
8
+ "--slotted-font-size-sm",
9
+ "--slotted-font-size-xl",
10
+ "--slotted-font-size-xs",
11
+ "--slotted-font-weight-medium",
12
+ "--slotted-font-weight-regular",
13
+ "--slotted-font-weight-semibold",
14
+ "--slotted-line-height-2xl",
15
+ "--slotted-line-height-3xl",
16
+ "--slotted-line-height-lg",
17
+ "--slotted-line-height-md",
18
+ "--slotted-line-height-sm",
19
+ "--slotted-line-height-xl",
20
+ "--slotted-line-height-xs",
21
+ "--slotted-text",
22
+ "--slotted-text-inverse",
23
+ "--slotted-text-muted",
24
+ "--slotted-tone-accent-text",
25
+ "--slotted-tone-danger-text",
26
+ "--slotted-tone-success-text",
27
+ "--slotted-tone-warning-text",
28
+ "--slotted-typography-font-family",
29
+ "--slotted-typography-lines",
30
+ "--slotted-typography-uppercase-tracking"
31
+ ]