@mthanh/vespercli 2.2.0 → 2.3.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 (157) hide show
  1. package/README.md +6 -3
  2. package/assets/CATALOG.md +9 -2
  3. package/assets/claude/.claude-plugin/marketplace.json +9 -9
  4. package/assets/claude/.claude-plugin/plugin.json +1 -1
  5. package/assets/claude/agents/code-planner.md +1 -1
  6. package/assets/claude/agents/code-reviewer.md +1 -1
  7. package/assets/claude/agents/code-tester.md +1 -1
  8. package/assets/claude/agents/copywriter.md +1 -1
  9. package/assets/claude/agents/feature-wrap-document.md +1 -1
  10. package/assets/claude/agents/janitor.md +1 -1
  11. package/assets/claude/agents/modernization.md +1 -1
  12. package/assets/claude/agents/principal-software-engineer.md +1 -1
  13. package/assets/claude/agents/refine-issue.md +1 -1
  14. package/assets/claude/agents/se-system-architecture-reviewer.md +1 -1
  15. package/assets/claude/agents/se-technical-writer.md +1 -1
  16. package/assets/claude/agents/skill-creator.md +1 -1
  17. package/assets/claude/agents/task-researcher.md +1 -1
  18. package/assets/claude/agents/technical-product-manager.md +1 -1
  19. package/assets/claude/agents/vision-analyst.md +1 -1
  20. package/assets/claude/agents/vitest.md +1 -1
  21. package/assets/claude/agents/workspace-learner.md +2 -2
  22. package/assets/claude/packs/backend/.claude-plugin/plugin.json +1 -1
  23. package/assets/claude/packs/backend/agents/firebase-developer.md +1 -1
  24. package/assets/claude/packs/backend/agents/nodejs-express-developer.md +1 -1
  25. package/assets/claude/packs/docs/.claude-plugin/plugin.json +1 -1
  26. package/assets/claude/packs/frontend/.claude-plugin/plugin.json +1 -1
  27. package/assets/claude/packs/frontend/agents/expert-nextjs-developer.md +1 -1
  28. package/assets/claude/packs/frontend/agents/expert-react-frontend-engineer.md +1 -1
  29. package/assets/claude/packs/frontend/agents/jest-react-component-analyzer.md +1 -1
  30. package/assets/claude/packs/frontend/agents/jest-react-scenario-scanner.md +1 -1
  31. package/assets/claude/packs/frontend/agents/jest-react-test-generator.md +1 -1
  32. package/assets/claude/packs/frontend/agents/jest-react-test-planner.md +1 -1
  33. package/assets/claude/packs/frontend/skills/design-taste-frontend/LICENSE +21 -0
  34. package/assets/claude/packs/frontend/skills/design-taste-frontend/SKILL.md +529 -0
  35. package/assets/claude/packs/frontend/skills/design-taste-frontend/UPSTREAM.json +7 -0
  36. package/assets/claude/packs/frontend/skills/design-taste-frontend/assets/app.css +216 -0
  37. package/assets/claude/packs/frontend/skills/design-taste-frontend/assets/base.css +105 -0
  38. package/assets/claude/packs/frontend/skills/design-taste-frontend/assets/base.js +37 -0
  39. package/assets/claude/packs/frontend/skills/design-taste-frontend/assets/charts.js +617 -0
  40. package/assets/claude/packs/frontend/skills/design-taste-frontend/assets/scenes/stage.css +28 -0
  41. package/assets/claude/packs/frontend/skills/design-taste-frontend/assets/scenes/stage.js +133 -0
  42. package/assets/claude/packs/frontend/skills/design-taste-frontend/evals/evals.json +76 -0
  43. package/assets/claude/packs/frontend/skills/design-taste-frontend/library/app.json +1327 -0
  44. package/assets/claude/packs/frontend/skills/design-taste-frontend/library/directions.json +1078 -0
  45. package/assets/claude/packs/frontend/skills/design-taste-frontend/library/heroes.json +1086 -0
  46. package/assets/claude/packs/frontend/skills/design-taste-frontend/library/motions.json +92 -0
  47. package/assets/claude/packs/frontend/skills/design-taste-frontend/library/palettes.json +1485 -0
  48. package/assets/claude/packs/frontend/skills/design-taste-frontend/library/photos.json +7240 -0
  49. package/assets/claude/packs/frontend/skills/design-taste-frontend/library/sections.json +4429 -0
  50. package/assets/claude/packs/frontend/skills/design-taste-frontend/library/sites.json +8350 -0
  51. package/assets/claude/packs/frontend/skills/design-taste-frontend/library/type.json +2024 -0
  52. package/assets/claude/packs/frontend/skills/design-taste-frontend/references/app-screens.md +1199 -0
  53. package/assets/claude/packs/frontend/skills/design-taste-frontend/references/colour.md +141 -0
  54. package/assets/claude/packs/frontend/skills/design-taste-frontend/references/copy.md +177 -0
  55. package/assets/claude/packs/frontend/skills/design-taste-frontend/references/critique.md +182 -0
  56. package/assets/claude/packs/frontend/skills/design-taste-frontend/references/imagery.md +791 -0
  57. package/assets/claude/packs/frontend/skills/design-taste-frontend/references/layout.md +292 -0
  58. package/assets/claude/packs/frontend/skills/design-taste-frontend/references/motion.md +980 -0
  59. package/assets/claude/packs/frontend/skills/design-taste-frontend/references/research.md +356 -0
  60. package/assets/claude/packs/frontend/skills/design-taste-frontend/references/scenes.md +174 -0
  61. package/assets/claude/packs/frontend/skills/design-taste-frontend/references/tells.md +115 -0
  62. package/assets/claude/packs/frontend/skills/design-taste-frontend/references/type.md +170 -0
  63. package/assets/claude/packs/frontend/skills/design-taste-frontend/scripts/assets.mjs +865 -0
  64. package/assets/claude/packs/frontend/skills/design-taste-frontend/scripts/draw.mjs +584 -0
  65. package/assets/claude/packs/frontend/skills/design-taste-frontend/scripts/inspect.mjs +303 -0
  66. package/assets/claude/packs/frontend/skills/design-taste-frontend/scripts/lib/app-draw.mjs +203 -0
  67. package/assets/claude/packs/frontend/skills/design-taste-frontend/scripts/lib/cdp.mjs +248 -0
  68. package/assets/claude/packs/frontend/skills/design-taste-frontend/scripts/lib/probe.mjs +909 -0
  69. package/assets/claude/packs/frontend/skills/design-taste-frontend/scripts/lib/rules.mjs +243 -0
  70. package/assets/claude/packs/frontend/skills/design-taste-frontend/scripts/lint.mjs +119 -0
  71. package/assets/claude/packs/frontend/skills/design-taste-frontend/scripts/scenes.mjs +124 -0
  72. package/assets/claude/packs/graphify/.claude-plugin/plugin.json +1 -1
  73. package/assets/claude/packs/integrations/.claude-plugin/plugin.json +1 -1
  74. package/assets/claude/packs/playwright/.claude-plugin/plugin.json +1 -1
  75. package/assets/claude/packs/playwright/agents/playwright-component-analyzer.md +1 -1
  76. package/assets/claude/packs/playwright/agents/playwright-scenario-scanner.md +1 -1
  77. package/assets/claude/packs/playwright/agents/playwright-test-generator.md +1 -1
  78. package/assets/claude/packs/playwright/agents/playwright-test-planner.md +1 -1
  79. package/assets/claude/packs/playwright/agents/playwright-tester.md +1 -1
  80. package/assets/claude/packs/polyglot/.claude-plugin/plugin.json +1 -1
  81. package/assets/claude/packs/styles/.claude-plugin/plugin.json +1 -1
  82. package/assets/copilot/agents/code-planner.agent.md +1 -1
  83. package/assets/copilot/agents/code-reviewer.agent.md +1 -1
  84. package/assets/copilot/agents/code-tester.agent.md +1 -1
  85. package/assets/copilot/agents/copywriter.agent.md +1 -1
  86. package/assets/copilot/agents/feature-wrap-document.agent.md +1 -1
  87. package/assets/copilot/agents/janitor.agent.md +1 -1
  88. package/assets/copilot/agents/modernization.agent.md +1 -1
  89. package/assets/copilot/agents/principal-software-engineer.agent.md +1 -1
  90. package/assets/copilot/agents/refine-issue.agent.md +1 -1
  91. package/assets/copilot/agents/se-system-architecture-reviewer.agent.md +1 -1
  92. package/assets/copilot/agents/se-technical-writer.agent.md +1 -1
  93. package/assets/copilot/agents/skill-creator.agent.md +1 -1
  94. package/assets/copilot/agents/task-researcher.agent.md +1 -1
  95. package/assets/copilot/agents/technical-product-manager.agent.md +1 -1
  96. package/assets/copilot/agents/vision-analyst.agent.md +1 -1
  97. package/assets/copilot/agents/vitest.agent.md +1 -1
  98. package/assets/copilot/agents/workspace-learner.agent.md +2 -2
  99. package/assets/copilot/packs/backend/agents/firebase-developer.agent.md +1 -1
  100. package/assets/copilot/packs/backend/agents/nodejs-express-developer.agent.md +1 -1
  101. package/assets/copilot/packs/frontend/agents/expert-nextjs-developer.agent.md +1 -1
  102. package/assets/copilot/packs/frontend/agents/expert-react-frontend-engineer.agent.md +1 -1
  103. package/assets/copilot/packs/frontend/agents/jest-react-component-analyzer.agent.md +1 -1
  104. package/assets/copilot/packs/frontend/agents/jest-react-scenario-scanner.agent.md +1 -1
  105. package/assets/copilot/packs/frontend/agents/jest-react-test-generator.agent.md +1 -1
  106. package/assets/copilot/packs/frontend/agents/jest-react-test-planner.agent.md +1 -1
  107. package/assets/copilot/packs/frontend/skills/design-taste-frontend/LICENSE +21 -0
  108. package/assets/copilot/packs/frontend/skills/design-taste-frontend/SKILL.md +529 -0
  109. package/assets/copilot/packs/frontend/skills/design-taste-frontend/UPSTREAM.json +7 -0
  110. package/assets/copilot/packs/frontend/skills/design-taste-frontend/assets/app.css +216 -0
  111. package/assets/copilot/packs/frontend/skills/design-taste-frontend/assets/base.css +105 -0
  112. package/assets/copilot/packs/frontend/skills/design-taste-frontend/assets/base.js +37 -0
  113. package/assets/copilot/packs/frontend/skills/design-taste-frontend/assets/charts.js +617 -0
  114. package/assets/copilot/packs/frontend/skills/design-taste-frontend/assets/scenes/stage.css +28 -0
  115. package/assets/copilot/packs/frontend/skills/design-taste-frontend/assets/scenes/stage.js +133 -0
  116. package/assets/copilot/packs/frontend/skills/design-taste-frontend/evals/evals.json +76 -0
  117. package/assets/copilot/packs/frontend/skills/design-taste-frontend/library/app.json +1327 -0
  118. package/assets/copilot/packs/frontend/skills/design-taste-frontend/library/directions.json +1078 -0
  119. package/assets/copilot/packs/frontend/skills/design-taste-frontend/library/heroes.json +1086 -0
  120. package/assets/copilot/packs/frontend/skills/design-taste-frontend/library/motions.json +92 -0
  121. package/assets/copilot/packs/frontend/skills/design-taste-frontend/library/palettes.json +1485 -0
  122. package/assets/copilot/packs/frontend/skills/design-taste-frontend/library/photos.json +7240 -0
  123. package/assets/copilot/packs/frontend/skills/design-taste-frontend/library/sections.json +4429 -0
  124. package/assets/copilot/packs/frontend/skills/design-taste-frontend/library/sites.json +8350 -0
  125. package/assets/copilot/packs/frontend/skills/design-taste-frontend/library/type.json +2024 -0
  126. package/assets/copilot/packs/frontend/skills/design-taste-frontend/references/app-screens.md +1199 -0
  127. package/assets/copilot/packs/frontend/skills/design-taste-frontend/references/colour.md +141 -0
  128. package/assets/copilot/packs/frontend/skills/design-taste-frontend/references/copy.md +177 -0
  129. package/assets/copilot/packs/frontend/skills/design-taste-frontend/references/critique.md +182 -0
  130. package/assets/copilot/packs/frontend/skills/design-taste-frontend/references/imagery.md +791 -0
  131. package/assets/copilot/packs/frontend/skills/design-taste-frontend/references/layout.md +292 -0
  132. package/assets/copilot/packs/frontend/skills/design-taste-frontend/references/motion.md +980 -0
  133. package/assets/copilot/packs/frontend/skills/design-taste-frontend/references/research.md +356 -0
  134. package/assets/copilot/packs/frontend/skills/design-taste-frontend/references/scenes.md +174 -0
  135. package/assets/copilot/packs/frontend/skills/design-taste-frontend/references/tells.md +115 -0
  136. package/assets/copilot/packs/frontend/skills/design-taste-frontend/references/type.md +170 -0
  137. package/assets/copilot/packs/frontend/skills/design-taste-frontend/scripts/assets.mjs +865 -0
  138. package/assets/copilot/packs/frontend/skills/design-taste-frontend/scripts/draw.mjs +584 -0
  139. package/assets/copilot/packs/frontend/skills/design-taste-frontend/scripts/inspect.mjs +303 -0
  140. package/assets/copilot/packs/frontend/skills/design-taste-frontend/scripts/lib/app-draw.mjs +203 -0
  141. package/assets/copilot/packs/frontend/skills/design-taste-frontend/scripts/lib/cdp.mjs +248 -0
  142. package/assets/copilot/packs/frontend/skills/design-taste-frontend/scripts/lib/probe.mjs +909 -0
  143. package/assets/copilot/packs/frontend/skills/design-taste-frontend/scripts/lib/rules.mjs +243 -0
  144. package/assets/copilot/packs/frontend/skills/design-taste-frontend/scripts/lint.mjs +119 -0
  145. package/assets/copilot/packs/frontend/skills/design-taste-frontend/scripts/scenes.mjs +124 -0
  146. package/assets/copilot/packs/playwright/agents/playwright-component-analyzer.agent.md +1 -1
  147. package/assets/copilot/packs/playwright/agents/playwright-scenario-scanner.agent.md +1 -1
  148. package/assets/copilot/packs/playwright/agents/playwright-test-generator.agent.md +1 -1
  149. package/assets/copilot/packs/playwright/agents/playwright-test-planner.agent.md +1 -1
  150. package/assets/copilot/packs/playwright/agents/playwright-tester.agent.md +1 -1
  151. package/assets/manifest.json +2 -0
  152. package/dist/cli.min.js +102 -102
  153. package/package.json +1 -1
  154. package/scripts/__snapshots__/generate-claude-assets.test.js.snap +1 -1
  155. package/scripts/generate-claude-assets.strict.test.js +1 -1
  156. package/scripts/generate-claude-assets.test.js +6 -6
  157. package/scripts/packs-layout.test.js +2 -1
