kasaframe 0.1.4 → 0.1.5

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 (294) hide show
  1. package/NOTICE +298 -0
  2. package/README.md +16 -3
  3. package/docs/AGENTS.md +1 -1
  4. package/package.json +1 -1
  5. package/packages/cli/src/commands/doctor.ts +15 -2
  6. package/packages/cli/src/commands/fonts.ts +118 -0
  7. package/packages/cli/src/commands/update.ts +66 -0
  8. package/packages/cli/src/fonts.ts +405 -0
  9. package/packages/cli/src/kf.ts +5 -0
  10. package/packages/cli/src/update.ts +250 -0
  11. package/packages/plan/src/asks.ts +1 -1
  12. package/packages/plan/src/themes.ts +8 -2
  13. package/packages/themes/kit/THEME-MAKE.md +2 -2
  14. package/packages/themes/kit/fonts/display.json +3517 -0
  15. package/packages/themes/kit/fonts/sans.json +5155 -0
  16. package/packages/themes/kit/fonts/serif.json +5229 -0
  17. package/packages/themes/kit/fonts.json +243 -79
  18. package/packages/themes/package.json +3 -1
  19. package/packages/themes/src/fontfile.ts +183 -0
  20. package/packages/themes/src/fonts.ts +296 -0
  21. package/packages/themes/src/index.ts +10 -2
  22. package/packages/themes/src/look.ts +34 -8
  23. package/packages/themes/src/types.ts +5 -0
  24. package/packages/themes/src/vary.ts +35 -34
  25. package/presets/kawaii-pastel.json +2 -2
  26. package/skills/kasaframe/SKILL.md +1 -0
  27. package/themes/blueprint/sample/style.json +5 -5
  28. package/themes/blueprint/style.json +5 -5
  29. package/themes/blueprint/theme.json +3 -1
  30. package/themes/blueprint/variants/deep-rose-suit.json +1 -1
  31. package/themes/blueprint/variants/navy-coral-2.json +1 -1
  32. package/themes/blueprint/variants/navy-coral-suit.json +1 -1
  33. package/themes/blueprint/variants/navy-orange-2.json +1 -1
  34. package/themes/blueprint/variants/navy-orange-suit.json +1 -1
  35. package/themes/cartography/sample/style.json +2 -2
  36. package/themes/cartography/style.json +2 -2
  37. package/themes/cartography/theme.json +3 -1
  38. package/themes/cartography/variants/deep-plum.json +1 -1
  39. package/themes/cartography/variants/frost-teal.json +1 -1
  40. package/themes/cartography/variants/navy-green.json +1 -1
  41. package/themes/circuit-board/sample/style.json +2 -2
  42. package/themes/circuit-board/style.json +2 -2
  43. package/themes/circuit-board/theme.json +3 -1
  44. package/themes/circuit-board/variants/dusk-gold-pretendard.json +1 -1
  45. package/themes/circuit-board/variants/navy-gold-grain.json +1 -1
  46. package/themes/circuit-board/variants/wine-gold-pretendard.json +1 -1
  47. package/themes/clay-toy/sample/style.json +2 -2
  48. package/themes/clay-toy/style.json +2 -2
  49. package/themes/clay-toy/theme.json +3 -1
  50. package/themes/clay-toy/variants/blush-coral-grain.json +1 -1
  51. package/themes/clay-toy/variants/chalk-teal.json +1 -1
  52. package/themes/clay-toy/variants/frost-sky.json +1 -1
  53. package/themes/clay-toy/variants/frost-teal.json +1 -1
  54. package/themes/clay-toy/variants/lilac-plum-round.json +1 -1
  55. package/themes/clay-toy/variants/lilac-plum.json +1 -1
  56. package/themes/clay-toy/variants/sage-indigo.json +1 -1
  57. package/themes/conveyor-factory/sample/style.json +3 -3
  58. package/themes/conveyor-factory/style.json +3 -3
  59. package/themes/conveyor-factory/theme.json +3 -1
  60. package/themes/conveyor-factory/variants/cocoa-gold.json +1 -1
  61. package/themes/conveyor-factory/variants/navy-gold.json +1 -1
  62. package/themes/conveyor-factory/variants/slate-amber-2.json +1 -1
  63. package/themes/conveyor-factory/variants/slate-amber-suit.json +1 -1
  64. package/themes/conveyor-factory/variants/slate-gold-bold.json +1 -1
  65. package/themes/data-journal/theme.json +3 -1
  66. package/themes/data-journal/variants/deep-coral.json +1 -1
  67. package/themes/data-journal/variants/navy-lime.json +1 -1
  68. package/themes/data-journal/variants/wine-indigo.json +1 -1
  69. package/themes/debug-hud/sample/style.json +1 -1
  70. package/themes/debug-hud/style.json +1 -1
  71. package/themes/debug-hud/theme.json +2 -1
  72. package/themes/debug-hud/variants/cocoa-teal.json +2 -2
  73. package/themes/debug-hud/variants/deep-teal-scan.json +2 -2
  74. package/themes/debug-hud/variants/dusk-plum.json +2 -2
  75. package/themes/debug-hud/variants/forest-lime.json +2 -2
  76. package/themes/debug-hud/variants/slate-green.json +2 -2
  77. package/themes/debug-hud/variants/wine-gold.json +2 -2
  78. package/themes/depth-flight/sample/style.json +1 -1
  79. package/themes/depth-flight/style.json +1 -1
  80. package/themes/depth-flight/theme.json +3 -1
  81. package/themes/depth-flight/variants/cocoa-cyan.json +1 -1
  82. package/themes/depth-flight/variants/cocoa-violet.json +1 -1
  83. package/themes/depth-flight/variants/deep-sky.json +1 -1
  84. package/themes/depth-flight/variants/forest-blue.json +1 -1
  85. package/themes/depth-flight/variants/navy-sky-grain.json +1 -1
  86. package/themes/depth-flight/variants/navy-sky.json +1 -1
  87. package/themes/depth-flight/variants/night-teal.json +1 -1
  88. package/themes/depth-flight/variants/slate-indigo.json +1 -1
  89. package/themes/depth-flight/variants/slate-violet.json +1 -1
  90. package/themes/film-reel/sample/style.json +2 -2
  91. package/themes/film-reel/style.json +2 -2
  92. package/themes/film-reel/theme.json +3 -1
  93. package/themes/film-reel/variants/chalk-pink.json +1 -1
  94. package/themes/film-reel/variants/lilac-gold.json +1 -1
  95. package/themes/film-reel/variants/lilac-violet.json +1 -1
  96. package/themes/glass-light/sample/style.json +1 -1
  97. package/themes/glass-light/style.json +1 -1
  98. package/themes/glass-light/theme.json +3 -1
  99. package/themes/glass-light/variants/blush-pink.json +1 -1
  100. package/themes/glass-light/variants/blush-plum.json +1 -1
  101. package/themes/glass-light/variants/cream-violet.json +1 -1
  102. package/themes/glass-light/variants/frost-sky-suit.json +1 -1
  103. package/themes/glass-light/variants/frost-sky.json +1 -1
  104. package/themes/glass-light/variants/sage-green.json +1 -1
  105. package/themes/ink-wash/sample/style.json +3 -3
  106. package/themes/ink-wash/style.json +3 -3
  107. package/themes/ink-wash/theme.json +3 -1
  108. package/themes/iso-diorama/sample/style.json +1 -1
  109. package/themes/iso-diorama/style.json +1 -1
  110. package/themes/iso-diorama/theme.json +3 -1
  111. package/themes/iso-diorama/variants/chalk-plum.json +1 -1
  112. package/themes/iso-diorama/variants/cocoa-indigo.json +1 -1
  113. package/themes/iso-diorama/variants/dusk-blue.json +1 -1
  114. package/themes/iso-diorama/variants/dusk-coral.json +1 -1
  115. package/themes/iso-diorama/variants/dusk-jade.json +1 -1
  116. package/themes/iso-diorama/variants/forest-cyan.json +1 -1
  117. package/themes/iso-diorama/variants/frost-green.json +1 -1
  118. package/themes/iso-diorama/variants/frost-teal.json +1 -1
  119. package/themes/iso-diorama/variants/navy-amber.json +1 -1
  120. package/themes/isotype/sample/style.json +2 -2
  121. package/themes/isotype/style.json +2 -2
  122. package/themes/isotype/theme.json +2 -1
  123. package/themes/isotype/variants/blush-rose.json +1 -1
  124. package/themes/isotype/variants/chalk-coral.json +1 -1
  125. package/themes/isotype/variants/chalk-orange.json +1 -1
  126. package/themes/isotype/variants/frost-amber.json +1 -1
  127. package/themes/isotype/variants/frost-coral.json +1 -1
  128. package/themes/isotype/variants/frost-orange.json +1 -1
  129. package/themes/isotype/variants/sand-amber.json +1 -1
  130. package/themes/kawaii-sticker/sample/style.json +2 -2
  131. package/themes/kawaii-sticker/style.json +2 -2
  132. package/themes/kawaii-sticker/theme.json +3 -1
  133. package/themes/kawaii-sticker/variants/cream-gold.json +1 -1
  134. package/themes/kawaii-sticker/variants/dusk-green.json +1 -1
  135. package/themes/kawaii-sticker/variants/dusk-indigo.json +1 -1
  136. package/themes/kawaii-sticker/variants/dusk-sky.json +1 -1
  137. package/themes/kawaii-sticker/variants/dusk-teal.json +1 -1
  138. package/themes/kawaii-sticker/variants/frost-blue.json +1 -1
  139. package/themes/kawaii-sticker/variants/frost-plum.json +1 -1
  140. package/themes/kawaii-sticker/variants/lilac-violet.json +1 -1
  141. package/themes/kawaii-sticker/variants/navy-gold.json +1 -1
  142. package/themes/kawaii-sticker/variants/navy-plum.json +1 -1
  143. package/themes/lab-notebook/sample/style.json +3 -3
  144. package/themes/lab-notebook/style.json +3 -3
  145. package/themes/lab-notebook/theme.json +2 -1
  146. package/themes/lab-notebook/variants/blush-orange.json +1 -1
  147. package/themes/lab-notebook/variants/chalk-coral.json +1 -1
  148. package/themes/lab-notebook/variants/chalk-orange.json +1 -1
  149. package/themes/lab-notebook/variants/chalk-rose.json +1 -1
  150. package/themes/lab-notebook/variants/lilac-rose.json +1 -1
  151. package/themes/lab-notebook/variants/sage-rose.json +1 -1
  152. package/themes/lab-notebook/variants/sand-orange.json +1 -1
  153. package/themes/lab-notebook/variants/snow-orange.json +1 -1
  154. package/themes/lab-notebook/variants/snow-rose.json +1 -1
  155. package/themes/manga-panel/sample/style.json +3 -3
  156. package/themes/manga-panel/style.json +3 -3
  157. package/themes/manga-panel/theme.json +3 -1
  158. package/themes/manga-panel/variants/chalk-cyan-dots.json +1 -1
  159. package/themes/manga-panel/variants/chalk-rose.json +1 -1
  160. package/themes/manga-panel/variants/snow-cyan.json +1 -1
  161. package/themes/manga-panel/variants/snow-magenta-dots.json +1 -1
  162. package/themes/marble-run/sample/style.json +2 -2
  163. package/themes/marble-run/style.json +2 -2
  164. package/themes/marble-run/theme.json +3 -1
  165. package/themes/marble-run/variants/slate-orange.json +1 -1
  166. package/themes/neon-sign/sample/style.json +2 -2
  167. package/themes/neon-sign/style.json +2 -2
  168. package/themes/neon-sign/theme.json +2 -1
  169. package/themes/neon-sign/variants/dusk-plum.json +1 -1
  170. package/themes/neon-sign/variants/forest-magenta.json +1 -1
  171. package/themes/neon-sign/variants/night-pink.json +1 -1
  172. package/themes/neon-sign/variants/night-violet.json +1 -1
  173. package/themes/neon-sign/variants/slate-violet.json +1 -1
  174. package/themes/newspaper/sample/style.json +2 -2
  175. package/themes/newspaper/style.json +2 -2
  176. package/themes/newspaper/theme.json +2 -1
  177. package/themes/newspaper/variants/blush-amber.json +1 -1
  178. package/themes/newspaper/variants/chalk-magenta.json +1 -1
  179. package/themes/newspaper/variants/frost-sky.json +1 -1
  180. package/themes/newspaper/variants/lilac-green.json +1 -1
  181. package/themes/newspaper/variants/sage-lime.json +1 -1
  182. package/themes/og-measure/THEME.md +32 -6
  183. package/themes/og-measure/effects.ts +219 -115
  184. package/themes/og-measure/sample/assets/brand/og-logo.svg +11 -11
  185. package/themes/og-measure/sample/lib/data.ts +6 -0
  186. package/themes/og-measure/sample/scenes/end.ts +14 -10
  187. package/themes/og-measure/sample/scenes/gather.ts +12 -1
  188. package/themes/og-measure/sample/scenes/models.ts +13 -2
  189. package/themes/og-measure/sample/scenes/one.ts +8 -6
  190. package/themes/og-measure/sample/scenes/price.ts +20 -3
  191. package/themes/og-measure/sample/style.json +30 -35
  192. package/themes/og-measure/slots.ts +25 -30
  193. package/themes/og-measure/still.png +0 -0
  194. package/themes/og-measure/style.json +30 -35
  195. package/themes/og-measure/theme.json +64 -49
  196. package/themes/og-measure/variants/snow-blue.json +90 -0
  197. package/themes/orbit-system/sample/style.json +3 -3
  198. package/themes/orbit-system/style.json +3 -3
  199. package/themes/orbit-system/theme.json +3 -1
  200. package/themes/orbit-system/variants/cocoa-amber.json +1 -1
  201. package/themes/orbit-system/variants/cocoa-cyan.json +1 -1
  202. package/themes/orbit-system/variants/dusk-magenta.json +1 -1
  203. package/themes/orbit-system/variants/dusk-violet.json +1 -1
  204. package/themes/orbit-system/variants/forest-coral.json +1 -1
  205. package/themes/orbit-system/variants/wine-amber.json +1 -1
  206. package/themes/orbit-system/variants/wine-magenta.json +1 -1
  207. package/themes/origami-fold/sample/style.json +1 -1
  208. package/themes/origami-fold/style.json +1 -1
  209. package/themes/origami-fold/theme.json +3 -1
  210. package/themes/origami-fold/variants/deep-amber-sunflower.json +1 -1
  211. package/themes/origami-fold/variants/deep-orange.json +1 -1
  212. package/themes/origami-fold/variants/forest-coral.json +1 -1
  213. package/themes/origami-fold/variants/forest-pink.json +1 -1
  214. package/themes/origami-fold/variants/frost-amber-paper.json +1 -1
  215. package/themes/origami-fold/variants/sage-coral-sunflower.json +1 -1
  216. package/themes/origami-fold/variants/sage-coral.json +1 -1
  217. package/themes/origami-fold/variants/sage-pink-round.json +1 -1
  218. package/themes/origami-fold/variants/sage-pink.json +1 -1
  219. package/themes/paper-cutout/sample/style.json +2 -2
  220. package/themes/paper-cutout/style.json +2 -2
  221. package/themes/paper-cutout/theme.json +3 -1
  222. package/themes/paper-cutout/variants/blush-violet.json +1 -1
  223. package/themes/paper-cutout/variants/frost-lime.json +1 -1
  224. package/themes/paper-cutout/variants/lilac-gold.json +1 -1
  225. package/themes/paper-cutout/variants/sage-cyan.json +1 -1
  226. package/themes/paper-cutout/variants/sage-green.json +1 -1
  227. package/themes/paper-cutout/variants/sage-pink.json +1 -1
  228. package/themes/paper-cutout/variants/sand-blue.json +1 -1
  229. package/themes/pixel-quest/theme.json +2 -1
  230. package/themes/receipt/sample/style.json +2 -2
  231. package/themes/receipt/style.json +2 -2
  232. package/themes/riso-zine/sample/style.json +2 -2
  233. package/themes/riso-zine/style.json +2 -2
  234. package/themes/riso-zine/theme.json +3 -1
  235. package/themes/riso-zine/variants/chalk-lime.json +1 -1
  236. package/themes/riso-zine/variants/frost-green.json +1 -1
  237. package/themes/riso-zine/variants/lilac-plum.json +1 -1
  238. package/themes/riso-zine/variants/lilac-violet.json +1 -1
  239. package/themes/server-hall/sample/style.json +2 -2
  240. package/themes/server-hall/style.json +2 -2
  241. package/themes/server-hall/theme.json +3 -1
  242. package/themes/server-hall/variants/night-indigo.json +1 -1
  243. package/themes/server-hall/variants/wine-plum.json +1 -1
  244. package/themes/subway-map/sample/style.json +2 -2
  245. package/themes/subway-map/style.json +2 -2
  246. package/themes/subway-map/theme.json +3 -1
  247. package/themes/subway-map/variants/deep-green.json +1 -1
  248. package/themes/subway-map/variants/deep-teal.json +1 -1
  249. package/themes/subway-map/variants/frost-jade.json +1 -1
  250. package/themes/subway-map/variants/frost-teal.json +1 -1
  251. package/themes/subway-map/variants/slate-green.json +1 -1
  252. package/themes/subway-map/variants/snow-jade.json +1 -1
  253. package/themes/swiss-poster/sample/style.json +2 -2
  254. package/themes/swiss-poster/style.json +2 -2
  255. package/themes/swiss-poster/theme.json +3 -1
  256. package/themes/swiss-poster/variants/chalk-plum.json +1 -1
  257. package/themes/swiss-poster/variants/cocoa-cyan.json +1 -1
  258. package/themes/swiss-poster/variants/dusk-magenta.json +1 -1
  259. package/themes/swiss-poster/variants/frost-indigo.json +1 -1
  260. package/themes/swiss-poster/variants/slate-orange.json +1 -1
  261. package/themes/water-works/sample/style.json +1 -1
  262. package/themes/water-works/style.json +1 -1
  263. package/themes/water-works/theme.json +3 -1
  264. package/themes/water-works/variants/chalk-cyan.json +1 -1
  265. package/themes/water-works/variants/frost-indigo.json +1 -1
  266. package/themes/water-works/variants/sand-amber.json +1 -1
  267. package/themes/water-works/variants/sand-plum.json +1 -1
  268. package/themes/whiteboard/sample/style.json +2 -2
  269. package/themes/whiteboard/style.json +2 -2
  270. package/themes/whiteboard/theme.json +3 -1
  271. package/themes/whiteboard/variants/chalk-coral.json +1 -1
  272. package/themes/whiteboard/variants/cream-lime.json +1 -1
  273. package/themes/whiteboard/variants/frost-teal.json +1 -1
  274. package/themes/whiteboard/variants/lilac-indigo.json +1 -1
  275. package/themes/whiteboard/variants/sage-plum.json +1 -1
  276. package/themes/whiteboard/variants/snow-cyan.json +1 -1
  277. package/themes/whiteboard/variants/snow-green.json +1 -1
  278. package/themes/whiteboard/variants/snow-magenta.json +1 -1
  279. package/themes/og-measure/sample/assets/brand/og-logo-full.svg +0 -12
  280. package/themes/og-measure/variants/chalk-orange.json +0 -102
  281. package/themes/og-measure/variants/cocoa-amber.json +0 -138
  282. package/themes/og-measure/variants/cocoa-cyan.json +0 -138
  283. package/themes/og-measure/variants/cocoa-gold.json +0 -129
  284. package/themes/og-measure/variants/cream-lime.json +0 -137
  285. package/themes/og-measure/variants/deep-jade.json +0 -100
  286. package/themes/og-measure/variants/dusk-violet.json +0 -133
  287. package/themes/og-measure/variants/forest-cyan.json +0 -123
  288. package/themes/og-measure/variants/frost-amber.json +0 -129
  289. package/themes/og-measure/variants/frost-cyan.json +0 -133
  290. package/themes/og-measure/variants/lilac-plum.json +0 -127
  291. package/themes/og-measure/variants/lilac-violet.json +0 -139
  292. package/themes/og-measure/variants/sage-green.json +0 -137
  293. package/themes/og-measure/variants/wine-jade.json +0 -127
  294. package/themes/og-measure/variants/wine-plum.json +0 -127
