@format.dev/fonts 0.0.0 → 0.1.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 (177) hide show
  1. package/README.md +88 -20
  2. package/dist/index.cjs +82 -0
  3. package/dist/index.d.cts +84 -0
  4. package/dist/index.d.cts.map +1 -0
  5. package/dist/index.d.mts +84 -0
  6. package/dist/index.d.mts.map +1 -0
  7. package/dist/index.mjs +77 -0
  8. package/dist/index.mjs.map +1 -0
  9. package/dist/mode-B8fVsgsV.mjs +26 -0
  10. package/dist/mode-B8fVsgsV.mjs.map +1 -0
  11. package/dist/mode-BXEMdEsE.d.cts +26 -0
  12. package/dist/mode-BXEMdEsE.d.cts.map +1 -0
  13. package/dist/mode-CtSoe83u.d.mts +26 -0
  14. package/dist/mode-CtSoe83u.d.mts.map +1 -0
  15. package/dist/mode-DzsrOPvc.cjs +37 -0
  16. package/dist/mode.cjs +4 -0
  17. package/dist/mode.d.cts +2 -0
  18. package/dist/mode.d.mts +2 -0
  19. package/dist/mode.mjs +3 -0
  20. package/fonts/emoji/Noto-COLRv1.ttf +0 -0
  21. package/fonts/emoji/format-emoji-0.woff2 +0 -0
  22. package/fonts/emoji/format-emoji-1.woff2 +0 -0
  23. package/fonts/emoji/format-emoji-2.woff2 +0 -0
  24. package/fonts/emoji/format-emoji-3.woff2 +0 -0
  25. package/fonts/emoji/format-emoji-4.woff2 +0 -0
  26. package/fonts/emoji/format-emoji-5.woff2 +0 -0
  27. package/fonts/emoji/format-emoji-6.woff2 +0 -0
  28. package/fonts/emoji/format-emoji-7.woff2 +0 -0
  29. package/fonts/emoji/format-emoji-8.woff2 +0 -0
  30. package/fonts/emoji/format-emoji-9.woff2 +0 -0
  31. package/fonts/fonts.json +1129 -0
  32. package/fonts/math/STIXTwoMath-Regular.ttf +0 -0
  33. package/fonts/math/format-math.woff2 +0 -0
  34. package/fonts/static/mono/FormatMono-100-Italic.ttf +0 -0
  35. package/fonts/static/mono/FormatMono-100-Italic.woff2 +0 -0
  36. package/fonts/static/mono/FormatMono-100.ttf +0 -0
  37. package/fonts/static/mono/FormatMono-100.woff2 +0 -0
  38. package/fonts/static/mono/FormatMono-200-Italic.ttf +0 -0
  39. package/fonts/static/mono/FormatMono-200-Italic.woff2 +0 -0
  40. package/fonts/static/mono/FormatMono-200.ttf +0 -0
  41. package/fonts/static/mono/FormatMono-200.woff2 +0 -0
  42. package/fonts/static/mono/FormatMono-300-Italic.ttf +0 -0
  43. package/fonts/static/mono/FormatMono-300-Italic.woff2 +0 -0
  44. package/fonts/static/mono/FormatMono-300.ttf +0 -0
  45. package/fonts/static/mono/FormatMono-300.woff2 +0 -0
  46. package/fonts/static/mono/FormatMono-400-Italic.ttf +0 -0
  47. package/fonts/static/mono/FormatMono-400-Italic.woff2 +0 -0
  48. package/fonts/static/mono/FormatMono-400.ttf +0 -0
  49. package/fonts/static/mono/FormatMono-400.woff2 +0 -0
  50. package/fonts/static/mono/FormatMono-500-Italic.ttf +0 -0
  51. package/fonts/static/mono/FormatMono-500-Italic.woff2 +0 -0
  52. package/fonts/static/mono/FormatMono-500.ttf +0 -0
  53. package/fonts/static/mono/FormatMono-500.woff2 +0 -0
  54. package/fonts/static/mono/FormatMono-600-Italic.ttf +0 -0
  55. package/fonts/static/mono/FormatMono-600-Italic.woff2 +0 -0
  56. package/fonts/static/mono/FormatMono-600.ttf +0 -0
  57. package/fonts/static/mono/FormatMono-600.woff2 +0 -0
  58. package/fonts/static/mono/FormatMono-700-Italic.ttf +0 -0
  59. package/fonts/static/mono/FormatMono-700-Italic.woff2 +0 -0
  60. package/fonts/static/mono/FormatMono-700.ttf +0 -0
  61. package/fonts/static/mono/FormatMono-700.woff2 +0 -0
  62. package/fonts/static/mono/FormatMono-800-Italic.ttf +0 -0
  63. package/fonts/static/mono/FormatMono-800-Italic.woff2 +0 -0
  64. package/fonts/static/mono/FormatMono-800.ttf +0 -0
  65. package/fonts/static/mono/FormatMono-800.woff2 +0 -0
  66. package/fonts/static/sans/FormatSans-100-Italic.ttf +0 -0
  67. package/fonts/static/sans/FormatSans-100-Italic.woff2 +0 -0
  68. package/fonts/static/sans/FormatSans-100.ttf +0 -0
  69. package/fonts/static/sans/FormatSans-100.woff2 +0 -0
  70. package/fonts/static/sans/FormatSans-200-Italic.ttf +0 -0
  71. package/fonts/static/sans/FormatSans-200-Italic.woff2 +0 -0
  72. package/fonts/static/sans/FormatSans-200.ttf +0 -0
  73. package/fonts/static/sans/FormatSans-200.woff2 +0 -0
  74. package/fonts/static/sans/FormatSans-300-Italic.ttf +0 -0
  75. package/fonts/static/sans/FormatSans-300-Italic.woff2 +0 -0
  76. package/fonts/static/sans/FormatSans-300.ttf +0 -0
  77. package/fonts/static/sans/FormatSans-300.woff2 +0 -0
  78. package/fonts/static/sans/FormatSans-400-Italic.ttf +0 -0
  79. package/fonts/static/sans/FormatSans-400-Italic.woff2 +0 -0
  80. package/fonts/static/sans/FormatSans-400.ttf +0 -0
  81. package/fonts/static/sans/FormatSans-400.woff2 +0 -0
  82. package/fonts/static/sans/FormatSans-500-Italic.ttf +0 -0
  83. package/fonts/static/sans/FormatSans-500-Italic.woff2 +0 -0
  84. package/fonts/static/sans/FormatSans-500.ttf +0 -0
  85. package/fonts/static/sans/FormatSans-500.woff2 +0 -0
  86. package/fonts/static/sans/FormatSans-600-Italic.ttf +0 -0
  87. package/fonts/static/sans/FormatSans-600-Italic.woff2 +0 -0
  88. package/fonts/static/sans/FormatSans-600.ttf +0 -0
  89. package/fonts/static/sans/FormatSans-600.woff2 +0 -0
  90. package/fonts/static/sans/FormatSans-700-Italic.ttf +0 -0
  91. package/fonts/static/sans/FormatSans-700-Italic.woff2 +0 -0
  92. package/fonts/static/sans/FormatSans-700.ttf +0 -0
  93. package/fonts/static/sans/FormatSans-700.woff2 +0 -0
  94. package/fonts/static/sans/FormatSans-800-Italic.ttf +0 -0
  95. package/fonts/static/sans/FormatSans-800-Italic.woff2 +0 -0
  96. package/fonts/static/sans/FormatSans-800.ttf +0 -0
  97. package/fonts/static/sans/FormatSans-800.woff2 +0 -0
  98. package/fonts/static/sans/FormatSans-900-Italic.ttf +0 -0
  99. package/fonts/static/sans/FormatSans-900-Italic.woff2 +0 -0
  100. package/fonts/static/sans/FormatSans-900.ttf +0 -0
  101. package/fonts/static/sans/FormatSans-900.woff2 +0 -0
  102. package/fonts/static/sans/FormatSansDisplay-100-Italic.ttf +0 -0
  103. package/fonts/static/sans/FormatSansDisplay-100-Italic.woff2 +0 -0
  104. package/fonts/static/sans/FormatSansDisplay-100.ttf +0 -0
  105. package/fonts/static/sans/FormatSansDisplay-100.woff2 +0 -0
  106. package/fonts/static/sans/FormatSansDisplay-200-Italic.ttf +0 -0
  107. package/fonts/static/sans/FormatSansDisplay-200-Italic.woff2 +0 -0
  108. package/fonts/static/sans/FormatSansDisplay-200.ttf +0 -0
  109. package/fonts/static/sans/FormatSansDisplay-200.woff2 +0 -0
  110. package/fonts/static/sans/FormatSansDisplay-300-Italic.ttf +0 -0
  111. package/fonts/static/sans/FormatSansDisplay-300-Italic.woff2 +0 -0
  112. package/fonts/static/sans/FormatSansDisplay-300.ttf +0 -0
  113. package/fonts/static/sans/FormatSansDisplay-300.woff2 +0 -0
  114. package/fonts/static/sans/FormatSansDisplay-400-Italic.ttf +0 -0
  115. package/fonts/static/sans/FormatSansDisplay-400-Italic.woff2 +0 -0
  116. package/fonts/static/sans/FormatSansDisplay-400.ttf +0 -0
  117. package/fonts/static/sans/FormatSansDisplay-400.woff2 +0 -0
  118. package/fonts/static/sans/FormatSansDisplay-500-Italic.ttf +0 -0
  119. package/fonts/static/sans/FormatSansDisplay-500-Italic.woff2 +0 -0
  120. package/fonts/static/sans/FormatSansDisplay-500.ttf +0 -0
  121. package/fonts/static/sans/FormatSansDisplay-500.woff2 +0 -0
  122. package/fonts/static/sans/FormatSansDisplay-600-Italic.ttf +0 -0
  123. package/fonts/static/sans/FormatSansDisplay-600-Italic.woff2 +0 -0
  124. package/fonts/static/sans/FormatSansDisplay-600.ttf +0 -0
  125. package/fonts/static/sans/FormatSansDisplay-600.woff2 +0 -0
  126. package/fonts/static/sans/FormatSansDisplay-700-Italic.ttf +0 -0
  127. package/fonts/static/sans/FormatSansDisplay-700-Italic.woff2 +0 -0
  128. package/fonts/static/sans/FormatSansDisplay-700.ttf +0 -0
  129. package/fonts/static/sans/FormatSansDisplay-700.woff2 +0 -0
  130. package/fonts/static/sans/FormatSansDisplay-800-Italic.ttf +0 -0
  131. package/fonts/static/sans/FormatSansDisplay-800-Italic.woff2 +0 -0
  132. package/fonts/static/sans/FormatSansDisplay-800.ttf +0 -0
  133. package/fonts/static/sans/FormatSansDisplay-800.woff2 +0 -0
  134. package/fonts/static/sans/FormatSansDisplay-900-Italic.ttf +0 -0
  135. package/fonts/static/sans/FormatSansDisplay-900-Italic.woff2 +0 -0
  136. package/fonts/static/sans/FormatSansDisplay-900.ttf +0 -0
  137. package/fonts/static/sans/FormatSansDisplay-900.woff2 +0 -0
  138. package/fonts/static/serif/FormatSerif-400-Italic.ttf +0 -0
  139. package/fonts/static/serif/FormatSerif-400-Italic.woff2 +0 -0
  140. package/fonts/static/serif/FormatSerif-400.ttf +0 -0
  141. package/fonts/static/serif/FormatSerif-400.woff2 +0 -0
  142. package/fonts/static/serif/FormatSerif-500-Italic.ttf +0 -0
  143. package/fonts/static/serif/FormatSerif-500-Italic.woff2 +0 -0
  144. package/fonts/static/serif/FormatSerif-500.ttf +0 -0
  145. package/fonts/static/serif/FormatSerif-500.woff2 +0 -0
  146. package/fonts/static/serif/FormatSerif-600-Italic.ttf +0 -0
  147. package/fonts/static/serif/FormatSerif-600-Italic.woff2 +0 -0
  148. package/fonts/static/serif/FormatSerif-600.ttf +0 -0
  149. package/fonts/static/serif/FormatSerif-600.woff2 +0 -0
  150. package/fonts/static/serif/FormatSerif-700-Italic.ttf +0 -0
  151. package/fonts/static/serif/FormatSerif-700-Italic.woff2 +0 -0
  152. package/fonts/static/serif/FormatSerif-700.ttf +0 -0
  153. package/fonts/static/serif/FormatSerif-700.woff2 +0 -0
  154. package/fonts/static/serif/FormatSerif-800-Italic.ttf +0 -0
  155. package/fonts/static/serif/FormatSerif-800-Italic.woff2 +0 -0
  156. package/fonts/static/serif/FormatSerif-800.ttf +0 -0
  157. package/fonts/static/serif/FormatSerif-800.woff2 +0 -0
  158. package/fonts/static.css +582 -0
  159. package/fonts/tofu/FormatTofu-Regular.ttf +0 -0
  160. package/fonts/tofu/format-tofu.woff2 +0 -0
  161. package/fonts/variable/mono/FormatMono-Italic.ttf +0 -0
  162. package/fonts/variable/mono/FormatMono-Italic.woff2 +0 -0
  163. package/fonts/variable/mono/FormatMono.ttf +0 -0
  164. package/fonts/variable/mono/FormatMono.woff2 +0 -0
  165. package/fonts/variable/sans/FormatSans-Italic.ttf +0 -0
  166. package/fonts/variable/sans/FormatSans-Italic.woff2 +0 -0
  167. package/fonts/variable/sans/FormatSans.ttf +0 -0
  168. package/fonts/variable/sans/FormatSans.woff2 +0 -0
  169. package/fonts/variable/serif/FormatSerif-Italic.ttf +0 -0
  170. package/fonts/variable/serif/FormatSerif-Italic.woff2 +0 -0
  171. package/fonts/variable/serif/FormatSerif.ttf +0 -0
  172. package/fonts/variable/serif/FormatSerif.woff2 +0 -0
  173. package/fonts/variable.css +190 -0
  174. package/manifest.json +91 -0
  175. package/package.json +65 -39
  176. package/index.d.ts +0 -2
  177. package/index.js +0 -3
