@womp/kookie-ui 0.3.26 → 0.5.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 (204) hide show
  1. package/AUTHORS +27 -0
  2. package/LICENSE +29 -0
  3. package/README.md +21 -1
  4. package/components.css +472 -270
  5. package/dist/cjs/components/_internal/shell-bottom.js +1 -1
  6. package/dist/cjs/components/_internal/shell-bottom.js.map +3 -3
  7. package/dist/cjs/components/_internal/shell-inspector.js +1 -1
  8. package/dist/cjs/components/_internal/shell-inspector.js.map +3 -3
  9. package/dist/cjs/components/_internal/shell-sidebar.js +1 -1
  10. package/dist/cjs/components/_internal/shell-sidebar.js.map +3 -3
  11. package/dist/cjs/components/alert-dialog.js +1 -1
  12. package/dist/cjs/components/alert-dialog.js.map +3 -3
  13. package/dist/cjs/components/badge.js +1 -1
  14. package/dist/cjs/components/badge.js.map +3 -3
  15. package/dist/cjs/components/button.js +1 -1
  16. package/dist/cjs/components/button.js.map +3 -3
  17. package/dist/cjs/components/chatbar.js +2 -2
  18. package/dist/cjs/components/chatbar.js.map +3 -3
  19. package/dist/cjs/components/checkbox-cards.js +1 -1
  20. package/dist/cjs/components/checkbox-cards.js.map +3 -3
  21. package/dist/cjs/components/combobox.js +1 -1
  22. package/dist/cjs/components/combobox.js.map +3 -3
  23. package/dist/cjs/components/context-menu.js +1 -1
  24. package/dist/cjs/components/context-menu.js.map +3 -3
  25. package/dist/cjs/components/dialog.js +1 -1
  26. package/dist/cjs/components/dialog.js.map +3 -3
  27. package/dist/cjs/components/dropdown-menu.js +1 -1
  28. package/dist/cjs/components/dropdown-menu.js.map +3 -3
  29. package/dist/cjs/components/hover-card.js +1 -1
  30. package/dist/cjs/components/hover-card.js.map +3 -3
  31. package/dist/cjs/components/icon-button.js +2 -2
  32. package/dist/cjs/components/icon-button.js.map +3 -3
  33. package/dist/cjs/components/index.js +5 -5
  34. package/dist/cjs/components/index.js.map +3 -3
  35. package/dist/cjs/components/popover.js +1 -1
  36. package/dist/cjs/components/popover.js.map +3 -3
  37. package/dist/cjs/components/radio-cards.js +1 -1
  38. package/dist/cjs/components/radio-cards.js.map +3 -3
  39. package/dist/cjs/components/select.js +1 -1
  40. package/dist/cjs/components/select.js.map +3 -3
  41. package/dist/cjs/components/sheet.js +1 -1
  42. package/dist/cjs/components/sheet.js.map +3 -3
  43. package/dist/cjs/components/shell.js +1 -1
  44. package/dist/cjs/components/shell.js.map +3 -3
  45. package/dist/cjs/components/sidebar.js +1 -1
  46. package/dist/cjs/components/sidebar.js.map +3 -3
  47. package/dist/cjs/components/theme-panel.js +3 -3
  48. package/dist/cjs/components/theme-panel.js.map +3 -3
  49. package/dist/cjs/components/theme.d.ts +3 -0
  50. package/dist/cjs/components/theme.d.ts.map +1 -1
  51. package/dist/cjs/components/theme.js +1 -1
  52. package/dist/cjs/components/theme.js.map +3 -3
  53. package/dist/cjs/components/theme.props.d.ts +15 -1
  54. package/dist/cjs/components/theme.props.d.ts.map +1 -1
  55. package/dist/cjs/components/theme.props.js +1 -1
  56. package/dist/cjs/components/theme.props.js.map +2 -2
  57. package/dist/cjs/components/toggle-button.js +2 -2
  58. package/dist/cjs/components/toggle-button.js.map +3 -3
  59. package/dist/cjs/components/toggle-icon-button.js +3 -3
  60. package/dist/cjs/components/toggle-icon-button.js.map +3 -3
  61. package/dist/cjs/components/tooltip.js +1 -1
  62. package/dist/cjs/components/tooltip.js.map +3 -3
  63. package/dist/cjs/components/user-card.js +1 -1
  64. package/dist/cjs/components/user-card.js.map +3 -3
  65. package/dist/cjs/helpers/font-config.d.ts +84 -77
  66. package/dist/cjs/helpers/font-config.d.ts.map +1 -1
  67. package/dist/cjs/helpers/font-config.js +5 -2
  68. package/dist/cjs/helpers/font-config.js.map +3 -3
  69. package/dist/cjs/helpers/index.js +5 -2
  70. package/dist/cjs/helpers/index.js.map +3 -3
  71. package/dist/cjs/index.js +5 -5
  72. package/dist/cjs/index.js.map +3 -3
  73. package/dist/cjs/props/index.js +1 -1
  74. package/dist/cjs/props/index.js.map +2 -2
  75. package/dist/esm/{chunk-4CKDU6FY.js → chunk-2FYJTSOP.js} +2 -2
  76. package/dist/esm/{chunk-ICIGZ3N7.js → chunk-374ZYJUP.js} +2 -2
  77. package/dist/esm/{chunk-F2HYQ3ZR.js → chunk-6IGTK4JE.js} +2 -2
  78. package/dist/esm/chunk-6XGZPIUT.js +2 -0
  79. package/dist/esm/{chunk-T27QHMW7.js.map → chunk-6XGZPIUT.js.map} +2 -2
  80. package/dist/esm/{chunk-FLFAXVFB.js → chunk-A2RZGGMY.js} +2 -2
  81. package/dist/esm/{chunk-KKM6T5P7.js → chunk-AU3D6F42.js} +2 -2
  82. package/dist/esm/{chunk-O3CDWEZA.js → chunk-CVWCKOHO.js} +2 -2
  83. package/dist/esm/{chunk-JQQIPEGY.js → chunk-CWRNW44F.js} +2 -2
  84. package/dist/esm/{chunk-UVCH7QKO.js → chunk-DNHUQLXO.js} +2 -2
  85. package/dist/esm/{chunk-FOEZLQTW.js → chunk-FXUUI6Z2.js} +2 -2
  86. package/dist/esm/{chunk-WO43WW3A.js → chunk-IKSN4RNB.js} +2 -2
  87. package/dist/esm/{chunk-4IY2PR6N.js → chunk-K6QZMNCD.js} +2 -2
  88. package/dist/esm/{chunk-DL2O3GKG.js → chunk-KKBP2CRH.js} +2 -2
  89. package/dist/esm/{chunk-VLO7NXSP.js → chunk-M24UXMOQ.js} +2 -2
  90. package/dist/esm/{chunk-MRECKC4D.js → chunk-MK2R6DAU.js} +2 -2
  91. package/dist/esm/{chunk-5IBGFL6O.js → chunk-MOR3NSXQ.js} +2 -2
  92. package/dist/esm/{chunk-PQZXQ4ST.js → chunk-OSRJRBKP.js} +2 -2
  93. package/dist/esm/{chunk-WTYNFBFV.js → chunk-PLWXTEVE.js} +2 -2
  94. package/dist/esm/{chunk-U2X2CAW4.js → chunk-QEOAXJLN.js} +2 -2
  95. package/dist/esm/{chunk-36ZQVP7F.js → chunk-RMKXWYOV.js} +2 -2
  96. package/dist/esm/{chunk-BJYUPIXO.js → chunk-S56YSRHP.js} +2 -2
  97. package/dist/esm/{chunk-22HGLMPQ.js → chunk-TOLLPRMM.js} +2 -2
  98. package/dist/esm/{chunk-ETMLMDW4.js → chunk-UGD7Z3L4.js} +2 -2
  99. package/dist/esm/chunk-VA5A4MHU.js +6 -0
  100. package/dist/esm/chunk-VA5A4MHU.js.map +7 -0
  101. package/dist/esm/{chunk-4BBOHEF4.js → chunk-W7N7V5YD.js} +2 -2
  102. package/dist/esm/{chunk-D5N627TH.js → chunk-WFMYNZXZ.js} +2 -2
  103. package/dist/esm/{chunk-JR2YOGII.js → chunk-YEB3H7QN.js} +2 -2
  104. package/dist/esm/chunk-YUP6EICB.js +2 -0
  105. package/dist/esm/chunk-YUP6EICB.js.map +7 -0
  106. package/dist/esm/components/_internal/shell-bottom.js +1 -1
  107. package/dist/esm/components/_internal/shell-inspector.js +1 -1
  108. package/dist/esm/components/_internal/shell-sidebar.js +1 -1
  109. package/dist/esm/components/alert-dialog.js +1 -1
  110. package/dist/esm/components/badge.js +1 -1
  111. package/dist/esm/components/button.js +1 -1
  112. package/dist/esm/components/chatbar.js +1 -1
  113. package/dist/esm/components/checkbox-cards.js +1 -1
  114. package/dist/esm/components/combobox.js +1 -1
  115. package/dist/esm/components/context-menu.js +1 -1
  116. package/dist/esm/components/dialog.js +1 -1
  117. package/dist/esm/components/dropdown-menu.js +1 -1
  118. package/dist/esm/components/hover-card.js +1 -1
  119. package/dist/esm/components/icon-button.js +1 -1
  120. package/dist/esm/components/index.js +1 -1
  121. package/dist/esm/components/popover.js +1 -1
  122. package/dist/esm/components/radio-cards.js +1 -1
  123. package/dist/esm/components/select.js +1 -1
  124. package/dist/esm/components/sheet.js +1 -1
  125. package/dist/esm/components/shell.js +1 -1
  126. package/dist/esm/components/sidebar.js +1 -1
  127. package/dist/esm/components/theme-panel.js +1 -1
  128. package/dist/esm/components/theme.d.ts +3 -0
  129. package/dist/esm/components/theme.d.ts.map +1 -1
  130. package/dist/esm/components/theme.js +1 -1
  131. package/dist/esm/components/theme.props.d.ts +15 -1
  132. package/dist/esm/components/theme.props.d.ts.map +1 -1
  133. package/dist/esm/components/theme.props.js +1 -1
  134. package/dist/esm/components/toggle-button.js +1 -1
  135. package/dist/esm/components/toggle-icon-button.js +1 -1
  136. package/dist/esm/components/tooltip.js +1 -1
  137. package/dist/esm/components/user-card.js +1 -1
  138. package/dist/esm/helpers/font-config.d.ts +84 -77
  139. package/dist/esm/helpers/font-config.d.ts.map +1 -1
  140. package/dist/esm/helpers/font-config.js +1 -1
  141. package/dist/esm/helpers/index.js +1 -1
  142. package/dist/esm/index.js +1 -1
  143. package/dist/esm/props/index.js +1 -1
  144. package/fonts.css +8 -0
  145. package/package.json +17 -7
  146. package/src/components/_internal/base-card.css +5 -5
  147. package/src/components/_internal/base-checkbox.css +17 -3
  148. package/src/components/_internal/base-dialog.css +4 -4
  149. package/src/components/_internal/base-menu.css +3 -3
  150. package/src/components/accordion.css +5 -5
  151. package/src/components/callout.css +5 -5
  152. package/src/components/chatbar.css +6 -6
  153. package/src/components/checkbox-cards.css +30 -0
  154. package/src/components/heading.css +10 -3
  155. package/src/components/hover-card.css +3 -3
  156. package/src/components/popover.css +4 -4
  157. package/src/components/radio-cards.css +30 -0
  158. package/src/components/select.css +2 -2
  159. package/src/components/shell.css +1 -1
  160. package/src/components/table.css +5 -5
  161. package/src/components/text.css +10 -3
  162. package/src/components/theme.props.tsx +13 -1
  163. package/src/components/theme.tsx +18 -0
  164. package/src/components/tooltip.css +1 -1
  165. package/src/helpers/font-config.ts +130 -148
  166. package/src/styles/fonts.css +24 -29
  167. package/src/styles/index.css +0 -1
  168. package/src/styles/tokens/base.css +1 -0
  169. package/src/styles/tokens/font-family.css +263 -0
  170. package/src/styles/tokens/radius.css +47 -4
  171. package/src/styles/tokens/typography.css +2 -216
  172. package/styles.css +9094 -8884
  173. package/tokens/base.css +55 -28
  174. package/tokens.css +55 -28
  175. package/dist/esm/chunk-LOGJJF4I.js +0 -2
  176. package/dist/esm/chunk-LOGJJF4I.js.map +0 -7
  177. package/dist/esm/chunk-Q7P6BTVU.js +0 -3
  178. package/dist/esm/chunk-Q7P6BTVU.js.map +0 -7
  179. package/dist/esm/chunk-T27QHMW7.js +0 -2
  180. /package/dist/esm/{chunk-4CKDU6FY.js.map → chunk-2FYJTSOP.js.map} +0 -0
  181. /package/dist/esm/{chunk-ICIGZ3N7.js.map → chunk-374ZYJUP.js.map} +0 -0
  182. /package/dist/esm/{chunk-F2HYQ3ZR.js.map → chunk-6IGTK4JE.js.map} +0 -0
  183. /package/dist/esm/{chunk-FLFAXVFB.js.map → chunk-A2RZGGMY.js.map} +0 -0
  184. /package/dist/esm/{chunk-KKM6T5P7.js.map → chunk-AU3D6F42.js.map} +0 -0
  185. /package/dist/esm/{chunk-O3CDWEZA.js.map → chunk-CVWCKOHO.js.map} +0 -0
  186. /package/dist/esm/{chunk-JQQIPEGY.js.map → chunk-CWRNW44F.js.map} +0 -0
  187. /package/dist/esm/{chunk-UVCH7QKO.js.map → chunk-DNHUQLXO.js.map} +0 -0
  188. /package/dist/esm/{chunk-FOEZLQTW.js.map → chunk-FXUUI6Z2.js.map} +0 -0
  189. /package/dist/esm/{chunk-WO43WW3A.js.map → chunk-IKSN4RNB.js.map} +0 -0
  190. /package/dist/esm/{chunk-4IY2PR6N.js.map → chunk-K6QZMNCD.js.map} +0 -0
  191. /package/dist/esm/{chunk-DL2O3GKG.js.map → chunk-KKBP2CRH.js.map} +0 -0
  192. /package/dist/esm/{chunk-VLO7NXSP.js.map → chunk-M24UXMOQ.js.map} +0 -0
  193. /package/dist/esm/{chunk-MRECKC4D.js.map → chunk-MK2R6DAU.js.map} +0 -0
  194. /package/dist/esm/{chunk-5IBGFL6O.js.map → chunk-MOR3NSXQ.js.map} +0 -0
  195. /package/dist/esm/{chunk-PQZXQ4ST.js.map → chunk-OSRJRBKP.js.map} +0 -0
  196. /package/dist/esm/{chunk-WTYNFBFV.js.map → chunk-PLWXTEVE.js.map} +0 -0
  197. /package/dist/esm/{chunk-U2X2CAW4.js.map → chunk-QEOAXJLN.js.map} +0 -0
  198. /package/dist/esm/{chunk-36ZQVP7F.js.map → chunk-RMKXWYOV.js.map} +0 -0
  199. /package/dist/esm/{chunk-BJYUPIXO.js.map → chunk-S56YSRHP.js.map} +0 -0
  200. /package/dist/esm/{chunk-22HGLMPQ.js.map → chunk-TOLLPRMM.js.map} +0 -0
  201. /package/dist/esm/{chunk-ETMLMDW4.js.map → chunk-UGD7Z3L4.js.map} +0 -0
  202. /package/dist/esm/{chunk-4BBOHEF4.js.map → chunk-W7N7V5YD.js.map} +0 -0
  203. /package/dist/esm/{chunk-D5N627TH.js.map → chunk-WFMYNZXZ.js.map} +0 -0
  204. /package/dist/esm/{chunk-JR2YOGII.js.map → chunk-YEB3H7QN.js.map} +0 -0
