kasaframe 0.1.4 → 0.1.6

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 (374) hide show
  1. package/NOTICE +311 -0
  2. package/README.md +18 -5
  3. package/docs/AGENTS.md +2 -1
  4. package/package.json +1 -1
  5. package/packages/adapters/src/project.ts +2 -0
  6. package/packages/check/package.json +1 -0
  7. package/packages/check/src/check.ts +8 -2
  8. package/packages/check/src/rules/frames.ts +4 -5
  9. package/packages/cli/src/commands/doctor.ts +15 -2
  10. package/packages/cli/src/commands/fonts.ts +118 -0
  11. package/packages/cli/src/commands/make.ts +15 -5
  12. package/packages/cli/src/commands/render.ts +34 -7
  13. package/packages/cli/src/commands/update.ts +66 -0
  14. package/packages/cli/src/fonts.ts +405 -0
  15. package/packages/cli/src/kf.ts +5 -0
  16. package/packages/cli/src/mix.ts +66 -4
  17. package/packages/cli/src/segments.ts +1 -1
  18. package/packages/cli/src/sfx.ts +429 -0
  19. package/packages/cli/src/update.ts +250 -0
  20. package/packages/core/src/frame.ts +7 -4
  21. package/packages/core/src/index.ts +3 -1
  22. package/packages/core/src/project.ts +19 -0
  23. package/packages/core/src/sfx.ts +70 -0
  24. package/packages/director/src/assemble.ts +7 -4
  25. package/packages/director/src/index.ts +1 -1
  26. package/packages/director/src/pattern.ts +2 -0
  27. package/packages/director/src/scene.ts +14 -5
  28. package/packages/director/src/transitions.ts +21 -8
  29. package/packages/motion/src/enter.ts +7 -1
  30. package/packages/motion/src/impact.ts +5 -2
  31. package/packages/motion/src/moves/dress.ts +15 -2
  32. package/packages/motion/src/moves/menu.ts +11 -5
  33. package/packages/motion/src/transition.ts +3 -1
  34. package/packages/motion/src/transition3d/index.ts +3 -1
  35. package/packages/motion/src/transition3d/live.ts +5 -3
  36. package/packages/patterns/src/bars/rank.ts +6 -7
  37. package/packages/patterns/src/before-after/shrink.ts +3 -4
  38. package/packages/patterns/src/before-after/strike.ts +4 -5
  39. package/packages/patterns/src/code/terminal.ts +25 -16
  40. package/packages/patterns/src/end/lockup.ts +13 -10
  41. package/packages/patterns/src/end/slam.ts +7 -5
  42. package/packages/patterns/src/hook-number/counter.ts +15 -9
  43. package/packages/patterns/src/hook-number/slam.ts +6 -8
  44. package/packages/patterns/src/kit.ts +281 -58
  45. package/packages/patterns/src/limit/gauge.ts +16 -11
  46. package/packages/patterns/src/quote/karaoke.ts +17 -12
  47. package/packages/patterns/src/sfx.ts +80 -0
  48. package/packages/patterns/src/term-reveal/chips.ts +24 -10
  49. package/packages/patterns/src/term-reveal/expand.ts +17 -13
  50. package/packages/patterns/src/title/mask.ts +9 -8
  51. package/packages/patterns/src/title/slam.ts +1 -1
  52. package/packages/patterns/src/types.ts +1 -0
  53. package/packages/plan/src/asks.ts +1 -1
  54. package/packages/plan/src/brief.ts +5 -2
  55. package/packages/plan/src/themes.ts +8 -2
  56. package/packages/themes/kit/THEME-MAKE.md +2 -2
  57. package/packages/themes/kit/fonts/display.json +3517 -0
  58. package/packages/themes/kit/fonts/sans.json +5155 -0
  59. package/packages/themes/kit/fonts/serif.json +5229 -0
  60. package/packages/themes/kit/fonts.json +243 -79
  61. package/packages/themes/package.json +3 -1
  62. package/packages/themes/src/fontfile.ts +183 -0
  63. package/packages/themes/src/fonts.ts +296 -0
  64. package/packages/themes/src/index.ts +32 -2
  65. package/packages/themes/src/look.ts +34 -8
  66. package/packages/themes/src/slots.ts +32 -2
  67. package/packages/themes/src/types.ts +33 -0
  68. package/packages/themes/src/vary.ts +35 -34
  69. package/presets/kawaii-pastel.json +2 -2
  70. package/sfx/README.md +82 -0
  71. package/sfx/click/appear.wav +0 -0
  72. package/sfx/click/burst.wav +0 -0
  73. package/sfx/click/drop.wav +0 -0
  74. package/sfx/click/end.wav +0 -0
  75. package/sfx/click/hop.wav +0 -0
  76. package/sfx/click/land.wav +0 -0
  77. package/sfx/click/select.wav +0 -0
  78. package/sfx/click/stick.wav +0 -0
  79. package/sfx/click/tick.wav +0 -0
  80. package/sfx/click/type.wav +0 -0
  81. package/sfx/click/whoosh.wav +0 -0
  82. package/sfx/pop/appear.wav +0 -0
  83. package/sfx/pop/burst.wav +0 -0
  84. package/sfx/pop/drop.wav +0 -0
  85. package/sfx/pop/end.wav +0 -0
  86. package/sfx/pop/hop.wav +0 -0
  87. package/sfx/pop/land.wav +0 -0
  88. package/sfx/pop/select.wav +0 -0
  89. package/sfx/pop/stick.wav +0 -0
  90. package/sfx/pop/tick.wav +0 -0
  91. package/sfx/pop/type.wav +0 -0
  92. package/sfx/pop/whoosh.wav +0 -0
  93. package/sfx/tags.json +545 -0
  94. package/sfx/ui/appear.wav +0 -0
  95. package/sfx/ui/burst.wav +0 -0
  96. package/sfx/ui/drop.wav +0 -0
  97. package/sfx/ui/end.wav +0 -0
  98. package/sfx/ui/hop.wav +0 -0
  99. package/sfx/ui/land.wav +0 -0
  100. package/sfx/ui/select.wav +0 -0
  101. package/sfx/ui/stick.wav +0 -0
  102. package/sfx/ui/tick.wav +0 -0
  103. package/sfx/ui/type.wav +0 -0
  104. package/sfx/ui/whoosh.wav +0 -0
  105. package/skills/kasaframe/SKILL.md +1 -0
  106. package/themes/blueprint/sample/style.json +5 -5
  107. package/themes/blueprint/style.json +5 -5
  108. package/themes/blueprint/theme.json +3 -1
  109. package/themes/blueprint/variants/deep-rose-suit.json +1 -1
  110. package/themes/blueprint/variants/navy-coral-2.json +1 -1
  111. package/themes/blueprint/variants/navy-coral-suit.json +1 -1
  112. package/themes/blueprint/variants/navy-orange-2.json +1 -1
  113. package/themes/blueprint/variants/navy-orange-suit.json +1 -1
  114. package/themes/cartography/sample/style.json +2 -2
  115. package/themes/cartography/style.json +2 -2
  116. package/themes/cartography/theme.json +3 -1
  117. package/themes/cartography/variants/deep-plum.json +1 -1
  118. package/themes/cartography/variants/frost-teal.json +1 -1
  119. package/themes/cartography/variants/navy-green.json +1 -1
  120. package/themes/circuit-board/sample/style.json +2 -2
  121. package/themes/circuit-board/style.json +2 -2
  122. package/themes/circuit-board/theme.json +3 -1
  123. package/themes/circuit-board/variants/dusk-gold-pretendard.json +1 -1
  124. package/themes/circuit-board/variants/navy-gold-grain.json +1 -1
  125. package/themes/circuit-board/variants/wine-gold-pretendard.json +1 -1
  126. package/themes/clay-toy/sample/style.json +2 -2
  127. package/themes/clay-toy/style.json +2 -2
  128. package/themes/clay-toy/theme.json +3 -1
  129. package/themes/clay-toy/variants/blush-coral-grain.json +1 -1
  130. package/themes/clay-toy/variants/chalk-teal.json +1 -1
  131. package/themes/clay-toy/variants/frost-sky.json +1 -1
  132. package/themes/clay-toy/variants/frost-teal.json +1 -1
  133. package/themes/clay-toy/variants/lilac-plum-round.json +1 -1
  134. package/themes/clay-toy/variants/lilac-plum.json +1 -1
  135. package/themes/clay-toy/variants/sage-indigo.json +1 -1
  136. package/themes/conveyor-factory/sample/style.json +3 -3
  137. package/themes/conveyor-factory/style.json +3 -3
  138. package/themes/conveyor-factory/theme.json +3 -1
  139. package/themes/conveyor-factory/variants/cocoa-gold.json +1 -1
  140. package/themes/conveyor-factory/variants/navy-gold.json +1 -1
  141. package/themes/conveyor-factory/variants/slate-amber-2.json +1 -1
  142. package/themes/conveyor-factory/variants/slate-amber-suit.json +1 -1
  143. package/themes/conveyor-factory/variants/slate-gold-bold.json +1 -1
  144. package/themes/data-journal/theme.json +3 -1
  145. package/themes/data-journal/variants/deep-coral.json +1 -1
  146. package/themes/data-journal/variants/navy-lime.json +1 -1
  147. package/themes/data-journal/variants/wine-indigo.json +1 -1
  148. package/themes/debug-hud/sample/style.json +1 -1
  149. package/themes/debug-hud/style.json +1 -1
  150. package/themes/debug-hud/theme.json +2 -1
  151. package/themes/debug-hud/variants/cocoa-teal.json +2 -2
  152. package/themes/debug-hud/variants/deep-teal-scan.json +2 -2
  153. package/themes/debug-hud/variants/dusk-plum.json +2 -2
  154. package/themes/debug-hud/variants/forest-lime.json +2 -2
  155. package/themes/debug-hud/variants/slate-green.json +2 -2
  156. package/themes/debug-hud/variants/wine-gold.json +2 -2
  157. package/themes/depth-flight/sample/style.json +1 -1
  158. package/themes/depth-flight/style.json +1 -1
  159. package/themes/depth-flight/theme.json +3 -1
  160. package/themes/depth-flight/variants/cocoa-cyan.json +1 -1
  161. package/themes/depth-flight/variants/cocoa-violet.json +1 -1
  162. package/themes/depth-flight/variants/deep-sky.json +1 -1
  163. package/themes/depth-flight/variants/forest-blue.json +1 -1
  164. package/themes/depth-flight/variants/navy-sky-grain.json +1 -1
  165. package/themes/depth-flight/variants/navy-sky.json +1 -1
  166. package/themes/depth-flight/variants/night-teal.json +1 -1
  167. package/themes/depth-flight/variants/slate-indigo.json +1 -1
  168. package/themes/depth-flight/variants/slate-violet.json +1 -1
  169. package/themes/film-reel/sample/style.json +2 -2
  170. package/themes/film-reel/style.json +2 -2
  171. package/themes/film-reel/theme.json +3 -1
  172. package/themes/film-reel/variants/chalk-pink.json +1 -1
  173. package/themes/film-reel/variants/lilac-gold.json +1 -1
  174. package/themes/film-reel/variants/lilac-violet.json +1 -1
  175. package/themes/glass-light/sample/style.json +1 -1
  176. package/themes/glass-light/style.json +1 -1
  177. package/themes/glass-light/theme.json +3 -1
  178. package/themes/glass-light/variants/blush-pink.json +1 -1
  179. package/themes/glass-light/variants/blush-plum.json +1 -1
  180. package/themes/glass-light/variants/cream-violet.json +1 -1
  181. package/themes/glass-light/variants/frost-sky-suit.json +1 -1
  182. package/themes/glass-light/variants/frost-sky.json +1 -1
  183. package/themes/glass-light/variants/sage-green.json +1 -1
  184. package/themes/ink-wash/sample/style.json +3 -3
  185. package/themes/ink-wash/style.json +3 -3
  186. package/themes/ink-wash/theme.json +3 -1
  187. package/themes/iso-diorama/sample/style.json +1 -1
  188. package/themes/iso-diorama/style.json +1 -1
  189. package/themes/iso-diorama/theme.json +3 -1
  190. package/themes/iso-diorama/variants/chalk-plum.json +1 -1
  191. package/themes/iso-diorama/variants/cocoa-indigo.json +1 -1
  192. package/themes/iso-diorama/variants/dusk-blue.json +1 -1
  193. package/themes/iso-diorama/variants/dusk-coral.json +1 -1
  194. package/themes/iso-diorama/variants/dusk-jade.json +1 -1
  195. package/themes/iso-diorama/variants/forest-cyan.json +1 -1
  196. package/themes/iso-diorama/variants/frost-green.json +1 -1
  197. package/themes/iso-diorama/variants/frost-teal.json +1 -1
  198. package/themes/iso-diorama/variants/navy-amber.json +1 -1
  199. package/themes/isotype/sample/style.json +2 -2
  200. package/themes/isotype/style.json +2 -2
  201. package/themes/isotype/theme.json +2 -1
  202. package/themes/isotype/variants/blush-rose.json +1 -1
  203. package/themes/isotype/variants/chalk-coral.json +1 -1
  204. package/themes/isotype/variants/chalk-orange.json +1 -1
  205. package/themes/isotype/variants/frost-amber.json +1 -1
  206. package/themes/isotype/variants/frost-coral.json +1 -1
  207. package/themes/isotype/variants/frost-orange.json +1 -1
  208. package/themes/isotype/variants/sand-amber.json +1 -1
  209. package/themes/kawaii-sticker/effects.ts +15 -3
  210. package/themes/kawaii-sticker/sample/style.json +2 -2
  211. package/themes/kawaii-sticker/style.json +2 -2
  212. package/themes/kawaii-sticker/theme.json +4 -1
  213. package/themes/kawaii-sticker/variants/cream-gold.json +1 -1
  214. package/themes/kawaii-sticker/variants/dusk-green.json +1 -1
  215. package/themes/kawaii-sticker/variants/dusk-indigo.json +1 -1
  216. package/themes/kawaii-sticker/variants/dusk-sky.json +1 -1
  217. package/themes/kawaii-sticker/variants/dusk-teal.json +1 -1
  218. package/themes/kawaii-sticker/variants/frost-blue.json +1 -1
  219. package/themes/kawaii-sticker/variants/frost-plum.json +1 -1
  220. package/themes/kawaii-sticker/variants/lilac-violet.json +1 -1
  221. package/themes/kawaii-sticker/variants/navy-gold.json +1 -1
  222. package/themes/kawaii-sticker/variants/navy-plum.json +1 -1
  223. package/themes/lab-notebook/sample/style.json +3 -3
  224. package/themes/lab-notebook/style.json +3 -3
  225. package/themes/lab-notebook/theme.json +2 -1
  226. package/themes/lab-notebook/variants/blush-orange.json +1 -1
  227. package/themes/lab-notebook/variants/chalk-coral.json +1 -1
  228. package/themes/lab-notebook/variants/chalk-orange.json +1 -1
  229. package/themes/lab-notebook/variants/chalk-rose.json +1 -1
  230. package/themes/lab-notebook/variants/lilac-rose.json +1 -1
  231. package/themes/lab-notebook/variants/sage-rose.json +1 -1
  232. package/themes/lab-notebook/variants/sand-orange.json +1 -1
  233. package/themes/lab-notebook/variants/snow-orange.json +1 -1
  234. package/themes/lab-notebook/variants/snow-rose.json +1 -1
  235. package/themes/manga-panel/sample/style.json +3 -3
  236. package/themes/manga-panel/style.json +3 -3
  237. package/themes/manga-panel/theme.json +3 -1
  238. package/themes/manga-panel/variants/chalk-cyan-dots.json +1 -1
  239. package/themes/manga-panel/variants/chalk-rose.json +1 -1
  240. package/themes/manga-panel/variants/snow-cyan.json +1 -1
  241. package/themes/manga-panel/variants/snow-magenta-dots.json +1 -1
  242. package/themes/marble-run/sample/style.json +2 -2
  243. package/themes/marble-run/style.json +2 -2
  244. package/themes/marble-run/theme.json +3 -1
  245. package/themes/marble-run/variants/slate-orange.json +1 -1
  246. package/themes/neon-sign/sample/style.json +2 -2
  247. package/themes/neon-sign/style.json +2 -2
  248. package/themes/neon-sign/theme.json +2 -1
  249. package/themes/neon-sign/variants/dusk-plum.json +1 -1
  250. package/themes/neon-sign/variants/forest-magenta.json +1 -1
  251. package/themes/neon-sign/variants/night-pink.json +1 -1
  252. package/themes/neon-sign/variants/night-violet.json +1 -1
  253. package/themes/neon-sign/variants/slate-violet.json +1 -1
  254. package/themes/newspaper/sample/style.json +2 -2
  255. package/themes/newspaper/style.json +2 -2
  256. package/themes/newspaper/theme.json +2 -1
  257. package/themes/newspaper/variants/blush-amber.json +1 -1
  258. package/themes/newspaper/variants/chalk-magenta.json +1 -1
  259. package/themes/newspaper/variants/frost-sky.json +1 -1
  260. package/themes/newspaper/variants/lilac-green.json +1 -1
  261. package/themes/newspaper/variants/sage-lime.json +1 -1
  262. package/themes/og-measure/THEME.md +41 -6
  263. package/themes/og-measure/effects.ts +236 -115
  264. package/themes/og-measure/sample/assets/brand/og-logo.svg +11 -11
  265. package/themes/og-measure/sample/lib/data.ts +6 -0
  266. package/themes/og-measure/sample/scenes/end.ts +14 -10
  267. package/themes/og-measure/sample/scenes/gather.ts +4 -1
  268. package/themes/og-measure/sample/scenes/models.ts +5 -2
  269. package/themes/og-measure/sample/scenes/one.ts +9 -6
  270. package/themes/og-measure/sample/scenes/price.ts +8 -3
  271. package/themes/og-measure/sample/style.json +30 -35
  272. package/themes/og-measure/slots.ts +54 -30
  273. package/themes/og-measure/still.png +0 -0
  274. package/themes/og-measure/style.json +30 -35
  275. package/themes/og-measure/theme.json +72 -49
  276. package/themes/og-measure/variants/snow-blue.json +90 -0
  277. package/themes/orbit-system/sample/style.json +3 -3
  278. package/themes/orbit-system/style.json +3 -3
  279. package/themes/orbit-system/theme.json +3 -1
  280. package/themes/orbit-system/variants/cocoa-amber.json +1 -1
  281. package/themes/orbit-system/variants/cocoa-cyan.json +1 -1
  282. package/themes/orbit-system/variants/dusk-magenta.json +1 -1
  283. package/themes/orbit-system/variants/dusk-violet.json +1 -1
  284. package/themes/orbit-system/variants/forest-coral.json +1 -1
  285. package/themes/orbit-system/variants/wine-amber.json +1 -1
  286. package/themes/orbit-system/variants/wine-magenta.json +1 -1
  287. package/themes/origami-fold/sample/style.json +1 -1
  288. package/themes/origami-fold/style.json +1 -1
  289. package/themes/origami-fold/theme.json +3 -1
  290. package/themes/origami-fold/variants/deep-amber-sunflower.json +1 -1
  291. package/themes/origami-fold/variants/deep-orange.json +1 -1
  292. package/themes/origami-fold/variants/forest-coral.json +1 -1
  293. package/themes/origami-fold/variants/forest-pink.json +1 -1
  294. package/themes/origami-fold/variants/frost-amber-paper.json +1 -1
  295. package/themes/origami-fold/variants/sage-coral-sunflower.json +1 -1
  296. package/themes/origami-fold/variants/sage-coral.json +1 -1
  297. package/themes/origami-fold/variants/sage-pink-round.json +1 -1
  298. package/themes/origami-fold/variants/sage-pink.json +1 -1
  299. package/themes/paper-cutout/sample/style.json +2 -2
  300. package/themes/paper-cutout/style.json +2 -2
  301. package/themes/paper-cutout/theme.json +3 -1
  302. package/themes/paper-cutout/variants/blush-violet.json +1 -1
  303. package/themes/paper-cutout/variants/frost-lime.json +1 -1
  304. package/themes/paper-cutout/variants/lilac-gold.json +1 -1
  305. package/themes/paper-cutout/variants/sage-cyan.json +1 -1
  306. package/themes/paper-cutout/variants/sage-green.json +1 -1
  307. package/themes/paper-cutout/variants/sage-pink.json +1 -1
  308. package/themes/paper-cutout/variants/sand-blue.json +1 -1
  309. package/themes/pixel-quest/theme.json +2 -1
  310. package/themes/receipt/sample/style.json +2 -2
  311. package/themes/receipt/style.json +2 -2
  312. package/themes/riso-zine/sample/style.json +2 -2
  313. package/themes/riso-zine/style.json +2 -2
  314. package/themes/riso-zine/theme.json +3 -1
  315. package/themes/riso-zine/variants/chalk-lime.json +1 -1
  316. package/themes/riso-zine/variants/frost-green.json +1 -1
  317. package/themes/riso-zine/variants/lilac-plum.json +1 -1
  318. package/themes/riso-zine/variants/lilac-violet.json +1 -1
  319. package/themes/server-hall/sample/style.json +2 -2
  320. package/themes/server-hall/style.json +2 -2
  321. package/themes/server-hall/theme.json +3 -1
  322. package/themes/server-hall/variants/night-indigo.json +1 -1
  323. package/themes/server-hall/variants/wine-plum.json +1 -1
  324. package/themes/subway-map/sample/style.json +2 -2
  325. package/themes/subway-map/style.json +2 -2
  326. package/themes/subway-map/theme.json +3 -1
  327. package/themes/subway-map/variants/deep-green.json +1 -1
  328. package/themes/subway-map/variants/deep-teal.json +1 -1
  329. package/themes/subway-map/variants/frost-jade.json +1 -1
  330. package/themes/subway-map/variants/frost-teal.json +1 -1
  331. package/themes/subway-map/variants/slate-green.json +1 -1
  332. package/themes/subway-map/variants/snow-jade.json +1 -1
  333. package/themes/swiss-poster/sample/style.json +2 -2
  334. package/themes/swiss-poster/style.json +2 -2
  335. package/themes/swiss-poster/theme.json +3 -1
  336. package/themes/swiss-poster/variants/chalk-plum.json +1 -1
  337. package/themes/swiss-poster/variants/cocoa-cyan.json +1 -1
  338. package/themes/swiss-poster/variants/dusk-magenta.json +1 -1
  339. package/themes/swiss-poster/variants/frost-indigo.json +1 -1
  340. package/themes/swiss-poster/variants/slate-orange.json +1 -1
  341. package/themes/water-works/sample/style.json +1 -1
  342. package/themes/water-works/style.json +1 -1
  343. package/themes/water-works/theme.json +3 -1
  344. package/themes/water-works/variants/chalk-cyan.json +1 -1
  345. package/themes/water-works/variants/frost-indigo.json +1 -1
  346. package/themes/water-works/variants/sand-amber.json +1 -1
  347. package/themes/water-works/variants/sand-plum.json +1 -1
  348. package/themes/whiteboard/sample/style.json +2 -2
  349. package/themes/whiteboard/style.json +2 -2
  350. package/themes/whiteboard/theme.json +3 -1
  351. package/themes/whiteboard/variants/chalk-coral.json +1 -1
  352. package/themes/whiteboard/variants/cream-lime.json +1 -1
  353. package/themes/whiteboard/variants/frost-teal.json +1 -1
  354. package/themes/whiteboard/variants/lilac-indigo.json +1 -1
  355. package/themes/whiteboard/variants/sage-plum.json +1 -1
  356. package/themes/whiteboard/variants/snow-cyan.json +1 -1
  357. package/themes/whiteboard/variants/snow-green.json +1 -1
  358. package/themes/whiteboard/variants/snow-magenta.json +1 -1
  359. package/themes/og-measure/sample/assets/brand/og-logo-full.svg +0 -12
  360. package/themes/og-measure/variants/chalk-orange.json +0 -102
  361. package/themes/og-measure/variants/cocoa-amber.json +0 -138
  362. package/themes/og-measure/variants/cocoa-cyan.json +0 -138
  363. package/themes/og-measure/variants/cocoa-gold.json +0 -129
  364. package/themes/og-measure/variants/cream-lime.json +0 -137
  365. package/themes/og-measure/variants/deep-jade.json +0 -100
  366. package/themes/og-measure/variants/dusk-violet.json +0 -133
  367. package/themes/og-measure/variants/forest-cyan.json +0 -123
  368. package/themes/og-measure/variants/frost-amber.json +0 -129
  369. package/themes/og-measure/variants/frost-cyan.json +0 -133
  370. package/themes/og-measure/variants/lilac-plum.json +0 -127
  371. package/themes/og-measure/variants/lilac-violet.json +0 -139
  372. package/themes/og-measure/variants/sage-green.json +0 -137
  373. package/themes/og-measure/variants/wine-jade.json +0 -127
  374. package/themes/og-measure/variants/wine-plum.json +0 -127