@@ -0,0 +1,190 @@
1
+ /* GENERATED from fonts.json — do not edit. Run: pnpm --filter @format.dev/fonts build:fonts */
2
+ @font-face {
3
+ font-family: 'Format Sans';
4
+ font-style: normal;
5
+ font-weight: 100 900;
6
+ font-display: block;
7
+ src: url('./variable/sans/FormatSans.woff2') format('woff2');
8
+ }
9
+ @font-face {
10
+ font-family: 'Format Sans';
11
+ font-style: italic;
12
+ font-weight: 100 900;
13
+ font-display: block;
14
+ src: url('./variable/sans/FormatSans-Italic.woff2') format('woff2');
15
+ }
16
+ @font-face {
17
+ font-family: 'Format Serif';
18
+ font-style: normal;
19
+ font-weight: 400 800;
20
+ font-display: block;
21
+ src: url('./variable/serif/FormatSerif.woff2') format('woff2');
22
+ }
23
+ @font-face {
24
+ font-family: 'Format Serif';
25
+ font-style: italic;
26
+ font-weight: 400 800;
27
+ font-display: block;
28
+ src: url('./variable/serif/FormatSerif-Italic.woff2') format('woff2');
29
+ }
30
+ @font-face {
31
+ font-family: 'Format Mono';
32
+ font-style: normal;
33
+ font-weight: 100 800;
34
+ font-display: block;
35
+ src: url('./variable/mono/FormatMono.woff2') format('woff2');
36
+ }
37
+ @font-face {
38
+ font-family: 'Format Mono';
39
+ font-style: italic;
40
+ font-weight: 100 800;
41
+ font-display: block;
42
+ src: url('./variable/mono/FormatMono-Italic.woff2') format('woff2');
43
+ }
44
+ @font-face {
45
+ font-family: 'Format Emoji';
46
+ font-style: normal;
47
+ font-weight: 400;
48
+ font-display: block;
49
+ src: url('./emoji/format-emoji-0.woff2') format('woff2');
50
+ unicode-range: U+1f1e6-1f1ff;
51
+ }
52
+ @font-face {
53
+ font-family: 'Format Emoji';
54
+ font-style: normal;
55
+ font-weight: 400;
56
+ font-display: block;
57
+ src: url('./emoji/format-emoji-1.woff2') format('woff2');
58
+ unicode-range:
59
+ U+200d, U+2620, U+26a7, U+fe0f, U+1f308, U+1f38c, U+1f3c1, U+1f3f3-1f3f4, U+1f6a9, U+e0062-e0063, U+e0065, U+e0067,
60
+ U+e006c, U+e006e, U+e0073-e0074, U+e0077, U+e007f;
61
+ }
62
+ @font-face {
63
+ font-family: 'Format Emoji';
64
+ font-style: normal;
65
+ font-weight: 400;
66
+ font-display: block;
67
+ src: url('./emoji/format-emoji-2.woff2') format('woff2');
68
+ unicode-range:
69
+ U+23, U+2a, U+30-39, U+a9, U+ae, U+200d, U+203c, U+2049, U+20e3, U+2122, U+2139, U+2194-2199, U+21a9-21aa, U+23cf,
70
+ U+23e9-23ef, U+23f8-23fa, U+24c2, U+25aa-25ab, U+25b6, U+25c0, U+25fb-25fe, U+2611, U+2622-2623, U+2626, U+262a,
71
+ U+262e-262f, U+2638, U+2640, U+2642, U+2648-2653, U+2660, U+2663, U+2665-2666, U+2668, U+267b, U+267e-267f, U+2695,
72
+ U+269b-269c, U+26a0, U+26a7, U+26aa-26ab, U+26ce, U+26d4, U+2705, U+2714, U+2716, U+271d, U+2721, U+2733-2734,
73
+ U+2747, U+274c, U+274e, U+2753-2755, U+2757, U+2764, U+2795-2797, U+27a1, U+27b0, U+27bf, U+2934-2935, U+2b05-2b07,
74
+ U+2b1b-2b1c, U+2b55, U+3030, U+303d, U+3297, U+3299, U+fe0f, U+1f170-1f171, U+1f17e-1f17f, U+1f18e, U+1f191-1f19a,
75
+ U+1f201-1f202, U+1f21a, U+1f22f, U+1f232-1f23a, U+1f250-1f251, U+1f310, U+1f3a6, U+1f3b5-1f3b6, U+1f3bc, U+1f3e7,
76
+ U+1f441, U+1f499-1f49c, U+1f49f-1f4a0, U+1f4ac-1f4ad, U+1f4b1-1f4b2, U+1f4b9, U+1f4db, U+1f4f2-1f4f6, U+1f500-1f507,
77
+ U+1f515, U+1f518-1f524, U+1f52f-1f53d, U+1f549, U+1f54e, U+1f5a4, U+1f5e8, U+1f5ef, U+1f6ab, U+1f6ad-1f6b1, U+1f6b3,
78
+ U+1f6b7-1f6bc, U+1f6be, U+1f6c2-1f6c5, U+1f6d0-1f6d1, U+1f6d7, U+1f6dc, U+1f7e0-1f7eb, U+1f7f0, U+1f90d-1f90e,
79
+ U+1f9d1-1f9d2, U+1f9e1, U+1fa75-1fa77, U+1faaf;
80
+ }
81
+ @font-face {
82
+ font-family: 'Format Emoji';
83
+ font-style: normal;
84
+ font-weight: 400;
85
+ font-display: block;
86
+ src: url('./emoji/format-emoji-3.woff2') format('woff2');
87
+ unicode-range:
88
+ U+200d, U+231a-231b, U+2328, U+23f0-23f3, U+2602, U+260e, U+2692, U+2694, U+2696-2697, U+2699, U+26b0-26b1, U+26cf,
89
+ U+26d1, U+26d3, U+2702, U+2709, U+270f, U+2712, U+fe0f, U+1f302, U+1f321, U+1f392-1f393, U+1f3a9, U+1f3bd, U+1f3ee,
90
+ U+1f3f7, U+1f3fa, U+1f451-1f462, U+1f484, U+1f489-1f48a, U+1f48c-1f48e, U+1f4a1, U+1f4a3, U+1f4a5, U+1f4b0,
91
+ U+1f4b3-1f4b8, U+1f4bb-1f4da, U+1f4dc-1f4f1, U+1f4ff, U+1f508-1f514, U+1f516-1f517, U+1f526-1f529, U+1f52c-1f52e,
92
+ U+1f550-1f567, U+1f56f-1f570, U+1f576, U+1f587, U+1f58a-1f58d, U+1f5a5, U+1f5a8, U+1f5b1-1f5b2, U+1f5c2-1f5c4,
93
+ U+1f5d1-1f5d3, U+1f5dc-1f5de, U+1f5e1, U+1f5f3, U+1f6aa, U+1f6ac, U+1f6bd, U+1f6bf, U+1f6c1, U+1f6cb, U+1f6cd-1f6cf,
94
+ U+1f6d2, U+1f6e0-1f6e1, U+1f6f0, U+1f97b-1f97f, U+1f9af, U+1f9ba, U+1f9e2-1f9e6, U+1f9ea-1f9ec, U+1f9ee-1f9f4,
95
+ U+1f9f7-1f9ff, U+1fa71-1fa74, U+1fa79-1fa7b, U+1fa86, U+1fa8e-1fa8f, U+1fa91-1fa93, U+1fa96, U+1fa99-1faa0,
96
+ U+1faa2-1faa7, U+1faaa-1faae;
97
+ }
98
+ @font-face {
99
+ font-family: 'Format Emoji';
100
+ font-style: normal;
101
+ font-weight: 400;
102
+ font-display: block;
103
+ src: url('./emoji/format-emoji-4.woff2') format('woff2');
104
+ unicode-range:
105
+ U+265f, U+26bd-26be, U+26f3, U+26f8, U+fe0f, U+1f004, U+1f0cf, U+1f380-1f384, U+1f386-1f38b, U+1f38d-1f391,
106
+ U+1f396-1f397, U+1f399-1f39b, U+1f39e-1f39f, U+1f3a3-1f3a5, U+1f3a7-1f3a9, U+1f3ab-1f3b4, U+1f3b7-1f3bb,
107
+ U+1f3bd-1f3c0, U+1f3c5-1f3c6, U+1f3c8-1f3c9, U+1f3cf-1f3d3, U+1f3f8-1f3f9, U+1f47e, U+1f4e2, U+1f4f7-1f4fd, U+1f52b,
108
+ U+1f579, U+1f58c-1f58d, U+1f5bc, U+1f6f7, U+1f6f9, U+1f6fc, U+1f93f, U+1f941, U+1f945, U+1f947-1f94f, U+1f9e7-1f9e9,
109
+ U+1f9f5-1f9f6, U+1fa70-1fa71, U+1fa80-1fa81, U+1fa83-1fa85, U+1fa87-1fa8a, U+1fa94-1fa95, U+1fa97-1fa98, U+1faa1,
110
+ U+1faa9, U+1fadf;
111
+ }
112
+ @font-face {
113
+ font-family: 'Format Emoji';
114
+ font-style: normal;
115
+ font-weight: 400;
116
+ font-display: block;
117
+ src: url('./emoji/format-emoji-5.woff2') format('woff2');
118
+ unicode-range:
119
+ U+2693, U+26e9-26ea, U+26f1-26f2, U+26f4-26f5, U+26fa, U+26fd, U+2708, U+fe0f, U+1f301, U+1f303, U+1f306-1f307,
120
+ U+1f309, U+1f310, U+1f3a0-1f3a2, U+1f3aa, U+1f3cd-1f3ce, U+1f3d5, U+1f3d7-1f3db, U+1f3df-1f3e6, U+1f3e8-1f3ed,
121
+ U+1f3ef-1f3f0, U+1f488, U+1f492, U+1f4ba, U+1f54b-1f54d, U+1f5fa-1f5ff, U+1f680-1f6a2, U+1f6a4-1f6a8, U+1f6b2,
122
+ U+1f6d1, U+1f6d5-1f6d6, U+1f6dd-1f6df, U+1f6e2-1f6e5, U+1f6e9, U+1f6eb-1f6ec, U+1f6f3-1f6f6, U+1f6f8, U+1f6fa-1f6fb,
123
+ U+1f9bc-1f9bd, U+1f9ed, U+1f9f3, U+1fa7c;
124
+ }
125
+ @font-face {
126
+ font-family: 'Format Emoji';
127
+ font-style: normal;
128
+ font-weight: 400;
129
+ font-display: block;
130
+ src: url('./emoji/format-emoji-6.woff2') format('woff2');
131
+ unicode-range:
132
+ U+200d, U+2615, U+fe0f, U+1f32d-1f330, U+1f336, U+1f33d, U+1f344-1f37f, U+1f382, U+1f52a, U+1f7e9, U+1f7eb,
133
+ U+1f942-1f944, U+1f950-1f96f, U+1f99e, U+1f9aa, U+1f9c0-1f9cb, U+1fad0-1fadc;
134
+ }
135
+ @font-face {
136
+ font-family: 'Format Emoji';
137
+ font-style: normal;
138
+ font-weight: 400;
139
+ font-display: block;
140
+ src: url('./emoji/format-emoji-7.woff2') format('woff2');
141
+ unicode-range:
142
+ U+200d, U+2600-2601, U+2603-2604, U+2614, U+2618, U+26a1, U+26c4-26c5, U+26c8, U+26f0, U+2728, U+2744, U+2b1b,
143
+ U+2b50, U+fe0f, U+1f300, U+1f304-1f305, U+1f308, U+1f30a-1f30f, U+1f311-1f321, U+1f324-1f32c, U+1f331-1f335,
144
+ U+1f337-1f33c, U+1f33e-1f344, U+1f3d4, U+1f3d6, U+1f3dc-1f3de, U+1f3f5, U+1f400-1f43f, U+1f490, U+1f4a7, U+1f4ae,
145
+ U+1f525, U+1f54a, U+1f573, U+1f577-1f578, U+1f648-1f64a, U+1f6d8, U+1f940, U+1f980-1f9ae, U+1f9ba, U+1fa90, U+1faa8,
146
+ U+1fab0-1fabf, U+1facd-1facf, U+1fae7;
147
+ }
148
+ @font-face {
149
+ font-family: 'Format Emoji';
150
+ font-style: normal;
151
+ font-weight: 400;
152
+ font-display: block;
153
+ src: url('./emoji/format-emoji-8.woff2') format('woff2');
154
+ unicode-range:
155
+ U+200d, U+2640, U+2642, U+2695-2696, U+26f7, U+26f9, U+2708, U+2764, U+27a1, U+fe0f, U+1f33e, U+1f373, U+1f37c,
156
+ U+1f384-1f385, U+1f393, U+1f3a4, U+1f3a8, U+1f3c2-1f3c4, U+1f3c7, U+1f3ca-1f3cc, U+1f3eb, U+1f3ed, U+1f3fb-1f3ff,
157
+ U+1f430, U+1f466-1f469, U+1f46b-1f478, U+1f47c, U+1f481-1f483, U+1f486-1f487, U+1f48b, U+1f48f, U+1f491,
158
+ U+1f4bb-1f4bc, U+1f527, U+1f52c, U+1f574-1f575, U+1f57a, U+1f645-1f647, U+1f64b, U+1f64d-1f64e, U+1f680, U+1f692,
159
+ U+1f6a3, U+1f6b4-1f6b6, U+1f6c0, U+1f6cc, U+1f91d, U+1f926, U+1f930-1f931, U+1f934-1f93a, U+1f93c-1f93e, U+1f977,
160
+ U+1f9af-1f9b3, U+1f9b8-1f9b9, U+1f9bc-1f9bd, U+1f9cc-1f9cf, U+1f9d1-1f9df, U+1fa70, U+1fa82, U+1fac3-1fac5, U+1fac8,
161
+ U+1faef;
162
+ }
163
+ @font-face {
164
+ font-family: 'Format Emoji';
165
+ font-style: normal;
166
+ font-weight: 400;
167
+ font-display: block;
168
+ src: url('./emoji/format-emoji-9.woff2') format('woff2');
169
+ unicode-range:
170
+ U+200d, U+2194-2195, U+2603, U+261d, U+2620, U+2639-263a, U+2665, U+26a1, U+26c4, U+270a-270d, U+2728, U+2763-2764,
171
+ U+2b50, U+fe0f, U+1f31a-1f31f, U+1f32b, U+1f389-1f38a, U+1f3fb-1f3ff, U+1f440-1f450, U+1f463-1f465, U+1f479-1f47b,
172
+ U+1f47d-1f480, U+1f485, U+1f48b-1f48c, U+1f493-1f49f, U+1f4a2, U+1f4a4-1f4a6, U+1f4a8-1f4ab, U+1f4af, U+1f525,
173
+ U+1f573, U+1f590, U+1f595-1f596, U+1f5a4, U+1f5e3, U+1f600-1f644, U+1f648-1f64a, U+1f64c, U+1f64f, U+1f90c-1f925,
174
+ U+1f927-1f92f, U+1f932-1f933, U+1f970-1f976, U+1f978-1f97a, U+1f9a0, U+1f9b4-1f9b7, U+1f9bb, U+1f9be-1f9bf, U+1f9d0,
175
+ U+1f9e0-1f9e1, U+1fa75-1fa79, U+1fac0-1fac2, U+1fac6, U+1fae0-1fae6, U+1fae8-1faea, U+1faef-1faf8;
176
+ }
177
+ @font-face {
178
+ font-family: 'Format Math';
179
+ font-style: normal;
180
+ font-weight: 400;
181
+ font-display: block;
182
+ src: url('./math/format-math.woff2') format('woff2');
183
+ }
184
+ @font-face {
185
+ font-family: 'Format Tofu';
186
+ font-style: normal;
187
+ font-weight: 400;
188
+ font-display: block;
189
+ src: url('./tofu/format-tofu.woff2') format('woff2');
190
+ }
package/manifest.json ADDED
@@ -0,0 +1,91 @@
1
+ {
2
+ "$comment": "Single source of truth for @format.dev/fonts. scripts/build-fonts.py reads this to instance the variable masters into static cuts + variable woff2 and writes dist/. Only Sans has an opsz axis (text/display); Serif/Mono are weight-only. Emoji/Math/Tofu are already static. The serif master's name-table copyright record (ID 0) reads 'Copyright 2026 Format' without the domain; the built cuts inherit it, and set_names leaves copyright records untouched by design — on the next serif rebuild, re-stamp ID 0 to 'Format (format.dev)' with fontTools before instancing.",
3
+ "variable": {
4
+ "sans": {
5
+ "family": "Format Sans",
6
+ "displayFamily": "Format Sans Display",
7
+ "regular": "sources/sans/AdwaitaSans.ttf",
8
+ "italic": "sources/sans/AdwaitaSans-Italic.ttf",
9
+ "wght": [100, 900],
10
+ "weightStep": 100,
11
+ "opsz": {
12
+ "text": 14,
13
+ "display": 32
14
+ }
15
+ },
16
+ "serif": {
17
+ "family": "Format Serif",
18
+ "regular": "sources/serif/FMTCrimsonPro[wght].ttf",
19
+ "italic": "sources/serif/FMTCrimsonPro-Italic[wght].ttf",
20
+ "wght": [400, 800],
21
+ "weightStep": 100,
22
+ "opsz": null
23
+ },
24
+ "mono": {
25
+ "family": "Format Mono",
26
+ "regular": "sources/mono/JetBrainsMono.ttf",
27
+ "italic": "sources/mono/JetBrainsMono-Italic.ttf",
28
+ "wght": [100, 800],
29
+ "weightStep": 100,
30
+ "opsz": null
31
+ }
32
+ },
33
+ "static": {
34
+ "emoji": {
35
+ "family": "Format Emoji",
36
+ "subsets": [
37
+ {
38
+ "file": "emoji/format-emoji-0.woff2",
39
+ "unicodeRange": "U+1f1e6-1f1ff"
40
+ },
41
+ {
42
+ "file": "emoji/format-emoji-1.woff2",
43
+ "unicodeRange": "U+200d, U+2620, U+26a7, U+fe0f, U+1f308, U+1f38c, U+1f3c1, U+1f3f3-1f3f4, U+1f6a9, U+e0062-e0063, U+e0065, U+e0067, U+e006c, U+e006e, U+e0073-e0074, U+e0077, U+e007f"
44
+ },
45
+ {
46
+ "file": "emoji/format-emoji-2.woff2",
47
+ "unicodeRange": "U+23, U+2a, U+30-39, U+a9, U+ae, U+200d, U+203c, U+2049, U+20e3, U+2122, U+2139, U+2194-2199, U+21a9-21aa, U+23cf, U+23e9-23ef, U+23f8-23fa, U+24c2, U+25aa-25ab, U+25b6, U+25c0, U+25fb-25fe, U+2611, U+2622-2623, U+2626, U+262a, U+262e-262f, U+2638, U+2640, U+2642, U+2648-2653, U+2660, U+2663, U+2665-2666, U+2668, U+267b, U+267e-267f, U+2695, U+269b-269c, U+26a0, U+26a7, U+26aa-26ab, U+26ce, U+26d4, U+2705, U+2714, U+2716, U+271d, U+2721, U+2733-2734, U+2747, U+274c, U+274e, U+2753-2755, U+2757, U+2764, U+2795-2797, U+27a1, U+27b0, U+27bf, U+2934-2935, U+2b05-2b07, U+2b1b-2b1c, U+2b55, U+3030, U+303d, U+3297, U+3299, U+fe0f, U+1f170-1f171, U+1f17e-1f17f, U+1f18e, U+1f191-1f19a, U+1f201-1f202, U+1f21a, U+1f22f, U+1f232-1f23a, U+1f250-1f251, U+1f310, U+1f3a6, U+1f3b5-1f3b6, U+1f3bc, U+1f3e7, U+1f441, U+1f499-1f49c, U+1f49f-1f4a0, U+1f4ac-1f4ad, U+1f4b1-1f4b2, U+1f4b9, U+1f4db, U+1f4f2-1f4f6, U+1f500-1f507, U+1f515, U+1f518-1f524, U+1f52f-1f53d, U+1f549, U+1f54e, U+1f5a4, U+1f5e8, U+1f5ef, U+1f6ab, U+1f6ad-1f6b1, U+1f6b3, U+1f6b7-1f6bc, U+1f6be, U+1f6c2-1f6c5, U+1f6d0-1f6d1, U+1f6d7, U+1f6dc, U+1f7e0-1f7eb, U+1f7f0, U+1f90d-1f90e, U+1f9d1-1f9d2, U+1f9e1, U+1fa75-1fa77, U+1faaf"
48
+ },
49
+ {
50
+ "file": "emoji/format-emoji-3.woff2",
51
+ "unicodeRange": "U+200d, U+231a-231b, U+2328, U+23f0-23f3, U+2602, U+260e, U+2692, U+2694, U+2696-2697, U+2699, U+26b0-26b1, U+26cf, U+26d1, U+26d3, U+2702, U+2709, U+270f, U+2712, U+fe0f, U+1f302, U+1f321, U+1f392-1f393, U+1f3a9, U+1f3bd, U+1f3ee, U+1f3f7, U+1f3fa, U+1f451-1f462, U+1f484, U+1f489-1f48a, U+1f48c-1f48e, U+1f4a1, U+1f4a3, U+1f4a5, U+1f4b0, U+1f4b3-1f4b8, U+1f4bb-1f4da, U+1f4dc-1f4f1, U+1f4ff, U+1f508-1f514, U+1f516-1f517, U+1f526-1f529, U+1f52c-1f52e, U+1f550-1f567, U+1f56f-1f570, U+1f576, U+1f587, U+1f58a-1f58d, U+1f5a5, U+1f5a8, U+1f5b1-1f5b2, U+1f5c2-1f5c4, U+1f5d1-1f5d3, U+1f5dc-1f5de, U+1f5e1, U+1f5f3, U+1f6aa, U+1f6ac, U+1f6bd, U+1f6bf, U+1f6c1, U+1f6cb, U+1f6cd-1f6cf, U+1f6d2, U+1f6e0-1f6e1, U+1f6f0, U+1f97b-1f97f, U+1f9af, U+1f9ba, U+1f9e2-1f9e6, U+1f9ea-1f9ec, U+1f9ee-1f9f4, U+1f9f7-1f9ff, U+1fa71-1fa74, U+1fa79-1fa7b, U+1fa86, U+1fa8e-1fa8f, U+1fa91-1fa93, U+1fa96, U+1fa99-1faa0, U+1faa2-1faa7, U+1faaa-1faae"
52
+ },
53
+ {
54
+ "file": "emoji/format-emoji-4.woff2",
55
+ "unicodeRange": "U+265f, U+26bd-26be, U+26f3, U+26f8, U+fe0f, U+1f004, U+1f0cf, U+1f380-1f384, U+1f386-1f38b, U+1f38d-1f391, U+1f396-1f397, U+1f399-1f39b, U+1f39e-1f39f, U+1f3a3-1f3a5, U+1f3a7-1f3a9, U+1f3ab-1f3b4, U+1f3b7-1f3bb, U+1f3bd-1f3c0, U+1f3c5-1f3c6, U+1f3c8-1f3c9, U+1f3cf-1f3d3, U+1f3f8-1f3f9, U+1f47e, U+1f4e2, U+1f4f7-1f4fd, U+1f52b, U+1f579, U+1f58c-1f58d, U+1f5bc, U+1f6f7, U+1f6f9, U+1f6fc, U+1f93f, U+1f941, U+1f945, U+1f947-1f94f, U+1f9e7-1f9e9, U+1f9f5-1f9f6, U+1fa70-1fa71, U+1fa80-1fa81, U+1fa83-1fa85, U+1fa87-1fa8a, U+1fa94-1fa95, U+1fa97-1fa98, U+1faa1, U+1faa9, U+1fadf"
56
+ },
57
+ {
58
+ "file": "emoji/format-emoji-5.woff2",
59
+ "unicodeRange": "U+2693, U+26e9-26ea, U+26f1-26f2, U+26f4-26f5, U+26fa, U+26fd, U+2708, U+fe0f, U+1f301, U+1f303, U+1f306-1f307, U+1f309, U+1f310, U+1f3a0-1f3a2, U+1f3aa, U+1f3cd-1f3ce, U+1f3d5, U+1f3d7-1f3db, U+1f3df-1f3e6, U+1f3e8-1f3ed, U+1f3ef-1f3f0, U+1f488, U+1f492, U+1f4ba, U+1f54b-1f54d, U+1f5fa-1f5ff, U+1f680-1f6a2, U+1f6a4-1f6a8, U+1f6b2, U+1f6d1, U+1f6d5-1f6d6, U+1f6dd-1f6df, U+1f6e2-1f6e5, U+1f6e9, U+1f6eb-1f6ec, U+1f6f3-1f6f6, U+1f6f8, U+1f6fa-1f6fb, U+1f9bc-1f9bd, U+1f9ed, U+1f9f3, U+1fa7c"
60
+ },
61
+ {
62
+ "file": "emoji/format-emoji-6.woff2",
63
+ "unicodeRange": "U+200d, U+2615, U+fe0f, U+1f32d-1f330, U+1f336, U+1f33d, U+1f344-1f37f, U+1f382, U+1f52a, U+1f7e9, U+1f7eb, U+1f942-1f944, U+1f950-1f96f, U+1f99e, U+1f9aa, U+1f9c0-1f9cb, U+1fad0-1fadc"
64
+ },
65
+ {
66
+ "file": "emoji/format-emoji-7.woff2",
67
+ "unicodeRange": "U+200d, U+2600-2601, U+2603-2604, U+2614, U+2618, U+26a1, U+26c4-26c5, U+26c8, U+26f0, U+2728, U+2744, U+2b1b, U+2b50, U+fe0f, U+1f300, U+1f304-1f305, U+1f308, U+1f30a-1f30f, U+1f311-1f321, U+1f324-1f32c, U+1f331-1f335, U+1f337-1f33c, U+1f33e-1f344, U+1f3d4, U+1f3d6, U+1f3dc-1f3de, U+1f3f5, U+1f400-1f43f, U+1f490, U+1f4a7, U+1f4ae, U+1f525, U+1f54a, U+1f573, U+1f577-1f578, U+1f648-1f64a, U+1f6d8, U+1f940, U+1f980-1f9ae, U+1f9ba, U+1fa90, U+1faa8, U+1fab0-1fabf, U+1facd-1facf, U+1fae7"
68
+ },
69
+ {
70
+ "file": "emoji/format-emoji-8.woff2",
71
+ "unicodeRange": "U+200d, U+2640, U+2642, U+2695-2696, U+26f7, U+26f9, U+2708, U+2764, U+27a1, U+fe0f, U+1f33e, U+1f373, U+1f37c, U+1f384-1f385, U+1f393, U+1f3a4, U+1f3a8, U+1f3c2-1f3c4, U+1f3c7, U+1f3ca-1f3cc, U+1f3eb, U+1f3ed, U+1f3fb-1f3ff, U+1f430, U+1f466-1f469, U+1f46b-1f478, U+1f47c, U+1f481-1f483, U+1f486-1f487, U+1f48b, U+1f48f, U+1f491, U+1f4bb-1f4bc, U+1f527, U+1f52c, U+1f574-1f575, U+1f57a, U+1f645-1f647, U+1f64b, U+1f64d-1f64e, U+1f680, U+1f692, U+1f6a3, U+1f6b4-1f6b6, U+1f6c0, U+1f6cc, U+1f91d, U+1f926, U+1f930-1f931, U+1f934-1f93a, U+1f93c-1f93e, U+1f977, U+1f9af-1f9b3, U+1f9b8-1f9b9, U+1f9bc-1f9bd, U+1f9cc-1f9cf, U+1f9d1-1f9df, U+1fa70, U+1fa82, U+1fac3-1fac5, U+1fac8, U+1faef"
72
+ },
73
+ {
74
+ "file": "emoji/format-emoji-9.woff2",
75
+ "unicodeRange": "U+200d, U+2194-2195, U+2603, U+261d, U+2620, U+2639-263a, U+2665, U+26a1, U+26c4, U+270a-270d, U+2728, U+2763-2764, U+2b50, U+fe0f, U+1f31a-1f31f, U+1f32b, U+1f389-1f38a, U+1f3fb-1f3ff, U+1f440-1f450, U+1f463-1f465, U+1f479-1f47b, U+1f47d-1f480, U+1f485, U+1f48b-1f48c, U+1f493-1f49f, U+1f4a2, U+1f4a4-1f4a6, U+1f4a8-1f4ab, U+1f4af, U+1f525, U+1f573, U+1f590, U+1f595-1f596, U+1f5a4, U+1f5e3, U+1f600-1f644, U+1f648-1f64a, U+1f64c, U+1f64f, U+1f90c-1f925, U+1f927-1f92f, U+1f932-1f933, U+1f970-1f976, U+1f978-1f97a, U+1f9a0, U+1f9b4-1f9b7, U+1f9bb, U+1f9be-1f9bf, U+1f9d0, U+1f9e0-1f9e1, U+1fa75-1fa79, U+1fac0-1fac2, U+1fac6, U+1fae0-1fae6, U+1fae8-1faea, U+1faef-1faf8"
76
+ }
77
+ ],
78
+ "ttf": "emoji/Noto-COLRv1.ttf"
79
+ },
80
+ "math": {
81
+ "family": "Format Math",
82
+ "file": "math/format-math.woff2",
83
+ "ttf": "math/STIXTwoMath-Regular.ttf"
84
+ },
85
+ "tofu": {
86
+ "family": "Format Tofu",
87
+ "file": "tofu/format-tofu.woff2",
88
+ "ttf": "tofu/FormatTofu-Regular.ttf"
89
+ }
90
+ }
91
+ }
package/package.json CHANGED
@@ -1,40 +1,66 @@
1
1
  {
2
- "name": "@format.dev/fonts",
3
- "version": "0.0.0",
4
- "description": "A bootstrap placeholder reserving this package name. Format is not released yet.",
5
- "license": "(MIT AND OFL-1.1)",
6
- "repository": {
7
- "type": "git",
8
- "url": "git+https://github.com/format-hq/format-js.git",
9
- "directory": "packages/fonts"
10
- },
11
- "homepage": "https://format.dev",
12
- "files": [
13
- "LICENSE",
14
- "README.md",
15
- "index.d.ts",
16
- "index.js",
17
- "licenses/OFL-emoji.txt",
18
- "licenses/OFL-math.txt",
19
- "licenses/OFL-mono.txt",
20
- "licenses/OFL-sans.txt",
21
- "licenses/OFL-serif.txt"
22
- ],
23
- "type": "module",
24
- "main": "./index.js",
25
- "types": "./index.d.ts",
26
- "exports": {
27
- ".": {
28
- "types": "./index.d.ts",
29
- "default": "./index.js"
30
- }
31
- },
32
- "engines": {
33
- "node": ">=18"
34
- },
35
- "publishConfig": {
36
- "access": "public",
37
- "tag": "bootstrap",
38
- "registry": "https://registry.npmjs.org/"
39
- }
40
- }
2
+ "name": "@format.dev/fonts",
3
+ "version": "0.1.0",
4
+ "license": "(MIT AND OFL-1.1)",
5
+ "description": "Format's built-in font families (Sans/Serif/Mono/Emoji/Math/Tofu) as a single source of truth: static weight palettes + optical cuts + variable masters, with an @font-face CSS generator. Consumed identically by the previews and the PDF renderer so they never diverge.",
6
+ "author": "the format.dev developers",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/format-hq/format-js.git",
10
+ "directory": "packages/fonts"
11
+ },
12
+ "type": "module",
13
+ "main": "./dist/index.cjs",
14
+ "module": "./dist/index.mjs",
15
+ "types": "./dist/index.d.mts",
16
+ "exports": {
17
+ ".": {
18
+ "types": {
19
+ "import": "./dist/index.d.mts",
20
+ "require": "./dist/index.d.cts"
21
+ },
22
+ "import": "./dist/index.mjs",
23
+ "require": "./dist/index.cjs"
24
+ },
25
+ "./mode": {
26
+ "types": {
27
+ "import": "./dist/mode.d.mts",
28
+ "require": "./dist/mode.d.cts"
29
+ },
30
+ "import": "./dist/mode.mjs",
31
+ "require": "./dist/mode.cjs"
32
+ },
33
+ "./manifest.json": "./manifest.json",
34
+ "./static.css": "./fonts/static.css",
35
+ "./variable.css": "./fonts/variable.css"
36
+ },
37
+ "files": [
38
+ "dist",
39
+ "fonts",
40
+ "manifest.json",
41
+ "LICENSE",
42
+ "licenses"
43
+ ],
44
+ "publishConfig": {
45
+ "access": "public"
46
+ },
47
+ "sideEffects": false,
48
+ "devDependencies": {
49
+ "@types/node": "^24.2.1",
50
+ "rimraf": "^6.0.1",
51
+ "tsdown": "0.17.0-beta.6",
52
+ "typescript": "^5",
53
+ "vitest": "^4.1.8"
54
+ },
55
+ "engines": {
56
+ "node": ">=18"
57
+ },
58
+ "scripts": {
59
+ "clean": "rimraf dist",
60
+ "build": "tsdown",
61
+ "dev": "tsdown --watch",
62
+ "typecheck": "tsc -p tsconfig.json --noEmit",
63
+ "build:fonts": "python3 scripts/build-fonts.py && node scripts/emit-css.mjs",
64
+ "check:fonts": "python3 scripts/build-fonts.py && node scripts/emit-css.mjs && git diff --exit-code -- fonts"
65
+ }
66
+ }
package/index.d.ts DELETED
@@ -1,2 +0,0 @@
1
- // This is a bootstrap placeholder. Format is not released yet.
2
- export {}
package/index.js DELETED
@@ -1,3 +0,0 @@
1
- // This is a bootstrap placeholder. Format is not released yet, and this version
2
- // carries no implementation. See README.md.
3
- export {}