@@ -0,0 +1,263 @@
1
+ /***************************************************************************************************
2
+ * *
3
+ * TYPEFACES *
4
+ * *
5
+ * This file is the single owner of every font-family decision in Kookie UI. Sizes, weights, *
6
+ * line heights and letter spacing live in `typography.css`; nothing else declares a stack. *
7
+ * *
8
+ * There are exactly two tiers: *
9
+ * *
10
+ * 1. STACKS — which typefaces exist. Three of them: --font-sans, --font-mono, --font-serif. *
11
+ * Declared on `:root`, because a typeface is an app-wide resource (and because *
12
+ * that is where `next/font` and friends put theirs). Override at `:root`. *
13
+ * *
14
+ * 2. ROLES — which stack each piece of text uses: --font-body, --font-heading, --font-code, *
15
+ * --font-strong, --font-em, --font-quote. Declared on `.radix-themes`, because a *
16
+ * role is a per-theme decision that `<Theme fontFamily>` has to be able to switch *
17
+ * per subtree. Override at `.radix-themes`. *
18
+ * *
19
+ * No webfonts are loaded here. The defaults below are system stacks. To use Kookie's own *
20
+ * typefaces (Inter / JetBrains Mono / Playfair Display), additionally import *
21
+ * '@womp/kookie-ui/fonts.css'. *
22
+ * *
23
+ ***************************************************************************************************/
24
+
25
+ :root {
26
+ /* Tier 1: stacks. Override these to change every typeface in the system. */
27
+ --font-sans:
28
+ -apple-system, BlinkMacSystemFont, 'Segoe UI (Custom)', Roboto, 'Helvetica Neue', 'Open Sans (Custom)', system-ui, sans-serif, 'Apple Color Emoji',
29
+ 'Segoe UI Emoji';
30
+ --font-mono: 'Menlo', 'Consolas (Custom)', 'Bitstream Vera Sans Mono', monospace, 'Apple Color Emoji', 'Segoe UI Emoji';
31
+ --font-serif: 'Times New Roman', 'Times', 'Georgia', 'Cambria', serif;
32
+ }
33
+
34
+ .radix-themes {
35
+ /* Tier 2: roles. Each one points at a stack. Override these to give a role its own typeface —
36
+ e.g. `--font-heading: var(--font-serif)` for serif headings over a sans body. */
37
+ --font-body: var(--font-sans);
38
+ --font-heading: var(--font-body); /* follows the body unless you say otherwise */
39
+ --font-code: var(--font-mono);
40
+ --font-strong: var(--font-body);
41
+ --font-em: var(--font-serif);
42
+ --font-quote: var(--font-serif);
43
+
44
+ /* Radix Themes names, kept as aliases of the roles above. Components read these, so overriding
45
+ either the Kookie role or the Radix name works — they are the same token, spelled twice. */
46
+ --default-font-family: var(--font-body);
47
+ --heading-font-family: var(--font-heading);
48
+ --code-font-family: var(--font-code);
49
+ --strong-font-family: var(--font-strong);
50
+ --em-font-family: var(--font-em);
51
+ --quote-font-family: var(--font-quote);
52
+
53
+ /* @deprecated Use --font-sans / --font-mono / --font-serif directly. */
54
+ --default-font-family-sans: var(--font-sans);
55
+ --default-font-family-mono: var(--font-mono);
56
+ --default-font-family-serif: var(--font-serif);
57
+ }
58
+
59
+ /* `<Theme fontFamily>` — sets the body role only. Heading follows it through --font-heading's
60
+ default, so a `--font-heading` override of yours survives a theme font switch. */
61
+ [data-font-family='sans'] {
62
+ --font-body: var(--font-sans);
63
+ }
64
+ [data-font-family='mono'] {
65
+ --font-body: var(--font-mono);
66
+ }
67
+ [data-font-family='serif'] {
68
+ --font-body: var(--font-serif);
69
+ }
70
+
71
+ /* `<Theme headingFontFamily>` — sets the heading role independently of the body. */
72
+ [data-heading-font-family='sans'] {
73
+ --font-heading: var(--font-sans);
74
+ }
75
+ [data-heading-font-family='mono'] {
76
+ --font-heading: var(--font-mono);
77
+ }
78
+ [data-heading-font-family='serif'] {
79
+ --font-heading: var(--font-serif);
80
+ }
81
+
82
+ /***************************************************************************************************
83
+ * *
84
+ * METRIC OVERRIDES *
85
+ * *
86
+ * Fallback faces normalised to match the primary stack's metrics, so swapping a webfont for a *
87
+ * system face does not reflow the page. Referenced by the default stacks above. *
88
+ * *
89
+ ***************************************************************************************************/
90
+
91
+ @font-face {
92
+ font-family: 'Segoe UI (Custom)';
93
+ font-weight: 300;
94
+ size-adjust: 103%;
95
+ descent-override: 35%;
96
+ ascent-override: 105%;
97
+ src: local('Segoe UI Semilight'), local('Segoe UI');
98
+ }
99
+
100
+ @font-face {
101
+ font-family: 'Segoe UI (Custom)';
102
+ font-weight: 300;
103
+ font-style: italic;
104
+ size-adjust: 103%;
105
+ descent-override: 35%;
106
+ ascent-override: 105%;
107
+ src: local('Segoe UI Semilight Italic'), local('Segoe UI Italic');
108
+ }
109
+
110
+ @font-face {
111
+ font-family: 'Segoe UI (Custom)';
112
+ font-weight: 400;
113
+ size-adjust: 103%;
114
+ descent-override: 35%;
115
+ ascent-override: 105%;
116
+ src: local('Segoe UI');
117
+ }
118
+
119
+ @font-face {
120
+ font-family: 'Segoe UI (Custom)';
121
+ font-weight: 400;
122
+ font-style: italic;
123
+ size-adjust: 103%;
124
+ descent-override: 35%;
125
+ ascent-override: 105%;
126
+ src: local('Segoe UI Italic');
127
+ }
128
+
129
+ @font-face {
130
+ font-family: 'Segoe UI (Custom)';
131
+ font-weight: 500;
132
+ size-adjust: 103%;
133
+ descent-override: 35%;
134
+ ascent-override: 105%;
135
+ src: local('Segoe UI Semibold'), local('Segoe UI');
136
+ }
137
+
138
+ @font-face {
139
+ font-family: 'Segoe UI (Custom)';
140
+ font-weight: 500;
141
+ font-style: italic;
142
+ size-adjust: 103%;
143
+ descent-override: 35%;
144
+ ascent-override: 105%;
145
+ src: local('Segoe UI Semibold Italic'), local('Segoe UI Italic');
146
+ }
147
+
148
+ @font-face {
149
+ font-family: 'Segoe UI (Custom)';
150
+ font-weight: 700;
151
+ size-adjust: 103%;
152
+ descent-override: 35%;
153
+ ascent-override: 105%;
154
+ src: local('Segoe UI Bold');
155
+ }
156
+
157
+ @font-face {
158
+ font-family: 'Segoe UI (Custom)';
159
+ font-weight: 700;
160
+ font-style: italic;
161
+ size-adjust: 103%;
162
+ descent-override: 35%;
163
+ ascent-override: 105%;
164
+ src: local('Segoe UI Bold Italic');
165
+ }
166
+
167
+ @font-face {
168
+ font-family: 'Open Sans (Custom)';
169
+ font-weight: 300;
170
+ descent-override: 35%;
171
+ src: local('Open Sans Light'), local('Open Sans Regular');
172
+ }
173
+
174
+ @font-face {
175
+ font-family: 'Open Sans (Custom)';
176
+ font-weight: 300;
177
+ font-style: italic;
178
+ descent-override: 35%;
179
+ src: local('Open Sans Light Italic'), local('Open Sans Italic');
180
+ }
181
+
182
+ @font-face {
183
+ font-family: 'Open Sans (Custom)';
184
+ font-weight: 400;
185
+ descent-override: 35%;
186
+ src: local('Open Sans Regular');
187
+ }
188
+
189
+ @font-face {
190
+ font-family: 'Open Sans (Custom)';
191
+ font-weight: 400;
192
+ font-style: italic;
193
+ descent-override: 35%;
194
+ src: local('Open Sans Italic');
195
+ }
196
+
197
+ @font-face {
198
+ font-family: 'Open Sans (Custom)';
199
+ font-weight: 500;
200
+ descent-override: 35%;
201
+ src: local('Open Sans Medium'), local('Open Sans Regular');
202
+ }
203
+
204
+ @font-face {
205
+ font-family: 'Open Sans (Custom)';
206
+ font-weight: 500;
207
+ font-style: italic;
208
+ descent-override: 35%;
209
+ src: local('Open Sans Medium Italic'), local('Open Sans Italic');
210
+ }
211
+
212
+ @font-face {
213
+ font-family: 'Open Sans (Custom)';
214
+ font-weight: 700;
215
+ descent-override: 35%;
216
+ src: local('Open Sans Bold');
217
+ }
218
+
219
+ @font-face {
220
+ font-family: 'Open Sans (Custom)';
221
+ font-weight: 700;
222
+ font-style: italic;
223
+ descent-override: 35%;
224
+ src: local('Open Sans Bold Italic');
225
+ }
226
+
227
+ @font-face {
228
+ font-family: 'Consolas (Custom)';
229
+ font-weight: 400;
230
+ size-adjust: 110%;
231
+ ascent-override: 85%;
232
+ descent-override: 22%;
233
+ src: local('Consolas');
234
+ }
235
+
236
+ @font-face {
237
+ font-family: 'Consolas (Custom)';
238
+ font-weight: 400;
239
+ font-style: italic;
240
+ size-adjust: 110%;
241
+ ascent-override: 85%;
242
+ descent-override: 22%;
243
+ src: local('Consolas Italic');
244
+ }
245
+
246
+ @font-face {
247
+ font-family: 'Consolas (Custom)';
248
+ font-weight: 700;
249
+ size-adjust: 110%;
250
+ ascent-override: 85%;
251
+ descent-override: 22%;
252
+ src: local('Consolas Bold');
253
+ }
254
+
255
+ @font-face {
256
+ font-family: 'Consolas (Custom)';
257
+ font-weight: 700;
258
+ font-style: italic;
259
+ size-adjust: 110%;
260
+ ascent-override: 85%;
261
+ descent-override: 22%;
262
+ src: local('Consolas Bold Italic');
263
+ }
@@ -1,45 +1,88 @@
1
+ /*
2
+ * RADIUS
3
+ *
4
+ * Two channels, one theme.
5
+ *
6
+ * `--radius-*` CONTROLS & MARKS — buttons, inputs, checkboxes, badges,
7
+ * switches, tabs. These scale aggressively with the theme
8
+ * and opt into `--radius-full` to become pills.
9
+ *
10
+ * `--radius-surface-*` SURFACES — cards, dialogs, popovers, menus, tables,
11
+ * callouts. These damp as the theme grows and never go
12
+ * pill. A surface at `full` is exactly as round as a
13
+ * surface at `medium`; `--radius-surface-factor` is
14
+ * capped at 1.
15
+ *
16
+ * The gap between the two channels is the point: round controls read as
17
+ * touchable, restrained surfaces read as architectural. Widening the theme
18
+ * widens that contrast instead of inflating everything at once.
19
+ */
20
+
1
21
  [data-radius] {
2
- /* */
22
+ /* Controls & marks */
3
23
  --radius-1: calc(6px * var(--scaling) * var(--radius-factor));
4
24
  --radius-2: calc(8px * var(--scaling) * var(--radius-factor));
5
25
  --radius-3: calc(10px * var(--scaling) * var(--radius-factor));
6
26
  --radius-4: calc(12px * var(--scaling) * var(--radius-factor));
7
-
27
+
8
28
  /* */
9
29
  --radius-5: calc(16px * var(--scaling) * var(--radius-factor));
10
30
  --radius-6: calc(20px * var(--scaling) * var(--radius-factor));
11
31
  --radius-7: calc(24px * var(--scaling) * var(--radius-factor));
12
32
  --radius-8: calc(28px * var(--scaling) * var(--radius-factor));
13
-
33
+
14
34
  /* */
15
35
  --radius-9: calc(32px * var(--scaling) * var(--radius-factor));
16
36
  --radius-10: calc(40px * var(--scaling) * var(--radius-factor));
17
37
  --radius-11: calc(48px * var(--scaling) * var(--radius-factor));
18
38
  --radius-12: calc(56px * var(--scaling) * var(--radius-factor));
39
+
40
+ /* Surfaces — same ramp, damped factor, no pill */
41
+ --radius-surface-1: calc(6px * var(--scaling) * var(--radius-surface-factor));
42
+ --radius-surface-2: calc(8px * var(--scaling) * var(--radius-surface-factor));
43
+ --radius-surface-3: calc(10px * var(--scaling) * var(--radius-surface-factor));
44
+ --radius-surface-4: calc(12px * var(--scaling) * var(--radius-surface-factor));
45
+
46
+ /* */
47
+ --radius-surface-5: calc(16px * var(--scaling) * var(--radius-surface-factor));
48
+ --radius-surface-6: calc(20px * var(--scaling) * var(--radius-surface-factor));
49
+ --radius-surface-7: calc(24px * var(--scaling) * var(--radius-surface-factor));
50
+ --radius-surface-8: calc(28px * var(--scaling) * var(--radius-surface-factor));
51
+
52
+ /* */
53
+ --radius-surface-9: calc(32px * var(--scaling) * var(--radius-surface-factor));
54
+ --radius-surface-10: calc(40px * var(--scaling) * var(--radius-surface-factor));
55
+ --radius-surface-11: calc(48px * var(--scaling) * var(--radius-surface-factor));
56
+ --radius-surface-12: calc(56px * var(--scaling) * var(--radius-surface-factor));
19
57
  }