@@ -16,46 +16,54 @@
16
16
  ],
17
17
  "vary": {
18
18
  "scheme": [
19
- "light",
20
- "dark"
19
+ "dark",
20
+ "light"
21
21
  ],
22
- "hue": [
23
- [
24
- 50,
25
- 330
22
+ "palettes": {
23
+ "light": {
24
+ "bg": "#FFFFFF",
25
+ "surface": "#F8FAFC",
26
+ "raised": "#F1F5F9",
27
+ "line": "#E2E8F0",
28
+ "ink": "#020817",
29
+ "inkSoft": "#020817",
30
+ "dim": "#64748B",
31
+ "accent": "#006FD6",
32
+ "accentSoft": "rgba(0, 111, 214, 0.45)",
33
+ "accentText": "#01509D",
34
+ "onAccent": "#FFFFFF",
35
+ "tint": "rgba(0, 111, 214, 0.1)",
36
+ "success": "#10B981",
37
+ "danger": "#EF4444",
38
+ "warning": "#F59E0B",
39
+ "bar": "rgba(100, 116, 139, 0.28)"
40
+ }
41
+ },
42
+ "bg": {
43
+ "dark": [
44
+ 0.1445,
45
+ 0.1964
46
+ ],
47
+ "light": [
48
+ 0.9842,
49
+ 1.0
26
50
  ]
27
- ],
28
- "chroma": [
29
- 0.8,
30
- 1.2
31
- ],
32
- "tint": [
33
- 0,
34
- 0.025
51
+ },
52
+ "keep": [
53
+ "accent",
54
+ "accentSoft",
55
+ "accentText",
56
+ "onAccent",
57
+ "tint",
58
+ "success",
59
+ "danger",
60
+ "warning"
35
61
  ],
36
62
  "fonts": [
37
- "base",
38
- "plex",
39
- "pretendard-jetbrains",
40
- "suit",
41
- "wanted",
42
- "gothic-a1",
43
- "plex-mono"
63
+ "base"
44
64
  ],
45
65
  "texture": [
46
66
  "none"
47
- ],
48
- "stroke": [
49
- 0.8,
50
- 1.5
51
- ],
52
- "radius": [
53
- 0,
54
- 16
55
- ],
56
- "tempo": [
57
- 0.9,
58
- 1.2
59
67
  ]
60
68
  },
61
69
  "tags": {
@@ -65,14 +73,21 @@
65
73
  "신뢰",
66
74
  "기술적"
67
75
  ],
68
- "light": "light",
76
+ "light": "dark",
69
77
  "use": [
70
78
  "측정",
71
79
  "벤치마크",
72
80
  "데이터",
73
81
  "비교",
74
82
  "API",
75
- "설명"
83
+ "설명",
84
+ "소개",
85
+ "OpenGateway",
86
+ "오픈게이트웨이",
87
+ "OG",
88
+ "게이트웨이",
89
+ "LLM",
90
+ "모델"
76
91
  ],
77
92
  "dims": "2D"
78
93
  },
@@ -80,31 +95,31 @@
80
95
  {
81
96
  "name": "graphPaper",
82
97
  "kind": "layer",
83
- "does": "측정 바탕 — 흰 모눈과 아주 옅은 파란 주사선이 천천히 지나간다",
84
- "use": "const paint = graphPaper(root, { phase: ctx.from }) // 모눈이 흐르고 주사선이 지나간다"
98
+ "does": "측정 바탕 — 바탕색 위에 구분선 색의 옅은 모눈이 천천히 흐른다(그라데이션·빛 번짐 없음)",
99
+ "use": "const paint = graphPaper(root, { phase: ctx.from }) // 모눈이 흐른다 — 박 사이는 내용이 메운다"
85
100
  },
86
101
  {
87
102
  "name": "callLine",
88
103
  "kind": "layer",
89
- "does": "실제 호출 한 줄 — 주소가 박마다 한 조각씩 붙고 모델·보낼 글이 찍히고, 보낸 뒤 경과 시간이 실제 속도로 굴러 잰 ms 에 멈추며 상태·첫 토큰·받은 글·사용량이 붙는다",
104
+ "does": "실제 호출 한 줄 — 응답 패널(면 12px)에 주소가 박마다 한 조각씩 붙고 모델·보낼 글이 찍히고, 보낸 뒤 경과 시간이 실제 속도로 굴러 잰 ms 에 멈추며(색만 150ms 로 파랑) 상태·첫 토큰·받은 글·사용량이 붙는다",
90
105
  "use": "const paint = callLine(stage, { x: 90, y: 140, w: 1740, at: 0, url: [\"apis.opengateway.ai\", \"/v1\", \"/chat\", \"/completions\"], urlAt: [b[0], b[1], b[2], b[3]], model, modelAt: b[4], prompt, promptAt: b[5], sendAt: b[6], status: 200, ms: call.ttft_ms, answer: call.text, usage, usageAt: b[10] })"
91
106
  },
92
107
  {
93
108
  "name": "rawLog",
94
109
  "kind": "layer",
95
- "does": "원자료 로그 — 줄이 들어온 박에 맨 아래 붙고 한 줄씩 밀려 오르며, 정규식이 잡은 숫자에 파란 칸",
110
+ "does": "원자료 로그 — 코드 블록(면 12px)에 줄이 들어온 박에 맨 아래 붙고 한 줄씩 밀려 오르며, 정규식이 잡은 숫자에 고름 칠(파랑 /10 알약)",
96
111
  "use": "const paint = rawLog(stage, { x: 70, y: 150, w: 1080, rows: 14, lines, times, pick: /ttft_ms=(\\d+)/, size: 34 })"
97
112
  },
98
113
  {
99
114
  "name": "samplePlot",
100
115
  "kind": "layer",
101
- "does": "샘플 점 그림 — 재 온 값이 꽂히는 시각에 점이 커졌다 자리 잡고 가운데값 눈금·숫자가 따라 미끄러진다",
116
+ "does": "샘플 점 그림 — 재 온 값이 꽂히는 시각에 점이 6px 올라와 서고 가운데값 눈금·숫자가 300ms 로 따라 미끄러진다(눈금·막대는 각짐)",
102
117
  "use": "const paint = samplePlot(stage, { x: 1200, y: 160, w: 650, rows, min: 450, max: 1050, unit: \"ms\", ticks: [500, 750, 1000], best: 0, size: 34 })"
103
118
  },
104
119
  {
105
120
  "name": "pickFly",
106
121
  "kind": "layer",
107
- "does": "뽑힌 숫자 — 로그 줄의 숫자가 떠올라 호를 그리며 점 그림 자리로 날아가 꽂힌다(박마다 큰 움직임)",
122
+ "does": "뽑힌 숫자 — 로그 줄의 숫자가 고름 칠 알약째 떠올라 호를 그리며 점 그림 자리로 300ms 감속으로 날아가 꽂힌다(박마다 큰 움직임)",
108
123
  "use": "const paint = pickFly(stage, { items: [{ at: b[0], text: \"746\", from: { x: 760, y: 200 }, to: { x: 1500, y: 250 } }] })"
109
124
  },
110
125
  {
@@ -116,26 +131,26 @@
116
131
  {
117
132
  "name": "rankBars",
118
133
  "kind": "layer",
119
- "does": "막대 — 박마다 하나씩 값만큼 자라고(best 만 OG 파랑), delta 칩이 그 박에 튀어나온다",
134
+ "does": "막대 — 각진 막대가 박마다 하나씩 값만큼 300ms 로 자라고(best 만 브랜드 파랑), 차이 배지(테두리만)가 그 박에 나타난다",
120
135
  "use": "const paint = rankBars(stage, { x: 90, y: 400, w: 1740, items: [{ label, value, at: b[2] }, { label, value, at: b[3], delta: \"+80.5ms\", deltaAt: b[5] }], max: 820, best: 0, unit: \"ms\" })"
121
136
  },
122
137
  {
123
138
  "name": "stamp",
124
139
  "kind": "layer",
125
- "does": "끝 도장 — 「측정 날짜 · 호출 N번 · $비용 · 키 하나」와 OG 로고가 쾅 찍힌다(비용은 첫 유효 자리까지)",
126
- "use": "const paint = stamp(stage, { x: 960, y: 975, at: b[14], date, calls: 18, cost, logo: ctx.asset(\"brand/og-logo.svg\") })"
140
+ "does": "끝 도장 — 구분선 한 줄 위에 「측정 날짜 · 호출 N번 · $비용 · 키 하나」와 마스터 로고(한 색)가 선다, 상자 없이(비용은 첫 유효 자리까지)",
141
+ "use": "const paint = stamp(stage, { x: 960, y: 975, at: b[14], date, calls: 18, cost, logo: logoSvg, logoInk: ctx.style.scheme === \"dark\" ? \"#FFFFFF\" : \"#000000\" }) // import logoSvg from \"../assets/brand/og-logo.svg?raw\""
127
142
  },
128
143
  {
129
144
  "name": "flag",
130
145
  "kind": "layer",
131
- "does": "칩 — 짧은 낱말·잰 값 하나가 크게 튀어 들어온다",
132
- "use": "const paint = flag(stage, { x: 90, y: 60, text: \"실측\", at: 0 })"
146
+ "does": "배지 — 짧은 낱말·잰 값 하나가 6px 올라오며 220ms 로 나타난다. 속을 칠하지 않고 흐린 테두리와 글자색만(accent 파랑·plain 글 잉크·soft 흐린 글)",
147
+ "use": "const paint = flag(stage, { x: 90, y: 60, text: \"실측\", at: 0, tone: \"accent\" })"
133
148
  },
134
149
  {
135
150
  "name": "trackCam",
136
151
  "kind": "value",
137
- "does": "계측 카메라 — 샷이 바뀌면 220ms 로 옮기며 툭(kick) 치고 사이에는 선다. 샷은 드러냄·결과가 서는 순간에만(긴 로그가 잘리지 않게 배율 1–1.1), 쉬지 않는 몫은 카운터·로그·막대",
138
- "use": "applyStyle(stage, trackCam(t, { shots: [{ at: 0, kick: 0.1 }, { at: bar[1], zoom: 1.04 }], scene: ctx.id })) // stage: transform-origin 0 0"
152
+ "does": "계측 카메라 — 샷이 바뀌면 300ms 스프링(살짝 넘었다 돌아옴)으로 옮기고 사이에는 선다. kick 은 그만큼 가까이에서 시작해 300ms 감속으로 물러나 앉기. 샷은 드러냄·결과가 서는 순간에만(배율 1–1.1)",
153
+ "use": "applyStyle(stage, trackCam(t, { shots: [{ at: 0, kick: 0.04 }, { at: bar[1], zoom: 1.04 }], scene: ctx.id })) // stage: transform-origin 0 0"
139
154
  }
140
155
  ]
141
- }
156
+ }
@@ -0,0 +1,90 @@
1
+ {
2
+ "id": "snow-blue",
3
+ "world": "og-measure",
4
+ "name": "Snow Blue",
5
+ "desc": "새하얀 바탕에 파랑 강조",
6
+ "params": {
7
+ "scheme": "light",
8
+ "bgL": 0.9989,
9
+ "tint": {
10
+ "h": 89.8756,
11
+ "c": 0
12
+ },
13
+ "inkL": 0.1363,
14
+ "hue": 254.7525,
15
+ "chroma": 1,
16
+ "fonts": "base",
17
+ "texture": {
18
+ "kind": "none",
19
+ "amount": 0
20
+ },
21
+ "stroke": 1,
22
+ "radius": null,
23
+ "tempo": 1,
24
+ "density": 1
25
+ },
26
+ "style": {
27
+ "scheme": "light",
28
+ "colors": {
29
+ "bg": "#FFFFFF",
30
+ "surface": "#F8FAFC",
31
+ "raised": "#F1F5F9",
32
+ "line": "#E2E8F0",
33
+ "ink": "#020817",
34
+ "inkSoft": "#020817",
35
+ "dim": "#64748B",
36
+ "accent": "#006FD6",
37
+ "accentSoft": "rgba(0, 111, 214, 0.45)",
38
+ "accentText": "#01509D",
39
+ "onAccent": "#FFFFFF",
40
+ "tint": "rgba(0, 111, 214, 0.1)",
41
+ "success": "#10B981",
42
+ "danger": "#EF4444",
43
+ "warning": "#F59E0B",
44
+ "bar": "rgba(100, 116, 139, 0.28)"
45
+ },
46
+ "look": {}
47
+ },
48
+ "tags": {
49
+ "mood": [
50
+ "정밀",
51
+ "차분한",
52
+ "신뢰",
53
+ "기술적",
54
+ "밝은",
55
+ "차가운"
56
+ ],
57
+ "light": "light",
58
+ "use": [
59
+ "측정",
60
+ "벤치마크",
61
+ "데이터",
62
+ "비교",
63
+ "API",
64
+ "설명",
65
+ "소개",
66
+ "OpenGateway",
67
+ "오픈게이트웨이",
68
+ "OG",
69
+ "게이트웨이",
70
+ "LLM",
71
+ "모델"
72
+ ],
73
+ "dims": "2D"
74
+ },
75
+ "check": {
76
+ "ok": true,
77
+ "at": "2026-10-12",
78
+ "colors": {
79
+ "ink": 19.94,
80
+ "dim": 4.75,
81
+ "success~danger": 0.081,
82
+ "success~warning": 0.089,
83
+ "danger~warning": 0.139,
84
+ "accent~danger": 0.229,
85
+ "accent~ink": 0.426
86
+ },
87
+ "frame": "kf check 통과 — 표준 장면 0–4초",
88
+ "pattern": "hook-number.counter"
89
+ }
90
+ }
@@ -32,17 +32,17 @@
32
32
  "faces": [
33
33
  {
34
34
  "family": "Space Grotesk",
35
- "src": "https://cdn.jsdelivr.net/gh/google/fonts@main/ofl/spacegrotesk/SpaceGrotesk%5Bwght%5D.ttf",
35
+ "src": "https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/spacegrotesk/SpaceGrotesk%5Bwght%5D.ttf",
36
36
  "weight": "300 700"
37
37
  },
38
38
  {
39
39
  "family": "Space Mono",
40
- "src": "https://cdn.jsdelivr.net/gh/google/fonts@main/ofl/spacemono/SpaceMono-Regular.ttf",
40
+ "src": "https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/spacemono/SpaceMono-Regular.ttf",
41
41
  "weight": "400"
42
42
  },
43
43
  {
44
44
  "family": "Space Mono",
45
- "src": "https://cdn.jsdelivr.net/gh/google/fonts@main/ofl/spacemono/SpaceMono-Bold.ttf",
45
+ "src": "https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/spacemono/SpaceMono-Bold.ttf",
46
46
  "weight": "700"
47
47
  },
48
48
  {
@@ -32,17 +32,17 @@
32
32
  "faces": [
33
33
  {
34
34
  "family": "Space Grotesk",
35
- "src": "https://cdn.jsdelivr.net/gh/google/fonts@main/ofl/spacegrotesk/SpaceGrotesk%5Bwght%5D.ttf",
35
+ "src": "https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/spacegrotesk/SpaceGrotesk%5Bwght%5D.ttf",
36
36
  "weight": "300 700"
37
37
  },
38
38
  {
39
39
  "family": "Space Mono",
40
- "src": "https://cdn.jsdelivr.net/gh/google/fonts@main/ofl/spacemono/SpaceMono-Regular.ttf",
40
+ "src": "https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/spacemono/SpaceMono-Regular.ttf",
41
41
  "weight": "400"
42
42
  },
43
43
  {
44
44
  "family": "Space Mono",
45
- "src": "https://cdn.jsdelivr.net/gh/google/fonts@main/ofl/spacemono/SpaceMono-Bold.ttf",
45
+ "src": "https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/spacemono/SpaceMono-Bold.ttf",
46
46
  "weight": "700"
47
47
  },
48
48
  {
@@ -47,7 +47,9 @@
47
47
  "orbit",
48
48
  "plex",
49
49
  "suit",
50
- "pretendard-geist"
50
+ "pretendard-geist",
51
+ "tag:futuristic",
52
+ "tag:sans+grotesque"
51
53
  ],
52
54
  "texture": [
53
55
  "none",
@@ -65,7 +65,7 @@
65
65
  },
66
66
  {
67
67
  "family": "JetBrains Mono",
68
- "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5/files/jetbrains-mono-latin-wght-normal.woff2",
68
+ "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5.3.0/files/jetbrains-mono-latin-wght-normal.woff2",
69
69
  "weight": "100 800"
70
70
  }
71
71
  ]
@@ -65,7 +65,7 @@
65
65
  },
66
66
  {
67
67
  "family": "JetBrains Mono",
68
- "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5/files/jetbrains-mono-latin-wght-normal.woff2",
68
+ "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5.3.0/files/jetbrains-mono-latin-wght-normal.woff2",
69
69
  "weight": "100 800"
70
70
  }
71
71
  ]