@@ -14,48 +14,63 @@
14
14
  "16:9",
15
15
  "9:16"
16
16
  ],
17
+ "transitions": [
18
+ "none",
19
+ "fade"
20
+ ],
21
+ "motion": {
22
+ "maxFreezeSec": 1
23
+ },
17
24
  "vary": {
18
25
  "scheme": [
19
- "light",
20
- "dark"
26
+ "dark",
27
+ "light"
21
28
  ],
22
- "hue": [
23
- [
24
- 50,
25
- 330
29
+ "palettes": {
30
+ "light": {
31
+ "bg": "#FFFFFF",
32
+ "surface": "#F8FAFC",
33
+ "raised": "#F1F5F9",
34
+ "line": "#E2E8F0",
35
+ "ink": "#020817",
36
+ "inkSoft": "#020817",
37
+ "dim": "#64748B",
38
+ "accent": "#006FD6",
39
+ "accentSoft": "rgba(0, 111, 214, 0.45)",
40
+ "accentText": "#01509D",
41
+ "onAccent": "#FFFFFF",
42
+ "tint": "rgba(0, 111, 214, 0.1)",
43
+ "success": "#10B981",
44
+ "danger": "#EF4444",
45
+ "warning": "#F59E0B",
46
+ "bar": "rgba(100, 116, 139, 0.28)"
47
+ }
48
+ },
49
+ "bg": {
50
+ "dark": [
51
+ 0.1445,
52
+ 0.1964
53
+ ],
54
+ "light": [
55
+ 0.9842,
56
+ 1.0
26
57
  ]
27
- ],
28
- "chroma": [
29
- 0.8,
30
- 1.2
31
- ],
32
- "tint": [
33
- 0,
34
- 0.025
58
+ },
59
+ "keep": [
60
+ "accent",
61
+ "accentSoft",
62
+ "accentText",
63
+ "onAccent",
64
+ "tint",
65
+ "success",
66
+ "danger",
67
+ "warning"
35
68
  ],
36
69
  "fonts": [
37
- "base",
38
- "plex",
39
- "pretendard-jetbrains",
40
- "suit",
41
- "wanted",
42
- "gothic-a1",
43
- "plex-mono"
70
+ "base"
44
71
  ],
45
72
  "texture": [
46
73
  "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
74
  ]
60
75
  },
61
76
  "tags": {
@@ -65,46 +80,54 @@
65
80
  "신뢰",
66
81
  "기술적"
67
82
  ],
68
- "light": "light",
83
+ "light": "dark",
69
84
  "use": [
70
85
  "측정",
71
86
  "벤치마크",
72
87
  "데이터",
73
88
  "비교",
74
89
  "API",
75
- "설명"
90
+ "설명",
91
+ "소개",
92
+ "OpenGateway",
93
+ "오픈게이트웨이",
94
+ "OG",
95
+ "게이트웨이",
96
+ "LLM",
97
+ "모델"
76
98
  ],
77
99
  "dims": "2D"
78
100
  },
101
+ "sfx": { "set": "click", "db": -4, "perSec": 0.5 },
79
102
  "effects": [
80
103
  {
81
104
  "name": "graphPaper",
82
105
  "kind": "layer",
83
- "does": "측정 바탕 — 흰 모눈과 아주 옅은 파란 주사선이 천천히 지나간다",
84
- "use": "const paint = graphPaper(root, { phase: ctx.from }) // 모눈이 흐르고 주사선이 지나간다"
106
+ "does": "측정 바탕 — 바탕색 위에 구분선 색의 옅은 모눈이 천천히 흐른다(그라데이션·빛 번짐 없음)",
107
+ "use": "const paint = graphPaper(root, { phase: ctx.from }) // 모눈이 흐른다 — 박 사이는 내용이 메운다"
85
108
  },
86
109
  {
87
110
  "name": "callLine",
88
111
  "kind": "layer",
89
- "does": "실제 호출 한 줄 — 주소가 박마다 한 조각씩 붙고 모델·보낼 글이 찍히고, 보낸 뒤 경과 시간이 실제 속도로 굴러 잰 ms 에 멈추며 상태·첫 토큰·받은 글·사용량이 붙는다",
112
+ "does": "실제 호출 한 줄 — 응답 패널(면 12px)에 주소가 박마다 한 조각씩 붙고 모델·보낼 글이 찍히고, 보낸 뒤 경과 시간이 실제 속도로 굴러 잰 ms 에 멈추며(색만 150ms 로 파랑) 상태·첫 토큰·받은 글·사용량이 붙는다",
90
113
  "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
114
  },
92
115
  {
93
116
  "name": "rawLog",
94
117
  "kind": "layer",
95
- "does": "원자료 로그 — 줄이 들어온 박에 맨 아래 붙고 한 줄씩 밀려 오르며, 정규식이 잡은 숫자에 파란 칸",
118
+ "does": "원자료 로그 — 코드 블록(면 12px)에 줄이 들어온 박에 맨 아래 붙고 한 줄씩 밀려 오르며, 정규식이 잡은 숫자에 고름 칠(파랑 /10 알약)",
96
119
  "use": "const paint = rawLog(stage, { x: 70, y: 150, w: 1080, rows: 14, lines, times, pick: /ttft_ms=(\\d+)/, size: 34 })"
97
120
  },
98
121
  {
99
122
  "name": "samplePlot",
100
123
  "kind": "layer",
101
- "does": "샘플 점 그림 — 재 온 값이 꽂히는 시각에 점이 커졌다 자리 잡고 가운데값 눈금·숫자가 따라 미끄러진다",
124
+ "does": "샘플 점 그림 — 재 온 값이 꽂히는 시각에 점이 6px 올라와 서고 가운데값 눈금·숫자가 300ms 로 따라 미끄러진다(눈금·막대는 각짐)",
102
125
  "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
126
  },
104
127
  {
105
128
  "name": "pickFly",
106
129
  "kind": "layer",
107
- "does": "뽑힌 숫자 — 로그 줄의 숫자가 떠올라 호를 그리며 점 그림 자리로 날아가 꽂힌다(박마다 큰 움직임)",
130
+ "does": "뽑힌 숫자 — 로그 줄의 숫자가 고름 칠 알약째 떠올라 호를 그리며 점 그림 자리로 300ms 감속으로 날아가 꽂힌다(박마다 큰 움직임). stops 면 읽는 칸 — 글 뒤에 깔린 알약이 장면의 요점(주인공 값·핵심 사실·자막이 말하는 값)이 바뀔 때만 아래 테두리 한 줄로 얇아져 옮겨 가고, 그 값의 칸만큼 차올라 딱 맞게 서서 머문다(나타나는 항목을 차례로 훑지 않는다)",
108
131
  "use": "const paint = pickFly(stage, { items: [{ at: b[0], text: \"746\", from: { x: 760, y: 200 }, to: { x: 1500, y: 250 } }] })"
109
132
  },
110
133
  {
@@ -116,26 +139,26 @@
116
139
  {
117
140
  "name": "rankBars",
118
141
  "kind": "layer",
119
- "does": "막대 — 박마다 하나씩 값만큼 자라고(best 만 OG 파랑), delta 칩이 그 박에 튀어나온다",
142
+ "does": "막대 — 각진 막대가 박마다 하나씩 값만큼 300ms 로 자라고(best 만 브랜드 파랑), 차이 배지(테두리만)가 그 박에 나타난다",
120
143
  "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
144
  },
122
145
  {
123
146
  "name": "stamp",
124
147
  "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\") })"
148
+ "does": "끝 도장 — 구분선 한 줄 위에 「측정 날짜 · 호출 N번 · $비용 · 키 하나」와 마스터 로고(한 색)가 선다, 상자 없이(비용은 첫 유효 자리까지)",
149
+ "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
150
  },
128
151
  {
129
152
  "name": "flag",
130
153
  "kind": "layer",
131
- "does": "칩 — 짧은 낱말·잰 값 하나가 크게 튀어 들어온다",
132
- "use": "const paint = flag(stage, { x: 90, y: 60, text: \"실측\", at: 0 })"
154
+ "does": "배지 — 짧은 낱말·잰 값 하나가 6px 올라오며 220ms 로 나타난다. 속을 칠하지 않고 흐린 테두리와 글자색만(accent 파랑·plain 글 잉크·soft 흐린 글)",
155
+ "use": "const paint = flag(stage, { x: 90, y: 60, text: \"실측\", at: 0, tone: \"accent\" })"
133
156
  },
134
157
  {
135
158
  "name": "trackCam",
136
159
  "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"
160
+ "does": "계측 카메라 — 샷이 바뀌면 300ms 스프링(살짝 넘었다 돌아옴)으로 옮기고 사이에는 선다. kick 은 그만큼 가까이에서 시작해 300ms 감속으로 물러나 앉기. 샷은 드러냄·결과가 서는 순간에만(배율 1–1.1)",
161
+ "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
162
  }
140
163
  ]
141
- }
164
+ }
@@ -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
  ]