@@ -0,0 +1,2024 @@
1
+ [
2
+ {
3
+ "id": "switzer-semibold",
4
+ "name": "Switzer",
5
+ "class": "grotesk-tight",
6
+ "display": {
7
+ "family": "Switzer",
8
+ "source": "fontshare",
9
+ "slug": "switzer",
10
+ "weights": [
11
+ 600
12
+ ],
13
+ "italic": false,
14
+ "settings": "weight 600 · tracking -0.04em · leading 0.95 · sentence case; charcoal rather than pure black",
15
+ "css": "<link rel=\"preconnect\" href=\"https://api.fontshare.com\">\n<link rel=\"preconnect\" href=\"https://cdn.fontshare.com\" crossorigin>\n<link href=\"https://api.fontshare.com/v2/css?f[]=switzer@400,500,600&display=swap\" rel=\"stylesheet\">"
16
+ },
17
+ "text": {
18
+ "family": "Switzer",
19
+ "source": "fontshare",
20
+ "slug": "switzer",
21
+ "weights": [
22
+ 400,
23
+ 500
24
+ ],
25
+ "italic": false,
26
+ "settings": "400 for body, 500 for emphasis · leading 1.5 · tracking -0.005em",
27
+ "css": "<link rel=\"preconnect\" href=\"https://api.fontshare.com\">\n<link rel=\"preconnect\" href=\"https://cdn.fontshare.com\" crossorigin>\n<link href=\"https://api.fontshare.com/v2/css?f[]=switzer@400,500,600&display=swap\" rel=\"stylesheet\">"
28
+ },
29
+ "standsInFor": [
30
+ "Suisse Intl",
31
+ "Neue Haas Grotesk"
32
+ ],
33
+ "note": "One neo-grotesk doing everything: semibold headings pulled tight, small regular text, no capitals and no second voice. Suits software, hardware and studio pages that want to look exact and unshowy.",
34
+ "seenIn": [
35
+ "aww-noho",
36
+ "opl-vessa",
37
+ "aww-aspen-search",
38
+ "opl-rows"
39
+ ],
40
+ "links": [
41
+ "https://api.fontshare.com/v2/css?f[]=switzer@400,500,600&display=swap"
42
+ ],
43
+ "scale": {
44
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
45
+ "step-body": "clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem)",
46
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
47
+ "step-head": "clamp(2rem, 1.3rem + 3.2vw, 4rem)"
48
+ }
49
+ },
50
+ {
51
+ "id": "general-sans-bold",
52
+ "name": "General Sans",
53
+ "class": "grotesk-tight",
54
+ "display": {
55
+ "family": "General Sans",
56
+ "source": "fontshare",
57
+ "slug": "general-sans",
58
+ "weights": [
59
+ 700
60
+ ],
61
+ "italic": false,
62
+ "settings": "weight 700 · tracking -0.02em · leading 0.9 · sentence case; sizes jump straight from 16px text to 10vw and larger",
63
+ "css": "<link rel=\"preconnect\" href=\"https://api.fontshare.com\">\n<link rel=\"preconnect\" href=\"https://cdn.fontshare.com\" crossorigin>\n<link href=\"https://api.fontshare.com/v2/css?f[]=general-sans@400,500,700&display=swap\" rel=\"stylesheet\">"
64
+ },
65
+ "text": {
66
+ "family": "General Sans",
67
+ "source": "fontshare",
68
+ "slug": "general-sans",
69
+ "weights": [
70
+ 400,
71
+ 500
72
+ ],
73
+ "italic": false,
74
+ "settings": "400 for body and lists, 500 for emphasis · leading 1.45 · tracking 0",
75
+ "css": "<link rel=\"preconnect\" href=\"https://api.fontshare.com\">\n<link rel=\"preconnect\" href=\"https://cdn.fontshare.com\" crossorigin>\n<link href=\"https://api.fontshare.com/v2/css?f[]=general-sans@400,500,700&display=swap\" rel=\"stylesheet\">"
76
+ },
77
+ "standsInFor": [
78
+ "PP Neue Montreal",
79
+ "Aeonik"
80
+ ],
81
+ "note": "A grotesk with slightly geometric bowls, set bold and very large against plain 16px text with nothing in between. Suits studios, type and product launches, and finance or tech brands that lead with the name.",
82
+ "seenIn": [
83
+ "aww-pp-neue-montreal",
84
+ "aww-moto-finance",
85
+ "opl-brikkenco",
86
+ "aww-nothin"
87
+ ],
88
+ "links": [
89
+ "https://api.fontshare.com/v2/css?f[]=general-sans@400,500,700&display=swap"
90
+ ],
91
+ "scale": {
92
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
93
+ "step-body": "clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem)",
94
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
95
+ "step-head": "clamp(2rem, 1.3rem + 3.2vw, 4rem)"
96
+ }
97
+ },
98
+ {
99
+ "id": "schibsted-heavy",
100
+ "name": "Schibsted Grotesk",
101
+ "class": "grotesk-tight",
102
+ "display": {
103
+ "family": "Schibsted Grotesk",
104
+ "source": "google",
105
+ "weights": [
106
+ 800
107
+ ],
108
+ "italic": false,
109
+ "settings": "weight 800 · tracking -0.05em · leading 0.88 · sentence case or all lowercase",
110
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Schibsted+Grotesk:wght@400;600;800&display=swap\" rel=\"stylesheet\">"
111
+ },
112
+ "text": {
113
+ "family": "Schibsted Grotesk",
114
+ "source": "google",
115
+ "weights": [
116
+ 400,
117
+ 600
118
+ ],
119
+ "italic": false,
120
+ "settings": "400 for paragraphs, 600 for navigation and other functional text · leading 1.4 · tracking -0.01em",
121
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Schibsted+Grotesk:wght@400;600;800&display=swap\" rel=\"stylesheet\">"
122
+ },
123
+ "standsInFor": [
124
+ "ABC Diatype",
125
+ "Khteka"
126
+ ],
127
+ "note": "A compact, warm grotesk set heavy with letters almost touching; small text stays in the same family at semibold. Suits music, events and culture pages where the type is the image.",
128
+ "seenIn": [
129
+ "aww-paul-kalkbrenner",
130
+ "opl-rendez-vous-franceclat",
131
+ "aww-monolog"
132
+ ],
133
+ "links": [
134
+ "https://fonts.googleapis.com/css2?family=Schibsted+Grotesk:wght@400;600;800&display=swap"
135
+ ],
136
+ "scale": {
137
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
138
+ "step-body": "clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem)",
139
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
140
+ "step-head": "clamp(2rem, 1.3rem + 3.2vw, 4rem)"
141
+ }
142
+ },
143
+ {
144
+ "id": "hanken-medium",
145
+ "name": "Hanken Grotesk",
146
+ "class": "grotesk-tight",
147
+ "display": {
148
+ "family": "Hanken Grotesk",
149
+ "source": "google",
150
+ "weights": [
151
+ 500
152
+ ],
153
+ "italic": false,
154
+ "settings": "weight 500 · tracking -0.05em · leading 0.9 · sentence case; one statement size (about 6vw) used for every heading",
155
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Hanken+Grotesk:wght@400;500&display=swap\" rel=\"stylesheet\">"
156
+ },
157
+ "text": {
158
+ "family": "Hanken Grotesk",
159
+ "source": "google",
160
+ "weights": [
161
+ 400,
162
+ 500
163
+ ],
164
+ "italic": false,
165
+ "settings": "400 for body, 500 for emphasis · leading 1.45 · tracking -0.005em",
166
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Hanken+Grotesk:wght@400;500&display=swap\" rel=\"stylesheet\">"
167
+ },
168
+ "standsInFor": [
169
+ "Akzidenz Grotesk",
170
+ "LayGrotesk"
171
+ ],
172
+ "note": "Medium-weight grotesk statements at one large size against caption-size text: a two-size system with no bold. Suits portfolios, agencies and tools that speak in short declarative lines.",
173
+ "seenIn": [
174
+ "aww-bleibtgleich26",
175
+ "aww-made-with-gsap-1",
176
+ "opl-locker-land",
177
+ "opl-builders-table"
178
+ ],
179
+ "links": [
180
+ "https://fonts.googleapis.com/css2?family=Hanken+Grotesk:wght@400;500&display=swap"
181
+ ],
182
+ "scale": {
183
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
184
+ "step-body": "clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem)",
185
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
186
+ "step-head": "clamp(2rem, 1.3rem + 3.2vw, 4rem)"
187
+ }
188
+ },
189
+ {
190
+ "id": "bricolage-contrast",
191
+ "name": "Bricolage Grotesque",
192
+ "class": "grotesk-tight",
193
+ "display": {
194
+ "family": "Bricolage Grotesque",
195
+ "source": "google",
196
+ "weights": [
197
+ 600
198
+ ],
199
+ "italic": false,
200
+ "settings": "weight 600 · tracking -0.04em · leading 0.92 · sentence case; leave optical sizing on so large sizes tighten and gain contrast",
201
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:wght@400;500;600&display=swap\" rel=\"stylesheet\">"
202
+ },
203
+ "text": {
204
+ "family": "Bricolage Grotesque",
205
+ "source": "google",
206
+ "weights": [
207
+ 400,
208
+ 500
209
+ ],
210
+ "italic": false,
211
+ "settings": "400 for body, 500 for emphasis · leading 1.5 · tracking 0",
212
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:wght@400;500;600&display=swap\" rel=\"stylesheet\">"
213
+ },
214
+ "standsInFor": [
215
+ "Beausite Classic",
216
+ "F37 Analog"
217
+ ],
218
+ "note": "A grotesk with visible stroke contrast and slightly irregular curves, so headings look drawn rather than engineered. Suits reports, consultancies and design-led software that want warmth without a serif.",
219
+ "seenIn": [
220
+ "aww-ai-in-design-report-2026",
221
+ "aww-illoca",
222
+ "opl-ohhmydesign"
223
+ ],
224
+ "links": [
225
+ "https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:wght@400;500;600&display=swap"
226
+ ],
227
+ "scale": {
228
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
229
+ "step-body": "clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem)",
230
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
231
+ "step-head": "clamp(2rem, 1.3rem + 3.2vw, 4rem)"
232
+ }
233
+ },
234
+ {
235
+ "id": "franklin-source",
236
+ "name": "Libre Franklin / Source Serif 4",
237
+ "class": "grotesk-tight",
238
+ "display": {
239
+ "family": "Libre Franklin",
240
+ "source": "google",
241
+ "weights": [
242
+ 700
243
+ ],
244
+ "italic": false,
245
+ "settings": "weight 700 · tracking -0.035em · leading 0.92 · uppercase for the title, sentence case for section headings",
246
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Libre+Franklin:wght@700&family=Source+Serif+4:ital,wght@0,400;0,600;1,400;1,600&display=swap\" rel=\"stylesheet\">"
247
+ },
248
+ "text": {
249
+ "family": "Source Serif 4",
250
+ "source": "google",
251
+ "weights": [
252
+ 400,
253
+ 600
254
+ ],
255
+ "italic": true,
256
+ "settings": "400 for body, 600 for emphasis, italic for quotations · leading 1.55 · tracking 0",
257
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Libre+Franklin:wght@700&family=Source+Serif+4:ital,wght@0,400;0,600;1,400;1,600&display=swap\" rel=\"stylesheet\">"
258
+ },
259
+ "standsInFor": [
260
+ "Founders Grotesk",
261
+ "Die Grotesk",
262
+ "NON Natural Grotesk"
263
+ ],
264
+ "note": "An American gothic for headings over a sober transitional serif for reading, the pairing of a newspaper front page. Suits essays, annual reports, archives and finance pages that have real paragraphs.",
265
+ "seenIn": [
266
+ "aww-dragonfly-redux",
267
+ "aww-trevor-noah",
268
+ "aww-mosbys-files"
269
+ ],
270
+ "links": [
271
+ "https://fonts.googleapis.com/css2?family=Libre+Franklin:wght@700&family=Source+Serif+4:ital,wght@0,400;0,600;1,400;1,600&display=swap"
272
+ ],
273
+ "scale": {
274
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
275
+ "step-body": "clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem)",
276
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
277
+ "step-head": "clamp(2rem, 1.3rem + 3.2vw, 4rem)"
278
+ }
279
+ },
280
+ {
281
+ "id": "switzer-roman",
282
+ "name": "Switzer",
283
+ "class": "grotesk-light",
284
+ "display": {
285
+ "family": "Switzer",
286
+ "source": "fontshare",
287
+ "slug": "switzer",
288
+ "weights": [
289
+ 400
290
+ ],
291
+ "italic": false,
292
+ "settings": "weight 400 · tracking -0.03em · leading 1.1 · sentence case; headings stay small (28–40px) and at most one line jumps to 5vw",
293
+ "css": "<link rel=\"preconnect\" href=\"https://api.fontshare.com\">\n<link rel=\"preconnect\" href=\"https://cdn.fontshare.com\" crossorigin>\n<link href=\"https://api.fontshare.com/v2/css?f[]=switzer@400,500&display=swap\" rel=\"stylesheet\">"
294
+ },
295
+ "text": {
296
+ "family": "Switzer",
297
+ "source": "fontshare",
298
+ "slug": "switzer",
299
+ "weights": [
300
+ 400,
301
+ 500
302
+ ],
303
+ "italic": false,
304
+ "settings": "400 for everything, 500 only for names and links · leading 1.45 · tracking -0.01em; hierarchy by ink against mid-grey",
305
+ "css": "<link rel=\"preconnect\" href=\"https://api.fontshare.com\">\n<link rel=\"preconnect\" href=\"https://cdn.fontshare.com\" crossorigin>\n<link href=\"https://api.fontshare.com/v2/css?f[]=switzer@400,500&display=swap\" rel=\"stylesheet\">"
306
+ },
307
+ "standsInFor": [
308
+ "Neue Haas Grotesk 55 Roman",
309
+ "Helvetica Now"
310
+ ],
311
+ "note": "A single roman weight of a Swiss neo-grotesk at two or three modest sizes; position and grey value do the work that size and bold usually do. Suits architects, galleries, studios and any quiet page where photographs carry the scale.",
312
+ "seenIn": [
313
+ "aww-revelatio-studio",
314
+ "opl-spatial",
315
+ "aww-pensatori-irrazionali",
316
+ "opl-compile"
317
+ ],
318
+ "links": [
319
+ "https://api.fontshare.com/v2/css?f[]=switzer@400,500&display=swap"
320
+ ],
321
+ "scale": {
322
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
323
+ "step-body": "clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem)",
324
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
325
+ "step-head": "clamp(2rem, 1.3rem + 3.2vw, 4rem)"
326
+ }
327
+ },
328
+ {
329
+ "id": "archivo-regular",
330
+ "name": "Archivo",
331
+ "class": "grotesk-light",
332
+ "display": {
333
+ "family": "Archivo",
334
+ "source": "google",
335
+ "weights": [
336
+ 400
337
+ ],
338
+ "italic": false,
339
+ "settings": "weight 400 · tracking -0.02em · leading 1.0 · sentence case; never bold, inactive items fade to grey",
340
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Archivo:wght@400;600&display=swap\" rel=\"stylesheet\">"
341
+ },
342
+ "text": {
343
+ "family": "Archivo",
344
+ "source": "google",
345
+ "weights": [
346
+ 400,
347
+ 600
348
+ ],
349
+ "italic": false,
350
+ "settings": "400 for body, 600 for buttons and short emphasis · leading 1.5 · tracking 0",
351
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Archivo:wght@400;600&display=swap\" rel=\"stylesheet\">"
352
+ },
353
+ "standsInFor": [
354
+ "Scto Grotesk A",
355
+ "Cash Sans"
356
+ ],
357
+ "note": "A sturdy grotesque kept at regular weight even at 88px, so the page reads as composed rather than loud. Suits finance, infrastructure and research pages that need to look sober and current.",
358
+ "seenIn": [
359
+ "aww-sharplink",
360
+ "opl-plastic",
361
+ "opl-lovably",
362
+ "opl-berd"
363
+ ],
364
+ "links": [
365
+ "https://fonts.googleapis.com/css2?family=Archivo:wght@400;600&display=swap"
366
+ ],
367
+ "scale": {
368
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
369
+ "step-body": "clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem)",
370
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
371
+ "step-head": "clamp(2rem, 1.3rem + 3.2vw, 4rem)"
372
+ }
373
+ },
374
+ {
375
+ "id": "clash-grotesk-regular",
376
+ "name": "Clash Grotesk",
377
+ "class": "grotesk-light",
378
+ "display": {
379
+ "family": "Clash Grotesk",
380
+ "source": "fontshare",
381
+ "slug": "clash-grotesk",
382
+ "weights": [
383
+ 400
384
+ ],
385
+ "italic": false,
386
+ "settings": "weight 400 · tracking -0.03em · leading 0.95 · sentence case, or uppercase for one statement",
387
+ "css": "<link rel=\"preconnect\" href=\"https://api.fontshare.com\">\n<link rel=\"preconnect\" href=\"https://cdn.fontshare.com\" crossorigin>\n<link href=\"https://api.fontshare.com/v2/css?f[]=clash-grotesk@400,500&display=swap\" rel=\"stylesheet\">"
388
+ },
389
+ "text": {
390
+ "family": "Clash Grotesk",
391
+ "source": "fontshare",
392
+ "slug": "clash-grotesk",
393
+ "weights": [
394
+ 400,
395
+ 500
396
+ ],
397
+ "italic": false,
398
+ "settings": "400 for body, 500 for emphasis · leading 1.4 · tracking 0",
399
+ "css": "<link rel=\"preconnect\" href=\"https://api.fontshare.com\">\n<link rel=\"preconnect\" href=\"https://cdn.fontshare.com\" crossorigin>\n<link href=\"https://api.fontshare.com/v2/css?f[]=clash-grotesk@400,500&display=swap\" rel=\"stylesheet\">"
400
+ },
401
+ "standsInFor": [
402
+ "Sneak",
403
+ "ABC Monument Grotesk"
404
+ ],
405
+ "note": "A slightly narrow neo-grotesk with closed apertures, used at regular weight from marquee size down to paragraphs. Suits agencies and digital studios that want large type without heaviness.",
406
+ "seenIn": [
407
+ "aww-px-push",
408
+ "opl-wild-as",
409
+ "aww-sstr-friction-reduction"
410
+ ],
411
+ "links": [
412
+ "https://api.fontshare.com/v2/css?f[]=clash-grotesk@400,500&display=swap"
413
+ ],
414
+ "scale": {
415
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
416
+ "step-body": "clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem)",
417
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
418
+ "step-head": "clamp(2rem, 1.3rem + 3.2vw, 4rem)"
419
+ }
420
+ },
421
+ {
422
+ "id": "work-sans-light",
423
+ "name": "Work Sans",
424
+ "class": "grotesk-light",
425
+ "display": {
426
+ "family": "Work Sans",
427
+ "source": "google",
428
+ "weights": [
429
+ 300
430
+ ],
431
+ "italic": false,
432
+ "settings": "weight 300 · tracking -0.035em · leading 1.0 · sentence case",
433
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Work+Sans:wght@300;400;500&display=swap\" rel=\"stylesheet\">"
434
+ },
435
+ "text": {
436
+ "family": "Work Sans",
437
+ "source": "google",
438
+ "weights": [
439
+ 400,
440
+ 500
441
+ ],
442
+ "italic": false,
443
+ "settings": "400 for body, 500 for emphasis · leading 1.55 · tracking 0",
444
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Work+Sans:wght@300;400;500&display=swap\" rel=\"stylesheet\">"
445
+ },
446
+ "standsInFor": [
447
+ "ABC Favorit",
448
+ "Clarkson Light",
449
+ "PP Mori"
450
+ ],
451
+ "note": "A light grotesque with open, slightly old-fashioned shapes; large headings look airy and the text weight beneath stays easy to read. Suits AI and research products, fashion houses and calm brand sites.",
452
+ "seenIn": [
453
+ "aww-cerebrium",
454
+ "aww-squarespace-foundations",
455
+ "aww-boc-studio"
456
+ ],
457
+ "links": [
458
+ "https://fonts.googleapis.com/css2?family=Work+Sans:wght@300;400;500&display=swap"
459
+ ],
460
+ "scale": {
461
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
462
+ "step-body": "clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem)",
463
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
464
+ "step-head": "clamp(2rem, 1.3rem + 3.2vw, 4rem)"
465
+ }
466
+ },
467
+ {
468
+ "id": "anton-work",
469
+ "name": "Anton / Work Sans",
470
+ "class": "condensed-heavy",
471
+ "display": {
472
+ "family": "Anton",
473
+ "source": "google",
474
+ "weights": [
475
+ 400
476
+ ],
477
+ "italic": false,
478
+ "settings": "weight 400 (single heavy cut) · tracking -0.01em · leading 0.86 · uppercase",
479
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Anton:wght@400&family=Work+Sans:wght@400;600&display=swap\" rel=\"stylesheet\">"
480
+ },
481
+ "text": {
482
+ "family": "Work Sans",
483
+ "source": "google",
484
+ "weights": [
485
+ 400,
486
+ 600
487
+ ],
488
+ "italic": false,
489
+ "settings": "400 for body, 600 for links and short emphasis · leading 1.5 · tracking 0",
490
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Anton:wght@400&family=Work+Sans:wght@400;600&display=swap\" rel=\"stylesheet\">"
491
+ },
492
+ "standsInFor": [
493
+ "Druk",
494
+ "Thunder",
495
+ "Acme Gothic"
496
+ ],
497
+ "note": "Compressed heavy capitals stacked tight, with a neutral grotesque kept small beneath. Suits fashion drops, sport, nightlife and any page built as a poster.",
498
+ "seenIn": [
499
+ "aww-serotoninn",
500
+ "opl-juggle",
501
+ "opl-lorenzo-bocchi-photography"
502
+ ],
503
+ "links": [
504
+ "https://fonts.googleapis.com/css2?family=Anton:wght@400&family=Work+Sans:wght@400;600&display=swap"
505
+ ],
506
+ "scale": {
507
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
508
+ "step-body": "clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem)",
509
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
510
+ "step-head": "clamp(2.5rem, 1.2rem + 5vw, 5.5rem)"
511
+ }
512
+ },
513
+ {
514
+ "id": "big-shoulders-public",
515
+ "name": "Big Shoulders / Public Sans",
516
+ "class": "condensed-heavy",
517
+ "display": {
518
+ "family": "Big Shoulders",
519
+ "source": "google",
520
+ "weights": [
521
+ 800
522
+ ],
523
+ "italic": false,
524
+ "settings": "weight 800 · tracking -0.005em · leading 0.88 · uppercase",
525
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Big+Shoulders:wght@800&family=Public+Sans:wght@400;600&display=swap\" rel=\"stylesheet\">"
526
+ },
527
+ "text": {
528
+ "family": "Public Sans",
529
+ "source": "google",
530
+ "weights": [
531
+ 400,
532
+ 600
533
+ ],
534
+ "italic": false,
535
+ "settings": "400 for body, 600 for emphasis · leading 1.5 · tracking 0",
536
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Big+Shoulders:wght@800&family=Public+Sans:wght@400;600&display=swap\" rel=\"stylesheet\">"
537
+ },
538
+ "standsInFor": [
539
+ "Founders Grotesk Condensed",
540
+ "PP Neue York",
541
+ "Knockout"
542
+ ],
543
+ "note": "A tall American gothic taken from city signage, blunt and civic, over a plain public-service sans. Suits culture indexes, community projects, bars, sport clubs and local campaigns.",
544
+ "seenIn": [
545
+ "aww-mosbys-files",
546
+ "opl-the-sapphic-bar-index",
547
+ "opl-the-deep-end",
548
+ "aww-colonia-zacamil"
549
+ ],
550
+ "links": [
551
+ "https://fonts.googleapis.com/css2?family=Big+Shoulders:wght@800&family=Public+Sans:wght@400;600&display=swap"
552
+ ],
553
+ "scale": {
554
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
555
+ "step-body": "clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem)",
556
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
557
+ "step-head": "clamp(2.5rem, 1.2rem + 5vw, 5.5rem)"
558
+ }
559
+ },
560
+ {
561
+ "id": "archivo-compressed",
562
+ "name": "Archivo",
563
+ "class": "condensed-heavy",
564
+ "display": {
565
+ "family": "Archivo",
566
+ "source": "google",
567
+ "weights": [
568
+ 800
569
+ ],
570
+ "italic": false,
571
+ "settings": "weight 800 at font-stretch 62% (load the wdth axis and use its narrowest setting) · tracking -0.01em · leading 0.86 · uppercase",
572
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Archivo:wdth,wght@62..125,100..900&display=swap\" rel=\"stylesheet\">"
573
+ },
574
+ "text": {
575
+ "family": "Archivo",
576
+ "source": "google",
577
+ "weights": [
578
+ 400,
579
+ 500
580
+ ],
581
+ "italic": false,
582
+ "settings": "normal width · 400 for body, 500 for buttons and emphasis · leading 1.5 · tracking 0",
583
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Archivo:wdth,wght@62..125,100..900&display=swap\" rel=\"stylesheet\">"
584
+ },
585
+ "standsInFor": [
586
+ "Helvetica Now Display Condensed"
587
+ ],
588
+ "note": "One variable family pushed to its narrowest, heaviest setting for headlines and relaxed to normal width for text, so display and body share a skeleton. Suits sportswear, campaigns and fintech pages that speak in capitals.",
589
+ "seenIn": [
590
+ "aww-decathlon-yestalgia",
591
+ "opl-uglycash",
592
+ "opl-juggle"
593
+ ],
594
+ "links": [
595
+ "https://fonts.googleapis.com/css2?family=Archivo:wdth,wght@62..125,100..900&display=swap"
596
+ ],
597
+ "scale": {
598
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
599
+ "step-body": "clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem)",
600
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
601
+ "step-head": "clamp(2.5rem, 1.2rem + 5vw, 5.5rem)"
602
+ }
603
+ },
604
+ {
605
+ "id": "bebas-garamond",
606
+ "name": "Bebas Neue / EB Garamond",
607
+ "class": "condensed-heavy",
608
+ "display": {
609
+ "family": "Bebas Neue",
610
+ "source": "google",
611
+ "weights": [
612
+ 400
613
+ ],
614
+ "italic": false,
615
+ "settings": "weight 400 (single cut, capitals only) · tracking -0.02em, tightening to -0.06em above 15vw · leading 0.85 · uppercase",
616
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Bebas+Neue:wght@400&family=EB+Garamond:ital,wght@0,400;0,500;1,400;1,500&display=swap\" rel=\"stylesheet\">"
617
+ },
618
+ "text": {
619
+ "family": "EB Garamond",
620
+ "source": "google",
621
+ "weights": [
622
+ 400,
623
+ 500
624
+ ],
625
+ "italic": true,
626
+ "settings": "leading 1.45 · tracking 0",
627
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Bebas+Neue:wght@400&family=EB+Garamond:ital,wght@0,400;0,500;1,400;1,500&display=swap\" rel=\"stylesheet\">"
628
+ },
629
+ "standsInFor": [
630
+ "Founders Grotesk Condensed",
631
+ "Cardinal Classic Long",
632
+ "Signifier"
633
+ ],
634
+ "note": "Huge condensed capitals against a light old-style serif with italics: an industrial voice and a literary one, with a twenty-fold size gap between them. Suits crafted physical products, spirits, outdoor goods and hospitality.",
635
+ "seenIn": [
636
+ "aww-longbow",
637
+ "aww-white-desert",
638
+ "aww-mosbys-files"
639
+ ],
640
+ "links": [
641
+ "https://fonts.googleapis.com/css2?family=Bebas+Neue:wght@400&family=EB+Garamond:ital,wght@0,400;0,500;1,400;1,500&display=swap"
642
+ ],
643
+ "scale": {
644
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
645
+ "step-body": "clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem)",
646
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
647
+ "step-head": "clamp(2.5rem, 1.2rem + 5vw, 5.5rem)"
648
+ }
649
+ },
650
+ {
651
+ "id": "barlow-condensed",
652
+ "name": "Barlow Condensed / Barlow",
653
+ "class": "condensed-heavy",
654
+ "display": {
655
+ "family": "Barlow Condensed",
656
+ "source": "google",
657
+ "weights": [
658
+ 700
659
+ ],
660
+ "italic": false,
661
+ "settings": "weight 700 · tracking -0.02em · leading 0.9 · uppercase for statements, mixed case for item titles",
662
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@700&family=Barlow:wght@400;500&display=swap\" rel=\"stylesheet\">"
663
+ },
664
+ "text": {
665
+ "family": "Barlow",
666
+ "source": "google",
667
+ "weights": [
668
+ 400,
669
+ 500
670
+ ],
671
+ "italic": false,
672
+ "settings": "400 for body, 500 for emphasis · leading 1.5 · tracking 0",
673
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@700&family=Barlow:wght@400;500&display=swap\" rel=\"stylesheet\">"
674
+ },
675
+ "standsInFor": [
676
+ "FF DIN Condensed",
677
+ "Helvetica Now Display Condensed"
678
+ ],
679
+ "note": "Road-sign condensed type with squared curves, bold but not compressed into a wall, with its normal-width sibling for text. Suits logistics, motorsport, hardware and directories with many short titles.",
680
+ "seenIn": [
681
+ "aww-julien-calot",
682
+ "opl-medium-rare",
683
+ "opl-uglycash"
684
+ ],
685
+ "links": [
686
+ "https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@700&family=Barlow:wght@400;500&display=swap"
687
+ ],
688
+ "scale": {
689
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
690
+ "step-body": "clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem)",
691
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
692
+ "step-head": "clamp(2.5rem, 1.2rem + 5vw, 5.5rem)"
693
+ }
694
+ },
695
+ {
696
+ "id": "panchang-switzer",
697
+ "name": "Panchang / Switzer",
698
+ "class": "extended-heavy",
699
+ "display": {
700
+ "family": "Panchang",
701
+ "source": "fontshare",
702
+ "slug": "panchang",
703
+ "weights": [
704
+ 700
705
+ ],
706
+ "italic": false,
707
+ "settings": "weight 700 · tracking -0.02em · leading 1.0 · uppercase; four words or fewer per line because the face is very wide",
708
+ "css": "<link rel=\"preconnect\" href=\"https://api.fontshare.com\">\n<link rel=\"preconnect\" href=\"https://cdn.fontshare.com\" crossorigin>\n<link href=\"https://api.fontshare.com/v2/css?f[]=panchang@700&display=swap\" rel=\"stylesheet\">\n<link href=\"https://api.fontshare.com/v2/css?f[]=switzer@400,500&display=swap\" rel=\"stylesheet\">"
709
+ },
710
+ "text": {
711
+ "family": "Switzer",
712
+ "source": "fontshare",
713
+ "slug": "switzer",
714
+ "weights": [
715
+ 400,
716
+ 500
717
+ ],
718
+ "italic": false,
719
+ "settings": "400 for body, 500 for emphasis · leading 1.5 · tracking 0",
720
+ "css": "<link rel=\"preconnect\" href=\"https://api.fontshare.com\">\n<link rel=\"preconnect\" href=\"https://cdn.fontshare.com\" crossorigin>\n<link href=\"https://api.fontshare.com/v2/css?f[]=panchang@700&display=swap\" rel=\"stylesheet\">\n<link href=\"https://api.fontshare.com/v2/css?f[]=switzer@400,500&display=swap\" rel=\"stylesheet\">"
721
+ },
722
+ "standsInFor": [
723
+ "Monument Extended",
724
+ "Owners Wide",
725
+ "Nimbus Sans Extended"
726
+ ],
727
+ "note": "A flat-sided extended grotesk in heavy capitals, wide enough that two words fill the screen, with a neutral sans kept small. Suits portfolios, real estate, travel and brand sites that want a broad, confident wordmark.",
728
+ "seenIn": [
729
+ "opl-belen-jones",
730
+ "aww-lxl-creative",
731
+ "aww-realevate",
732
+ "aww-the-tuscan-journey-begins"
733
+ ],
734
+ "links": [
735
+ "https://api.fontshare.com/v2/css?f[]=panchang@700&display=swap",
736
+ "https://api.fontshare.com/v2/css?f[]=switzer@400,500&display=swap"
737
+ ],
738
+ "scale": {
739
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
740
+ "step-body": "clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem)",
741
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
742
+ "step-head": "clamp(2rem, 1.3rem + 3.2vw, 4rem)"
743
+ }
744
+ },
745
+ {
746
+ "id": "tiktok-sans-wide",
747
+ "name": "TikTok Sans",
748
+ "class": "extended-heavy",
749
+ "display": {
750
+ "family": "TikTok Sans",
751
+ "source": "google",
752
+ "weights": [
753
+ 800
754
+ ],
755
+ "italic": false,
756
+ "settings": "weight 800 at font-stretch 150% (load the wdth axis and use its widest setting) · tracking -0.01em · leading 1.0 · uppercase",
757
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=TikTok+Sans:wdth,wght@75..150,300..900&display=swap\" rel=\"stylesheet\">"
758
+ },
759
+ "text": {
760
+ "family": "TikTok Sans",
761
+ "source": "google",
762
+ "weights": [
763
+ 400,
764
+ 500
765
+ ],
766
+ "italic": false,
767
+ "settings": "normal width · 400 for body, 500 for emphasis · leading 1.45 · tracking 0",
768
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=TikTok+Sans:wdth,wght@75..150,300..900&display=swap\" rel=\"stylesheet\">"
769
+ },
770
+ "standsInFor": [
771
+ "Herokid Wide",
772
+ "At Aero",
773
+ "Wintyr"
774
+ ],
775
+ "note": "One variable grotesk stretched wide and bold for the headline and the closing statement, then returned to normal width for reading. Suits personal portfolios, apps and tech brands that want width without a second family.",
776
+ "seenIn": [
777
+ "aww-haoqi-design",
778
+ "opl-tara",
779
+ "aww-produx-design",
780
+ "opl-proooof"
781
+ ],
782
+ "links": [
783
+ "https://fonts.googleapis.com/css2?family=TikTok+Sans:wdth,wght@75..150,300..900&display=swap"
784
+ ],
785
+ "scale": {
786
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
787
+ "step-body": "clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem)",
788
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
789
+ "step-head": "clamp(2rem, 1.3rem + 3.2vw, 4rem)"
790
+ }
791
+ },
792
+ {
793
+ "id": "unbounded-onest",
794
+ "name": "Unbounded / Onest",
795
+ "class": "extended-heavy",
796
+ "display": {
797
+ "family": "Unbounded",
798
+ "source": "google",
799
+ "weights": [
800
+ 800
801
+ ],
802
+ "italic": false,
803
+ "settings": "weight 800 · tracking -0.03em · leading 1.0 · uppercase",
804
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Unbounded:wght@800&family=Onest:wght@400;500&display=swap\" rel=\"stylesheet\">"
805
+ },
806
+ "text": {
807
+ "family": "Onest",
808
+ "source": "google",
809
+ "weights": [
810
+ 400,
811
+ 500
812
+ ],
813
+ "italic": false,
814
+ "settings": "400 for body, 500 for emphasis · leading 1.5 · tracking 0",
815
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Unbounded:wght@800&family=Onest:wght@400;500&display=swap\" rel=\"stylesheet\">"
816
+ },
817
+ "standsInFor": [
818
+ "IntraNet",
819
+ "Nekst",
820
+ "Owners Wide"
821
+ ],
822
+ "note": "A wide display sans built from rounded squares, heavy and a little architectural, beside a clean text grotesk. Suits architecture indexes, watches, mobility and events that want a title with a constructed feel.",
823
+ "seenIn": [
824
+ "opl-belgrade-architecture",
825
+ "aww-the-watch",
826
+ "aww-risk",
827
+ "aww-house-of-honey-1"
828
+ ],
829
+ "links": [
830
+ "https://fonts.googleapis.com/css2?family=Unbounded:wght@800&family=Onest:wght@400;500&display=swap"
831
+ ],
832
+ "scale": {
833
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
834
+ "step-body": "clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem)",
835
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
836
+ "step-head": "clamp(2rem, 1.3rem + 3.2vw, 4rem)"
837
+ }
838
+ },
839
+ {
840
+ "id": "chivo-black",
841
+ "name": "Chivo",
842
+ "class": "heavy-black",
843
+ "display": {
844
+ "family": "Chivo",
845
+ "source": "google",
846
+ "weights": [
847
+ 900
848
+ ],
849
+ "italic": false,
850
+ "settings": "weight 900 · tracking -0.05em · leading 0.88 · uppercase",
851
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Chivo:wght@400;700;900&display=swap\" rel=\"stylesheet\">"
852
+ },
853
+ "text": {
854
+ "family": "Chivo",
855
+ "source": "google",
856
+ "weights": [
857
+ 400,
858
+ 700
859
+ ],
860
+ "italic": false,
861
+ "settings": "400 for paragraphs, 700 for navigation, tags and links · leading 1.35 · tracking -0.01em",
862
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Chivo:wght@400;700;900&display=swap\" rel=\"stylesheet\">"
863
+ },
864
+ "standsInFor": [
865
+ "Elza",
866
+ "ABC Diatype Heavy",
867
+ "Suisse Intl Black"
868
+ ],
869
+ "note": "A black grotesque in capitals with letters nearly colliding, and only two sizes on the page: enormous and small. Suits agencies, city and culture projects and musicians who want the type to land like a headline.",
870
+ "seenIn": [
871
+ "aww-glitch-grit",
872
+ "opl-city-of-angels",
873
+ "aww-warm-fuzzy"
874
+ ],
875
+ "links": [
876
+ "https://fonts.googleapis.com/css2?family=Chivo:wght@400;700;900&display=swap"
877
+ ],
878
+ "scale": {
879
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
880
+ "step-body": "clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem)",
881
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
882
+ "step-head": "clamp(2.5rem, 1.2rem + 5vw, 5.5rem)"
883
+ }
884
+ },
885
+ {
886
+ "id": "cabinet-grotesk-black",
887
+ "name": "Cabinet Grotesk",
888
+ "class": "heavy-black",
889
+ "display": {
890
+ "family": "Cabinet Grotesk",
891
+ "source": "fontshare",
892
+ "slug": "cabinet-grotesk",
893
+ "weights": [
894
+ 800
895
+ ],
896
+ "italic": false,
897
+ "settings": "weight 800 · tracking -0.035em · leading 0.9 · lowercase or sentence case, one or two words per line",
898
+ "css": "<link rel=\"preconnect\" href=\"https://api.fontshare.com\">\n<link rel=\"preconnect\" href=\"https://cdn.fontshare.com\" crossorigin>\n<link href=\"https://api.fontshare.com/v2/css?f[]=cabinet-grotesk@400,500,800&display=swap\" rel=\"stylesheet\">"
899
+ },
900
+ "text": {
901
+ "family": "Cabinet Grotesk",
902
+ "source": "fontshare",
903
+ "slug": "cabinet-grotesk",
904
+ "weights": [
905
+ 400,
906
+ 500
907
+ ],
908
+ "italic": false,
909
+ "settings": "400 for body, 500 for emphasis · leading 1.5 · tracking 0",
910
+ "css": "<link rel=\"preconnect\" href=\"https://api.fontshare.com\">\n<link rel=\"preconnect\" href=\"https://cdn.fontshare.com\" crossorigin>\n<link href=\"https://api.fontshare.com/v2/css?f[]=cabinet-grotesk@400,500,800&display=swap\" rel=\"stylesheet\">"
911
+ },
912
+ "standsInFor": [
913
+ "Champ",
914
+ "Uncut Sans"
915
+ ],
916
+ "note": "A heavy sans with tight joins and an eccentric lowercase, friendly but loud. Suits bookshops, food, consumer subscriptions and marketing studios.",
917
+ "seenIn": [
918
+ "aww-aardvark-book-club",
919
+ "opl-protip-marketing",
920
+ "opl-rendez-vous-franceclat"
921
+ ],
922
+ "links": [
923
+ "https://api.fontshare.com/v2/css?f[]=cabinet-grotesk@400,500,800&display=swap"
924
+ ],
925
+ "scale": {
926
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
927
+ "step-body": "clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem)",
928
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
929
+ "step-head": "clamp(2.5rem, 1.2rem + 5vw, 5.5rem)"
930
+ }
931
+ },
932
+ {
933
+ "id": "epilogue-black",
934
+ "name": "Epilogue",
935
+ "class": "heavy-black",
936
+ "display": {
937
+ "family": "Epilogue",
938
+ "source": "google",
939
+ "weights": [
940
+ 900
941
+ ],
942
+ "italic": false,
943
+ "settings": "weight 900 · tracking -0.04em · leading 0.9 · sentence case or title case",
944
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Epilogue:wght@400;500;900&display=swap\" rel=\"stylesheet\">"
945
+ },
946
+ "text": {
947
+ "family": "Epilogue",
948
+ "source": "google",
949
+ "weights": [
950
+ 400,
951
+ 500
952
+ ],
953
+ "italic": false,
954
+ "settings": "400 for body, 500 for emphasis · leading 1.5 · tracking 0",
955
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Epilogue:wght@400;500;900&display=swap\" rel=\"stylesheet\">"
956
+ },
957
+ "standsInFor": [
958
+ "Die Grotesk D",
959
+ "Acme Gothic",
960
+ "FH Oscar"
961
+ ],
962
+ "note": "A broad black grotesque with a slightly uneven rhythm, at its best as a name set very large in mixed case. Suits entertainers, podcasts, consumer apps and blunt SaaS pages; emphasis comes from colour, not from a change of weight.",
963
+ "seenIn": [
964
+ "aww-trevor-noah",
965
+ "opl-juggle"
966
+ ],
967
+ "links": [
968
+ "https://fonts.googleapis.com/css2?family=Epilogue:wght@400;500;900&display=swap"
969
+ ],
970
+ "scale": {
971
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
972
+ "step-body": "clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem)",
973
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
974
+ "step-head": "clamp(2.5rem, 1.2rem + 5vw, 5.5rem)"
975
+ }
976
+ },
977
+ {
978
+ "id": "red-hat-black",
979
+ "name": "Red Hat Display / Red Hat Text",
980
+ "class": "heavy-black",
981
+ "display": {
982
+ "family": "Red Hat Display",
983
+ "source": "google",
984
+ "weights": [
985
+ 900
986
+ ],
987
+ "italic": false,
988
+ "settings": "weight 900 · tracking -0.03em · leading 0.92 · uppercase; centred three-line stacks work well",
989
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Red+Hat+Display:wght@900&family=Red+Hat+Text:wght@400;500&display=swap\" rel=\"stylesheet\">"
990
+ },
991
+ "text": {
992
+ "family": "Red Hat Text",
993
+ "source": "google",
994
+ "weights": [
995
+ 400,
996
+ 500
997
+ ],
998
+ "italic": false,
999
+ "settings": "400 for body, 500 for emphasis · leading 1.5 · tracking 0",
1000
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Red+Hat+Display:wght@900&family=Red+Hat+Text:wght@400;500&display=swap\" rel=\"stylesheet\">"
1001
+ },
1002
+ "standsInFor": [
1003
+ "FH Oscar",
1004
+ "Futura Bold"
1005
+ ],
1006
+ "note": "A geometric black with round bowls and flat terminals, cleaner and more even than a grotesque at the same weight. Suits fintech, apps and portfolios that want heavy type with a tidy, technical finish.",
1007
+ "seenIn": [
1008
+ "aww-risk",
1009
+ "aww-leo-parpeix-portfolio-2026"
1010
+ ],
1011
+ "links": [
1012
+ "https://fonts.googleapis.com/css2?family=Red+Hat+Display:wght@900&family=Red+Hat+Text:wght@400;500&display=swap"
1013
+ ],
1014
+ "scale": {
1015
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
1016
+ "step-body": "clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem)",
1017
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
1018
+ "step-head": "clamp(2.5rem, 1.2rem + 5vw, 5.5rem)"
1019
+ }
1020
+ },
1021
+ {
1022
+ "id": "jost-caps",
1023
+ "name": "Jost",
1024
+ "class": "geometric",
1025
+ "display": {
1026
+ "family": "Jost",
1027
+ "source": "google",
1028
+ "weights": [
1029
+ 700
1030
+ ],
1031
+ "italic": false,
1032
+ "settings": "weight 700 · tracking -0.03em · leading 0.9 · uppercase",
1033
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Jost:wght@400;500;700&display=swap\" rel=\"stylesheet\">"
1034
+ },
1035
+ "text": {
1036
+ "family": "Jost",
1037
+ "source": "google",
1038
+ "weights": [
1039
+ 400,
1040
+ 500
1041
+ ],
1042
+ "italic": false,
1043
+ "settings": "400 for body, 500 for emphasis · leading 1.5 · tracking 0",
1044
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Jost:wght@400;500;700&display=swap\" rel=\"stylesheet\">"
1045
+ },
1046
+ "standsInFor": [
1047
+ "Futura Std Bold",
1048
+ "Futura PT"
1049
+ ],
1050
+ "note": "The pointed, circular geometry of the 1920s in bold capitals, with the same family at reading size. Suits space, science, museums, architecture and anything that should feel like a mid-century poster.",
1051
+ "seenIn": [
1052
+ "aww-21-hrs-on-the-moon",
1053
+ "aww-leo-parpeix-portfolio-2026"
1054
+ ],
1055
+ "links": [
1056
+ "https://fonts.googleapis.com/css2?family=Jost:wght@400;500;700&display=swap"
1057
+ ],
1058
+ "scale": {
1059
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
1060
+ "step-body": "clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem)",
1061
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
1062
+ "step-head": "clamp(2rem, 1.3rem + 3.2vw, 4rem)"
1063
+ }
1064
+ },
1065
+ {
1066
+ "id": "stack-sans-light",
1067
+ "name": "Stack Sans Headline / Stack Sans Text",
1068
+ "class": "geometric",
1069
+ "display": {
1070
+ "family": "Stack Sans Headline",
1071
+ "source": "google",
1072
+ "weights": [
1073
+ 300
1074
+ ],
1075
+ "italic": false,
1076
+ "settings": "weight 300 · tracking -0.022em · leading 1.05 · sentence case; a heading may be two-tone, grey then full ink",
1077
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Stack+Sans+Headline:wght@300&family=Stack+Sans+Text:wght@400;500&display=swap\" rel=\"stylesheet\">"
1078
+ },
1079
+ "text": {
1080
+ "family": "Stack Sans Text",
1081
+ "source": "google",
1082
+ "weights": [
1083
+ 400,
1084
+ 500
1085
+ ],
1086
+ "italic": false,
1087
+ "settings": "400 for body, 500 for emphasis · leading 1.5 · tracking 0",
1088
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Stack+Sans+Headline:wght@300&family=Stack+Sans+Text:wght@400;500&display=swap\" rel=\"stylesheet\">"
1089
+ },
1090
+ "standsInFor": [
1091
+ "Mluvka",
1092
+ "Roobert"
1093
+ ],
1094
+ "note": "A geometric sans in a light weight at large size, soft and exact at once, with its text cut underneath. Suits consumer apps, utilities and developer tools that want to feel calm and modern.",
1095
+ "seenIn": [
1096
+ "opl-screentune",
1097
+ "opl-dialkit",
1098
+ "opl-typewave"
1099
+ ],
1100
+ "links": [
1101
+ "https://fonts.googleapis.com/css2?family=Stack+Sans+Headline:wght@300&family=Stack+Sans+Text:wght@400;500&display=swap"
1102
+ ],
1103
+ "scale": {
1104
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
1105
+ "step-body": "clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem)",
1106
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
1107
+ "step-head": "clamp(2rem, 1.3rem + 3.2vw, 4rem)"
1108
+ }
1109
+ },
1110
+ {
1111
+ "id": "albert-sans-semibold",
1112
+ "name": "Albert Sans",
1113
+ "class": "geometric",
1114
+ "display": {
1115
+ "family": "Albert Sans",
1116
+ "source": "google",
1117
+ "weights": [
1118
+ 600
1119
+ ],
1120
+ "italic": false,
1121
+ "settings": "weight 600 · tracking -0.035em · leading 1.0 · sentence case",
1122
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Albert+Sans:wght@400;500;600&display=swap\" rel=\"stylesheet\">"
1123
+ },
1124
+ "text": {
1125
+ "family": "Albert Sans",
1126
+ "source": "google",
1127
+ "weights": [
1128
+ 400,
1129
+ 500
1130
+ ],
1131
+ "italic": false,
1132
+ "settings": "400 for body, 500 for emphasis · leading 1.5 · tracking 0",
1133
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Albert+Sans:wght@400;500;600&display=swap\" rel=\"stylesheet\">"
1134
+ },
1135
+ "standsInFor": [
1136
+ "BT Steinhart",
1137
+ "TT Norms Pro",
1138
+ "Objektiv"
1139
+ ],
1140
+ "note": "A geometric grotesque with Scandinavian restraint: round letters, even colour, nothing decorative. Suits logistics, health, property and corporate sites that need to look clear and dependable.",
1141
+ "seenIn": [
1142
+ "aww-united-carriers",
1143
+ "aww-likova"
1144
+ ],
1145
+ "links": [
1146
+ "https://fonts.googleapis.com/css2?family=Albert+Sans:wght@400;500;600&display=swap"
1147
+ ],
1148
+ "scale": {
1149
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
1150
+ "step-body": "clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem)",
1151
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
1152
+ "step-head": "clamp(2rem, 1.3rem + 3.2vw, 4rem)"
1153
+ }
1154
+ },
1155
+ {
1156
+ "id": "spartan-figtree",
1157
+ "name": "League Spartan / Figtree",
1158
+ "class": "geometric",
1159
+ "display": {
1160
+ "family": "League Spartan",
1161
+ "source": "google",
1162
+ "weights": [
1163
+ 700
1164
+ ],
1165
+ "italic": false,
1166
+ "settings": "weight 700 · tracking -0.04em · leading 0.88 · lowercase or sentence case",
1167
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=League+Spartan:wght@700&family=Figtree:wght@400;600&display=swap\" rel=\"stylesheet\">"
1168
+ },
1169
+ "text": {
1170
+ "family": "Figtree",
1171
+ "source": "google",
1172
+ "weights": [
1173
+ 400,
1174
+ 600
1175
+ ],
1176
+ "italic": false,
1177
+ "settings": "400 for body, 600 for emphasis · leading 1.5 · tracking 0",
1178
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=League+Spartan:wght@700&family=Figtree:wght@400;600&display=swap\" rel=\"stylesheet\">"
1179
+ },
1180
+ "standsInFor": [
1181
+ "Degular",
1182
+ "Roobert"
1183
+ ],
1184
+ "note": "A compact bold geometric with a low waist, punchy in short lowercase lines, over a friendly open text sans. Suits newsletters, consumer products, creators and small shops.",
1185
+ "seenIn": [
1186
+ "opl-lennys-newsletter-product-pass",
1187
+ "opl-near",
1188
+ "opl-sand-studio",
1189
+ "aww-aardvark-book-club"
1190
+ ],
1191
+ "links": [
1192
+ "https://fonts.googleapis.com/css2?family=League+Spartan:wght@700&family=Figtree:wght@400;600&display=swap"
1193
+ ],
1194
+ "scale": {
1195
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
1196
+ "step-body": "clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem)",
1197
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
1198
+ "step-head": "clamp(2rem, 1.3rem + 3.2vw, 4rem)"
1199
+ }
1200
+ },
1201
+ {
1202
+ "id": "pilcrow-rounded",
1203
+ "name": "Pilcrow Rounded",
1204
+ "class": "rounded-friendly",
1205
+ "display": {
1206
+ "family": "Pilcrow Rounded",
1207
+ "source": "fontshare",
1208
+ "slug": "pilcrow-rounded",
1209
+ "weights": [
1210
+ 700
1211
+ ],
1212
+ "italic": false,
1213
+ "settings": "weight 700 · tracking -0.05em · leading 0.9 · all lowercase, one or two words per line",
1214
+ "css": "<link rel=\"preconnect\" href=\"https://api.fontshare.com\">\n<link rel=\"preconnect\" href=\"https://cdn.fontshare.com\" crossorigin>\n<link href=\"https://api.fontshare.com/v2/css?f[]=pilcrow-rounded@400,500,700&display=swap\" rel=\"stylesheet\">"
1215
+ },
1216
+ "text": {
1217
+ "family": "Pilcrow Rounded",
1218
+ "source": "fontshare",
1219
+ "slug": "pilcrow-rounded",
1220
+ "weights": [
1221
+ 400,
1222
+ 500
1223
+ ],
1224
+ "italic": false,
1225
+ "settings": "400 for body, 500 for emphasis · leading 1.5 · tracking 0; lowercase throughout is fine",
1226
+ "css": "<link rel=\"preconnect\" href=\"https://api.fontshare.com\">\n<link rel=\"preconnect\" href=\"https://cdn.fontshare.com\" crossorigin>\n<link href=\"https://api.fontshare.com/v2/css?f[]=pilcrow-rounded@400,500,700&display=swap\" rel=\"stylesheet\">"
1227
+ },
1228
+ "standsInFor": [
1229
+ "Milling Triplex",
1230
+ "Ease"
1231
+ ],
1232
+ "note": "A sturdy sans with fully rounded stroke ends, set bold and tight in lowercase with one small size for everything else. Suits toys, gadgets, cosmetics and other objects with soft moulded edges.",
1233
+ "seenIn": [
1234
+ "opl-when-you-wish-upon-a-starboy",
1235
+ "opl-anidachi",
1236
+ "aww-artem-shcherbakov"
1237
+ ],
1238
+ "links": [
1239
+ "https://api.fontshare.com/v2/css?f[]=pilcrow-rounded@400,500,700&display=swap"
1240
+ ],
1241
+ "scale": {
1242
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
1243
+ "step-body": "clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem)",
1244
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
1245
+ "step-head": "clamp(2rem, 1.3rem + 3.2vw, 4rem)"
1246
+ }
1247
+ },
1248
+ {
1249
+ "id": "roundo-soft",
1250
+ "name": "Roundo",
1251
+ "class": "rounded-friendly",
1252
+ "display": {
1253
+ "family": "Roundo",
1254
+ "source": "fontshare",
1255
+ "slug": "roundo",
1256
+ "weights": [
1257
+ 500
1258
+ ],
1259
+ "italic": false,
1260
+ "settings": "weight 500 · tracking -0.025em · leading 1.05 · sentence case; colour the type to its section instead of black",
1261
+ "css": "<link rel=\"preconnect\" href=\"https://api.fontshare.com\">\n<link rel=\"preconnect\" href=\"https://cdn.fontshare.com\" crossorigin>\n<link href=\"https://api.fontshare.com/v2/css?f[]=roundo@400,500,600&display=swap\" rel=\"stylesheet\">"
1262
+ },
1263
+ "text": {
1264
+ "family": "Roundo",
1265
+ "source": "fontshare",
1266
+ "slug": "roundo",
1267
+ "weights": [
1268
+ 400,
1269
+ 600
1270
+ ],
1271
+ "italic": false,
1272
+ "settings": "400 for body, 600 for emphasis · leading 1.5 · tracking 0",
1273
+ "css": "<link rel=\"preconnect\" href=\"https://api.fontshare.com\">\n<link rel=\"preconnect\" href=\"https://cdn.fontshare.com\" crossorigin>\n<link href=\"https://api.fontshare.com/v2/css?f[]=roundo@400,500,600&display=swap\" rel=\"stylesheet\">"
1274
+ },
1275
+ "standsInFor": [
1276
+ "Ease",
1277
+ "Open Runde"
1278
+ ],
1279
+ "note": "A rounded geometric sans at medium weight and a generous text size, gentle without looking childish. Suits wellness, home goods, family apps and everyday money tools.",
1280
+ "seenIn": [
1281
+ "opl-anidachi",
1282
+ "opl-billow"
1283
+ ],
1284
+ "links": [
1285
+ "https://api.fontshare.com/v2/css?f[]=roundo@400,500,600&display=swap"
1286
+ ],
1287
+ "scale": {
1288
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
1289
+ "step-body": "clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem)",
1290
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
1291
+ "step-head": "clamp(2rem, 1.3rem + 3.2vw, 4rem)"
1292
+ }
1293
+ },
1294
+ {
1295
+ "id": "chillax-semibold",
1296
+ "name": "Chillax",
1297
+ "class": "rounded-friendly",
1298
+ "display": {
1299
+ "family": "Chillax",
1300
+ "source": "fontshare",
1301
+ "slug": "chillax",
1302
+ "weights": [
1303
+ 600
1304
+ ],
1305
+ "italic": false,
1306
+ "settings": "weight 600 · tracking -0.03em · leading 1.0 · sentence case",
1307
+ "css": "<link rel=\"preconnect\" href=\"https://api.fontshare.com\">\n<link rel=\"preconnect\" href=\"https://cdn.fontshare.com\" crossorigin>\n<link href=\"https://api.fontshare.com/v2/css?f[]=chillax@400,500,600&display=swap\" rel=\"stylesheet\">"
1308
+ },
1309
+ "text": {
1310
+ "family": "Chillax",
1311
+ "source": "fontshare",
1312
+ "slug": "chillax",
1313
+ "weights": [
1314
+ 400,
1315
+ 500
1316
+ ],
1317
+ "italic": false,
1318
+ "settings": "400 for body, 500 for emphasis · leading 1.5 · tracking 0",
1319
+ "css": "<link rel=\"preconnect\" href=\"https://api.fontshare.com\">\n<link rel=\"preconnect\" href=\"https://cdn.fontshare.com\" crossorigin>\n<link href=\"https://api.fontshare.com/v2/css?f[]=chillax@400,500,600&display=swap\" rel=\"stylesheet\">"
1320
+ },
1321
+ "standsInFor": [
1322
+ "SF Pro Rounded",
1323
+ "Open Runde"
1324
+ ],
1325
+ "note": "A soft geometric sans with wide round letters and relaxed joins, warm at semibold and easy at text size. Suits consumer apps, community products, cafes and small friendly brands.",
1326
+ "seenIn": [
1327
+ "opl-uncle-rudy",
1328
+ "opl-mat"
1329
+ ],
1330
+ "links": [
1331
+ "https://api.fontshare.com/v2/css?f[]=chillax@400,500,600&display=swap"
1332
+ ],
1333
+ "scale": {
1334
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
1335
+ "step-body": "clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem)",
1336
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
1337
+ "step-head": "clamp(2rem, 1.3rem + 3.2vw, 4rem)"
1338
+ }
1339
+ },
1340
+ {
1341
+ "id": "gambarino-general",
1342
+ "name": "Gambarino / General Sans",
1343
+ "class": "serif-display",
1344
+ "display": {
1345
+ "family": "Gambarino",
1346
+ "source": "fontshare",
1347
+ "slug": "gambarino",
1348
+ "weights": [
1349
+ 400
1350
+ ],
1351
+ "italic": false,
1352
+ "settings": "weight 400 (single cut) · tracking -0.02em · leading 0.92 · sentence case",
1353
+ "css": "<link rel=\"preconnect\" href=\"https://api.fontshare.com\">\n<link rel=\"preconnect\" href=\"https://cdn.fontshare.com\" crossorigin>\n<link href=\"https://api.fontshare.com/v2/css?f[]=gambarino@400&display=swap\" rel=\"stylesheet\">\n<link href=\"https://api.fontshare.com/v2/css?f[]=general-sans@400,500&display=swap\" rel=\"stylesheet\">"
1354
+ },
1355
+ "text": {
1356
+ "family": "General Sans",
1357
+ "source": "fontshare",
1358
+ "slug": "general-sans",
1359
+ "weights": [
1360
+ 400,
1361
+ 500
1362
+ ],
1363
+ "italic": false,
1364
+ "settings": "400 for body, navigation and buttons, 500 for emphasis · leading 1.5",
1365
+ "css": "<link rel=\"preconnect\" href=\"https://api.fontshare.com\">\n<link rel=\"preconnect\" href=\"https://cdn.fontshare.com\" crossorigin>\n<link href=\"https://api.fontshare.com/v2/css?f[]=gambarino@400&display=swap\" rel=\"stylesheet\">\n<link href=\"https://api.fontshare.com/v2/css?f[]=general-sans@400,500&display=swap\" rel=\"stylesheet\">"
1366
+ },
1367
+ "standsInFor": [
1368
+ "PP Editorial New",
1369
+ "Migra"
1370
+ ],
1371
+ "note": "A narrow, sharp display serif for headlines against a small plain sans: a five-to-one jump with nothing between. Suits agencies, bakeries and restaurants, fashion and editorial brands.",
1372
+ "seenIn": [
1373
+ "aww-hilden-kaira",
1374
+ "opl-tab-kitchen-bakery",
1375
+ "opl-glide-typeface",
1376
+ "aww-milledollars"
1377
+ ],
1378
+ "links": [
1379
+ "https://api.fontshare.com/v2/css?f[]=gambarino@400&display=swap",
1380
+ "https://api.fontshare.com/v2/css?f[]=general-sans@400,500&display=swap"
1381
+ ],
1382
+ "scale": {
1383
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
1384
+ "step-body": "clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem)",
1385
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
1386
+ "step-head": "clamp(2rem, 1.3rem + 3.2vw, 4rem)"
1387
+ }
1388
+ },
1389
+ {
1390
+ "id": "bodoni-jost",
1391
+ "name": "Bodoni Moda / Jost",
1392
+ "class": "serif-display",
1393
+ "display": {
1394
+ "family": "Bodoni Moda",
1395
+ "source": "google",
1396
+ "weights": [
1397
+ 500
1398
+ ],
1399
+ "italic": true,
1400
+ "settings": "weight 500 with optical sizing on · tracking -0.02em · leading 0.95 · uppercase or sentence case; italic for a whole line, never for one word",
1401
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Bodoni+Moda:ital,wght@0,500;1,500&family=Jost:wght@400;500&display=swap\" rel=\"stylesheet\">"
1402
+ },
1403
+ "text": {
1404
+ "family": "Jost",
1405
+ "source": "google",
1406
+ "weights": [
1407
+ 400,
1408
+ 500
1409
+ ],
1410
+ "italic": false,
1411
+ "settings": "400 for body, 500 for emphasis · leading 1.6 · tracking 0.01em",
1412
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Bodoni+Moda:ital,wght@0,500;1,500&family=Jost:wght@400;500&display=swap\" rel=\"stylesheet\">"
1413
+ },
1414
+ "standsInFor": [
1415
+ "TT Ramillas",
1416
+ "Freight Big"
1417
+ ],
1418
+ "note": "A true didone with hairline serifs and vertical stress over a light geometric sans, the classic fashion-magazine pairing. Suits luxury property, jewellery, fragrance and fashion.",
1419
+ "seenIn": [
1420
+ "aww-sobha-privy-collection",
1421
+ "opl-april-leihuanani-evangelista"
1422
+ ],
1423
+ "links": [
1424
+ "https://fonts.googleapis.com/css2?family=Bodoni+Moda:ital,wght@0,500;1,500&family=Jost:wght@400;500&display=swap"
1425
+ ],
1426
+ "scale": {
1427
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
1428
+ "step-body": "clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem)",
1429
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
1430
+ "step-head": "clamp(2rem, 1.3rem + 3.2vw, 4rem)"
1431
+ }
1432
+ },
1433
+ {
1434
+ "id": "imbue-albert",
1435
+ "name": "Imbue / Albert Sans",
1436
+ "class": "serif-display",
1437
+ "display": {
1438
+ "family": "Imbue",
1439
+ "source": "google",
1440
+ "weights": [
1441
+ 400
1442
+ ],
1443
+ "italic": false,
1444
+ "settings": "weight 400 with optical sizing on · tracking -0.01em · leading 0.9 · uppercase, sized so one short word fills its column (6–12vw)",
1445
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Imbue:wght@400&family=Albert+Sans:wght@400;500&display=swap\" rel=\"stylesheet\">"
1446
+ },
1447
+ "text": {
1448
+ "family": "Albert Sans",
1449
+ "source": "google",
1450
+ "weights": [
1451
+ 400,
1452
+ 500
1453
+ ],
1454
+ "italic": false,
1455
+ "settings": "400 for body, 500 for emphasis · leading 1.55 · tracking 0",
1456
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Imbue:wght@400&family=Albert+Sans:wght@400;500&display=swap\" rel=\"stylesheet\">"
1457
+ },
1458
+ "standsInFor": [
1459
+ "Ambroise Francois"
1460
+ ],
1461
+ "note": "A tall, condensed high-contrast serif whose capitals read like a masthead or a shop fascia. Suits residences, hotels, restaurants and wine, where a short name can stand floor to ceiling.",
1462
+ "seenIn": [
1463
+ "aww-era-residence",
1464
+ "opl-le-petit-bleu"
1465
+ ],
1466
+ "links": [
1467
+ "https://fonts.googleapis.com/css2?family=Imbue:wght@400&family=Albert+Sans:wght@400;500&display=swap"
1468
+ ],
1469
+ "scale": {
1470
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
1471
+ "step-body": "clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem)",
1472
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
1473
+ "step-head": "clamp(2rem, 1.3rem + 3.2vw, 4rem)"
1474
+ }
1475
+ },
1476
+ {
1477
+ "id": "erode-sharp",
1478
+ "name": "Erode",
1479
+ "class": "serif-display",
1480
+ "display": {
1481
+ "family": "Erode",
1482
+ "source": "fontshare",
1483
+ "slug": "erode",
1484
+ "weights": [
1485
+ 500
1486
+ ],
1487
+ "italic": false,
1488
+ "settings": "weight 500 · tracking -0.025em · leading 0.95 · sentence case, or tight capitals at 32–40px for a single statement",
1489
+ "css": "<link rel=\"preconnect\" href=\"https://api.fontshare.com\">\n<link rel=\"preconnect\" href=\"https://cdn.fontshare.com\" crossorigin>\n<link href=\"https://api.fontshare.com/v2/css?f[]=erode@400,500,600&display=swap\" rel=\"stylesheet\">"
1490
+ },
1491
+ "text": {
1492
+ "family": "Erode",
1493
+ "source": "fontshare",
1494
+ "slug": "erode",
1495
+ "weights": [
1496
+ 400,
1497
+ 600
1498
+ ],
1499
+ "italic": true,
1500
+ "settings": "400 for body, 600 for emphasis, italic for titles of works · leading 1.5 · tracking 0",
1501
+ "css": "<link rel=\"preconnect\" href=\"https://api.fontshare.com\">\n<link rel=\"preconnect\" href=\"https://cdn.fontshare.com\" crossorigin>\n<link href=\"https://api.fontshare.com/v2/css?f[]=erode@400,500,600&display=swap\" rel=\"stylesheet\">"
1502
+ },
1503
+ "standsInFor": [
1504
+ "Noe Text",
1505
+ "Reckless",
1506
+ "Migra"
1507
+ ],
1508
+ "note": "A serif with chiselled, angular curves and wedge serifs, sharp at display size and firm in text. Suits studios, galleries, advisory firms and written guides.",
1509
+ "seenIn": [
1510
+ "aww-house-of-honey-1",
1511
+ "aww-milledollars",
1512
+ "aww-colonia-zacamil"
1513
+ ],
1514
+ "links": [
1515
+ "https://api.fontshare.com/v2/css?f[]=erode@400,500,600&display=swap"
1516
+ ],
1517
+ "scale": {
1518
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
1519
+ "step-body": "clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem)",
1520
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
1521
+ "step-head": "clamp(2rem, 1.3rem + 3.2vw, 4rem)"
1522
+ }
1523
+ },
1524
+ {
1525
+ "id": "boska-roman-italic",
1526
+ "name": "Boska",
1527
+ "class": "serif-display",
1528
+ "display": {
1529
+ "family": "Boska",
1530
+ "source": "fontshare",
1531
+ "slug": "boska",
1532
+ "weights": [
1533
+ 400
1534
+ ],
1535
+ "italic": true,
1536
+ "settings": "weight 400 · tracking -0.02em · leading 0.95 · roman capitals for the main words with lowercase italic for the connecting words at the same size, or sentence case throughout; centred lines work",
1537
+ "css": "<link rel=\"preconnect\" href=\"https://api.fontshare.com\">\n<link rel=\"preconnect\" href=\"https://cdn.fontshare.com\" crossorigin>\n<link href=\"https://api.fontshare.com/v2/css?f[]=boska@400,500&display=swap\" rel=\"stylesheet\">"
1538
+ },
1539
+ "text": {
1540
+ "family": "Boska",
1541
+ "source": "fontshare",
1542
+ "slug": "boska",
1543
+ "weights": [
1544
+ 400,
1545
+ 500
1546
+ ],
1547
+ "italic": true,
1548
+ "settings": "400 for body, 500 for emphasis · leading 1.5 · tracking 0.005em",
1549
+ "css": "<link rel=\"preconnect\" href=\"https://api.fontshare.com\">\n<link rel=\"preconnect\" href=\"https://cdn.fontshare.com\" crossorigin>\n<link href=\"https://api.fontshare.com/v2/css?f[]=boska@400,500&display=swap\" rel=\"stylesheet\">"
1550
+ },
1551
+ "standsInFor": [
1552
+ "Louize Display",
1553
+ "PP Pangaia"
1554
+ ],
1555
+ "note": "A high-contrast serif with pointed serifs and a lively italic, used roman and italic together at one size. Suits perfume, jewellery, lodges, weddings and other occasions for ceremony.",
1556
+ "seenIn": [
1557
+ "aww-vero-new-york",
1558
+ "opl-eagles-nest",
1559
+ "opl-sarah-matt-wedding"
1560
+ ],
1561
+ "links": [
1562
+ "https://api.fontshare.com/v2/css?f[]=boska@400,500&display=swap"
1563
+ ],
1564
+ "scale": {
1565
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
1566
+ "step-body": "clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem)",
1567
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
1568
+ "step-head": "clamp(2rem, 1.3rem + 3.2vw, 4rem)"
1569
+ }
1570
+ },
1571
+ {
1572
+ "id": "newsreader-light",
1573
+ "name": "Newsreader",
1574
+ "class": "serif-light-large",
1575
+ "display": {
1576
+ "family": "Newsreader",
1577
+ "source": "google",
1578
+ "weights": [
1579
+ 300
1580
+ ],
1581
+ "italic": false,
1582
+ "settings": "weight 300 with optical sizing on · tracking -0.05em · leading 0.9 · sentence case at 12–14vw; chapter headings drop to the text weight at about 30px",
1583
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Newsreader:ital,wght@0,300;0,400;0,500;1,300;1,400;1,500&display=swap\" rel=\"stylesheet\">"
1584
+ },
1585
+ "text": {
1586
+ "family": "Newsreader",
1587
+ "source": "google",
1588
+ "weights": [
1589
+ 400,
1590
+ 500
1591
+ ],
1592
+ "italic": true,
1593
+ "settings": "400 for body, 500 for emphasis, italic for titles · leading 1.6 · tracking 0",
1594
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Newsreader:ital,wght@0,300;0,400;0,500;1,300;1,400;1,500&display=swap\" rel=\"stylesheet\">"
1595
+ },
1596
+ "standsInFor": [
1597
+ "Self Modern",
1598
+ "PP Editorial New Light"
1599
+ ],
1600
+ "note": "One news serif with optical sizes: light and very tight when huge, open and bookish at 18px. Suits long-form stories, culture pieces, journals and research write-ups.",
1601
+ "seenIn": [
1602
+ "opl-the-queue",
1603
+ "opl-leedlime",
1604
+ "opl-le-petit-bleu"
1605
+ ],
1606
+ "links": [
1607
+ "https://fonts.googleapis.com/css2?family=Newsreader:ital,wght@0,300;0,400;0,500;1,300;1,400;1,500&display=swap"
1608
+ ],
1609
+ "scale": {
1610
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
1611
+ "step-body": "clamp(1.125rem, 1.05rem + 0.3vw, 1.3125rem)",
1612
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
1613
+ "step-head": "clamp(2rem, 1.3rem + 3.2vw, 4rem)"
1614
+ }
1615
+ },
1616
+ {
1617
+ "id": "zodiak-hairline",
1618
+ "name": "Zodiak / Hanken Grotesk",
1619
+ "class": "serif-light-large",
1620
+ "display": {
1621
+ "family": "Zodiak",
1622
+ "source": "fontshare",
1623
+ "slug": "zodiak",
1624
+ "weights": [
1625
+ 100,
1626
+ 300
1627
+ ],
1628
+ "italic": false,
1629
+ "settings": "weight 100 above 96px, 300 for 28–36px statements · tracking -0.01em · leading 1.0 · capitals for the headline, sentence case for statements; never bold",
1630
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link rel=\"preconnect\" href=\"https://api.fontshare.com\">\n<link rel=\"preconnect\" href=\"https://cdn.fontshare.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Hanken+Grotesk:wght@400;500&display=swap\" rel=\"stylesheet\">\n<link href=\"https://api.fontshare.com/v2/css?f[]=zodiak@100,300&display=swap\" rel=\"stylesheet\">"
1631
+ },
1632
+ "text": {
1633
+ "family": "Hanken Grotesk",
1634
+ "source": "google",
1635
+ "weights": [
1636
+ 400,
1637
+ 500
1638
+ ],
1639
+ "italic": false,
1640
+ "settings": "400 for body, 500 for emphasis · leading 1.5 · tracking 0",
1641
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link rel=\"preconnect\" href=\"https://api.fontshare.com\">\n<link rel=\"preconnect\" href=\"https://cdn.fontshare.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Hanken+Grotesk:wght@400;500&display=swap\" rel=\"stylesheet\">\n<link href=\"https://api.fontshare.com/v2/css?f[]=zodiak@100,300&display=swap\" rel=\"stylesheet\">"
1642
+ },
1643
+ "standsInFor": [
1644
+ "PP Fragment",
1645
+ "PP Editorial New Ultralight",
1646
+ "Cardinal Classic Long"
1647
+ ],
1648
+ "note": "Hairline serif capitals set large enough that the thin strokes read as drawing, with a small neutral sans for everything practical. Suits lodges, spas, architecture and interiors; keep it on flat pale or dark fields where the strokes have full contrast.",
1649
+ "seenIn": [
1650
+ "aww-tengile-malamala-collection",
1651
+ "opl-deeo-studio-2",
1652
+ "aww-normal-is-boring",
1653
+ "aww-white-desert"
1654
+ ],
1655
+ "links": [
1656
+ "https://fonts.googleapis.com/css2?family=Hanken+Grotesk:wght@400;500&display=swap",
1657
+ "https://api.fontshare.com/v2/css?f[]=zodiak@100,300&display=swap"
1658
+ ],
1659
+ "scale": {
1660
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
1661
+ "step-body": "clamp(1.125rem, 1.05rem + 0.3vw, 1.3125rem)",
1662
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
1663
+ "step-head": "clamp(2rem, 1.3rem + 3.2vw, 4rem)"
1664
+ }
1665
+ },
1666
+ {
1667
+ "id": "sentient-light",
1668
+ "name": "Sentient",
1669
+ "class": "serif-light-large",
1670
+ "display": {
1671
+ "family": "Sentient",
1672
+ "source": "fontshare",
1673
+ "slug": "sentient",
1674
+ "weights": [
1675
+ 300
1676
+ ],
1677
+ "italic": false,
1678
+ "settings": "weight 300 · tracking -0.015em · leading 1.0 · sentence case; about 8vw for the headline, 40px for statements",
1679
+ "css": "<link rel=\"preconnect\" href=\"https://api.fontshare.com\">\n<link rel=\"preconnect\" href=\"https://cdn.fontshare.com\" crossorigin>\n<link href=\"https://api.fontshare.com/v2/css?f[]=sentient@300,400,500&display=swap\" rel=\"stylesheet\">"
1680
+ },
1681
+ "text": {
1682
+ "family": "Sentient",
1683
+ "source": "fontshare",
1684
+ "slug": "sentient",
1685
+ "weights": [
1686
+ 400,
1687
+ 500
1688
+ ],
1689
+ "italic": true,
1690
+ "settings": "400 for body, 500 for emphasis · leading 1.55 · tracking 0",
1691
+ "css": "<link rel=\"preconnect\" href=\"https://api.fontshare.com\">\n<link rel=\"preconnect\" href=\"https://cdn.fontshare.com\" crossorigin>\n<link href=\"https://api.fontshare.com/v2/css?f[]=sentient@300,400,500&display=swap\" rel=\"stylesheet\">"
1692
+ },
1693
+ "standsInFor": [
1694
+ "Season Mix",
1695
+ "Exposure",
1696
+ "Self Modern"
1697
+ ],
1698
+ "note": "A soft, low-contrast serif in a light weight, more book than fashion magazine, large and calm in sentence case. Suits outdoor and craft products, restaurants, cameras and slow consumer goods.",
1699
+ "seenIn": [
1700
+ "aww-seasats",
1701
+ "opl-poetry-camera",
1702
+ "opl-le-petit-bleu"
1703
+ ],
1704
+ "links": [
1705
+ "https://api.fontshare.com/v2/css?f[]=sentient@300,400,500&display=swap"
1706
+ ],
1707
+ "scale": {
1708
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
1709
+ "step-body": "clamp(1.125rem, 1.05rem + 0.3vw, 1.3125rem)",
1710
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
1711
+ "step-head": "clamp(2rem, 1.3rem + 3.2vw, 4rem)"
1712
+ }
1713
+ },
1714
+ {
1715
+ "id": "eb-garamond-quiet",
1716
+ "name": "EB Garamond",
1717
+ "class": "serif-text",
1718
+ "display": {
1719
+ "family": "EB Garamond",
1720
+ "source": "google",
1721
+ "weights": [
1722
+ 400
1723
+ ],
1724
+ "italic": true,
1725
+ "settings": "weight 400, italic for the title · tracking -0.01em · leading 1.1 · sentence case or all lowercase; the largest size stays near 40px",
1726
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=EB+Garamond:ital,wght@0,400;0,500;1,400;1,500&display=swap\" rel=\"stylesheet\">"
1727
+ },
1728
+ "text": {
1729
+ "family": "EB Garamond",
1730
+ "source": "google",
1731
+ "weights": [
1732
+ 400,
1733
+ 500
1734
+ ],
1735
+ "italic": true,
1736
+ "settings": "400 for body, 500 for emphasis · leading 1.5 · tracking 0",
1737
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=EB+Garamond:ital,wght@0,400;0,500;1,400;1,500&display=swap\" rel=\"stylesheet\">"
1738
+ },
1739
+ "standsInFor": [
1740
+ "Edict",
1741
+ "Louize"
1742
+ ],
1743
+ "note": "A humanist Garamond in roman and italic at two modest sizes, with no capitals and no bold. Suits set designers, antique dealers, wine, publishers and portfolios that whisper.",
1744
+ "seenIn": [
1745
+ "aww-depo-luxe",
1746
+ "opl-hebbia"
1747
+ ],
1748
+ "links": [
1749
+ "https://fonts.googleapis.com/css2?family=EB+Garamond:ital,wght@0,400;0,500;1,400;1,500&display=swap"
1750
+ ],
1751
+ "scale": {
1752
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
1753
+ "step-body": "clamp(1.125rem, 1.05rem + 0.3vw, 1.3125rem)",
1754
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
1755
+ "step-head": "clamp(2rem, 1.3rem + 3.2vw, 4rem)"
1756
+ }
1757
+ },
1758
+ {
1759
+ "id": "literata-book",
1760
+ "name": "Literata",
1761
+ "class": "serif-text",
1762
+ "display": {
1763
+ "family": "Literata",
1764
+ "source": "google",
1765
+ "weights": [
1766
+ 500
1767
+ ],
1768
+ "italic": false,
1769
+ "settings": "weight 500 with optical sizing on · tracking -0.02em · leading 1.05 · sentence case",
1770
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Literata:ital,wght@0,400;0,500;0,600;1,400;1,500;1,600&display=swap\" rel=\"stylesheet\">"
1771
+ },
1772
+ "text": {
1773
+ "family": "Literata",
1774
+ "source": "google",
1775
+ "weights": [
1776
+ 400,
1777
+ 600
1778
+ ],
1779
+ "italic": true,
1780
+ "settings": "400 for body, 600 for emphasis, italic for titles · leading 1.6 · tracking 0",
1781
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Literata:ital,wght@0,400;0,500;0,600;1,400;1,500;1,600&display=swap\" rel=\"stylesheet\">"
1782
+ },
1783
+ "standsInFor": [
1784
+ "Albra Book",
1785
+ "Signifier",
1786
+ "Domaine Text"
1787
+ ],
1788
+ "note": "A sturdy screen-reading serif with a large x-height; headings are simply the text face at medium weight and a larger size. Suits essays, reports, newsletters and knowledge products.",
1789
+ "seenIn": [
1790
+ "opl-the-new-industrials",
1791
+ "aww-mosbys-files",
1792
+ "opl-monte"
1793
+ ],
1794
+ "links": [
1795
+ "https://fonts.googleapis.com/css2?family=Literata:ital,wght@0,400;0,500;0,600;1,400;1,500;1,600&display=swap"
1796
+ ],
1797
+ "scale": {
1798
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
1799
+ "step-body": "clamp(1.125rem, 1.05rem + 0.3vw, 1.3125rem)",
1800
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
1801
+ "step-head": "clamp(2rem, 1.3rem + 3.2vw, 4rem)"
1802
+ }
1803
+ },
1804
+ {
1805
+ "id": "stix-plain-roman",
1806
+ "name": "STIX Two Text",
1807
+ "class": "serif-text",
1808
+ "display": {
1809
+ "family": "STIX Two Text",
1810
+ "source": "google",
1811
+ "weights": [
1812
+ 400
1813
+ ],
1814
+ "italic": true,
1815
+ "settings": "weight 400 · tracking -0.026em · leading 1.1 · sentence case at 2.6–3.6vw; one running line may be set in italic capitals",
1816
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=STIX+Two+Text:ital,wght@0,400;0,600;1,400;1,600&display=swap\" rel=\"stylesheet\">"
1817
+ },
1818
+ "text": {
1819
+ "family": "STIX Two Text",
1820
+ "source": "google",
1821
+ "weights": [
1822
+ 400,
1823
+ 600
1824
+ ],
1825
+ "italic": false,
1826
+ "settings": "400 for body, 600 for emphasis · leading 1.45 · tracking 0",
1827
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=STIX+Two+Text:ital,wght@0,400;0,600;1,400;1,600&display=swap\" rel=\"stylesheet\">"
1828
+ },
1829
+ "standsInFor": [
1830
+ "Untitled Serif",
1831
+ "Times New Roman",
1832
+ "FK Roman Standard"
1833
+ ],
1834
+ "note": "The plain Times-style roman of a typed document, slightly tightened and never larger than a few vw. Suits vehicles and tools presented dryly, artists' pages, investment memos and anything meant to look undesigned on purpose.",
1835
+ "seenIn": [
1836
+ "opl-transport",
1837
+ "opl-shawn-golden",
1838
+ "aww-dragonfly-redux"
1839
+ ],
1840
+ "links": [
1841
+ "https://fonts.googleapis.com/css2?family=STIX+Two+Text:ital,wght@0,400;0,600;1,400;1,600&display=swap"
1842
+ ],
1843
+ "scale": {
1844
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
1845
+ "step-body": "clamp(1.125rem, 1.05rem + 0.3vw, 1.3125rem)",
1846
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
1847
+ "step-head": "clamp(2rem, 1.3rem + 3.2vw, 4rem)"
1848
+ }
1849
+ },
1850
+ {
1851
+ "id": "young-source",
1852
+ "name": "Young Serif / Source Serif 4",
1853
+ "class": "serif-text",
1854
+ "display": {
1855
+ "family": "Young Serif",
1856
+ "source": "google",
1857
+ "weights": [
1858
+ 400
1859
+ ],
1860
+ "italic": false,
1861
+ "settings": "weight 400 (single heavy cut) · tracking -0.02em · leading 0.95 · sentence case",
1862
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Young+Serif:wght@400&family=Source+Serif+4:ital,wght@0,400;0,600;1,400;1,600&display=swap\" rel=\"stylesheet\">"
1863
+ },
1864
+ "text": {
1865
+ "family": "Source Serif 4",
1866
+ "source": "google",
1867
+ "weights": [
1868
+ 400,
1869
+ 600
1870
+ ],
1871
+ "italic": true,
1872
+ "settings": "400 for body, 600 for emphasis, italic for quotations · leading 1.55 · tracking 0",
1873
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Young+Serif:wght@400&family=Source+Serif+4:ital,wght@0,400;0,600;1,400;1,600&display=swap\" rel=\"stylesheet\">"
1874
+ },
1875
+ "standsInFor": [
1876
+ "FS Kim",
1877
+ "Recoleta",
1878
+ "Gelica"
1879
+ ],
1880
+ "note": "A heavy, round old-style headline face with soft bracketed serifs over a clear transitional text serif. Suits essays, food, independent publishers and personal sites that want warmth with weight.",
1881
+ "seenIn": [
1882
+ "opl-applied-imagination",
1883
+ "opl-flowjam-2",
1884
+ "opl-marina-rachello"
1885
+ ],
1886
+ "links": [
1887
+ "https://fonts.googleapis.com/css2?family=Young+Serif:wght@400&family=Source+Serif+4:ital,wght@0,400;0,600;1,400;1,600&display=swap"
1888
+ ],
1889
+ "scale": {
1890
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
1891
+ "step-body": "clamp(1.125rem, 1.05rem + 0.3vw, 1.3125rem)",
1892
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
1893
+ "step-head": "clamp(2rem, 1.3rem + 3.2vw, 4rem)"
1894
+ }
1895
+ },
1896
+ {
1897
+ "id": "zilla-slab-even",
1898
+ "name": "Zilla Slab",
1899
+ "class": "slab",
1900
+ "display": {
1901
+ "family": "Zilla Slab",
1902
+ "source": "google",
1903
+ "weights": [
1904
+ 600
1905
+ ],
1906
+ "italic": false,
1907
+ "settings": "weight 600 · tracking -0.025em · leading 1.0 · sentence case",
1908
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Zilla+Slab:ital,wght@0,400;0,500;0,600;1,400;1,500;1,600&display=swap\" rel=\"stylesheet\">"
1909
+ },
1910
+ "text": {
1911
+ "family": "Zilla Slab",
1912
+ "source": "google",
1913
+ "weights": [
1914
+ 400,
1915
+ 500
1916
+ ],
1917
+ "italic": true,
1918
+ "settings": "400 for body, 500 for emphasis · leading 1.5 · tracking 0",
1919
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Zilla+Slab:ital,wght@0,400;0,500;0,600;1,400;1,500;1,600&display=swap\" rel=\"stylesheet\">"
1920
+ },
1921
+ "standsInFor": [
1922
+ "Museo Slab"
1923
+ ],
1924
+ "note": "A contemporary slab with smooth curves and unbracketed serifs, even enough to carry headings and paragraphs alike. Suits developer tools, personal sites, open-source and nonprofit projects.",
1925
+ "seenIn": [
1926
+ "opl-justin-lerner"
1927
+ ],
1928
+ "links": [
1929
+ "https://fonts.googleapis.com/css2?family=Zilla+Slab:ital,wght@0,400;0,500;0,600;1,400;1,500;1,600&display=swap"
1930
+ ],
1931
+ "scale": {
1932
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
1933
+ "step-body": "clamp(1.125rem, 1.05rem + 0.3vw, 1.3125rem)",
1934
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
1935
+ "step-head": "clamp(2rem, 1.3rem + 3.2vw, 4rem)"
1936
+ }
1937
+ },
1938
+ {
1939
+ "id": "besley-franklin",
1940
+ "name": "Besley / Libre Franklin",
1941
+ "class": "slab",
1942
+ "display": {
1943
+ "family": "Besley",
1944
+ "source": "google",
1945
+ "weights": [
1946
+ 800
1947
+ ],
1948
+ "italic": false,
1949
+ "settings": "weight 800 · tracking -0.02em · leading 0.95 · sentence case or uppercase",
1950
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Besley:wght@800&family=Libre+Franklin:wght@400;600&display=swap\" rel=\"stylesheet\">"
1951
+ },
1952
+ "text": {
1953
+ "family": "Libre Franklin",
1954
+ "source": "google",
1955
+ "weights": [
1956
+ 400,
1957
+ 600
1958
+ ],
1959
+ "italic": false,
1960
+ "settings": "400 for body, 600 for emphasis · leading 1.5 · tracking 0",
1961
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Besley:wght@800&family=Libre+Franklin:wght@400;600&display=swap\" rel=\"stylesheet\">"
1962
+ },
1963
+ "standsInFor": [
1964
+ "FS Kim",
1965
+ "Museo Slab"
1966
+ ],
1967
+ "note": "A fat Clarendon with ball terminals and bracketed slabs over a plain gothic, the look of a nineteenth-century bill poster. Suits breweries, barbers, markets, fairs and heritage goods.",
1968
+ "seenIn": [
1969
+ "opl-applied-imagination",
1970
+ "opl-justin-lerner"
1971
+ ],
1972
+ "links": [
1973
+ "https://fonts.googleapis.com/css2?family=Besley:wght@800&family=Libre+Franklin:wght@400;600&display=swap"
1974
+ ],
1975
+ "scale": {
1976
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
1977
+ "step-body": "clamp(1.125rem, 1.05rem + 0.3vw, 1.3125rem)",
1978
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
1979
+ "step-head": "clamp(2rem, 1.3rem + 3.2vw, 4rem)"
1980
+ }
1981
+ },
1982
+ {
1983
+ "id": "rokkitt-literata",
1984
+ "name": "Rokkitt / Literata",
1985
+ "class": "slab",
1986
+ "display": {
1987
+ "family": "Rokkitt",
1988
+ "source": "google",
1989
+ "weights": [
1990
+ 800
1991
+ ],
1992
+ "italic": false,
1993
+ "settings": "weight 800 · tracking -0.01em · leading 0.85 · uppercase, sized by cap height (about 14vw)",
1994
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Rokkitt:wght@800&family=Literata:ital,wght@0,400;0,600;1,400;1,600&display=swap\" rel=\"stylesheet\">"
1995
+ },
1996
+ "text": {
1997
+ "family": "Literata",
1998
+ "source": "google",
1999
+ "weights": [
2000
+ 400,
2001
+ 600
2002
+ ],
2003
+ "italic": true,
2004
+ "settings": "400 for body, 600 for emphasis · leading 1.6 · tracking 0",
2005
+ "css": "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Rokkitt:wght@800&family=Literata:ital,wght@0,400;0,600;1,400;1,600&display=swap\" rel=\"stylesheet\">"
2006
+ },
2007
+ "standsInFor": [
2008
+ "Albra Book"
2009
+ ],
2010
+ "note": "Narrow geometric slab capitals as a tall title block, then a bookish serif for a long essay beneath. Suits manufacturing, trades, manifestos and industrial history.",
2011
+ "seenIn": [
2012
+ "opl-the-new-industrials"
2013
+ ],
2014
+ "links": [
2015
+ "https://fonts.googleapis.com/css2?family=Rokkitt:wght@800&family=Literata:ital,wght@0,400;0,600;1,400;1,600&display=swap"
2016
+ ],
2017
+ "scale": {
2018
+ "step-small": "clamp(0.8125rem, 0.79rem + 0.1vw, 0.875rem)",
2019
+ "step-body": "clamp(1.125rem, 1.05rem + 0.3vw, 1.3125rem)",
2020
+ "step-lead": "clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem)",
2021
+ "step-head": "clamp(2rem, 1.3rem + 3.2vw, 4rem)"
2022
+ }
2023
+ }
2024
+ ]