@@ -65,7 +65,7 @@
65
65
  },
66
66
  {
67
67
  "family": "JetBrains Mono",
68
- "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5/files/jetbrains-mono-latin-wght-normal.woff2",
68
+ "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5.3.0/files/jetbrains-mono-latin-wght-normal.woff2",
69
69
  "weight": "100 800"
70
70
  }
71
71
  ]
@@ -65,7 +65,7 @@
65
65
  },
66
66
  {
67
67
  "family": "JetBrains Mono",
68
- "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5/files/jetbrains-mono-latin-wght-normal.woff2",
68
+ "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5.3.0/files/jetbrains-mono-latin-wght-normal.woff2",
69
69
  "weight": "100 800"
70
70
  }
71
71
  ]
@@ -65,7 +65,7 @@
65
65
  },
66
66
  {
67
67
  "family": "JetBrains Mono",
68
- "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5/files/jetbrains-mono-latin-wght-normal.woff2",
68
+ "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5.3.0/files/jetbrains-mono-latin-wght-normal.woff2",
69
69
  "weight": "100 800"
70
70
  }
71
71
  ]
@@ -65,7 +65,7 @@
65
65
  },
66
66
  {
67
67
  "family": "JetBrains Mono",
68
- "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5/files/jetbrains-mono-latin-wght-normal.woff2",
68
+ "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5.3.0/files/jetbrains-mono-latin-wght-normal.woff2",
69
69
  "weight": "100 800"
70
70
  }