20
58
 
21
59
 
22
60
  [data-radius='none'] {
23
61
  --radius-factor: 0;
62
+ --radius-surface-factor: 0;
24
63
  --radius-full: 0px;
25
64
  }
26
65
 
27
66
  [data-radius='small'] {
28
67
  --radius-factor: 0.75;
68
+ --radius-surface-factor: 0.5;
29
69
  --radius-full: 0px;
30
70
  }
31
71
 
32
72
  [data-radius='medium'] {
33
73
  --radius-factor: 1;
74
+ --radius-surface-factor: 0.75;
34
75
  --radius-full: 0px;
35
76
  }
36
77
 
37
78
  [data-radius='large'] {
38
79
  --radius-factor: 1.5;
80
+ --radius-surface-factor: 0.9;
39
81
  --radius-full: 0px;
40
82
  }
41
83
 
42
84
  [data-radius='full'] {
43
- --radius-factor: 2.0;
85
+ --radius-factor: 2;
86
+ --radius-surface-factor: 1;
44
87
  --radius-full: 9999px;
45
88
  }
@@ -50,18 +50,8 @@
50
50
  --letter-spacing-11: -0.035em;
51
51
  --letter-spacing-12: -0.04em;
52
52
 
53
- /* default values */
53
+ /* default values (typefaces live in font-family.css) */
54
54
 
