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
@@ -67,7 +67,7 @@
67
67
  },
68
68
  {
69
69
  "family": "JetBrains Mono",
70
- "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5/files/jetbrains-mono-latin-wght-normal.woff2",
70
+ "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5.3.0/files/jetbrains-mono-latin-wght-normal.woff2",
71
71
  "weight": "100 800"
72
72
  }
73
73
  ]
@@ -1,12 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1140 650" width="1140" height="650" fill="none" role="img" aria-label="OpenGateway">
2
- <title>OpenGateway</title>
3
- <g id="logo" stroke="currentColor" fill="currentColor">
4
- <rect id="node-in" x="36" y="36" width="420" height="578" rx="89" fill="none" stroke-width="72"/>
5
- <rect id="bar-in" x="72" y="272" width="277" height="106" stroke="none"/>
6
- <path id="node-out" d="M684 213 L684 125 A89 89 0 0 1 773 36 L1015 36 A89 89 0 0 1 1104 125 L1104 525 A89 89 0 0 1 1015 614 L773 614 A89 89 0 0 1 684 525 L684 436" fill="none" stroke-width="72" stroke-linecap="butt"/>
7
- <g id="arrow">
8
- <rect id="arrow-shaft" x="420" y="272" width="394" height="106" stroke="none"/>
9
- <path id="arrow-head" d="M833 220 L970 325 L833 430 Z" stroke-width="38" stroke-linejoin="round"/>
10
- </g>
11
- </g>
12
- </svg>
@@ -1,102 +0,0 @@
1
- {
2
- "id": "chalk-orange",
3
- "world": "og-measure",
4
- "name": "Chalk Orange",
5
- "desc": "분필빛 바탕에 주황 강조",
6
- "params": {
7
- "scheme": "light",
8
- "bgL": 0.9416,
9
- "tint": {
10
- "h": 71.535,
11
- "c": 0.0099
12
- },
13
- "inkL": 0.1363,
14
- "hue": 54.833,
15
- "chroma": 1.1349,
16
- "fonts": "base",
17
- "texture": {
18
- "kind": "none",
19
- "amount": 0
20
- },
21
- "stroke": 0.88,
22
- "radius": 1,
23
- "tempo": 1.06,
24
- "density": 1
25
- },
26
- "style": {
27
- "scheme": "light",
28
- "colors": {
29
- "bg": "#F0EBE5",
30
- "surface": "#E9E6E2",
31
- "raised": "#E3E2E0",
32
- "line": "#D5D6D8",
33
- "ink": "#030815",
34
- "inkSoft": "#1E2736",
35
- "dim": "#806450",
36
- "accent": "#A05100",
37
- "accentSoft": "rgba(160, 81, 0, 0.45)",
38
- "accentText": "#763900",
39
- "onAccent": "#F0EBE5",
40
- "tint": "rgba(160, 81, 0, 0.08)",
41
- "success": "#00B752",
42
- "danger": "#E03438",
43
- "warning": "#E49200",
44
- "darkBg": "#0A0A0A",
45
- "darkSurface": "#141418",
46
- "darkLine": "#373C47",
47
- "darkInk": "#BBBAC1",
48
- "darkAccent": "#BE6100",
49
- "bar": "rgba(128, 100, 80, 0.28)"
50
- },
51
- "radius": {
52
- "sm": 1,
53
- "md": 1,
54
- "lg": 1,
55
- "pill": 999
56
- },
57
- "look": {
58
- "stroke": 0.88,
59
- "tempo": 1.06
60
- }
61
- },
62
- "tags": {
63
- "mood": [
64
- "정밀",
65
- "차분한",
66
- "신뢰",
67
- "기술적",
68
- "밝은",
69
- "따뜻한",
70
- "선명한"
71
- ],
72
- "light": "light",
73
- "use": [
74
- "측정",
75
- "벤치마크",
76
- "데이터",
77
- "비교",
78
- "API",
79
- "설명"
80
- ],
81
- "dims": "2D"
82
- },
83
- "check": {
84
- "ok": true,
85
- "at": "2026-10-11",
86
- "colors": {
87
- "ink": 16.84,
88
- "inkSoft": 12.7,
89
- "dim": 4.58,
90
- "accentText": 7.5,
91
- "accent": 4.83,
92
- "onAccent": 4.83,
93
- "success~danger": 0.073,
94
- "danger~warning": 0.134,
95
- "accent~danger": 0.04,
96
- "success~warning": 0.051,
97
- "accent~ink": 0.351
98
- },
99
- "frame": "kf check 통과 — 표준 장면 0–4초",
100
- "pattern": "hook-number.counter"
101
- }
102
- }
@@ -1,138 +0,0 @@
1
- {
2
- "id": "cocoa-amber",
3
- "world": "og-measure",
4
- "name": "Cocoa Amber",
5
- "desc": "코코아빛 바탕에 호박색 강조 · 단정한 기술 문서체",
6
- "params": {
7
- "scheme": "dark",
8
- "bgL": 0.1203,
9
- "tint": {
10
- "h": 85.1846,
11
- "c": 0.0262
12
- },
13
- "inkL": 0.9452,
14
- "hue": 55.689,
15
- "chroma": 1.049,
16
- "fonts": "plex",
17
- "texture": {
18
- "kind": "none",
19
- "amount": 0
20
- },
21
- "stroke": 1.3,
22
- "radius": 6,
23
- "tempo": 0.91,
24
- "density": 1
25
- },
26
- "style": {
27
- "scheme": "dark",
28
- "colors": {
29
- "bg": "#0A0500",
30
- "surface": "#0C0801",
31
- "raised": "#0E0B03",
32
- "line": "#15130D",
33
- "ink": "#E3EEFD",
34
- "inkSoft": "#B8C1CF",
35
- "dim": "#8B725F",
36
- "accent": "#AC5800",
37
- "accentSoft": "rgba(172, 88, 0, 0.45)",
38
- "accentText": "#D57522",
39
- "onAccent": "#FCFCFC",
40
- "tint": "rgba(172, 88, 0, 0.08)",
41
- "success": "#22C55E",
42
- "danger": "#EF4444",
43
- "warning": "#F59E0B",
44
- "darkBg": "#EDEAE4",
45
- "darkSurface": "#DBD9D9",
46
- "darkLine": "#A2A5AC",
47
- "darkInk": "#2A2724",
48
- "darkAccent": "#8D4800",
49
- "bar": "rgba(139, 114, 95, 0.28)"
50
- },
51
- "fonts": {
52
- "sans": "\"IBM Plex Sans KR\", \"Pretendard Variable\", Pretendard, \"Noto Sans KR\", \"Apple SD Gothic Neo\", sans-serif",
53
- "display": "\"IBM Plex Sans KR\", \"Pretendard Variable\", Pretendard, \"Noto Sans KR\", \"Apple SD Gothic Neo\", sans-serif",
54
- "mono": "\"IBM Plex Mono\", ui-monospace, \"IBM Plex Sans KR\", \"Pretendard Variable\", Pretendard, \"Noto Sans KR\", \"Apple SD Gothic Neo\", monospace",
55
- "faces": [
56
- {
57
- "family": "IBM Plex Sans KR",
58
- "src": "https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/ibmplexsanskr/IBMPlexSansKR-Medium.ttf",
59
- "weight": "500"
60
- },
61
- {
62
- "family": "IBM Plex Sans KR",
63
- "src": "https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/ibmplexsanskr/IBMPlexSansKR-Bold.ttf",
64
- "weight": "700"
65
- },
66
- {
67
- "family": "IBM Plex Mono",
68
- "src": "https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/ibmplexmono/IBMPlexMono-Medium.ttf",
69
- "weight": "500"
70
- },
71
- {
72
- "family": "IBM Plex Mono",
73
- "src": "https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/ibmplexmono/IBMPlexMono-Bold.ttf",
74
- "weight": "700"
75
- },
76
- {
77
- "family": "Pretendard Variable",
78
- "src": "https://cdn.jsdelivr.net/npm/pretendard@1.3.9/dist/web/variable/woff2/PretendardVariable.woff2",
79
- "weight": "45 920"
80
- }
81
- ]
82
- },
83
- "type": {
84
- "weightDisplay": 700,
85
- "weightBody": 500,
86
- "tracking": "-0.01em"
87
- },
88
- "radius": {
89
- "sm": 4,
90
- "md": 6,
91
- "lg": 6,
92
- "pill": 999
93
- },
94
- "look": {
95
- "stroke": 1.3,
96
- "tempo": 0.91
97
- }
98
- },
99
- "tags": {
100
- "mood": [
101
- "정밀",
102
- "차분한",
103
- "신뢰",
104
- "기술적",
105
- "어두운",
106
- "따뜻한"
107
- ],
108
- "light": "dark",
109
- "use": [
110
- "측정",
111
- "벤치마크",
112
- "데이터",
113
- "비교",
114
- "API",
115
- "설명"
116
- ],
117
- "dims": "2D"
118
- },
119
- "check": {
120
- "ok": true,
121
- "at": "2026-10-11",
122
- "colors": {
123
- "ink": 17.31,
124
- "inkSoft": 11.19,
125
- "dim": 4.5,
126
- "accentText": 6.18,
127
- "accent": 4.01,
128
- "onAccent": 4.92,
129
- "success~danger": 0.074,
130
- "success~warning": 0.057,
131
- "danger~warning": 0.139,
132
- "accent~danger": 0.053,
133
- "accent~ink": 0.406
134
- },
135
- "frame": "kf check 통과 — 표준 장면 0–4초",
136
- "pattern": "hook-number.counter"
137
- }
138
- }
@@ -1,138 +0,0 @@
1
- {
2
- "id": "cocoa-cyan",
3
- "world": "og-measure",
4
- "name": "Cocoa Cyan",
5
- "desc": "코코아빛 바탕에 하늘빛 청록 강조 · 단정한 기술 문서체",
6
- "params": {
7
- "scheme": "dark",
8
- "bgL": 0.2195,
9
- "tint": {
10
- "h": 81.1434,
11
- "c": 0.0275
12
- },
13
- "inkL": 0.967,
14
- "hue": 211.03,
15
- "chroma": 0.9104,
16
- "fonts": "plex",
17
- "texture": {
18
- "kind": "none",
19
- "amount": 0
20
- },
21
- "stroke": 1.01,
22
- "radius": 1,
23
- "tempo": 0.97,
24
- "density": 1
25
- },
26
- "style": {
27
- "scheme": "dark",
28
- "colors": {
29
- "bg": "#21190B",
30
- "surface": "#231D10",
31
- "raised": "#252016",
32
- "line": "#2C2921",
33
- "ink": "#EEF5FF",
34
- "inkSoft": "#C4CCD9",
35
- "dim": "#69888F",
36
- "accent": "#0094A7",
37
- "accentSoft": "rgba(0, 148, 167, 0.45)",
38
- "accentText": "#00B4CC",
39
- "onAccent": "#21190B",
40
- "tint": "rgba(0, 148, 167, 0.08)",
41
- "success": "#22C55E",
42
- "danger": "#EF4444",
43
- "warning": "#F59E0B",
44
- "darkBg": "#F5F1EB",
45
- "darkSurface": "#E5E2E1",
46
- "darkLine": "#B0B2B9",
47
- "darkInk": "#403C38",
48
- "darkAccent": "#007E8F",
49
- "bar": "rgba(105, 136, 143, 0.28)"
50
- },
51
- "fonts": {
52
- "sans": "\"IBM Plex Sans KR\", \"Pretendard Variable\", Pretendard, \"Noto Sans KR\", \"Apple SD Gothic Neo\", sans-serif",
53
- "display": "\"IBM Plex Sans KR\", \"Pretendard Variable\", Pretendard, \"Noto Sans KR\", \"Apple SD Gothic Neo\", sans-serif",
54
- "mono": "\"IBM Plex Mono\", ui-monospace, \"IBM Plex Sans KR\", \"Pretendard Variable\", Pretendard, \"Noto Sans KR\", \"Apple SD Gothic Neo\", monospace",
55
- "faces": [
56
- {
57
- "family": "IBM Plex Sans KR",
58
- "src": "https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/ibmplexsanskr/IBMPlexSansKR-Medium.ttf",
59
- "weight": "500"
60
- },
61
- {
62
- "family": "IBM Plex Sans KR",
63
- "src": "https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/ibmplexsanskr/IBMPlexSansKR-Bold.ttf",
64
- "weight": "700"
65
- },
66
- {
67
- "family": "IBM Plex Mono",
68
- "src": "https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/ibmplexmono/IBMPlexMono-Medium.ttf",
69
- "weight": "500"
70
- },
71
- {
72
- "family": "IBM Plex Mono",
73
- "src": "https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/ibmplexmono/IBMPlexMono-Bold.ttf",
74
- "weight": "700"
75
- },
76
- {
77
- "family": "Pretendard Variable",
78
- "src": "https://cdn.jsdelivr.net/npm/pretendard@1.3.9/dist/web/variable/woff2/PretendardVariable.woff2",
79
- "weight": "45 920"
80
- }
81
- ]
82
- },
83
- "type": {
84
- "weightDisplay": 700,
85
- "weightBody": 500,
86
- "tracking": "-0.01em"
87
- },
88
- "radius": {
89
- "sm": 1,
90
- "md": 1,
91
- "lg": 1,
92
- "pill": 999
93
- },
94
- "look": {
95
- "stroke": 1.01,
96
- "tempo": 0.97
97
- }
98
- },
99
- "tags": {
100
- "mood": [
101
- "정밀",
102
- "차분한",
103
- "신뢰",
104
- "기술적",
105
- "어두운",
106
- "차가운"
107
- ],
108
- "light": "dark",
109
- "use": [
110
- "측정",
111
- "벤치마크",
112
- "데이터",
113
- "비교",
114
- "API",
115
- "설명"
116
- ],
117
- "dims": "2D"
118
- },
119
- "check": {
120
- "ok": true,
121
- "at": "2026-10-11",
122
- "colors": {
123
- "ink": 15.78,
124
- "inkSoft": 10.74,
125
- "dim": 4.55,
126
- "accentText": 6.96,
127
- "accent": 4.76,
128
- "onAccent": 4.76,
129
- "success~danger": 0.074,
130
- "success~warning": 0.057,
131
- "danger~warning": 0.139,
132
- "accent~danger": 0.155,
133
- "accent~ink": 0.324
134
- },
135
- "frame": "kf check 통과 — 표준 장면 0–4초",
136
- "pattern": "hook-number.counter"
137
- }
138
- }
@@ -1,129 +0,0 @@
1
- {
2
- "id": "cocoa-gold",
3
- "world": "og-measure",
4
- "name": "Cocoa Gold",
5
- "desc": "코코아빛 바탕에 금빛 강조 · 또렷한 기하 고딕",
6
- "params": {
7
- "scheme": "dark",
8
- "bgL": 0.2085,
9
- "tint": {
10
- "h": 85.5897,
11
- "c": 0.0355
12
- },
13
- "inkL": 0.9235,
14
- "hue": 92.2534,
15
- "chroma": 1.1762,
16
- "fonts": "suit",
17
- "texture": {
18
- "kind": "none",
19
- "amount": 0
20
- },
21
- "stroke": 0.81,
22
- "radius": 1,
23
- "tempo": 1.14,
24
- "density": 1
25
- },
26
- "style": {
27
- "scheme": "dark",
28
- "colors": {
29
- "bg": "#1F1704",
30
- "surface": "#211A08",
31
- "raised": "#231D0E",
32
- "line": "#2A261A",
33
- "ink": "#DDE7F2",
34
- "inkSoft": "#B8C0CA",
35
- "dim": "#89805F",
36
- "accent": "#947800",
37
- "accentSoft": "rgba(148, 120, 0, 0.45)",
38
- "accentText": "#B59300",
39
- "onAccent": "#060606",
40
- "tint": "rgba(148, 120, 0, 0.08)",
41
- "success": "#22C55E",
42
- "danger": "#EF4444",
43
- "warning": "#F59E0B",
44
- "darkBg": "#E7E3DA",
45
- "darkSurface": "#D8D5D1",
46
- "darkLine": "#A6A7AA",
47
- "darkInk": "#3D3830",
48
- "darkAccent": "#7E6600",
49
- "bar": "rgba(137, 128, 95, 0.28)"
50
- },
51
- "fonts": {
52
- "sans": "\"SUIT Variable\", \"Pretendard Variable\", Pretendard, \"Noto Sans KR\", \"Apple SD Gothic Neo\", sans-serif",
53
- "display": "\"SUIT Variable\", \"Pretendard Variable\", Pretendard, \"Noto Sans KR\", \"Apple SD Gothic Neo\", sans-serif",
54
- "mono": "\"JetBrains Mono\", ui-monospace, \"SUIT Variable\", \"Pretendard Variable\", Pretendard, \"Noto Sans KR\", \"Apple SD Gothic Neo\", monospace",
55
- "faces": [
56
- {
57
- "family": "SUIT Variable",
58
- "src": "https://cdn.jsdelivr.net/gh/sun-typeface/SUIT@2.0.5/fonts/variable/ttf/SUIT-Variable.ttf",
59
- "weight": "100 900"
60
- },
61
- {
62
- "family": "Pretendard Variable",
63
- "src": "https://cdn.jsdelivr.net/npm/pretendard@1.3.9/dist/web/variable/woff2/PretendardVariable.woff2",
64
- "weight": "45 920"
65
- },
66
- {
67
- "family": "JetBrains Mono",
68
- "src": "https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5/files/jetbrains-mono-latin-wght-normal.woff2",
69
- "weight": "100 800"
70
- }
71
- ]
72
- },
73
- "type": {
74
- "weightDisplay": 800,
75
- "weightBody": 500,
76
- "tracking": "-0.02em"
77
- },
78
- "radius": {
79
- "sm": 1,
80
- "md": 1,
81
- "lg": 1,
82
- "pill": 999
83
- },
84
- "look": {
85
- "stroke": 0.81,
86
- "tempo": 1.14
87
- }
88
- },
89
- "tags": {
90
- "mood": [
91
- "정밀",
92
- "차분한",
93
- "신뢰",
94
- "기술적",
95
- "어두운",
96
- "따뜻한",
97
- "선명한"
98
- ],
99
- "light": "dark",
100
- "use": [
101
- "측정",
102
- "벤치마크",
103
- "데이터",
104
- "비교",
105
- "API",
106
- "설명"
107
- ],
108
- "dims": "2D"
109
- },
110
- "check": {
111
- "ok": true,
112
- "at": "2026-10-11",
113
- "colors": {
114
- "ink": 14.22,
115
- "inkSoft": 9.7,
116
- "dim": 4.5,
117
- "accentText": 6.04,
118
- "accent": 4.18,
119
- "onAccent": 4.76,
120
- "success~danger": 0.074,
121
- "success~warning": 0.057,
122
- "danger~warning": 0.139,
123
- "accent~danger": 0.066,
124
- "accent~ink": 0.348
125
- },
126
- "frame": "kf check 통과 — 표준 장면 0–4초",
127
- "pattern": "hook-number.counter"
128
- }
129
- }
@@ -1,137 +0,0 @@
1
- {
2
- "id": "cream-lime",
3
- "world": "og-measure",
4
- "name": "Cream Lime",
5
- "desc": "크림색 바탕에 라임색 강조 · 고정폭 라틴 제목에 Plex 한글",
6
- "params": {
7
- "scheme": "light",
8
- "bgL": 0.981,
9
- "tint": {
10
- "h": 88.8998,
11
- "c": 0.0231
12
- },
13
- "inkL": 0.1363,
14
- "hue": 113.7657,
15
- "chroma": 1.0244,
16
- "fonts": "plex-mono",
17
- "texture": {
18
- "kind": "none",
19
- "amount": 0
20
- },
21
- "stroke": 1.33,
22
- "radius": 15,
23
- "tempo": 1.15,
24
- "density": 1
25
- },
26
- "style": {
27
- "scheme": "light",
28
- "colors": {
29
- "bg": "#FFF8E8",
30
- "surface": "#F8F4E5",
31
- "raised": "#F1EFE3",
32
- "line": "#E2E2DA",
33
- "ink": "#030912",
34
- "inkSoft": "#202934",
35
- "dim": "#6E7458",
36
- "accent": "#6F7600",
37
- "accentSoft": "rgba(111, 118, 0, 0.45)",
38
- "accentText": "#505500",
39
- "onAccent": "#FFF8E8",
40
- "tint": "rgba(111, 118, 0, 0.08)",
41
- "success": "#1CC25B",
42
- "danger": "#EF4444",
43
- "warning": "#F29B00",
44
- "darkBg": "#0B0A07",
45
- "darkSurface": "#151515",
46
- "darkLine": "#3B3F46",
47
- "darkInk": "#C7C5C3",
48
- "darkAccent": "#848D00",
49
- "bar": "rgba(110, 116, 88, 0.28)"
50
- },
51
- "fonts": {
52
- "sans": "\"IBM Plex Sans KR\", \"Pretendard Variable\", Pretendard, \"Noto Sans KR\", \"Apple SD Gothic Neo\", sans-serif",
53
- "display": "\"IBM Plex Mono\", \"IBM Plex Sans KR\", \"Pretendard Variable\", Pretendard, \"Noto Sans KR\", \"Apple SD Gothic Neo\", monospace",
54
- "mono": "\"IBM Plex Mono\", ui-monospace, \"IBM Plex Sans KR\", \"Pretendard Variable\", Pretendard, \"Noto Sans KR\", \"Apple SD Gothic Neo\", monospace",
55
- "faces": [
56
- {
57
- "family": "IBM Plex Mono",
58
- "src": "https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/ibmplexmono/IBMPlexMono-Regular.ttf",
59
- "weight": "400"
60
- },
61
- {
62
- "family": "IBM Plex Mono",
63
- "src": "https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/ibmplexmono/IBMPlexMono-Bold.ttf",
64
- "weight": "700"
65
- },
66
- {
67
- "family": "IBM Plex Sans KR",
68
- "src": "https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/ibmplexsanskr/IBMPlexSansKR-Regular.ttf",
69
- "weight": "400"
70
- },
71
- {
72
- "family": "IBM Plex Sans KR",
73
- "src": "https://cdn.jsdelivr.net/gh/google/fonts@bd8f81ddb5c74d5c8897b36ad88b440266245103/ofl/ibmplexsanskr/IBMPlexSansKR-Bold.ttf",
74
- "weight": "700"
75
- },
76
- {
77
- "family": "Pretendard Variable",
78
- "src": "https://cdn.jsdelivr.net/npm/pretendard@1.3.9/dist/web/variable/woff2/PretendardVariable.woff2",
79
- "weight": "45 920"
80
- }
81
- ]
82
- },
83
- "type": {
84
- "weightDisplay": 700,
85
- "weightBody": 400,
86
- "tracking": "0em"
87
- },
88
- "radius": {
89
- "sm": 9,
90
- "md": 15,
91
- "lg": 15,
92
- "pill": 999
93
- },
94
- "look": {
95
- "stroke": 1.33,
96
- "tempo": 1.15
97
- }
98
- },
99
- "tags": {
100
- "mood": [
101
- "정밀",
102
- "차분한",
103
- "신뢰",
104
- "기술적",
105
- "밝은"
106
- ],
107
- "light": "light",
108
- "use": [
109
- "측정",
110
- "벤치마크",
111
- "데이터",
112
- "비교",
113
- "API",
114
- "설명"
115
- ],
116
- "dims": "2D"
117
- },
118
- "check": {
119
- "ok": true,
120
- "at": "2026-10-11",
121
- "colors": {
122
- "ink": 18.93,
123
- "inkSoft": 13.98,
124
- "dim": 4.64,
125
- "accentText": 7.53,
126
- "accent": 4.69,
127
- "onAccent": 4.69,
128
- "success~danger": 0.065,
129
- "success~warning": 0.055,
130
- "danger~warning": 0.131,
131
- "accent~danger": 0.053,
132
- "accent~ink": 0.409
133
- },
134
- "frame": "kf check 통과 — 표준 장면 0–4초",
135
- "pattern": "hook-number.counter"
136
- }
137
- }