71
71
  ]
@@ -65,7 +65,7 @@
65
65
  },
66
66
  {
67
67
  "family": "JetBrains Mono",
68
- "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5/files/jetbrains-mono-latin-wght-normal.woff2",
68
+ "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5.3.0/files/jetbrains-mono-latin-wght-normal.woff2",
69
69
  "weight": "100 800"
70
70
  }
71
71
  ]
@@ -42,7 +42,7 @@
42
42
  },
43
43
  {
44
44
  "family": "JetBrains Mono",
45
- "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5/files/jetbrains-mono-latin-wght-normal.woff2",
45
+ "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5.3.0/files/jetbrains-mono-latin-wght-normal.woff2",
46
46
  "weight": "100 800"
47
47
  },
48
48
  {
@@ -42,7 +42,7 @@
42
42
  },
43
43
  {
44
44
  "family": "JetBrains Mono",
45
- "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5/files/jetbrains-mono-latin-wght-normal.woff2",
45
+ "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5.3.0/files/jetbrains-mono-latin-wght-normal.woff2",
46
46
  "weight": "100 800"
47
47
  },
48
48
  {
@@ -44,7 +44,9 @@
44
44
  "gowun-dodum",
45
45
  "jua",
46
46
  "do-hyeon",
47
- "suit"
47
+ "suit",
48
+ "tag:calm+friendly",
49
+ "tag:serif+calm"
48
50
  ],