55
- --default-font-family:
56
- var(--font-sans, var(--font-inter, 'Inter')), -apple-system, BlinkMacSystemFont, 'Segoe UI (Custom)', Roboto, 'Helvetica Neue', 'Open Sans (Custom)', system-ui, sans-serif, 'Apple Color Emoji',
57
- 'Segoe UI Emoji';
58
-
59
- /* Font family overrides based on theme data attribute */
60
- --default-font-family-sans:
61
- var(--font-sans, var(--font-inter, 'Inter')), -apple-system, BlinkMacSystemFont, 'Segoe UI (Custom)', Roboto, 'Helvetica Neue', 'Open Sans (Custom)', system-ui, sans-serif, 'Apple Color Emoji',
62
- 'Segoe UI Emoji';
63
- --default-font-family-mono: var(--font-mono);
64
- --default-font-family-serif: var(--font-serif);
65
55
  --default-font-size: var(--font-size-3); /* Same size used for `<Text size="3">` */
66
56
  --default-font-style: normal;
67
57
  --default-font-weight: var(--font-weight-regular);
@@ -72,7 +62,6 @@
72
62
 
73
63
  /* Heading */
74
64
 
75
- --heading-font-family: var(--default-font-family);
76
65
  --heading-font-size-adjust: 1;