49
51
  "texture": [
50
52
  "none",
@@ -65,7 +65,7 @@
65
65
  },
66
66
  {
67
67
  "family": "JetBrains Mono",
68
- "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5/files/jetbrains-mono-latin-wght-normal.woff2",
68
+ "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5.3.0/files/jetbrains-mono-latin-wght-normal.woff2",
69
69
  "weight": "100 800"
70
70
  }
71
71
  ]
@@ -65,7 +65,7 @@
65
65
  },
66
66
  {
67
67
  "family": "JetBrains Mono",
68
- "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5/files/jetbrains-mono-latin-wght-normal.woff2",
68
+ "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5.3.0/files/jetbrains-mono-latin-wght-normal.woff2",
69
69
  "weight": "100 800"
70
70
  }
71
71
  ]
@@ -65,7 +65,7 @@
65
65
  },
66
66
  {
67
67
  "family": "JetBrains Mono",
68
- "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5/files/jetbrains-mono-latin-wght-normal.woff2",
68
+ "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5.3.0/files/jetbrains-mono-latin-wght-normal.woff2",
69
69
  "weight": "100 800"
70
70
  }
71
71
  ]
@@ -65,7 +65,7 @@
65
65
  },
66
66
  {
67
67
  "family": "JetBrains Mono",
68
- "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5/files/jetbrains-mono-latin-wght-normal.woff2",
68
+ "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5.3.0/files/jetbrains-mono-latin-wght-normal.woff2",
69
69
  "weight": "100 800"
70
70
  }
71
71
  ]
@@ -65,7 +65,7 @@
65
65
  },
66
66
  {
67
67
  "family": "JetBrains Mono",
68
- "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5/files/jetbrains-mono-latin-wght-normal.woff2",
68
+ "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5.3.0/files/jetbrains-mono-latin-wght-normal.woff2",
69
69
  "weight": "100 800"
70
70
  }
71
71
  ]
@@ -65,7 +65,7 @@
65
65
  },
66
66
  {
67
67
  "family": "JetBrains Mono",
68
- "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5/files/jetbrains-mono-latin-wght-normal.woff2",
68
+ "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5.3.0/files/jetbrains-mono-latin-wght-normal.woff2",
69
69
  "weight": "100 800"
70
70
  }
71
71
  ]
@@ -65,7 +65,7 @@
65
65
  },
66
66
  {
67
67
  "family": "JetBrains Mono",
68
- "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5/files/jetbrains-mono-latin-wght-normal.woff2",
68
+ "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5.3.0/files/jetbrains-mono-latin-wght-normal.woff2",
69
69
  "weight": "100 800"
70
70
  }
71
71
  ]
@@ -65,7 +65,7 @@
65
65
  },
66
66
  {
67
67
  "family": "JetBrains Mono",
68
- "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5/files/jetbrains-mono-latin-wght-normal.woff2",
68
+ "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5.3.0/files/jetbrains-mono-latin-wght-normal.woff2",
69
69
  "weight": "100 800"
70
70
  }