77
66
  --heading-font-style: normal;
78
67
  --heading-leading-trim-start: var(--default-leading-trim-start);
@@ -95,7 +84,6 @@
95
84
 
96
85
  /* Code */
97
86
 
98
- --code-font-family: var(--font-mono, var(--font-jetbrains-mono, 'JetBrains Mono')), 'Menlo', 'Consolas (Custom)', 'Bitstream Vera Sans Mono', monospace, 'Apple Color Emoji', 'Segoe UI Emoji';
99
87
  --code-font-size-adjust: 0.95;
100
88
  --code-font-style: normal;
101
89
  --code-font-weight: inherit;
@@ -107,7 +95,6 @@
107
95
 
108
96
  /* Strong */
109
97
 
110
- --strong-font-family: var(--default-font-family);
111
98
  --strong-font-size-adjust: 1;
112
99
  --strong-font-style: inherit;
113
100
  --strong-font-weight: var(--font-weight-medium);
@@ -115,7 +102,6 @@
115
102
 
116
103
  /* Em */
117
104
 
118
- --em-font-family: 'Times New Roman', 'Times', serif;
119
105
  --em-font-size-adjust: 1.18;
120
106
  --em-font-style: italic;
121
107
  --em-font-weight: inherit;
@@ -123,7 +109,6 @@
123
109
 