71
71
  ]
@@ -65,7 +65,7 @@
65
65
  },
66
66
  {
67
67
  "family": "JetBrains Mono",
68
- "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5/files/jetbrains-mono-latin-wght-normal.woff2",
68
+ "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5.3.0/files/jetbrains-mono-latin-wght-normal.woff2",
69
69
  "weight": "100 800"
70
70
  }
71
71
  ]
@@ -33,7 +33,7 @@
33
33
  "faces": [
34
34
  {
35
35
  "family": "Do Hyeon",
36
- "src": "https://cdn.jsdelivr.net/gh/google/fonts@main/ofl/dohyeon/DoHyeon-Regular.ttf",
36
+ "src": "https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/dohyeon/DoHyeon-Regular.ttf",
37
37
  "weight": "400"
38
38
  },
39
39
  {
@@ -43,7 +43,7 @@
43
43
  },
44
44
  {
45
45
  "family": "IBM Plex Mono",
46
- "src": "https://cdn.jsdelivr.net/gh/google/fonts@main/ofl/ibmplexmono/IBMPlexMono-SemiBold.ttf",
46
+ "src": "https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/ibmplexmono/IBMPlexMono-SemiBold.ttf",
47
47
  "weight": "600"
48
48
  }
49
49
  ]
@@ -33,7 +33,7 @@
33
33
  "faces": [
34
34
  {
35
35
  "family": "Do Hyeon",
36
- "src": "https://cdn.jsdelivr.net/gh/google/fonts@main/ofl/dohyeon/DoHyeon-Regular.ttf",
36
+ "src": "https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/dohyeon/DoHyeon-Regular.ttf",
37
37
  "weight": "400"
38
38
  },
39
39
  {
@@ -43,7 +43,7 @@
43
43
  },
44
44
  {
45
45
  "family": "IBM Plex Mono",
46
- "src": "https://cdn.jsdelivr.net/gh/google/fonts@main/ofl/ibmplexmono/IBMPlexMono-SemiBold.ttf",
46
+ "src": "https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/ibmplexmono/IBMPlexMono-SemiBold.ttf",
47
47
  "weight": "600"
48
48
  }
49
49
  ]