124
110
  /* Quote */
125
111
 
126
- --quote-font-family: 'Times New Roman', 'Times', serif;
127
112
  --quote-font-size-adjust: 1.18;
128
113
  --quote-font-style: italic;
129
114
  --quote-font-weight: inherit;
@@ -140,6 +125,7 @@
140
125
  .radix-themes {
141
126
  overflow-wrap: break-word;
142
127
  font-family: var(--default-font-family);
128
+ font-synthesis: none;
143
129
  font-size: var(--default-font-size);
144
130
  font-weight: var(--default-font-weight);
145
131
  font-style: var(--default-font-style);
@@ -149,203 +135,3 @@
149
135
  -webkit-font-smoothing: antialiased;
150
136
  -moz-osx-font-smoothing: grayscale;
151
137
  }
152
-
153
- @font-face {
154
- font-family: 'Segoe UI (Custom)';
155
- font-weight: 300;
156
- size-adjust: 103%;
157
- descent-override: 35%;
158
- ascent-override: 105%;
159
- src: local('Segoe UI Semilight'), local('Segoe UI');
160
- }
161
-
162
- @font-face {
163
- font-family: 'Segoe UI (Custom)';
164
- font-weight: 300;
165
- font-style: italic;
166
- size-adjust: 103%;
167
- descent-override: 35%;
168
- ascent-override: 105%;
169
- src: local('Segoe UI Semilight Italic'), local('Segoe UI Italic');
170
- }
171
-
172
- @font-face {
173
- font-family: 'Segoe UI (Custom)';
174
- font-weight: 400;
175
- size-adjust: 103%;
176
- descent-override: 35%;
177
- ascent-override: 105%;
178
- src: local('Segoe UI');
179
- }
180
-
181
- @font-face {
182
- font-family: 'Segoe UI (Custom)';
183
- font-weight: 400;
184
- font-style: italic;
185
- size-adjust: 103%;
186
- descent-override: 35%;
187
- ascent-override: 105%;
188
- src: local('Segoe UI Italic');
189
- }
190
-
191
- @font-face {
192
- font-family: 'Segoe UI (Custom)';
193
- font-weight: 500;
194
- size-adjust: 103%;
195
- descent-override: 35%;
196
- ascent-override: 105%;
197
- src: local('Segoe UI Semibold'), local('Segoe UI');
198
- }
199
-
200
- @font-face {
201
- font-family: 'Segoe UI (Custom)';
202
- font-weight: 500;
203
- font-style: italic;
204
- size-adjust: 103%;
205
- descent-override: 35%;
206
- ascent-override: 105%;
207
- src: local('Segoe UI Semibold Italic'), local('Segoe UI Italic');
208
- }
209
-
210
- @font-face {
211
- font-family: 'Segoe UI (Custom)';
212
- font-weight: 700;
213
- size-adjust: 103%;
214
- descent-override: 35%;
215
- ascent-override: 105%;
216
- src: local('Segoe UI Bold');
217
- }
218
-
219
- @font-face {
220
- font-family: 'Segoe UI (Custom)';
221
- font-weight: 700;
222
- font-style: italic;
223
- size-adjust: 103%;
224
- descent-override: 35%;
225
- ascent-override: 105%;
226
- src: local('Segoe UI Bold Italic');
227
- }
228
-
229
- @font-face {
230
- font-family: 'Open Sans (Custom)';
231
- font-weight: 300;
232
- descent-override: 35%;
233
- src: local('Open Sans Light'), local('Open Sans Regular');
234
- }
235
-
236
- @font-face {
237
- font-family: 'Open Sans (Custom)';
238
- font-weight: 300;
239
- font-style: italic;
240
- descent-override: 35%;
241
- src: local('Open Sans Light Italic'), local('Open Sans Italic');
242
- }
243
-
244
- @font-face {
245
- font-family: 'Open Sans (Custom)';
246
- font-weight: 400;
247
- descent-override: 35%;
248
- src: local('Open Sans Regular');
249
- }
250
-
251
- @font-face {
252
- font-family: 'Open Sans (Custom)';
253
- font-weight: 400;
254
- font-style: italic;
255
- descent-override: 35%;
256
- src: local('Open Sans Italic');
257
- }
258
-
259
- @font-face {
260
- font-family: 'Open Sans (Custom)';
261
- font-weight: 500;
262
- descent-override: 35%;
263
- src: local('Open Sans Medium'), local('Open Sans Regular');
264
- }
265
-
266
- @font-face {
267
- font-family: 'Open Sans (Custom)';
268
- font-weight: 500;
269
- font-style: italic;
270
- descent-override: 35%;
271
- src: local('Open Sans Medium Italic'), local('Open Sans Italic');
272
- }
273
-
274
- @font-face {
275
- font-family: 'Open Sans (Custom)';
276
- font-weight: 700;
277
- descent-override: 35%;
278
- src: local('Open Sans Bold');
279
- }
280
-
281
- @font-face {
282
- font-family: 'Open Sans (Custom)';
283
- font-weight: 700;
284
- font-style: italic;
285
- descent-override: 35%;
286
- src: local('Open Sans Bold Italic');
287
- }
288
-
289
- @font-face {
290
- font-family: 'Consolas (Custom)';
291
- font-weight: 400;
292
- size-adjust: 110%;
293
- ascent-override: 85%;
294
- descent-override: 22%;
295
- src: local('Consolas');
296
- }
297
-
298
- @font-face {
299
- font-family: 'Consolas (Custom)';
300
- font-weight: 400;
301
- font-style: italic;
302
- size-adjust: 110%;
303
- ascent-override: 85%;
304
- descent-override: 22%;
305
- src: local('Consolas Italic');
306
- }
307
-
308
- @font-face {
309
- font-family: 'Consolas (Custom)';
310
- font-weight: 700;
311
- size-adjust: 110%;
312
- ascent-override: 85%;
313
- descent-override: 22%;
314
- src: local('Consolas Bold');
315
- }
316
-
317
- @font-face {
318
- font-family: 'Consolas (Custom)';
319
- font-weight: 700;
320
- font-style: italic;
321
- size-adjust: 110%;
322
- ascent-override: 85%;
323
- descent-override: 22%;
324
- src: local('Consolas Bold Italic');
325
- }
326
-
327
- /* Font family data attribute support */
328
- [data-font-family='sans'] {
329
- --default-font-family: var(--default-font-family-sans);
330
- --heading-font-family: var(--default-font-family-sans);
331
- --strong-font-family: var(--default-font-family-sans);
332
- }
333
-
334
- [data-font-family='mono'] {
335
- --default-font-family: var(--default-font-family-mono);
336
- --heading-font-family: var(--default-font-family-mono);
337
- --strong-font-family: var(--default-font-family-mono);
338
- }
339
-
340
- [data-font-family='serif'] {
341
- /* Map serif directly to --font-serif to avoid resolution issues */
342
- --default-font-family: var(--font-serif);
343
- --heading-font-family: var(--font-serif);
344
- --strong-font-family: var(--font-serif);
345
- }
346
-
347
- /* Ensure serif font takes precedence over .radix-themes */
348
- /* stylelint-disable-next-line selector-max-specificity */
349
- .radix-themes[data-font-family='serif'] {
350
- font-family: var(--font-serif) !important;
351
- }