@@ -50,7 +50,9 @@
50
50
  "gasoek",
51
51
  "sunflower",
52
52
  "wanted",
53
- "bagel"
53
+ "bagel",
54
+ "tag:display+playful",
55
+ "tag:hand"
54
56
  ],
55
57
  "texture": [
56
58
  "none"
@@ -66,7 +66,7 @@
66
66
  },
67
67
  {
68
68
  "family": "JetBrains Mono",
69
- "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5/files/jetbrains-mono-latin-wght-normal.woff2",
69
+ "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5.3.0/files/jetbrains-mono-latin-wght-normal.woff2",
70
70
  "weight": "100 800"
71
71
  }
72
72
  ]
@@ -66,7 +66,7 @@
66
66
  },
67
67
  {
68
68
  "family": "JetBrains Mono",
69
- "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5/files/jetbrains-mono-latin-wght-normal.woff2",
69
+ "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5.3.0/files/jetbrains-mono-latin-wght-normal.woff2",
70
70
  "weight": "100 800"
71
71
  }
72
72
  ]
@@ -66,7 +66,7 @@
66
66
  },
67
67
  {
68
68
  "family": "JetBrains Mono",
69
- "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5/files/jetbrains-mono-latin-wght-normal.woff2",
69
+ "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5.3.0/files/jetbrains-mono-latin-wght-normal.woff2",
70
70
  "weight": "100 800"
71
71
  }
72
72
  ]
@@ -66,7 +66,7 @@
66
66
  },
67
67
  {
68
68
  "family": "JetBrains Mono",
69
- "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5/files/jetbrains-mono-latin-wght-normal.woff2",
69
+ "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5.3.0/files/jetbrains-mono-latin-wght-normal.woff2",
70
70
  "weight": "100 800"
71
71
  }
72
72
  ]
@@ -66,7 +66,7 @@
66
66
  },
67
67
  {
68
68
  "family": "JetBrains Mono",
69
- "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5/files/jetbrains-mono-latin-wght-normal.woff2",
69
+ "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5.3.0/files/jetbrains-mono-latin-wght-normal.woff2",
70
70
  "weight": "100 800"
71
71
  }
72
72
  ]