zugzbot 1.0.21 → 1.0.23

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 (1272) hide show
  1. package/.opencode/agents/sdd-coder.md +1 -0
  2. package/.opencode/agents/sdd-orchestrator.md +1 -0
  3. package/.opencode/skills/sdd-methodology/SKILL.md +8 -0
  4. package/.opencode/skills/sdd-tester-quickstart/SKILL.md +6 -0
  5. package/.opencode/tools/sdd_testing.ts +93 -0
  6. package/bin/init.js +38 -1
  7. package/opencode.json +9 -0
  8. package/package.json +14 -4
  9. package/.opencode/active-brief.md +0 -38
  10. package/.opencode/docs/shadcn/agents/openai.yml +0 -5
  11. package/.opencode/docs/shadcn/assets/shadcn-small.png +0 -0
  12. package/.opencode/docs/shadcn/assets/shadcn.png +0 -0
  13. package/.opencode/docs/shadcn/cli.md +0 -290
  14. package/.opencode/docs/shadcn/customization.md +0 -209
  15. package/.opencode/docs/shadcn/evals/evals.json +0 -47
  16. package/.opencode/docs/shadcn/mcp.md +0 -105
  17. package/.opencode/docs/shadcn/registry.md +0 -277
  18. package/.opencode/docs/shadcn/rules/base-vs-radix.md +0 -306
  19. package/.opencode/docs/shadcn/rules/composition.md +0 -195
  20. package/.opencode/docs/shadcn/rules/forms.md +0 -192
  21. package/.opencode/docs/shadcn/rules/icons.md +0 -101
  22. package/.opencode/docs/shadcn/rules/styling.md +0 -162
  23. package/.opencode/oh-my-design/.agents/skills/google-analytics/EXAMPLES.md +0 -441
  24. package/.opencode/oh-my-design/.agents/skills/google-analytics/REFERENCE.md +0 -342
  25. package/.opencode/oh-my-design/.agents/skills/google-analytics/SKILL.md +0 -153
  26. package/.opencode/oh-my-design/.agents/skills/google-analytics/requirements.txt +0 -6
  27. package/.opencode/oh-my-design/.agents/skills/google-analytics/scripts/analyze.py +0 -459
  28. package/.opencode/oh-my-design/.agents/skills/google-analytics/scripts/ga_client.py +0 -345
  29. package/.opencode/oh-my-design/.claude/agents/omd-a11y-auditor.md +0 -98
  30. package/.opencode/oh-my-design/.claude/agents/omd-asset-curator.md +0 -99
  31. package/.opencode/oh-my-design/.claude/agents/omd-codex-image.md +0 -49
  32. package/.opencode/oh-my-design/.claude/agents/omd-critic.md +0 -142
  33. package/.opencode/oh-my-design/.claude/agents/omd-designer-review.md +0 -38
  34. package/.opencode/oh-my-design/.claude/agents/omd-final-qa.md +0 -40
  35. package/.opencode/oh-my-design/.claude/agents/omd-kr-writer.md +0 -35
  36. package/.opencode/oh-my-design/.claude/agents/omd-locale-adapter.md +0 -32
  37. package/.opencode/oh-my-design/.claude/agents/omd-master.md +0 -317
  38. package/.opencode/oh-my-design/.claude/agents/omd-microcopy.md +0 -64
  39. package/.opencode/oh-my-design/.claude/agents/omd-orchestrator.md +0 -34
  40. package/.opencode/oh-my-design/.claude/agents/omd-persona-tester.md +0 -119
  41. package/.opencode/oh-my-design/.claude/agents/omd-ui-junior.md +0 -130
  42. package/.opencode/oh-my-design/.claude/agents/omd-ux-researcher.md +0 -63
  43. package/.opencode/oh-my-design/.claude/data/opt-out-corpus.json +0 -141
  44. package/.opencode/oh-my-design/.claude/data/reference-fingerprints.json +0 -6142
  45. package/.opencode/oh-my-design/.claude/data/reference-tags.md +0 -104
  46. package/.opencode/oh-my-design/.claude/data/synonyms.json +0 -79
  47. package/.opencode/oh-my-design/.claude/data/vocabulary.json +0 -516
  48. package/.opencode/oh-my-design/.claude/hooks/lib/preferences-parser.cjs +0 -91
  49. package/.opencode/oh-my-design/.claude/hooks/lib/preferences-writer.cjs +0 -118
  50. package/.opencode/oh-my-design/.claude/hooks/post-edit-watch.cjs +0 -295
  51. package/.opencode/oh-my-design/.claude/hooks/session-end-foldin.cjs +0 -149
  52. package/.opencode/oh-my-design/.claude/hooks/session-state-loader.cjs +0 -113
  53. package/.opencode/oh-my-design/.claude/hooks/skill-activation.cjs +0 -108
  54. package/.opencode/oh-my-design/.claude/settings.json +0 -55
  55. package/.opencode/oh-my-design/.claude/skills/omd/SKILL.md +0 -133
  56. package/.opencode/oh-my-design/.claude/skills/omd-add-reference/SKILL.md +0 -381
  57. package/.opencode/oh-my-design/.claude/skills/omd-add-reference/batch-instructions.md +0 -111
  58. package/.opencode/oh-my-design/.claude/skills/omd-apply/SKILL.md +0 -87
  59. package/.opencode/oh-my-design/.claude/skills/omd-batch-launch/SKILL.md +0 -270
  60. package/.opencode/oh-my-design/.claude/skills/omd-codex-image/SKILL.md +0 -162
  61. package/.opencode/oh-my-design/.claude/skills/omd-component-harvest/SKILL.md +0 -59
  62. package/.opencode/oh-my-design/.claude/skills/omd-designer-review/SKILL.md +0 -146
  63. package/.opencode/oh-my-design/.claude/skills/omd-final-qa/SKILL.md +0 -153
  64. package/.opencode/oh-my-design/.claude/skills/omd-harness/SKILL.md +0 -234
  65. package/.opencode/oh-my-design/.claude/skills/omd-init/SKILL.md +0 -169
  66. package/.opencode/oh-my-design/.claude/skills/omd-kr-writer/SKILL.md +0 -229
  67. package/.opencode/oh-my-design/.claude/skills/omd-lab-01-designmd-impact/SKILL.md +0 -53
  68. package/.opencode/oh-my-design/.claude/skills/omd-lab-01-designmd-impact/playbooks/compare.md +0 -30
  69. package/.opencode/oh-my-design/.claude/skills/omd-lab-01-designmd-impact/playbooks/v1.md +0 -42
  70. package/.opencode/oh-my-design/.claude/skills/omd-lab-01-designmd-impact/playbooks/v2.md +0 -34
  71. package/.opencode/oh-my-design/.claude/skills/omd-lab-01-designmd-impact/playbooks/v3.md +0 -33
  72. package/.opencode/oh-my-design/.claude/skills/omd-lab-01-designmd-impact/playbooks/v4.md +0 -37
  73. package/.opencode/oh-my-design/.claude/skills/omd-lab-02-design-harness/SKILL.md +0 -131
  74. package/.opencode/oh-my-design/.claude/skills/omd-learn/SKILL.md +0 -83
  75. package/.opencode/oh-my-design/.claude/skills/omd-locale-adapter/SKILL.md +0 -124
  76. package/.opencode/oh-my-design/.claude/skills/omd-migrate/SKILL.md +0 -307
  77. package/.opencode/oh-my-design/.claude/skills/omd-orchestrator/SKILL.md +0 -124
  78. package/.opencode/oh-my-design/.claude/skills/omd-release-hygiene/SKILL.md +0 -113
  79. package/.opencode/oh-my-design/.claude/skills/omd-remember/SKILL.md +0 -46
  80. package/.opencode/oh-my-design/.claude/skills/omd-sync/SKILL.md +0 -40
  81. package/.opencode/oh-my-design/.claude/skills/omd-token-backfill/SKILL.md +0 -57
  82. package/.opencode/oh-my-design/.claude/skills/skill-rules.json +0 -84
  83. package/.opencode/oh-my-design/.github/ISSUE_TEMPLATE/agent-fidelity.md +0 -59
  84. package/.opencode/oh-my-design/.github/ISSUE_TEMPLATE/bug-report.md +0 -36
  85. package/.opencode/oh-my-design/.github/ISSUE_TEMPLATE/config.yml +0 -8
  86. package/.opencode/oh-my-design/.github/ISSUE_TEMPLATE/feature-request.md +0 -26
  87. package/.opencode/oh-my-design/.github/PULL_REQUEST_TEMPLATE.md +0 -134
  88. package/.opencode/oh-my-design/.github/assets/logo-bg.png +0 -0
  89. package/.opencode/oh-my-design/.github/workflows/release.yml +0 -55
  90. package/.opencode/oh-my-design/.husky/pre-commit +0 -23
  91. package/.opencode/oh-my-design/.mcp.json +0 -12
  92. package/.opencode/oh-my-design/AGENTS.md +0 -112
  93. package/.opencode/oh-my-design/CHANGELOG.md +0 -385
  94. package/.opencode/oh-my-design/LICENSE +0 -21
  95. package/.opencode/oh-my-design/README.ja.md +0 -74
  96. package/.opencode/oh-my-design/README.ko.md +0 -112
  97. package/.opencode/oh-my-design/README.md +0 -112
  98. package/.opencode/oh-my-design/README.zh-TW.md +0 -74
  99. package/.opencode/oh-my-design/agents/AGENT.md +0 -53
  100. package/.opencode/oh-my-design/agents/omd-a11y-auditor.md +0 -97
  101. package/.opencode/oh-my-design/agents/omd-asset-curator.md +0 -255
  102. package/.opencode/oh-my-design/agents/omd-codex-image.md +0 -49
  103. package/.opencode/oh-my-design/agents/omd-critic.md +0 -181
  104. package/.opencode/oh-my-design/agents/omd-designer-review.md +0 -38
  105. package/.opencode/oh-my-design/agents/omd-final-qa.md +0 -40
  106. package/.opencode/oh-my-design/agents/omd-kr-writer.md +0 -35
  107. package/.opencode/oh-my-design/agents/omd-locale-adapter.md +0 -32
  108. package/.opencode/oh-my-design/agents/omd-master.md +0 -559
  109. package/.opencode/oh-my-design/agents/omd-microcopy.md +0 -63
  110. package/.opencode/oh-my-design/agents/omd-orchestrator.md +0 -34
  111. package/.opencode/oh-my-design/agents/omd-persona-tester.md +0 -118
  112. package/.opencode/oh-my-design/agents/omd-ui-junior.md +0 -129
  113. package/.opencode/oh-my-design/agents/omd-ux-engineer.md +0 -267
  114. package/.opencode/oh-my-design/agents/omd-ux-researcher.md +0 -62
  115. package/.opencode/oh-my-design/agents/omd-ux-writer.md +0 -181
  116. package/.opencode/oh-my-design/bin/oh-my-design.ts +0 -77
  117. package/.opencode/oh-my-design/data/architecture-proposals/1.7.2-recommend-install-feedback.md +0 -614
  118. package/.opencode/oh-my-design/data/architecture-proposals/2026-05-13-thin-install-fresh-fetch.md +0 -189
  119. package/.opencode/oh-my-design/data/issues/2026-05-13-multi-surface-schema-rfc.md +0 -67
  120. package/.opencode/oh-my-design/data/opt-out-corpus.json +0 -141
  121. package/.opencode/oh-my-design/data/reference-audits/2026-05-13-kr10.md +0 -132
  122. package/.opencode/oh-my-design/data/reference-audits/2026-05-14-kr10.md +0 -72
  123. package/.opencode/oh-my-design/data/reference-audits/2026-05-15-kr10.md +0 -124
  124. package/.opencode/oh-my-design/data/reference-fingerprints.json +0 -6142
  125. package/.opencode/oh-my-design/data/reference-tags.md +0 -118
  126. package/.opencode/oh-my-design/data/synonyms.json +0 -79
  127. package/.opencode/oh-my-design/data/vocabulary.json +0 -516
  128. package/.opencode/oh-my-design/packages/mcp/README.md +0 -172
  129. package/.opencode/oh-my-design/packages/mcp/__tests__/smoke.test.ts +0 -64
  130. package/.opencode/oh-my-design/packages/mcp/data/.gitkeep +0 -0
  131. package/.opencode/oh-my-design/packages/mcp/scripts/sync-data.mjs +0 -38
  132. package/.opencode/oh-my-design/packages/mcp/src/data.ts +0 -178
  133. package/.opencode/oh-my-design/packages/mcp/src/index.ts +0 -58
  134. package/.opencode/oh-my-design/packages/mcp/src/prompts/design-from-ref.ts +0 -87
  135. package/.opencode/oh-my-design/packages/mcp/src/server.ts +0 -223
  136. package/.opencode/oh-my-design/packages/mcp/src/tools/get-design-md.ts +0 -44
  137. package/.opencode/oh-my-design/packages/mcp/src/tools/list-references.ts +0 -58
  138. package/.opencode/oh-my-design/packages/mcp/src/tools/search-by-vibe.ts +0 -114
  139. package/.opencode/oh-my-design/packages/mcp/tsconfig.json +0 -21
  140. package/.opencode/oh-my-design/packages/mcp/tsup.config.ts +0 -17
  141. package/.opencode/oh-my-design/packages/mcp/vitest.config.ts +0 -8
  142. package/.opencode/oh-my-design/scripts/bench/README.md +0 -72
  143. package/.opencode/oh-my-design/scripts/bench/score-init.mjs +0 -97
  144. package/.opencode/oh-my-design/scripts/bench/score-taste.mjs +0 -189
  145. package/.opencode/oh-my-design/scripts/check-release-hygiene.sh +0 -83
  146. package/.opencode/oh-my-design/scripts/context.cjs +0 -91
  147. package/.opencode/oh-my-design/scripts/ctx-prime.cjs +0 -266
  148. package/.opencode/oh-my-design/scripts/gen-llms-full.cjs +0 -143
  149. package/.opencode/oh-my-design/scripts/growth-snapshot.mjs +0 -59
  150. package/.opencode/oh-my-design/scripts/postinstall.cjs +0 -54
  151. package/.opencode/oh-my-design/scripts/smoke-md-twins.mjs +0 -98
  152. package/.opencode/oh-my-design/skills/claude-design/SKILL.md +0 -390
  153. package/.opencode/oh-my-design/skills/claude-design/references/claude-design-flow.md +0 -425
  154. package/.opencode/oh-my-design/skills/claude-design/references/codebase-analysis.md +0 -373
  155. package/.opencode/oh-my-design/skills/claude-design/scripts/analyze_codebase.py +0 -1369
  156. package/.opencode/oh-my-design/skills/claude-design/scripts/clickable_link.sh +0 -48
  157. package/.opencode/oh-my-design/skills/claude-design/scripts/collect_source.py +0 -178
  158. package/.opencode/oh-my-design/skills/claude-design/scripts/drive_claude_design.cjs +0 -378
  159. package/.opencode/oh-my-design/skills/claude-design/scripts/gather_references.py +0 -437
  160. package/.opencode/oh-my-design/skills/omd-apply/SKILL.md +0 -107
  161. package/.opencode/oh-my-design/skills/omd-asset-fetch/SKILL.md +0 -213
  162. package/.opencode/oh-my-design/skills/omd-codex-image/SKILL.md +0 -162
  163. package/.opencode/oh-my-design/skills/omd-designer-review/SKILL.md +0 -180
  164. package/.opencode/oh-my-design/skills/omd-experiment-gallery/SKILL.md +0 -164
  165. package/.opencode/oh-my-design/skills/omd-final-qa/SKILL.md +0 -182
  166. package/.opencode/oh-my-design/skills/omd-harness/SKILL.md +0 -726
  167. package/.opencode/oh-my-design/skills/omd-init/SKILL.md +0 -314
  168. package/.opencode/oh-my-design/skills/omd-kr-writer/SKILL.md +0 -299
  169. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/SKILL.md +0 -129
  170. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/playbooks/v1.md +0 -105
  171. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/live-2026-04-27-water-app/feedback-log.md +0 -230
  172. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/README.md +0 -46
  173. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/founder/README.md +0 -7
  174. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/junior-designer/src/components/Hero.tsx +0 -1
  175. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/junior-designer/src/components/Project.tsx +0 -1
  176. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Accordion.tsx +0 -4
  177. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Alert.tsx +0 -4
  178. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Avatar.tsx +0 -4
  179. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Badge.tsx +0 -4
  180. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Breadcrumb.tsx +0 -4
  181. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Button.tsx +0 -4
  182. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Card.tsx +0 -4
  183. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Combobox.tsx +0 -4
  184. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/DataTable.tsx +0 -4
  185. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Dialog.tsx +0 -4
  186. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Drawer.tsx +0 -4
  187. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Field.tsx +0 -4
  188. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Form.tsx +0 -4
  189. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Input.tsx +0 -4
  190. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Menu.tsx +0 -4
  191. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Modal.tsx +0 -4
  192. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Pagination.tsx +0 -4
  193. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Popover.tsx +0 -4
  194. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Select.tsx +0 -4
  195. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Sheet.tsx +0 -4
  196. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Spinner.tsx +0 -4
  197. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Tabs.tsx +0 -4
  198. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Toast.tsx +0 -4
  199. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Tooltip.tsx +0 -4
  200. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/VirtualList.tsx +0 -4
  201. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/vibe-coder/src/components/Alert.tsx +0 -3
  202. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/vibe-coder/src/components/Avatar.tsx +0 -3
  203. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/vibe-coder/src/components/Badge.tsx +0 -3
  204. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/vibe-coder/src/components/Button.tsx +0 -3
  205. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/vibe-coder/src/components/Card.tsx +0 -3
  206. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/vibe-coder/src/components/Input.tsx +0 -3
  207. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/vibe-coder/src/components/Modal.tsx +0 -3
  208. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/vibe-coder/src/components/Spinner.tsx +0 -3
  209. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/vibe-coder/src/components/Tabs.tsx +0 -3
  210. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/vibe-coder/src/components/Toast.tsx +0 -3
  211. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/vibe-coder/src/styles/globals.css +0 -25
  212. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/vibe-coder/tailwind.config.ts +0 -28
  213. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/iterations/i1-findings.md +0 -51
  214. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/iterations/i2-audit-F.md +0 -133
  215. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/iterations/i2-audit-J.md +0 -171
  216. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/iterations/i2-audit-S.md +0 -232
  217. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/iterations/i2-audit-V.md +0 -73
  218. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/iterations/i2-consolidated.md +0 -69
  219. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/postmortem.md +0 -128
  220. package/.opencode/oh-my-design/skills/omd-learn/SKILL.md +0 -121
  221. package/.opencode/oh-my-design/skills/omd-locale-adapter/SKILL.md +0 -124
  222. package/.opencode/oh-my-design/skills/omd-orchestrator/SKILL.md +0 -124
  223. package/.opencode/oh-my-design/skills/omd-reference-capture/SKILL.md +0 -722
  224. package/.opencode/oh-my-design/skills/omd-remember/SKILL.md +0 -122
  225. package/.opencode/oh-my-design/skills/omd-sync/SKILL.md +0 -162
  226. package/.opencode/oh-my-design/skills/omd-taste/SKILL.md +0 -79
  227. package/.opencode/oh-my-design/skills-lock.json +0 -10
  228. package/.opencode/oh-my-design/spec/components-schema.md +0 -179
  229. package/.opencode/oh-my-design/spec/migration-checklist.md +0 -148
  230. package/.opencode/oh-my-design/spec/migration-plan.md +0 -124
  231. package/.opencode/oh-my-design/spec/omd-v0.1.md +0 -382
  232. package/.opencode/oh-my-design/spec/regional-sources.yaml +0 -77
  233. package/.opencode/oh-my-design/spec/verification-pipeline.md +0 -154
  234. package/.opencode/oh-my-design/src/cli/install-skills.ts +0 -1116
  235. package/.opencode/oh-my-design/src/core/agent-detect.ts +0 -49
  236. package/.opencode/oh-my-design/test/README.md +0 -89
  237. package/.opencode/oh-my-design/test/scripts/check-backgrounds.ts +0 -10
  238. package/.opencode/oh-my-design/test/scripts/generate-preview.ts +0 -42
  239. package/.opencode/oh-my-design/test/unit/cli/install-skills.test.ts +0 -227
  240. package/.opencode/oh-my-design/test/unit/core/agent-detect.test.ts +0 -97
  241. package/.opencode/oh-my-design/test/unit/core/catalog-resolution-order.test.ts +0 -73
  242. package/.opencode/oh-my-design/test/unit/hooks/hooks.test.ts +0 -499
  243. package/.opencode/oh-my-design/tsconfig.json +0 -20
  244. package/.opencode/oh-my-design/tsup.config.ts +0 -12
  245. package/.opencode/oh-my-design/vitest.config.ts +0 -13
  246. package/.opencode/oh-my-design/web/.env.example +0 -21
  247. package/.opencode/oh-my-design/web/AGENTS.md +0 -5
  248. package/.opencode/oh-my-design/web/CLAUDE.md +0 -1
  249. package/.opencode/oh-my-design/web/README.md +0 -45
  250. package/.opencode/oh-my-design/web/__tests__/catalog-integrity.test.ts +0 -333
  251. package/.opencode/oh-my-design/web/components.json +0 -25
  252. package/.opencode/oh-my-design/web/docs/font-playground-analytics.md +0 -110
  253. package/.opencode/oh-my-design/web/eslint.config.mjs +0 -18
  254. package/.opencode/oh-my-design/web/next.config.ts +0 -31
  255. package/.opencode/oh-my-design/web/postcss.config.mjs +0 -7
  256. package/.opencode/oh-my-design/web/public/file.svg +0 -1
  257. package/.opencode/oh-my-design/web/public/globe.svg +0 -1
  258. package/.opencode/oh-my-design/web/public/llms-full.txt +0 -3149
  259. package/.opencode/oh-my-design/web/public/llms.ko.txt +0 -130
  260. package/.opencode/oh-my-design/web/public/llms.txt +0 -377
  261. package/.opencode/oh-my-design/web/public/logo-white.png +0 -0
  262. package/.opencode/oh-my-design/web/public/logo.png +0 -0
  263. package/.opencode/oh-my-design/web/public/next.svg +0 -1
  264. package/.opencode/oh-my-design/web/public/og-image.png +0 -0
  265. package/.opencode/oh-my-design/web/public/twitter-image.png +0 -0
  266. package/.opencode/oh-my-design/web/public/vercel.svg +0 -1
  267. package/.opencode/oh-my-design/web/public/window.svg +0 -1
  268. package/.opencode/oh-my-design/web/references/11st/.verification.md +0 -37
  269. package/.opencode/oh-my-design/web/references/11st/DESIGN.md +0 -400
  270. package/.opencode/oh-my-design/web/references/17live/DESIGN.md +0 -467
  271. package/.opencode/oh-my-design/web/references/29cm/DESIGN.md +0 -495
  272. package/.opencode/oh-my-design/web/references/29cm/_promo.json +0 -23
  273. package/.opencode/oh-my-design/web/references/29cm/_research.md +0 -103
  274. package/.opencode/oh-my-design/web/references/3o3/.verification.md +0 -73
  275. package/.opencode/oh-my-design/web/references/3o3/DESIGN.md +0 -454
  276. package/.opencode/oh-my-design/web/references/91app/.verification.md +0 -25
  277. package/.opencode/oh-my-design/web/references/91app/DESIGN.md +0 -182
  278. package/.opencode/oh-my-design/web/references/abema/.verification.md +0 -64
  279. package/.opencode/oh-my-design/web/references/abema/DESIGN.md +0 -535
  280. package/.opencode/oh-my-design/web/references/ably/DESIGN.md +0 -646
  281. package/.opencode/oh-my-design/web/references/ably/_promo.json +0 -18
  282. package/.opencode/oh-my-design/web/references/ably/_research.md +0 -120
  283. package/.opencode/oh-my-design/web/references/accupass/.verification.md +0 -66
  284. package/.opencode/oh-my-design/web/references/accupass/DESIGN.md +0 -494
  285. package/.opencode/oh-my-design/web/references/adobe/.verification.md +0 -63
  286. package/.opencode/oh-my-design/web/references/adobe/DESIGN.md +0 -458
  287. package/.opencode/oh-my-design/web/references/airbnb/.verification.md +0 -143
  288. package/.opencode/oh-my-design/web/references/airbnb/DESIGN.md +0 -639
  289. package/.opencode/oh-my-design/web/references/airbnb/README.md +0 -23
  290. package/.opencode/oh-my-design/web/references/airbnb/preview-dark.html +0 -234
  291. package/.opencode/oh-my-design/web/references/airbnb/preview.html +0 -233
  292. package/.opencode/oh-my-design/web/references/airtable/.verification.md +0 -136
  293. package/.opencode/oh-my-design/web/references/airtable/DESIGN.md +0 -314
  294. package/.opencode/oh-my-design/web/references/airtable/README.md +0 -23
  295. package/.opencode/oh-my-design/web/references/airtable/preview-dark.html +0 -165
  296. package/.opencode/oh-my-design/web/references/airtable/preview.html +0 -164
  297. package/.opencode/oh-my-design/web/references/alipay/DESIGN.md +0 -506
  298. package/.opencode/oh-my-design/web/references/amazingtalker/.verification.md +0 -38
  299. package/.opencode/oh-my-design/web/references/amazingtalker/DESIGN.md +0 -434
  300. package/.opencode/oh-my-design/web/references/appier/DESIGN.md +0 -465
  301. package/.opencode/oh-my-design/web/references/apple/.verification.md +0 -162
  302. package/.opencode/oh-my-design/web/references/apple/DESIGN.md +0 -613
  303. package/.opencode/oh-my-design/web/references/apple/README.md +0 -24
  304. package/.opencode/oh-my-design/web/references/apple/preview-dark.html +0 -420
  305. package/.opencode/oh-my-design/web/references/apple/preview.html +0 -414
  306. package/.opencode/oh-my-design/web/references/baemin/.verification.md +0 -132
  307. package/.opencode/oh-my-design/web/references/baemin/DESIGN.md +0 -578
  308. package/.opencode/oh-my-design/web/references/baemin/README.md +0 -19
  309. package/.opencode/oh-my-design/web/references/baemin/_research.md +0 -84
  310. package/.opencode/oh-my-design/web/references/banksalad/DESIGN.md +0 -688
  311. package/.opencode/oh-my-design/web/references/banksalad/_promo.json +0 -29
  312. package/.opencode/oh-my-design/web/references/banksalad/_research.md +0 -190
  313. package/.opencode/oh-my-design/web/references/bilibili/DESIGN.md +0 -471
  314. package/.opencode/oh-my-design/web/references/bithumb/.verification.md +0 -31
  315. package/.opencode/oh-my-design/web/references/bithumb/DESIGN.md +0 -208
  316. package/.opencode/oh-my-design/web/references/bmw/.verification.md +0 -114
  317. package/.opencode/oh-my-design/web/references/bmw/DESIGN.md +0 -360
  318. package/.opencode/oh-my-design/web/references/bmw/README.md +0 -23
  319. package/.opencode/oh-my-design/web/references/bmw/preview-dark.html +0 -211
  320. package/.opencode/oh-my-design/web/references/bmw/preview.html +0 -210
  321. package/.opencode/oh-my-design/web/references/brandi/.verification.md +0 -29
  322. package/.opencode/oh-my-design/web/references/brandi/DESIGN.md +0 -414
  323. package/.opencode/oh-my-design/web/references/bunjang/DESIGN.md +0 -374
  324. package/.opencode/oh-my-design/web/references/bunjang/assets/_reference/.live-inspect-proof.json +0 -260
  325. package/.opencode/oh-my-design/web/references/bunjang/assets/_reference/fonts.json +0 -33
  326. package/.opencode/oh-my-design/web/references/bunjang/assets/_reference/logo-icon.svg +0 -10
  327. package/.opencode/oh-my-design/web/references/bunjang/assets/_reference/structure.json +0 -131
  328. package/.opencode/oh-my-design/web/references/bunjang/assets/_reference/tokens.json +0 -147
  329. package/.opencode/oh-my-design/web/references/cakeresume/.verification.md +0 -25
  330. package/.opencode/oh-my-design/web/references/cakeresume/DESIGN.md +0 -191
  331. package/.opencode/oh-my-design/web/references/cal/.verification.md +0 -145
  332. package/.opencode/oh-my-design/web/references/cal/DESIGN.md +0 -481
  333. package/.opencode/oh-my-design/web/references/cal/README.md +0 -23
  334. package/.opencode/oh-my-design/web/references/cal/preview-dark.html +0 -449
  335. package/.opencode/oh-my-design/web/references/cal/preview.html +0 -575
  336. package/.opencode/oh-my-design/web/references/catchtable/DESIGN.md +0 -341
  337. package/.opencode/oh-my-design/web/references/catchtable/_research.md +0 -54
  338. package/.opencode/oh-my-design/web/references/catchtable/assets/_reference/.live-inspect-proof.json +0 -204
  339. package/.opencode/oh-my-design/web/references/catchtable/assets/_reference/.live-inspect-raw.json +0 -22
  340. package/.opencode/oh-my-design/web/references/catchtable/assets/_reference/fonts.json +0 -21
  341. package/.opencode/oh-my-design/web/references/catchtable/assets/_reference/structure.json +0 -42
  342. package/.opencode/oh-my-design/web/references/catchtable/assets/_reference/tokens.json +0 -95
  343. package/.opencode/oh-my-design/web/references/cathay/.verification.md +0 -44
  344. package/.opencode/oh-my-design/web/references/cathay/DESIGN.md +0 -432
  345. package/.opencode/oh-my-design/web/references/channeltalk/DESIGN.md +0 -422
  346. package/.opencode/oh-my-design/web/references/channeltalk/assets/_reference/.live-inspect-proof.json +0 -320
  347. package/.opencode/oh-my-design/web/references/channeltalk/assets/_reference/fonts.json +0 -53
  348. package/.opencode/oh-my-design/web/references/channeltalk/assets/_reference/structure.json +0 -47
  349. package/.opencode/oh-my-design/web/references/channeltalk/assets/_reference/tokens.json +0 -78
  350. package/.opencode/oh-my-design/web/references/class101/DESIGN.md +0 -484
  351. package/.opencode/oh-my-design/web/references/classting/.verification.md +0 -32
  352. package/.opencode/oh-my-design/web/references/classting/DESIGN.md +0 -292
  353. package/.opencode/oh-my-design/web/references/classum/DESIGN.md +0 -279
  354. package/.opencode/oh-my-design/web/references/classum/assets/_reference/.live-inspect-proof.json +0 -72
  355. package/.opencode/oh-my-design/web/references/classum/assets/_reference/fonts.json +0 -20
  356. package/.opencode/oh-my-design/web/references/classum/assets/_reference/structure.json +0 -21
  357. package/.opencode/oh-my-design/web/references/classum/assets/_reference/tokens.json +0 -56
  358. package/.opencode/oh-my-design/web/references/claude/.verification.md +0 -106
  359. package/.opencode/oh-my-design/web/references/claude/DESIGN.md +0 -561
  360. package/.opencode/oh-my-design/web/references/claude/README.md +0 -24
  361. package/.opencode/oh-my-design/web/references/claude/preview-dark.html +0 -803
  362. package/.opencode/oh-my-design/web/references/claude/preview.html +0 -826
  363. package/.opencode/oh-my-design/web/references/clay/.verification.md +0 -129
  364. package/.opencode/oh-my-design/web/references/clay/DESIGN.md +0 -454
  365. package/.opencode/oh-my-design/web/references/clay/README.md +0 -23
  366. package/.opencode/oh-my-design/web/references/clay/preview-dark.html +0 -316
  367. package/.opencode/oh-my-design/web/references/clay/preview.html +0 -315
  368. package/.opencode/oh-my-design/web/references/clickhouse/.verification.md +0 -132
  369. package/.opencode/oh-my-design/web/references/clickhouse/DESIGN.md +0 -424
  370. package/.opencode/oh-my-design/web/references/clickhouse/README.md +0 -24
  371. package/.opencode/oh-my-design/web/references/clickhouse/preview-dark.html +0 -834
  372. package/.opencode/oh-my-design/web/references/clickhouse/preview.html +0 -786
  373. package/.opencode/oh-my-design/web/references/cloudflare/.verification.md +0 -21
  374. package/.opencode/oh-my-design/web/references/cloudflare/DESIGN.md +0 -637
  375. package/.opencode/oh-my-design/web/references/cohere/.verification.md +0 -136
  376. package/.opencode/oh-my-design/web/references/cohere/DESIGN.md +0 -409
  377. package/.opencode/oh-my-design/web/references/cohere/README.md +0 -24
  378. package/.opencode/oh-my-design/web/references/cohere/preview-dark.html +0 -803
  379. package/.opencode/oh-my-design/web/references/cohere/preview.html +0 -807
  380. package/.opencode/oh-my-design/web/references/coinbase/.verification.md +0 -116
  381. package/.opencode/oh-my-design/web/references/coinbase/DESIGN.md +0 -353
  382. package/.opencode/oh-my-design/web/references/coinbase/README.md +0 -23
  383. package/.opencode/oh-my-design/web/references/coinbase/preview-dark.html +0 -164
  384. package/.opencode/oh-my-design/web/references/coinbase/preview.html +0 -163
  385. package/.opencode/oh-my-design/web/references/coinone/.verification.md +0 -38
  386. package/.opencode/oh-my-design/web/references/coinone/DESIGN.md +0 -257
  387. package/.opencode/oh-my-design/web/references/composio/.verification.md +0 -143
  388. package/.opencode/oh-my-design/web/references/composio/DESIGN.md +0 -441
  389. package/.opencode/oh-my-design/web/references/composio/README.md +0 -24
  390. package/.opencode/oh-my-design/web/references/composio/preview-dark.html +0 -958
  391. package/.opencode/oh-my-design/web/references/composio/preview.html +0 -933
  392. package/.opencode/oh-my-design/web/references/cookpad/DESIGN.md +0 -394
  393. package/.opencode/oh-my-design/web/references/coupang/.verification.md +0 -141
  394. package/.opencode/oh-my-design/web/references/coupang/DESIGN.md +0 -557
  395. package/.opencode/oh-my-design/web/references/cursor/.verification.md +0 -141
  396. package/.opencode/oh-my-design/web/references/cursor/DESIGN.md +0 -460
  397. package/.opencode/oh-my-design/web/references/cursor/README.md +0 -24
  398. package/.opencode/oh-my-design/web/references/cursor/preview-dark.html +0 -393
  399. package/.opencode/oh-my-design/web/references/cursor/preview.html +0 -383
  400. package/.opencode/oh-my-design/web/references/dabang/DESIGN.md +0 -267
  401. package/.opencode/oh-my-design/web/references/dabang/assets/_reference/.live-inspect-proof.json +0 -145
  402. package/.opencode/oh-my-design/web/references/dabang/assets/_reference/fonts.json +0 -22
  403. package/.opencode/oh-my-design/web/references/dabang/assets/_reference/raw-capture-map.json +0 -718
  404. package/.opencode/oh-my-design/web/references/dabang/assets/_reference/raw-capture.json +0 -1125
  405. package/.opencode/oh-my-design/web/references/dabang/assets/_reference/structure.json +0 -53
  406. package/.opencode/oh-my-design/web/references/dabang/assets/_reference/tokens.json +0 -130
  407. package/.opencode/oh-my-design/web/references/danawa/.verification.md +0 -60
  408. package/.opencode/oh-my-design/web/references/danawa/DESIGN.md +0 -477
  409. package/.opencode/oh-my-design/web/references/dcard/.verification.md +0 -118
  410. package/.opencode/oh-my-design/web/references/dcard/DESIGN.md +0 -633
  411. package/.opencode/oh-my-design/web/references/dcard/README.md +0 -12
  412. package/.opencode/oh-my-design/web/references/dcard/_research/forum-1440px.png +0 -0
  413. package/.opencode/oh-my-design/web/references/dcard/_research.md +0 -133
  414. package/.opencode/oh-my-design/web/references/dell/.verification.md +0 -21
  415. package/.opencode/oh-my-design/web/references/dell/DESIGN.md +0 -636
  416. package/.opencode/oh-my-design/web/references/devsisters/.verification.md +0 -32
  417. package/.opencode/oh-my-design/web/references/devsisters/DESIGN.md +0 -282
  418. package/.opencode/oh-my-design/web/references/discord/.verification.md +0 -21
  419. package/.opencode/oh-my-design/web/references/discord/DESIGN.md +0 -604
  420. package/.opencode/oh-my-design/web/references/dji/DESIGN.md +0 -454
  421. package/.opencode/oh-my-design/web/references/drnow/.verification.md +0 -41
  422. package/.opencode/oh-my-design/web/references/drnow/DESIGN.md +0 -383
  423. package/.opencode/oh-my-design/web/references/dropbox/.verification.md +0 -61
  424. package/.opencode/oh-my-design/web/references/dropbox/DESIGN.md +0 -445
  425. package/.opencode/oh-my-design/web/references/duolingo/.verification.md +0 -20
  426. package/.opencode/oh-my-design/web/references/duolingo/DESIGN.md +0 -563
  427. package/.opencode/oh-my-design/web/references/elevenlabs/.verification.md +0 -128
  428. package/.opencode/oh-my-design/web/references/elevenlabs/DESIGN.md +0 -415
  429. package/.opencode/oh-my-design/web/references/elevenlabs/README.md +0 -23
  430. package/.opencode/oh-my-design/web/references/elevenlabs/preview-dark.html +0 -252
  431. package/.opencode/oh-my-design/web/references/elevenlabs/preview.html +0 -251
  432. package/.opencode/oh-my-design/web/references/expo/.verification.md +0 -141
  433. package/.opencode/oh-my-design/web/references/expo/DESIGN.md +0 -412
  434. package/.opencode/oh-my-design/web/references/expo/README.md +0 -24
  435. package/.opencode/oh-my-design/web/references/expo/preview-dark.html +0 -533
  436. package/.opencode/oh-my-design/web/references/expo/preview.html +0 -533
  437. package/.opencode/oh-my-design/web/references/fastcampus/DESIGN.md +0 -529
  438. package/.opencode/oh-my-design/web/references/fastcampus/assets/_reference/.live-inspect-proof.json +0 -950
  439. package/.opencode/oh-my-design/web/references/fastcampus/assets/_reference/fonts.json +0 -14
  440. package/.opencode/oh-my-design/web/references/fastcampus/assets/_reference/structure.json +0 -30
  441. package/.opencode/oh-my-design/web/references/fastcampus/assets/_reference/tokens.json +0 -109
  442. package/.opencode/oh-my-design/web/references/ferrari/.verification.md +0 -119
  443. package/.opencode/oh-my-design/web/references/ferrari/DESIGN.md +0 -447
  444. package/.opencode/oh-my-design/web/references/ferrari/README.md +0 -23
  445. package/.opencode/oh-my-design/web/references/ferrari/preview-dark.html +0 -1162
  446. package/.opencode/oh-my-design/web/references/ferrari/preview.html +0 -1122
  447. package/.opencode/oh-my-design/web/references/figma/.verification.md +0 -206
  448. package/.opencode/oh-my-design/web/references/figma/DESIGN.md +0 -534
  449. package/.opencode/oh-my-design/web/references/figma/README.md +0 -24
  450. package/.opencode/oh-my-design/web/references/figma/preview-dark.html +0 -822
  451. package/.opencode/oh-my-design/web/references/figma/preview.html +0 -832
  452. package/.opencode/oh-my-design/web/references/finda/.verification.md +0 -33
  453. package/.opencode/oh-my-design/web/references/finda/DESIGN.md +0 -413
  454. package/.opencode/oh-my-design/web/references/firstory/.verification.md +0 -70
  455. package/.opencode/oh-my-design/web/references/firstory/DESIGN.md +0 -487
  456. package/.opencode/oh-my-design/web/references/flex/DESIGN.md +0 -356
  457. package/.opencode/oh-my-design/web/references/flex/_research.md +0 -49
  458. package/.opencode/oh-my-design/web/references/flex/assets/_reference/.live-inspect-proof.json +0 -192
  459. package/.opencode/oh-my-design/web/references/flex/assets/_reference/.raw-inspect.json +0 -873
  460. package/.opencode/oh-my-design/web/references/flex/assets/_reference/fonts.json +0 -17
  461. package/.opencode/oh-my-design/web/references/flex/assets/_reference/structure.json +0 -58
  462. package/.opencode/oh-my-design/web/references/flex/assets/_reference/tokens.json +0 -75
  463. package/.opencode/oh-my-design/web/references/flo/.verification.md +0 -33
  464. package/.opencode/oh-my-design/web/references/flo/DESIGN.md +0 -349
  465. package/.opencode/oh-my-design/web/references/framer/.verification.md +0 -147
  466. package/.opencode/oh-my-design/web/references/framer/DESIGN.md +0 -431
  467. package/.opencode/oh-my-design/web/references/framer/README.md +0 -23
  468. package/.opencode/oh-my-design/web/references/framer/preview-dark.html +0 -902
  469. package/.opencode/oh-my-design/web/references/framer/preview.html +0 -883
  470. package/.opencode/oh-my-design/web/references/freee/.verification.md +0 -145
  471. package/.opencode/oh-my-design/web/references/freee/DESIGN.md +0 -620
  472. package/.opencode/oh-my-design/web/references/freee/README.md +0 -12
  473. package/.opencode/oh-my-design/web/references/freee/_research/vibes-storybook-1440px.png +0 -0
  474. package/.opencode/oh-my-design/web/references/freee/_research.md +0 -116
  475. package/.opencode/oh-my-design/web/references/fugle/.verification.md +0 -40
  476. package/.opencode/oh-my-design/web/references/fugle/DESIGN.md +0 -290
  477. package/.opencode/oh-my-design/web/references/funnow/.verification.md +0 -62
  478. package/.opencode/oh-my-design/web/references/funnow/DESIGN.md +0 -431
  479. package/.opencode/oh-my-design/web/references/gangnamunni/DESIGN.md +0 -677
  480. package/.opencode/oh-my-design/web/references/gangnamunni/_promo.json +0 -26
  481. package/.opencode/oh-my-design/web/references/gangnamunni/_research.md +0 -113
  482. package/.opencode/oh-my-design/web/references/genie/.verification.md +0 -29
  483. package/.opencode/oh-my-design/web/references/genie/DESIGN.md +0 -415
  484. package/.opencode/oh-my-design/web/references/github/.verification.md +0 -21
  485. package/.opencode/oh-my-design/web/references/github/DESIGN.md +0 -727
  486. package/.opencode/oh-my-design/web/references/gmarket/DESIGN.md +0 -534
  487. package/.opencode/oh-my-design/web/references/gmarket/assets/_reference/.live-inspect-proof.json +0 -217
  488. package/.opencode/oh-my-design/web/references/gmarket/assets/_reference/fonts.json +0 -41
  489. package/.opencode/oh-my-design/web/references/gmarket/assets/_reference/raw-capture-bestsellers.json +0 -1929
  490. package/.opencode/oh-my-design/web/references/gmarket/assets/_reference/raw-capture-home.json +0 -3675
  491. package/.opencode/oh-my-design/web/references/gmarket/assets/_reference/structure.json +0 -65
  492. package/.opencode/oh-my-design/web/references/gmarket/assets/_reference/tokens.json +0 -210
  493. package/.opencode/oh-my-design/web/references/gogolook/.verification.md +0 -31
  494. package/.opencode/oh-my-design/web/references/gogolook/DESIGN.md +0 -155
  495. package/.opencode/oh-my-design/web/references/gogoro/DESIGN.md +0 -441
  496. package/.opencode/oh-my-design/web/references/google/.verification.md +0 -61
  497. package/.opencode/oh-my-design/web/references/google/DESIGN.md +0 -499
  498. package/.opencode/oh-my-design/web/references/greenvines/.verification.md +0 -72
  499. package/.opencode/oh-my-design/web/references/greenvines/DESIGN.md +0 -454
  500. package/.opencode/oh-my-design/web/references/greeting/.verification.md +0 -64
  501. package/.opencode/oh-my-design/web/references/greeting/DESIGN.md +0 -462
  502. package/.opencode/oh-my-design/web/references/grip/.verification.md +0 -36
  503. package/.opencode/oh-my-design/web/references/grip/DESIGN.md +0 -289
  504. package/.opencode/oh-my-design/web/references/hahow/.verification.md +0 -31
  505. package/.opencode/oh-my-design/web/references/hahow/DESIGN.md +0 -184
  506. package/.opencode/oh-my-design/web/references/hashicorp/.verification.md +0 -142
  507. package/.opencode/oh-my-design/web/references/hashicorp/DESIGN.md +0 -411
  508. package/.opencode/oh-my-design/web/references/hashicorp/README.md +0 -24
  509. package/.opencode/oh-my-design/web/references/hashicorp/preview-dark.html +0 -1202
  510. package/.opencode/oh-my-design/web/references/hashicorp/preview.html +0 -1193
  511. package/.opencode/oh-my-design/web/references/hogangnono/.verification.md +0 -33
  512. package/.opencode/oh-my-design/web/references/hogangnono/DESIGN.md +0 -349
  513. package/.opencode/oh-my-design/web/references/hp/.verification.md +0 -21
  514. package/.opencode/oh-my-design/web/references/hp/DESIGN.md +0 -563
  515. package/.opencode/oh-my-design/web/references/hyperconnect/.verification.md +0 -40
  516. package/.opencode/oh-my-design/web/references/hyperconnect/DESIGN.md +0 -393
  517. package/.opencode/oh-my-design/web/references/hyundaicard/.verification.md +0 -25
  518. package/.opencode/oh-my-design/web/references/hyundaicard/DESIGN.md +0 -201
  519. package/.opencode/oh-my-design/web/references/ibm/.verification.md +0 -102
  520. package/.opencode/oh-my-design/web/references/ibm/DESIGN.md +0 -464
  521. package/.opencode/oh-my-design/web/references/ibm/README.md +0 -24
  522. package/.opencode/oh-my-design/web/references/ibm/preview-dark.html +0 -443
  523. package/.opencode/oh-my-design/web/references/ibm/preview.html +0 -428
  524. package/.opencode/oh-my-design/web/references/ichef/DESIGN.md +0 -455
  525. package/.opencode/oh-my-design/web/references/ikala/.verification.md +0 -35
  526. package/.opencode/oh-my-design/web/references/ikala/DESIGN.md +0 -400
  527. package/.opencode/oh-my-design/web/references/imweb/.verification.md +0 -61
  528. package/.opencode/oh-my-design/web/references/imweb/DESIGN.md +0 -460
  529. package/.opencode/oh-my-design/web/references/inflearn/DESIGN.md +0 -453
  530. package/.opencode/oh-my-design/web/references/inflearn/_promo.json +0 -29
  531. package/.opencode/oh-my-design/web/references/inflearn/_research.md +0 -85
  532. package/.opencode/oh-my-design/web/references/inflearn/assets/_reference/.live-inspect-proof-courses.json +0 -679
  533. package/.opencode/oh-my-design/web/references/inflearn/assets/_reference/.live-inspect-proof.json +0 -448
  534. package/.opencode/oh-my-design/web/references/inflearn/assets/_reference/fonts.json +0 -41
  535. package/.opencode/oh-my-design/web/references/inflearn/assets/_reference/structure.json +0 -110
  536. package/.opencode/oh-my-design/web/references/inflearn/assets/_reference/tokens.json +0 -54
  537. package/.opencode/oh-my-design/web/references/intercom/.verification.md +0 -144
  538. package/.opencode/oh-my-design/web/references/intercom/DESIGN.md +0 -271
  539. package/.opencode/oh-my-design/web/references/intercom/README.md +0 -23
  540. package/.opencode/oh-my-design/web/references/intercom/preview-dark.html +0 -185
  541. package/.opencode/oh-my-design/web/references/intercom/preview.html +0 -184
  542. package/.opencode/oh-my-design/web/references/jandi/.verification.md +0 -26
  543. package/.opencode/oh-my-design/web/references/jandi/DESIGN.md +0 -382
  544. package/.opencode/oh-my-design/web/references/jkopay/.verification.md +0 -32
  545. package/.opencode/oh-my-design/web/references/jkopay/DESIGN.md +0 -283
  546. package/.opencode/oh-my-design/web/references/jobkorea/.verification.md +0 -30
  547. package/.opencode/oh-my-design/web/references/jobkorea/DESIGN.md +0 -349
  548. package/.opencode/oh-my-design/web/references/jumpit/DESIGN.md +0 -403
  549. package/.opencode/oh-my-design/web/references/jumpit/_research.md +0 -119
  550. package/.opencode/oh-my-design/web/references/jumpit/assets/_reference/.live-inspect-proof.json +0 -182
  551. package/.opencode/oh-my-design/web/references/jumpit/assets/_reference/fonts.json +0 -20
  552. package/.opencode/oh-my-design/web/references/jumpit/assets/_reference/structure.json +0 -66
  553. package/.opencode/oh-my-design/web/references/jumpit/assets/_reference/tokens.json +0 -108
  554. package/.opencode/oh-my-design/web/references/kakao/.verification.md +0 -137
  555. package/.opencode/oh-my-design/web/references/kakao/DESIGN.md +0 -568
  556. package/.opencode/oh-my-design/web/references/kakao/README.md +0 -18
  557. package/.opencode/oh-my-design/web/references/kakao/_research.md +0 -98
  558. package/.opencode/oh-my-design/web/references/kakaobank/.verification.md +0 -133
  559. package/.opencode/oh-my-design/web/references/kakaobank/DESIGN.md +0 -602
  560. package/.opencode/oh-my-design/web/references/kakaopay/DESIGN.md +0 -603
  561. package/.opencode/oh-my-design/web/references/kakaopay/_promo.json +0 -22
  562. package/.opencode/oh-my-design/web/references/kakaopay/_research.md +0 -84
  563. package/.opencode/oh-my-design/web/references/kakaot/DESIGN.md +0 -507
  564. package/.opencode/oh-my-design/web/references/karrot/.verification.md +0 -143
  565. package/.opencode/oh-my-design/web/references/karrot/DESIGN.md +0 -494
  566. package/.opencode/oh-my-design/web/references/karrot/README.md +0 -18
  567. package/.opencode/oh-my-design/web/references/karrot/_research.md +0 -57
  568. package/.opencode/oh-my-design/web/references/kbank/DESIGN.md +0 -252
  569. package/.opencode/oh-my-design/web/references/kbank/assets/_reference/.live-inspect-proof.json +0 -215
  570. package/.opencode/oh-my-design/web/references/kbank/assets/_reference/.live-inspect-raw.json +0 -1
  571. package/.opencode/oh-my-design/web/references/kbank/assets/_reference/fonts.json +0 -20
  572. package/.opencode/oh-my-design/web/references/kbank/assets/_reference/structure.json +0 -151
  573. package/.opencode/oh-my-design/web/references/kbank/assets/_reference/tokens.json +0 -101
  574. package/.opencode/oh-my-design/web/references/kdan/.verification.md +0 -30
  575. package/.opencode/oh-my-design/web/references/kdan/DESIGN.md +0 -193
  576. package/.opencode/oh-my-design/web/references/kintone/.verification.md +0 -21
  577. package/.opencode/oh-my-design/web/references/kintone/DESIGN.md +0 -586
  578. package/.opencode/oh-my-design/web/references/kkbox/.verification.md +0 -27
  579. package/.opencode/oh-my-design/web/references/kkbox/DESIGN.md +0 -136
  580. package/.opencode/oh-my-design/web/references/kkday/DESIGN.md +0 -470
  581. package/.opencode/oh-my-design/web/references/kmong/.verification.md +0 -30
  582. package/.opencode/oh-my-design/web/references/kmong/DESIGN.md +0 -427
  583. package/.opencode/oh-my-design/web/references/krafton/.verification.md +0 -38
  584. package/.opencode/oh-my-design/web/references/krafton/DESIGN.md +0 -267
  585. package/.opencode/oh-my-design/web/references/kraken/.verification.md +0 -143
  586. package/.opencode/oh-my-design/web/references/kraken/DESIGN.md +0 -277
  587. package/.opencode/oh-my-design/web/references/kraken/README.md +0 -23
  588. package/.opencode/oh-my-design/web/references/kraken/preview-dark.html +0 -169
  589. package/.opencode/oh-my-design/web/references/kraken/preview.html +0 -168
  590. package/.opencode/oh-my-design/web/references/krds/.verification.md +0 -373
  591. package/.opencode/oh-my-design/web/references/krds/DESIGN.md +0 -1060
  592. package/.opencode/oh-my-design/web/references/kream/DESIGN.md +0 -432
  593. package/.opencode/oh-my-design/web/references/kream/assets/_reference/.live-inspect-proof.json +0 -289
  594. package/.opencode/oh-my-design/web/references/kream/assets/_reference/fonts.json +0 -26
  595. package/.opencode/oh-my-design/web/references/kream/assets/_reference/structure.json +0 -56
  596. package/.opencode/oh-my-design/web/references/kream/assets/_reference/tokens.json +0 -154
  597. package/.opencode/oh-my-design/web/references/kurly/.verification.md +0 -126
  598. package/.opencode/oh-my-design/web/references/kurly/DESIGN.md +0 -620
  599. package/.opencode/oh-my-design/web/references/laftel/.verification.md +0 -39
  600. package/.opencode/oh-my-design/web/references/laftel/DESIGN.md +0 -293
  601. package/.opencode/oh-my-design/web/references/lamborghini/.verification.md +0 -127
  602. package/.opencode/oh-my-design/web/references/lamborghini/DESIGN.md +0 -430
  603. package/.opencode/oh-my-design/web/references/lamborghini/README.md +0 -23
  604. package/.opencode/oh-my-design/web/references/lamborghini/preview-dark.html +0 -303
  605. package/.opencode/oh-my-design/web/references/lamborghini/preview.html +0 -381
  606. package/.opencode/oh-my-design/web/references/laundrygo/.verification.md +0 -60
  607. package/.opencode/oh-my-design/web/references/laundrygo/DESIGN.md +0 -434
  608. package/.opencode/oh-my-design/web/references/layerx/.verification.md +0 -21
  609. package/.opencode/oh-my-design/web/references/layerx/DESIGN.md +0 -615
  610. package/.opencode/oh-my-design/web/references/lezhin/.verification.md +0 -47
  611. package/.opencode/oh-my-design/web/references/lezhin/DESIGN.md +0 -348
  612. package/.opencode/oh-my-design/web/references/line/.verification.md +0 -137
  613. package/.opencode/oh-my-design/web/references/line/DESIGN.md +0 -467
  614. package/.opencode/oh-my-design/web/references/line/README.md +0 -12
  615. package/.opencode/oh-my-design/web/references/line/_research/home-1440px.png +0 -0
  616. package/.opencode/oh-my-design/web/references/line/_research.md +0 -65
  617. package/.opencode/oh-my-design/web/references/linear.app/.verification.md +0 -143
  618. package/.opencode/oh-my-design/web/references/linear.app/DESIGN.md +0 -642
  619. package/.opencode/oh-my-design/web/references/linear.app/README.md +0 -24
  620. package/.opencode/oh-my-design/web/references/linear.app/preview-dark.html +0 -383
  621. package/.opencode/oh-my-design/web/references/linear.app/preview.html +0 -373
  622. package/.opencode/oh-my-design/web/references/loom/.verification.md +0 -31
  623. package/.opencode/oh-my-design/web/references/loom/DESIGN.md +0 -396
  624. package/.opencode/oh-my-design/web/references/lovable/.verification.md +0 -154
  625. package/.opencode/oh-my-design/web/references/lovable/DESIGN.md +0 -423
  626. package/.opencode/oh-my-design/web/references/lovable/README.md +0 -24
  627. package/.opencode/oh-my-design/web/references/lovable/preview-dark.html +0 -349
  628. package/.opencode/oh-my-design/web/references/lovable/preview.html +0 -348
  629. package/.opencode/oh-my-design/web/references/lunit/DESIGN.md +0 -296
  630. package/.opencode/oh-my-design/web/references/lunit/assets/_reference/.live-inspect-proof.json +0 -249
  631. package/.opencode/oh-my-design/web/references/lunit/assets/_reference/fonts.json +0 -24
  632. package/.opencode/oh-my-design/web/references/lunit/assets/_reference/structure.json +0 -162
  633. package/.opencode/oh-my-design/web/references/lunit/assets/_reference/tokens.json +0 -115
  634. package/.opencode/oh-my-design/web/references/mastercard/.verification.md +0 -19
  635. package/.opencode/oh-my-design/web/references/mastercard/DESIGN.md +0 -587
  636. package/.opencode/oh-my-design/web/references/meituan/DESIGN.md +0 -466
  637. package/.opencode/oh-my-design/web/references/melon/.verification.md +0 -27
  638. package/.opencode/oh-my-design/web/references/melon/DESIGN.md +0 -179
  639. package/.opencode/oh-my-design/web/references/mercari/.verification.md +0 -155
  640. package/.opencode/oh-my-design/web/references/mercari/DESIGN.md +0 -514
  641. package/.opencode/oh-my-design/web/references/mercari/README.md +0 -12
  642. package/.opencode/oh-my-design/web/references/mercari/_research/home-1440px.png +0 -0
  643. package/.opencode/oh-my-design/web/references/mercari/_research.md +0 -137
  644. package/.opencode/oh-my-design/web/references/mercury/.verification.md +0 -21
  645. package/.opencode/oh-my-design/web/references/mercury/DESIGN.md +0 -589
  646. package/.opencode/oh-my-design/web/references/meta/.verification.md +0 -21
  647. package/.opencode/oh-my-design/web/references/meta/DESIGN.md +0 -615
  648. package/.opencode/oh-my-design/web/references/microsoft/.verification.md +0 -62
  649. package/.opencode/oh-my-design/web/references/microsoft/DESIGN.md +0 -508
  650. package/.opencode/oh-my-design/web/references/millie/DESIGN.md +0 -584
  651. package/.opencode/oh-my-design/web/references/minimax/.verification.md +0 -135
  652. package/.opencode/oh-my-design/web/references/minimax/DESIGN.md +0 -396
  653. package/.opencode/oh-my-design/web/references/minimax/README.md +0 -24
  654. package/.opencode/oh-my-design/web/references/minimax/preview-dark.html +0 -1262
  655. package/.opencode/oh-my-design/web/references/minimax/preview.html +0 -1248
  656. package/.opencode/oh-my-design/web/references/mintlify/.verification.md +0 -160
  657. package/.opencode/oh-my-design/web/references/mintlify/DESIGN.md +0 -472
  658. package/.opencode/oh-my-design/web/references/mintlify/README.md +0 -24
  659. package/.opencode/oh-my-design/web/references/mintlify/preview-dark.html +0 -409
  660. package/.opencode/oh-my-design/web/references/mintlify/preview.html +0 -398
  661. package/.opencode/oh-my-design/web/references/miricanvas/.verification.md +0 -61
  662. package/.opencode/oh-my-design/web/references/miricanvas/DESIGN.md +0 -464
  663. package/.opencode/oh-my-design/web/references/miro/.verification.md +0 -138
  664. package/.opencode/oh-my-design/web/references/miro/DESIGN.md +0 -319
  665. package/.opencode/oh-my-design/web/references/miro/README.md +0 -23
  666. package/.opencode/oh-my-design/web/references/miro/preview-dark.html +0 -174
  667. package/.opencode/oh-my-design/web/references/miro/preview.html +0 -173
  668. package/.opencode/oh-my-design/web/references/mistral.ai/.verification.md +0 -146
  669. package/.opencode/oh-my-design/web/references/mistral.ai/DESIGN.md +0 -390
  670. package/.opencode/oh-my-design/web/references/mistral.ai/README.md +0 -24
  671. package/.opencode/oh-my-design/web/references/mistral.ai/preview-dark.html +0 -806
  672. package/.opencode/oh-my-design/web/references/mistral.ai/preview.html +0 -805
  673. package/.opencode/oh-my-design/web/references/modusign/.verification.md +0 -58
  674. package/.opencode/oh-my-design/web/references/modusign/DESIGN.md +0 -524
  675. package/.opencode/oh-my-design/web/references/momoshop/.verification.md +0 -36
  676. package/.opencode/oh-my-design/web/references/momoshop/DESIGN.md +0 -322
  677. package/.opencode/oh-my-design/web/references/money-forward/DESIGN.md +0 -443
  678. package/.opencode/oh-my-design/web/references/mongodb/.verification.md +0 -145
  679. package/.opencode/oh-my-design/web/references/mongodb/DESIGN.md +0 -401
  680. package/.opencode/oh-my-design/web/references/mongodb/README.md +0 -23
  681. package/.opencode/oh-my-design/web/references/mongodb/preview-dark.html +0 -260
  682. package/.opencode/oh-my-design/web/references/mongodb/preview.html +0 -259
  683. package/.opencode/oh-my-design/web/references/muji/.verification.md +0 -20
  684. package/.opencode/oh-my-design/web/references/muji/DESIGN.md +0 -605
  685. package/.opencode/oh-my-design/web/references/musinsa/.verification.md +0 -59
  686. package/.opencode/oh-my-design/web/references/musinsa/DESIGN.md +0 -593
  687. package/.opencode/oh-my-design/web/references/mustit/.verification.md +0 -37
  688. package/.opencode/oh-my-design/web/references/mustit/DESIGN.md +0 -328
  689. package/.opencode/oh-my-design/web/references/myrealtrip/DESIGN.md +0 -494
  690. package/.opencode/oh-my-design/web/references/naver/.verification.md +0 -134
  691. package/.opencode/oh-my-design/web/references/naver/DESIGN.md +0 -582
  692. package/.opencode/oh-my-design/web/references/naverwebtoon/DESIGN.md +0 -477
  693. package/.opencode/oh-my-design/web/references/netflix/.verification.md +0 -21
  694. package/.opencode/oh-my-design/web/references/netflix/DESIGN.md +0 -572
  695. package/.opencode/oh-my-design/web/references/nexon/.verification.md +0 -27
  696. package/.opencode/oh-my-design/web/references/nexon/DESIGN.md +0 -389
  697. package/.opencode/oh-my-design/web/references/nhncloud/.verification.md +0 -23
  698. package/.opencode/oh-my-design/web/references/nhncloud/DESIGN.md +0 -207
  699. package/.opencode/oh-my-design/web/references/nike/.verification.md +0 -21
  700. package/.opencode/oh-my-design/web/references/nike/DESIGN.md +0 -588
  701. package/.opencode/oh-my-design/web/references/note/DESIGN.md +0 -346
  702. package/.opencode/oh-my-design/web/references/notion/.verification.md +0 -141
  703. package/.opencode/oh-my-design/web/references/notion/DESIGN.md +0 -557
  704. package/.opencode/oh-my-design/web/references/notion/README.md +0 -24
  705. package/.opencode/oh-my-design/web/references/notion/preview-dark.html +0 -372
  706. package/.opencode/oh-my-design/web/references/notion/preview.html +0 -364
  707. package/.opencode/oh-my-design/web/references/nvidia/.verification.md +0 -127
  708. package/.opencode/oh-my-design/web/references/nvidia/DESIGN.md +0 -550
  709. package/.opencode/oh-my-design/web/references/nvidia/README.md +0 -24
  710. package/.opencode/oh-my-design/web/references/nvidia/_research.md +0 -68
  711. package/.opencode/oh-my-design/web/references/nvidia/preview-dark.html +0 -374
  712. package/.opencode/oh-my-design/web/references/nvidia/preview.html +0 -366
  713. package/.opencode/oh-my-design/web/references/ohouse/.verification.md +0 -87
  714. package/.opencode/oh-my-design/web/references/ohouse/DESIGN.md +0 -635
  715. package/.opencode/oh-my-design/web/references/oliveyoung/DESIGN.md +0 -407
  716. package/.opencode/oh-my-design/web/references/oliveyoung/assets/_reference/.live-inspect-proof.json +0 -158
  717. package/.opencode/oh-my-design/web/references/oliveyoung/assets/_reference/_best_capture.json +0 -644
  718. package/.opencode/oh-my-design/web/references/oliveyoung/assets/_reference/_detail_capture.json +0 -447
  719. package/.opencode/oh-my-design/web/references/oliveyoung/assets/_reference/_main.html +0 -419
  720. package/.opencode/oh-my-design/web/references/oliveyoung/assets/_reference/_main_capture.json +0 -1126
  721. package/.opencode/oh-my-design/web/references/oliveyoung/assets/_reference/_search_capture.json +0 -912
  722. package/.opencode/oh-my-design/web/references/oliveyoung/assets/_reference/fonts.json +0 -20
  723. package/.opencode/oh-my-design/web/references/oliveyoung/assets/_reference/structure.json +0 -91
  724. package/.opencode/oh-my-design/web/references/oliveyoung/assets/_reference/tokens.json +0 -79
  725. package/.opencode/oh-my-design/web/references/ollama/.verification.md +0 -138
  726. package/.opencode/oh-my-design/web/references/ollama/DESIGN.md +0 -393
  727. package/.opencode/oh-my-design/web/references/ollama/README.md +0 -24
  728. package/.opencode/oh-my-design/web/references/ollama/preview-dark.html +0 -678
  729. package/.opencode/oh-my-design/web/references/ollama/preview.html +0 -678
  730. package/.opencode/oh-my-design/web/references/omnichat/.verification.md +0 -74
  731. package/.opencode/oh-my-design/web/references/omnichat/DESIGN.md +0 -499
  732. package/.opencode/oh-my-design/web/references/openai/.verification.md +0 -21
  733. package/.opencode/oh-my-design/web/references/openai/DESIGN.md +0 -641
  734. package/.opencode/oh-my-design/web/references/opencode.ai/.verification.md +0 -136
  735. package/.opencode/oh-my-design/web/references/opencode.ai/DESIGN.md +0 -425
  736. package/.opencode/oh-my-design/web/references/opencode.ai/README.md +0 -24
  737. package/.opencode/oh-my-design/web/references/opencode.ai/preview-dark.html +0 -366
  738. package/.opencode/oh-my-design/web/references/opencode.ai/preview.html +0 -357
  739. package/.opencode/oh-my-design/web/references/payco/.verification.md +0 -28
  740. package/.opencode/oh-my-design/web/references/payco/DESIGN.md +0 -267
  741. package/.opencode/oh-my-design/web/references/paypay/.verification.md +0 -21
  742. package/.opencode/oh-my-design/web/references/paypay/DESIGN.md +0 -656
  743. package/.opencode/oh-my-design/web/references/pchome/.verification.md +0 -38
  744. package/.opencode/oh-my-design/web/references/pchome/DESIGN.md +0 -439
  745. package/.opencode/oh-my-design/web/references/perplexity/.verification.md +0 -21
  746. package/.opencode/oh-my-design/web/references/perplexity/DESIGN.md +0 -546
  747. package/.opencode/oh-my-design/web/references/piccollage/.verification.md +0 -34
  748. package/.opencode/oh-my-design/web/references/piccollage/DESIGN.md +0 -320
  749. package/.opencode/oh-my-design/web/references/pinkoi/.verification.md +0 -147
  750. package/.opencode/oh-my-design/web/references/pinkoi/DESIGN.md +0 -639
  751. package/.opencode/oh-my-design/web/references/pinkoi/README.md +0 -12
  752. package/.opencode/oh-my-design/web/references/pinkoi/_research/browse-1440px.png +0 -0
  753. package/.opencode/oh-my-design/web/references/pinkoi/_research.md +0 -167
  754. package/.opencode/oh-my-design/web/references/pinterest/.verification.md +0 -141
  755. package/.opencode/oh-my-design/web/references/pinterest/DESIGN.md +0 -366
  756. package/.opencode/oh-my-design/web/references/pinterest/README.md +0 -23
  757. package/.opencode/oh-my-design/web/references/pinterest/preview-dark.html +0 -233
  758. package/.opencode/oh-my-design/web/references/pinterest/preview.html +0 -232
  759. package/.opencode/oh-my-design/web/references/pixiv/.verification.md +0 -20
  760. package/.opencode/oh-my-design/web/references/pixiv/DESIGN.md +0 -613
  761. package/.opencode/oh-my-design/web/references/pixnet/.verification.md +0 -31
  762. package/.opencode/oh-my-design/web/references/pixnet/DESIGN.md +0 -430
  763. package/.opencode/oh-my-design/web/references/posthog/.verification.md +0 -159
  764. package/.opencode/oh-my-design/web/references/posthog/DESIGN.md +0 -480
  765. package/.opencode/oh-my-design/web/references/posthog/README.md +0 -23
  766. package/.opencode/oh-my-design/web/references/posthog/preview-dark.html +0 -699
  767. package/.opencode/oh-my-design/web/references/posthog/preview.html +0 -749
  768. package/.opencode/oh-my-design/web/references/postype/.verification.md +0 -61
  769. package/.opencode/oh-my-design/web/references/postype/DESIGN.md +0 -431
  770. package/.opencode/oh-my-design/web/references/publy/DESIGN.md +0 -563
  771. package/.opencode/oh-my-design/web/references/qanda/.verification.md +0 -121
  772. package/.opencode/oh-my-design/web/references/qanda/DESIGN.md +0 -516
  773. package/.opencode/oh-my-design/web/references/ragic/.verification.md +0 -37
  774. package/.opencode/oh-my-design/web/references/ragic/DESIGN.md +0 -444
  775. package/.opencode/oh-my-design/web/references/rakuten/.verification.md +0 -60
  776. package/.opencode/oh-my-design/web/references/rakuten/DESIGN.md +0 -440
  777. package/.opencode/oh-my-design/web/references/ramp/.verification.md +0 -21
  778. package/.opencode/oh-my-design/web/references/ramp/DESIGN.md +0 -634
  779. package/.opencode/oh-my-design/web/references/rayark/.verification.md +0 -22
  780. package/.opencode/oh-my-design/web/references/rayark/DESIGN.md +0 -154
  781. package/.opencode/oh-my-design/web/references/raycast/.verification.md +0 -138
  782. package/.opencode/oh-my-design/web/references/raycast/DESIGN.md +0 -467
  783. package/.opencode/oh-my-design/web/references/raycast/README.md +0 -23
  784. package/.opencode/oh-my-design/web/references/raycast/preview-dark.html +0 -606
  785. package/.opencode/oh-my-design/web/references/raycast/preview.html +0 -688
  786. package/.opencode/oh-my-design/web/references/remember/.verification.md +0 -135
  787. package/.opencode/oh-my-design/web/references/remember/DESIGN.md +0 -504
  788. package/.opencode/oh-my-design/web/references/remember/_promo.json +0 -27
  789. package/.opencode/oh-my-design/web/references/remember/_research.md +0 -90
  790. package/.opencode/oh-my-design/web/references/renault/.verification.md +0 -139
  791. package/.opencode/oh-my-design/web/references/renault/DESIGN.md +0 -439
  792. package/.opencode/oh-my-design/web/references/renault/README.md +0 -23
  793. package/.opencode/oh-my-design/web/references/renault/preview-dark.html +0 -406
  794. package/.opencode/oh-my-design/web/references/renault/preview.html +0 -606
  795. package/.opencode/oh-my-design/web/references/replicate/.verification.md +0 -154
  796. package/.opencode/oh-my-design/web/references/replicate/DESIGN.md +0 -387
  797. package/.opencode/oh-my-design/web/references/replicate/README.md +0 -24
  798. package/.opencode/oh-my-design/web/references/replicate/preview-dark.html +0 -828
  799. package/.opencode/oh-my-design/web/references/replicate/preview.html +0 -831
  800. package/.opencode/oh-my-design/web/references/resend/.verification.md +0 -143
  801. package/.opencode/oh-my-design/web/references/resend/DESIGN.md +0 -440
  802. package/.opencode/oh-my-design/web/references/resend/README.md +0 -23
  803. package/.opencode/oh-my-design/web/references/resend/preview-dark.html +0 -355
  804. package/.opencode/oh-my-design/web/references/resend/preview.html +0 -354
  805. package/.opencode/oh-my-design/web/references/retool/.verification.md +0 -21
  806. package/.opencode/oh-my-design/web/references/retool/DESIGN.md +0 -645
  807. package/.opencode/oh-my-design/web/references/revolut/.verification.md +0 -140
  808. package/.opencode/oh-my-design/web/references/revolut/DESIGN.md +0 -319
  809. package/.opencode/oh-my-design/web/references/revolut/README.md +0 -23
  810. package/.opencode/oh-my-design/web/references/revolut/preview-dark.html +0 -234
  811. package/.opencode/oh-my-design/web/references/revolut/preview.html +0 -233
  812. package/.opencode/oh-my-design/web/references/richart/.verification.md +0 -41
  813. package/.opencode/oh-my-design/web/references/richart/DESIGN.md +0 -465
  814. package/.opencode/oh-my-design/web/references/ridi/.verification.md +0 -108
  815. package/.opencode/oh-my-design/web/references/ridi/DESIGN.md +0 -573
  816. package/.opencode/oh-my-design/web/references/riiid/.verification.md +0 -33
  817. package/.opencode/oh-my-design/web/references/riiid/DESIGN.md +0 -260
  818. package/.opencode/oh-my-design/web/references/ringle/.verification.md +0 -53
  819. package/.opencode/oh-my-design/web/references/ringle/DESIGN.md +0 -444
  820. package/.opencode/oh-my-design/web/references/robinhood/.verification.md +0 -21
  821. package/.opencode/oh-my-design/web/references/robinhood/DESIGN.md +0 -604
  822. package/.opencode/oh-my-design/web/references/runwayml/.verification.md +0 -141
  823. package/.opencode/oh-my-design/web/references/runwayml/DESIGN.md +0 -431
  824. package/.opencode/oh-my-design/web/references/runwayml/README.md +0 -24
  825. package/.opencode/oh-my-design/web/references/runwayml/preview-dark.html +0 -664
  826. package/.opencode/oh-my-design/web/references/runwayml/preview.html +0 -665
  827. package/.opencode/oh-my-design/web/references/salesforce/.verification.md +0 -66
  828. package/.opencode/oh-my-design/web/references/salesforce/DESIGN.md +0 -473
  829. package/.opencode/oh-my-design/web/references/sanity/.verification.md +0 -174
  830. package/.opencode/oh-my-design/web/references/sanity/DESIGN.md +0 -499
  831. package/.opencode/oh-my-design/web/references/sanity/README.md +0 -24
  832. package/.opencode/oh-my-design/web/references/sanity/preview-dark.html +0 -990
  833. package/.opencode/oh-my-design/web/references/sanity/preview.html +0 -1135
  834. package/.opencode/oh-my-design/web/references/sansan/.verification.md +0 -21
  835. package/.opencode/oh-my-design/web/references/sansan/DESIGN.md +0 -631
  836. package/.opencode/oh-my-design/web/references/sendbird/.verification.md +0 -67
  837. package/.opencode/oh-my-design/web/references/sendbird/DESIGN.md +0 -331
  838. package/.opencode/oh-my-design/web/references/sentry/.verification.md +0 -157
  839. package/.opencode/oh-my-design/web/references/sentry/DESIGN.md +0 -397
  840. package/.opencode/oh-my-design/web/references/sentry/README.md +0 -24
  841. package/.opencode/oh-my-design/web/references/sentry/preview-dark.html +0 -626
  842. package/.opencode/oh-my-design/web/references/sentry/preview.html +0 -951
  843. package/.opencode/oh-my-design/web/references/shinhancard/.verification.md +0 -31
  844. package/.opencode/oh-my-design/web/references/shinhancard/DESIGN.md +0 -421
  845. package/.opencode/oh-my-design/web/references/shopline/.verification.md +0 -34
  846. package/.opencode/oh-my-design/web/references/shopline/DESIGN.md +0 -431
  847. package/.opencode/oh-my-design/web/references/slack/.verification.md +0 -21
  848. package/.opencode/oh-my-design/web/references/slack/DESIGN.md +0 -635
  849. package/.opencode/oh-my-design/web/references/smarthr/DESIGN.md +0 -452
  850. package/.opencode/oh-my-design/web/references/smartnews/DESIGN.md +0 -360
  851. package/.opencode/oh-my-design/web/references/socar/DESIGN.md +0 -438
  852. package/.opencode/oh-my-design/web/references/socar/_promo.json +0 -28
  853. package/.opencode/oh-my-design/web/references/socar/_research.md +0 -55
  854. package/.opencode/oh-my-design/web/references/soomgo/.verification.md +0 -27
  855. package/.opencode/oh-my-design/web/references/soomgo/DESIGN.md +0 -326
  856. package/.opencode/oh-my-design/web/references/spacex/.verification.md +0 -132
  857. package/.opencode/oh-my-design/web/references/spacex/DESIGN.md +0 -415
  858. package/.opencode/oh-my-design/web/references/spacex/README.md +0 -23
  859. package/.opencode/oh-my-design/web/references/spacex/_research.md +0 -69
  860. package/.opencode/oh-my-design/web/references/spacex/preview-dark.html +0 -221
  861. package/.opencode/oh-my-design/web/references/spacex/preview.html +0 -220
  862. package/.opencode/oh-my-design/web/references/spoon/DESIGN.md +0 -492
  863. package/.opencode/oh-my-design/web/references/spotify/.verification.md +0 -128
  864. package/.opencode/oh-my-design/web/references/spotify/DESIGN.md +0 -489
  865. package/.opencode/oh-my-design/web/references/spotify/README.md +0 -23
  866. package/.opencode/oh-my-design/web/references/spotify/preview-dark.html +0 -231
  867. package/.opencode/oh-my-design/web/references/spotify/preview.html +0 -230
  868. package/.opencode/oh-my-design/web/references/starbucks/.verification.md +0 -21
  869. package/.opencode/oh-my-design/web/references/starbucks/DESIGN.md +0 -597
  870. package/.opencode/oh-my-design/web/references/stores/.verification.md +0 -61
  871. package/.opencode/oh-my-design/web/references/stores/DESIGN.md +0 -447
  872. package/.opencode/oh-my-design/web/references/stripe/.verification.md +0 -140
  873. package/.opencode/oh-my-design/web/references/stripe/DESIGN.md +0 -571
  874. package/.opencode/oh-my-design/web/references/stripe/README.md +0 -24
  875. package/.opencode/oh-my-design/web/references/stripe/preview-dark.html +0 -428
  876. package/.opencode/oh-my-design/web/references/stripe/preview.html +0 -419
  877. package/.opencode/oh-my-design/web/references/studio/.verification.md +0 -21
  878. package/.opencode/oh-my-design/web/references/studio/DESIGN.md +0 -602
  879. package/.opencode/oh-my-design/web/references/supabase/.verification.md +0 -145
  880. package/.opencode/oh-my-design/web/references/supabase/DESIGN.md +0 -389
  881. package/.opencode/oh-my-design/web/references/supabase/README.md +0 -24
  882. package/.opencode/oh-my-design/web/references/supabase/preview-dark.html +0 -977
  883. package/.opencode/oh-my-design/web/references/supabase/preview.html +0 -955
  884. package/.opencode/oh-my-design/web/references/superhuman/.verification.md +0 -184
  885. package/.opencode/oh-my-design/web/references/superhuman/DESIGN.md +0 -453
  886. package/.opencode/oh-my-design/web/references/superhuman/README.md +0 -23
  887. package/.opencode/oh-my-design/web/references/superhuman/preview-dark.html +0 -973
  888. package/.opencode/oh-my-design/web/references/superhuman/preview.html +0 -951
  889. package/.opencode/oh-my-design/web/references/surveycake/.verification.md +0 -31
  890. package/.opencode/oh-my-design/web/references/surveycake/DESIGN.md +0 -442
  891. package/.opencode/oh-my-design/web/references/tada/DESIGN.md +0 -579
  892. package/.opencode/oh-my-design/web/references/teamblind/.verification.md +0 -76
  893. package/.opencode/oh-my-design/web/references/teamblind/DESIGN.md +0 -497
  894. package/.opencode/oh-my-design/web/references/tesla/.verification.md +0 -149
  895. package/.opencode/oh-my-design/web/references/tesla/DESIGN.md +0 -501
  896. package/.opencode/oh-my-design/web/references/tesla/README.md +0 -23
  897. package/.opencode/oh-my-design/web/references/tesla/_research.md +0 -70
  898. package/.opencode/oh-my-design/web/references/tesla/preview-dark.html +0 -947
  899. package/.opencode/oh-my-design/web/references/tesla/preview.html +0 -925
  900. package/.opencode/oh-my-design/web/references/theverge/.verification.md +0 -21
  901. package/.opencode/oh-my-design/web/references/theverge/DESIGN.md +0 -500
  902. package/.opencode/oh-my-design/web/references/timee/.verification.md +0 -67
  903. package/.opencode/oh-my-design/web/references/timee/DESIGN.md +0 -444
  904. package/.opencode/oh-my-design/web/references/together.ai/.verification.md +0 -145
  905. package/.opencode/oh-my-design/web/references/together.ai/DESIGN.md +0 -389
  906. package/.opencode/oh-my-design/web/references/together.ai/README.md +0 -24
  907. package/.opencode/oh-my-design/web/references/together.ai/preview-dark.html +0 -892
  908. package/.opencode/oh-my-design/web/references/together.ai/preview.html +0 -897
  909. package/.opencode/oh-my-design/web/references/toss/.verification.md +0 -120
  910. package/.opencode/oh-my-design/web/references/toss/DESIGN.md +0 -698
  911. package/.opencode/oh-my-design/web/references/toss/README.md +0 -19
  912. package/.opencode/oh-my-design/web/references/toss-securities/DESIGN.md +0 -247
  913. package/.opencode/oh-my-design/web/references/toss-securities/assets/_reference/.live-inspect-proof.json +0 -126
  914. package/.opencode/oh-my-design/web/references/toss-securities/assets/_reference/.live-inspect-raw.json +0 -619
  915. package/.opencode/oh-my-design/web/references/toss-securities/assets/_reference/.live-inspect-stock.json +0 -525
  916. package/.opencode/oh-my-design/web/references/toss-securities/assets/_reference/fonts.json +0 -24
  917. package/.opencode/oh-my-design/web/references/toss-securities/assets/_reference/structure.json +0 -35
  918. package/.opencode/oh-my-design/web/references/toss-securities/assets/_reference/tokens.json +0 -87
  919. package/.opencode/oh-my-design/web/references/tossbank/DESIGN.md +0 -576
  920. package/.opencode/oh-my-design/web/references/trenbe/.verification.md +0 -32
  921. package/.opencode/oh-my-design/web/references/trenbe/DESIGN.md +0 -293
  922. package/.opencode/oh-my-design/web/references/triple/DESIGN.md +0 -481
  923. package/.opencode/oh-my-design/web/references/tumblbug/DESIGN.md +0 -578
  924. package/.opencode/oh-my-design/web/references/tving/DESIGN.md +0 -317
  925. package/.opencode/oh-my-design/web/references/tving/assets/_reference/.live-inspect-proof.json +0 -131
  926. package/.opencode/oh-my-design/web/references/tving/assets/_reference/LICENSE-NOTE.md +0 -37
  927. package/.opencode/oh-my-design/web/references/tving/assets/_reference/attribution.md +0 -52
  928. package/.opencode/oh-my-design/web/references/tving/assets/_reference/fonts.json +0 -31
  929. package/.opencode/oh-my-design/web/references/tving/assets/_reference/screenshots/hero-desktop.png +0 -0
  930. package/.opencode/oh-my-design/web/references/tving/assets/_reference/structure.json +0 -55
  931. package/.opencode/oh-my-design/web/references/tving/assets/_reference/tokens.json +0 -115
  932. package/.opencode/oh-my-design/web/references/uber/.verification.md +0 -128
  933. package/.opencode/oh-my-design/web/references/uber/DESIGN.md +0 -423
  934. package/.opencode/oh-my-design/web/references/uber/README.md +0 -24
  935. package/.opencode/oh-my-design/web/references/uber/preview-dark.html +0 -1120
  936. package/.opencode/oh-my-design/web/references/uber/preview.html +0 -1119
  937. package/.opencode/oh-my-design/web/references/ubie/.verification.md +0 -21
  938. package/.opencode/oh-my-design/web/references/ubie/DESIGN.md +0 -615
  939. package/.opencode/oh-my-design/web/references/uniqlo/.verification.md +0 -21
  940. package/.opencode/oh-my-design/web/references/uniqlo/DESIGN.md +0 -575
  941. package/.opencode/oh-my-design/web/references/upbit/DESIGN.md +0 -337
  942. package/.opencode/oh-my-design/web/references/upbit/_research.md +0 -83
  943. package/.opencode/oh-my-design/web/references/upbit/assets/_reference/.live-inspect-proof.json +0 -263
  944. package/.opencode/oh-my-design/web/references/upbit/assets/_reference/fonts.json +0 -18
  945. package/.opencode/oh-my-design/web/references/upbit/assets/_reference/raw-capture-exchange.json +0 -1901
  946. package/.opencode/oh-my-design/web/references/upbit/assets/_reference/raw-capture.json +0 -1121
  947. package/.opencode/oh-my-design/web/references/upbit/assets/_reference/structure.json +0 -52
  948. package/.opencode/oh-my-design/web/references/upbit/assets/_reference/tokens.json +0 -169
  949. package/.opencode/oh-my-design/web/references/upstage/DESIGN.md +0 -270
  950. package/.opencode/oh-my-design/web/references/upstage/assets/_reference/.live-inspect-proof.json +0 -157
  951. package/.opencode/oh-my-design/web/references/upstage/assets/_reference/_brand-resource-center.json +0 -44
  952. package/.opencode/oh-my-design/web/references/upstage/assets/_reference/_curated-samples.json +0 -310
  953. package/.opencode/oh-my-design/web/references/upstage/assets/_reference/_raw-capture.json +0 -1560
  954. package/.opencode/oh-my-design/web/references/upstage/assets/_reference/_root-vars.json +0 -76
  955. package/.opencode/oh-my-design/web/references/upstage/assets/_reference/_structure-raw.json +0 -298
  956. package/.opencode/oh-my-design/web/references/upstage/assets/_reference/fonts.json +0 -35
  957. package/.opencode/oh-my-design/web/references/upstage/assets/_reference/structure.json +0 -72
  958. package/.opencode/oh-my-design/web/references/upstage/assets/_reference/tokens.json +0 -183
  959. package/.opencode/oh-my-design/web/references/velog/.verification.md +0 -26
  960. package/.opencode/oh-my-design/web/references/velog/DESIGN.md +0 -196
  961. package/.opencode/oh-my-design/web/references/vercel/.verification.md +0 -134
  962. package/.opencode/oh-my-design/web/references/vercel/DESIGN.md +0 -523
  963. package/.opencode/oh-my-design/web/references/vercel/README.md +0 -24
  964. package/.opencode/oh-my-design/web/references/vercel/preview-dark.html +0 -368
  965. package/.opencode/oh-my-design/web/references/vercel/preview.html +0 -367
  966. package/.opencode/oh-my-design/web/references/voicetube/.verification.md +0 -34
  967. package/.opencode/oh-my-design/web/references/voicetube/DESIGN.md +0 -266
  968. package/.opencode/oh-my-design/web/references/voltagent/.verification.md +0 -159
  969. package/.opencode/oh-my-design/web/references/voltagent/DESIGN.md +0 -454
  970. package/.opencode/oh-my-design/web/references/voltagent/README.md +0 -24
  971. package/.opencode/oh-my-design/web/references/voltagent/preview-dark.html +0 -487
  972. package/.opencode/oh-my-design/web/references/voltagent/preview.html +0 -766
  973. package/.opencode/oh-my-design/web/references/wadiz/DESIGN.md +0 -415
  974. package/.opencode/oh-my-design/web/references/wadiz/assets/_reference/.live-inspect-proof.json +0 -137
  975. package/.opencode/oh-my-design/web/references/wadiz/assets/_reference/fonts.json +0 -17
  976. package/.opencode/oh-my-design/web/references/wadiz/assets/_reference/structure.json +0 -35
  977. package/.opencode/oh-my-design/web/references/wadiz/assets/_reference/tokens.json +0 -80
  978. package/.opencode/oh-my-design/web/references/wanted/DESIGN.md +0 -575
  979. package/.opencode/oh-my-design/web/references/wanted/_promo.json +0 -31
  980. package/.opencode/oh-my-design/web/references/wanted/_research.md +0 -119
  981. package/.opencode/oh-my-design/web/references/wantedly/.verification.md +0 -53
  982. package/.opencode/oh-my-design/web/references/wantedly/DESIGN.md +0 -437
  983. package/.opencode/oh-my-design/web/references/warp/.verification.md +0 -156
  984. package/.opencode/oh-my-design/web/references/warp/DESIGN.md +0 -431
  985. package/.opencode/oh-my-design/web/references/warp/README.md +0 -23
  986. package/.opencode/oh-my-design/web/references/warp/preview-dark.html +0 -500
  987. package/.opencode/oh-my-design/web/references/warp/preview.html +0 -533
  988. package/.opencode/oh-my-design/web/references/watcha/DESIGN.md +0 -465
  989. package/.opencode/oh-my-design/web/references/wavve/DESIGN.md +0 -480
  990. package/.opencode/oh-my-design/web/references/wconcept/DESIGN.md +0 -556
  991. package/.opencode/oh-my-design/web/references/webflow/.verification.md +0 -151
  992. package/.opencode/oh-my-design/web/references/webflow/DESIGN.md +0 -330
  993. package/.opencode/oh-my-design/web/references/webflow/README.md +0 -23
  994. package/.opencode/oh-my-design/web/references/webflow/preview-dark.html +0 -147
  995. package/.opencode/oh-my-design/web/references/webflow/preview.html +0 -146
  996. package/.opencode/oh-my-design/web/references/wired/.verification.md +0 -21
  997. package/.opencode/oh-my-design/web/references/wired/DESIGN.md +0 -572
  998. package/.opencode/oh-my-design/web/references/wise/.verification.md +0 -141
  999. package/.opencode/oh-my-design/web/references/wise/DESIGN.md +0 -317
  1000. package/.opencode/oh-my-design/web/references/wise/README.md +0 -23
  1001. package/.opencode/oh-my-design/web/references/wise/preview-dark.html +0 -230
  1002. package/.opencode/oh-my-design/web/references/wise/preview.html +0 -229
  1003. package/.opencode/oh-my-design/web/references/x.ai/.verification.md +0 -140
  1004. package/.opencode/oh-my-design/web/references/x.ai/DESIGN.md +0 -397
  1005. package/.opencode/oh-my-design/web/references/x.ai/README.md +0 -24
  1006. package/.opencode/oh-my-design/web/references/x.ai/preview-dark.html +0 -356
  1007. package/.opencode/oh-my-design/web/references/x.ai/preview.html +0 -407
  1008. package/.opencode/oh-my-design/web/references/xiaohongshu/DESIGN.md +0 -462
  1009. package/.opencode/oh-my-design/web/references/yanolja/.verification.md +0 -83
  1010. package/.opencode/oh-my-design/web/references/yanolja/DESIGN.md +0 -508
  1011. package/.opencode/oh-my-design/web/references/yeogiotte/.verification.md +0 -210
  1012. package/.opencode/oh-my-design/web/references/yeogiotte/DESIGN.md +0 -500
  1013. package/.opencode/oh-my-design/web/references/yogiyo/DESIGN.md +0 -515
  1014. package/.opencode/oh-my-design/web/references/yourator/.verification.md +0 -39
  1015. package/.opencode/oh-my-design/web/references/yourator/DESIGN.md +0 -453
  1016. package/.opencode/oh-my-design/web/references/zapier/.verification.md +0 -156
  1017. package/.opencode/oh-my-design/web/references/zapier/DESIGN.md +0 -474
  1018. package/.opencode/oh-my-design/web/references/zapier/README.md +0 -24
  1019. package/.opencode/oh-my-design/web/references/zapier/preview-dark.html +0 -380
  1020. package/.opencode/oh-my-design/web/references/zapier/preview.html +0 -372
  1021. package/.opencode/oh-my-design/web/references/zigbang/DESIGN.md +0 -500
  1022. package/.opencode/oh-my-design/web/references/zigbang/_promo.json +0 -16
  1023. package/.opencode/oh-my-design/web/references/zigbang/_research.md +0 -101
  1024. package/.opencode/oh-my-design/web/references/zigzag/DESIGN.md +0 -695
  1025. package/.opencode/oh-my-design/web/references/zigzag/_promo.json +0 -23
  1026. package/.opencode/oh-my-design/web/references/zigzag/_research.md +0 -64
  1027. package/.opencode/oh-my-design/web/references/zozotown/.verification.md +0 -20
  1028. package/.opencode/oh-my-design/web/references/zozotown/DESIGN.md +0 -578
  1029. package/.opencode/oh-my-design/web/scripts/build-registry.mjs +0 -257
  1030. package/.opencode/oh-my-design/web/scripts/extract-tokens.mjs +0 -117
  1031. package/.opencode/oh-my-design/web/scripts/fetch-og-images.mjs +0 -112
  1032. package/.opencode/oh-my-design/web/scripts/gen-favicon.mjs +0 -58
  1033. package/.opencode/oh-my-design/web/scripts/gen-og.mjs +0 -67
  1034. package/.opencode/oh-my-design/web/scripts/migrate-frontmatters.mjs +0 -637
  1035. package/.opencode/oh-my-design/web/scripts/sync-catalog.mjs +0 -140
  1036. package/.opencode/oh-my-design/web/scripts/token-sheet.mjs +0 -72
  1037. package/.opencode/oh-my-design/web/scripts/token-status.mjs +0 -94
  1038. package/.opencode/oh-my-design/web/scripts/verify-reference.mjs +0 -185
  1039. package/.opencode/oh-my-design/web/src/app/alternatives/[slug]/page.tsx +0 -399
  1040. package/.opencode/oh-my-design/web/src/app/api/font-playground/match/route.ts +0 -205
  1041. package/.opencode/oh-my-design/web/src/app/api/leaderboard/route.ts +0 -32
  1042. package/.opencode/oh-my-design/web/src/app/api/og/playground/route.tsx +0 -179
  1043. package/.opencode/oh-my-design/web/src/app/api/references/[id]/route.ts +0 -162
  1044. package/.opencode/oh-my-design/web/src/app/api/references/route.ts +0 -142
  1045. package/.opencode/oh-my-design/web/src/app/api/track/route.ts +0 -30
  1046. package/.opencode/oh-my-design/web/src/app/apple-icon.png +0 -0
  1047. package/.opencode/oh-my-design/web/src/app/builder/layout.tsx +0 -43
  1048. package/.opencode/oh-my-design/web/src/app/builder/page.tsx +0 -434
  1049. package/.opencode/oh-my-design/web/src/app/changelog/[version]/page.tsx +0 -160
  1050. package/.opencode/oh-my-design/web/src/app/changelog/page.tsx +0 -142
  1051. package/.opencode/oh-my-design/web/src/app/collections/[slug]/collection-grid.tsx +0 -27
  1052. package/.opencode/oh-my-design/web/src/app/collections/[slug]/page.tsx +0 -171
  1053. package/.opencode/oh-my-design/web/src/app/curation/layout.tsx +0 -43
  1054. package/.opencode/oh-my-design/web/src/app/curation/page.tsx +0 -78
  1055. package/.opencode/oh-my-design/web/src/app/design-systems/[id]/detail-view.tsx +0 -307
  1056. package/.opencode/oh-my-design/web/src/app/design-systems/[id]/page.tsx +0 -184
  1057. package/.opencode/oh-my-design/web/src/app/design-systems/layout.tsx +0 -24
  1058. package/.opencode/oh-my-design/web/src/app/design-systems/page.tsx +0 -95
  1059. package/.opencode/oh-my-design/web/src/app/docs/layout.tsx +0 -22
  1060. package/.opencode/oh-my-design/web/src/app/docs/page.tsx +0 -1453
  1061. package/.opencode/oh-my-design/web/src/app/faq/page.tsx +0 -324
  1062. package/.opencode/oh-my-design/web/src/app/font-playground/font-playground-view.tsx +0 -424
  1063. package/.opencode/oh-my-design/web/src/app/font-playground/page.tsx +0 -43
  1064. package/.opencode/oh-my-design/web/src/app/globals.css +0 -328
  1065. package/.opencode/oh-my-design/web/src/app/icon.png +0 -0
  1066. package/.opencode/oh-my-design/web/src/app/layout.tsx +0 -229
  1067. package/.opencode/oh-my-design/web/src/app/page.tsx +0 -50
  1068. package/.opencode/oh-my-design/web/src/app/playground/page.tsx +0 -81
  1069. package/.opencode/oh-my-design/web/src/app/playground/playground-view.tsx +0 -436
  1070. package/.opencode/oh-my-design/web/src/app/qa-references/page.tsx +0 -233
  1071. package/.opencode/oh-my-design/web/src/app/r/[id]/route.ts +0 -57
  1072. package/.opencode/oh-my-design/web/src/app/reference/[id]/page.tsx +0 -152
  1073. package/.opencode/oh-my-design/web/src/app/result/[typeCode]/layout.tsx +0 -70
  1074. package/.opencode/oh-my-design/web/src/app/result/[typeCode]/page.tsx +0 -280
  1075. package/.opencode/oh-my-design/web/src/app/robots.ts +0 -44
  1076. package/.opencode/oh-my-design/web/src/app/sitemap.ts +0 -156
  1077. package/.opencode/oh-my-design/web/src/app/what-is-design-md/page.tsx +0 -308
  1078. package/.opencode/oh-my-design/web/src/components/ab-picker.tsx +0 -74
  1079. package/.opencode/oh-my-design/web/src/components/analytics-init.tsx +0 -21
  1080. package/.opencode/oh-my-design/web/src/components/brand-logo.tsx +0 -101
  1081. package/.opencode/oh-my-design/web/src/components/browse-modal.tsx +0 -149
  1082. package/.opencode/oh-my-design/web/src/components/component-modal.tsx +0 -108
  1083. package/.opencode/oh-my-design/web/src/components/content-preview-modal.tsx +0 -213
  1084. package/.opencode/oh-my-design/web/src/components/customizer.tsx +0 -641
  1085. package/.opencode/oh-my-design/web/src/components/design-wizard.tsx +0 -691
  1086. package/.opencode/oh-my-design/web/src/components/ds-card.tsx +0 -162
  1087. package/.opencode/oh-my-design/web/src/components/export-panel.tsx +0 -162
  1088. package/.opencode/oh-my-design/web/src/components/font-card.tsx +0 -121
  1089. package/.opencode/oh-my-design/web/src/components/font-playground/color-palette.tsx +0 -86
  1090. package/.opencode/oh-my-design/web/src/components/font-playground/detail-modal.tsx +0 -789
  1091. package/.opencode/oh-my-design/web/src/components/font-playground/filter-bar.tsx +0 -192
  1092. package/.opencode/oh-my-design/web/src/components/font-playground/font-tile.tsx +0 -92
  1093. package/.opencode/oh-my-design/web/src/components/font-playground/gallery.tsx +0 -42
  1094. package/.opencode/oh-my-design/web/src/components/font-playground/hero-entry.tsx +0 -150
  1095. package/.opencode/oh-my-design/web/src/components/font-playground/labels.ts +0 -18
  1096. package/.opencode/oh-my-design/web/src/components/font-playground/match-results.tsx +0 -486
  1097. package/.opencode/oh-my-design/web/src/components/font-playground/my-fonts.tsx +0 -315
  1098. package/.opencode/oh-my-design/web/src/components/font-playground/preview-templates.tsx +0 -395
  1099. package/.opencode/oh-my-design/web/src/components/font-playground/sample-input.tsx +0 -30
  1100. package/.opencode/oh-my-design/web/src/components/font-playground/script-toggle.tsx +0 -73
  1101. package/.opencode/oh-my-design/web/src/components/font-playground/usage-guide.tsx +0 -172
  1102. package/.opencode/oh-my-design/web/src/components/install-cta.tsx +0 -133
  1103. package/.opencode/oh-my-design/web/src/components/landing-v2/hero.tsx +0 -459
  1104. package/.opencode/oh-my-design/web/src/components/landing-v2/live-proof.tsx +0 -464
  1105. package/.opencode/oh-my-design/web/src/components/landing-v2/nav.tsx +0 -126
  1106. package/.opencode/oh-my-design/web/src/components/landing-v2/sections.tsx +0 -1166
  1107. package/.opencode/oh-my-design/web/src/components/landing-v2/the-wall.tsx +0 -332
  1108. package/.opencode/oh-my-design/web/src/components/landing-v2/tokens.ts +0 -33
  1109. package/.opencode/oh-my-design/web/src/components/markdown.tsx +0 -168
  1110. package/.opencode/oh-my-design/web/src/components/playground/actions-header.tsx +0 -28
  1111. package/.opencode/oh-my-design/web/src/components/playground/contrast-badge.tsx +0 -112
  1112. package/.opencode/oh-my-design/web/src/components/playground/controls/category-section.tsx +0 -50
  1113. package/.opencode/oh-my-design/web/src/components/playground/controls/color-picker.tsx +0 -116
  1114. package/.opencode/oh-my-design/web/src/components/playground/controls/density-picker.tsx +0 -56
  1115. package/.opencode/oh-my-design/web/src/components/playground/controls/mood-picker.tsx +0 -53
  1116. package/.opencode/oh-my-design/web/src/components/playground/controls/motion-picker.tsx +0 -62
  1117. package/.opencode/oh-my-design/web/src/components/playground/controls/name-description.tsx +0 -55
  1118. package/.opencode/oh-my-design/web/src/components/playground/controls/palette-grid.tsx +0 -111
  1119. package/.opencode/oh-my-design/web/src/components/playground/controls/personas-picker.tsx +0 -85
  1120. package/.opencode/oh-my-design/web/src/components/playground/controls/radius-picker.tsx +0 -48
  1121. package/.opencode/oh-my-design/web/src/components/playground/controls/voice-picker.tsx +0 -120
  1122. package/.opencode/oh-my-design/web/src/components/playground/controls/weight-picker.tsx +0 -48
  1123. package/.opencode/oh-my-design/web/src/components/playground/export-box.tsx +0 -120
  1124. package/.opencode/oh-my-design/web/src/components/playground/header.tsx +0 -71
  1125. package/.opencode/oh-my-design/web/src/components/playground/layout.tsx +0 -50
  1126. package/.opencode/oh-my-design/web/src/components/playground/mobile-drawer.tsx +0 -78
  1127. package/.opencode/oh-my-design/web/src/components/playground/mood-override-badge.tsx +0 -40
  1128. package/.opencode/oh-my-design/web/src/components/playground/preview-pane.tsx +0 -82
  1129. package/.opencode/oh-my-design/web/src/components/playground/primitives-strip.tsx +0 -153
  1130. package/.opencode/oh-my-design/web/src/components/playground/reference-picker-modal.tsx +0 -146
  1131. package/.opencode/oh-my-design/web/src/components/playground/share-button.tsx +0 -42
  1132. package/.opencode/oh-my-design/web/src/components/playground/start-from.tsx +0 -90
  1133. package/.opencode/oh-my-design/web/src/components/preview-export-view.tsx +0 -205
  1134. package/.opencode/oh-my-design/web/src/components/preview.tsx +0 -869
  1135. package/.opencode/oh-my-design/web/src/components/reference-preview.tsx +0 -1187
  1136. package/.opencode/oh-my-design/web/src/components/reference-selector.tsx +0 -671
  1137. package/.opencode/oh-my-design/web/src/components/scroll-to-top.tsx +0 -41
  1138. package/.opencode/oh-my-design/web/src/components/status-badge.tsx +0 -64
  1139. package/.opencode/oh-my-design/web/src/components/survey/company-mini-ui.tsx +0 -669
  1140. package/.opencode/oh-my-design/web/src/components/survey/install-cta.tsx +0 -80
  1141. package/.opencode/oh-my-design/web/src/components/survey/mood-step.tsx +0 -260
  1142. package/.opencode/oh-my-design/web/src/components/survey/quiz-wizard.tsx +0 -528
  1143. package/.opencode/oh-my-design/web/src/components/survey/result-card.tsx +0 -242
  1144. package/.opencode/oh-my-design/web/src/components/survey/share-buttons.tsx +0 -320
  1145. package/.opencode/oh-my-design/web/src/components/survey/survey-wizard.tsx +0 -661
  1146. package/.opencode/oh-my-design/web/src/components/survey/typography-step.tsx +0 -192
  1147. package/.opencode/oh-my-design/web/src/components/theme-provider.tsx +0 -12
  1148. package/.opencode/oh-my-design/web/src/components/ui/badge.tsx +0 -52
  1149. package/.opencode/oh-my-design/web/src/components/ui/button.tsx +0 -58
  1150. package/.opencode/oh-my-design/web/src/components/ui/card.tsx +0 -103
  1151. package/.opencode/oh-my-design/web/src/components/ui/dialog.tsx +0 -160
  1152. package/.opencode/oh-my-design/web/src/components/ui/input.tsx +0 -20
  1153. package/.opencode/oh-my-design/web/src/components/ui/label.tsx +0 -20
  1154. package/.opencode/oh-my-design/web/src/components/ui/radio-group.tsx +0 -38
  1155. package/.opencode/oh-my-design/web/src/components/ui/scroll-area.tsx +0 -55
  1156. package/.opencode/oh-my-design/web/src/components/ui/select.tsx +0 -201
  1157. package/.opencode/oh-my-design/web/src/components/ui/separator.tsx +0 -25
  1158. package/.opencode/oh-my-design/web/src/components/ui/sheet.tsx +0 -138
  1159. package/.opencode/oh-my-design/web/src/components/ui/slider.tsx +0 -52
  1160. package/.opencode/oh-my-design/web/src/components/ui/switch.tsx +0 -32
  1161. package/.opencode/oh-my-design/web/src/components/ui/tabs.tsx +0 -82
  1162. package/.opencode/oh-my-design/web/src/components/ui/tooltip.tsx +0 -66
  1163. package/.opencode/oh-my-design/web/src/data/faq.ts +0 -81
  1164. package/.opencode/oh-my-design/web/src/data/registry.generated.ts +0 -304
  1165. package/.opencode/oh-my-design/web/src/data/version.generated.ts +0 -2
  1166. package/.opencode/oh-my-design/web/src/lib/changelog.ts +0 -96
  1167. package/.opencode/oh-my-design/web/src/lib/collections.ts +0 -252
  1168. package/.opencode/oh-my-design/web/src/lib/contrast.ts +0 -40
  1169. package/.opencode/oh-my-design/web/src/lib/core/builder-prompt.test.ts +0 -100
  1170. package/.opencode/oh-my-design/web/src/lib/core/builder-prompt.ts +0 -102
  1171. package/.opencode/oh-my-design/web/src/lib/core/color.ts +0 -122
  1172. package/.opencode/oh-my-design/web/src/lib/core/config-hash.test.ts +0 -157
  1173. package/.opencode/oh-my-design/web/src/lib/core/config-hash.ts +0 -133
  1174. package/.opencode/oh-my-design/web/src/lib/core/generate-css.test.ts +0 -813
  1175. package/.opencode/oh-my-design/web/src/lib/core/generate-css.ts +0 -586
  1176. package/.opencode/oh-my-design/web/src/lib/core/survey-hash.test.ts +0 -51
  1177. package/.opencode/oh-my-design/web/src/lib/core/survey-hash.ts +0 -56
  1178. package/.opencode/oh-my-design/web/src/lib/core/types.ts +0 -37
  1179. package/.opencode/oh-my-design/web/src/lib/design-systems.ts +0 -102
  1180. package/.opencode/oh-my-design/web/src/lib/extract-components.test.ts +0 -116
  1181. package/.opencode/oh-my-design/web/src/lib/extract-tokens.test.ts +0 -202
  1182. package/.opencode/oh-my-design/web/src/lib/extract-tokens.ts +0 -1335
  1183. package/.opencode/oh-my-design/web/src/lib/font-registry.ts +0 -376
  1184. package/.opencode/oh-my-design/web/src/lib/fonts/analytics.test.ts +0 -194
  1185. package/.opencode/oh-my-design/web/src/lib/fonts/analytics.ts +0 -234
  1186. package/.opencode/oh-my-design/web/src/lib/fonts/catalog.ts +0 -1509
  1187. package/.opencode/oh-my-design/web/src/lib/fonts/designmd-export.ts +0 -104
  1188. package/.opencode/oh-my-design/web/src/lib/fonts/loaders.test.ts +0 -169
  1189. package/.opencode/oh-my-design/web/src/lib/fonts/loaders.ts +0 -90
  1190. package/.opencode/oh-my-design/web/src/lib/fonts/match-intent.test.ts +0 -93
  1191. package/.opencode/oh-my-design/web/src/lib/fonts/match-intent.ts +0 -288
  1192. package/.opencode/oh-my-design/web/src/lib/fonts/preview-contexts.ts +0 -124
  1193. package/.opencode/oh-my-design/web/src/lib/fonts/rate-limit.ts +0 -43
  1194. package/.opencode/oh-my-design/web/src/lib/fonts/saved-store.ts +0 -113
  1195. package/.opencode/oh-my-design/web/src/lib/fonts/share-link.test.ts +0 -101
  1196. package/.opencode/oh-my-design/web/src/lib/fonts/share-link.ts +0 -52
  1197. package/.opencode/oh-my-design/web/src/lib/fonts/similarity.ts +0 -106
  1198. package/.opencode/oh-my-design/web/src/lib/fonts/tweaks.test.ts +0 -213
  1199. package/.opencode/oh-my-design/web/src/lib/fonts/tweaks.ts +0 -186
  1200. package/.opencode/oh-my-design/web/src/lib/fonts/types.ts +0 -96
  1201. package/.opencode/oh-my-design/web/src/lib/gtag.ts +0 -64
  1202. package/.opencode/oh-my-design/web/src/lib/hot-refs.ts +0 -41
  1203. package/.opencode/oh-my-design/web/src/lib/kv.ts +0 -30
  1204. package/.opencode/oh-my-design/web/src/lib/logos.ts +0 -39
  1205. package/.opencode/oh-my-design/web/src/lib/new-refs.ts +0 -30
  1206. package/.opencode/oh-my-design/web/src/lib/playground/codec.ts +0 -34
  1207. package/.opencode/oh-my-design/web/src/lib/playground/defaults.ts +0 -56
  1208. package/.opencode/oh-my-design/web/src/lib/playground/generate.ts +0 -384
  1209. package/.opencode/oh-my-design/web/src/lib/playground/palettes.ts +0 -259
  1210. package/.opencode/oh-my-design/web/src/lib/playground/rules/density.ts +0 -59
  1211. package/.opencode/oh-my-design/web/src/lib/playground/rules/mood.ts +0 -82
  1212. package/.opencode/oh-my-design/web/src/lib/playground/rules/motion.ts +0 -71
  1213. package/.opencode/oh-my-design/web/src/lib/playground/rules/personality.ts +0 -93
  1214. package/.opencode/oh-my-design/web/src/lib/playground/rules/philosophy.ts +0 -270
  1215. package/.opencode/oh-my-design/web/src/lib/playground/rules/radius.ts +0 -54
  1216. package/.opencode/oh-my-design/web/src/lib/playground/rules/weight.ts +0 -41
  1217. package/.opencode/oh-my-design/web/src/lib/playground/samples.ts +0 -280
  1218. package/.opencode/oh-my-design/web/src/lib/playground/state.ts +0 -194
  1219. package/.opencode/oh-my-design/web/src/lib/search-aliases.ts +0 -213
  1220. package/.opencode/oh-my-design/web/src/lib/survey/profiles.generated.ts +0 -1143
  1221. package/.opencode/oh-my-design/web/src/lib/survey/quiz-data.test.ts +0 -102
  1222. package/.opencode/oh-my-design/web/src/lib/survey/quiz-data.ts +0 -571
  1223. package/.opencode/oh-my-design/web/src/lib/survey/scoring.test.ts +0 -111
  1224. package/.opencode/oh-my-design/web/src/lib/survey/scoring.ts +0 -146
  1225. package/.opencode/oh-my-design/web/src/lib/survey/types.test.ts +0 -153
  1226. package/.opencode/oh-my-design/web/src/lib/survey/types.ts +0 -604
  1227. package/.opencode/oh-my-design/web/src/lib/utils.ts +0 -6
  1228. package/.opencode/oh-my-design/web/src/styles/shadcn.css +0 -95
  1229. package/.opencode/oh-my-design/web/src/styles/tw-animate.css +0 -1
  1230. package/.opencode/oh-my-design/web/src/types/gtag.d.ts +0 -3
  1231. package/.opencode/oh-my-design/web/tsconfig.json +0 -34
  1232. package/.opencode/oh-my-design/web/vitest.config.ts +0 -14
  1233. package/.utils/docs_opencode/acp.md +0 -165
  1234. package/.utils/docs_opencode/acp.pdf +0 -0
  1235. package/.utils/docs_opencode/agents.md +0 -803
  1236. package/.utils/docs_opencode/agents.pdf +0 -0
  1237. package/.utils/docs_opencode/commands.md +0 -354
  1238. package/.utils/docs_opencode/commands.pdf +0 -0
  1239. package/.utils/docs_opencode/custom-tools.md +0 -209
  1240. package/.utils/docs_opencode/custom-tools.pdf +0 -0
  1241. package/.utils/docs_opencode/ecosystem.md +0 -81
  1242. package/.utils/docs_opencode/ecosystem.pdf +0 -0
  1243. package/.utils/docs_opencode/formatters.md +0 -142
  1244. package/.utils/docs_opencode/formatters.pdf +0 -0
  1245. package/.utils/docs_opencode/keybinds.md +0 -205
  1246. package/.utils/docs_opencode/keybinds.pdf +0 -0
  1247. package/.utils/docs_opencode/lsp.md +0 -202
  1248. package/.utils/docs_opencode/lsp.pdf +0 -0
  1249. package/.utils/docs_opencode/mcp-servers.md +0 -565
  1250. package/.utils/docs_opencode/mcp-servers.pdf +0 -0
  1251. package/.utils/docs_opencode/models.md +0 -234
  1252. package/.utils/docs_opencode/models.pdf +0 -0
  1253. package/.utils/docs_opencode/permissions.md +0 -248
  1254. package/.utils/docs_opencode/permissions.pdf +0 -0
  1255. package/.utils/docs_opencode/plugins.md +0 -409
  1256. package/.utils/docs_opencode/plugins.pdf +0 -0
  1257. package/.utils/docs_opencode/rules.md +0 -189
  1258. package/.utils/docs_opencode/rules.pdf +0 -0
  1259. package/.utils/docs_opencode/sdk.md +0 -522
  1260. package/.utils/docs_opencode/sdk.pdf +0 -0
  1261. package/.utils/docs_opencode/server.md +0 -324
  1262. package/.utils/docs_opencode/server.pdf +0 -0
  1263. package/.utils/docs_opencode/skills.md +0 -235
  1264. package/.utils/docs_opencode/skills.pdf +0 -0
  1265. package/.utils/docs_opencode/themes.md +0 -378
  1266. package/.utils/docs_opencode/themes.pdf +0 -0
  1267. package/.utils/docs_opencode/tools.md +0 -364
  1268. package/.utils/docs_opencode/tools.pdf +0 -0
  1269. package/.utils/zugzweb/client/node_modules/.tmp/tsconfig.app.tsbuildinfo +0 -1
  1270. package/.utils/zugzweb/client/node_modules/.tmp/tsconfig.node.tsbuildinfo +0 -1
  1271. package/.utils/zugzweb/client/node_modules/nanoid/.claude/settings.local.json +0 -14
  1272. package/.utils/zugzweb/client/package-lock.json +0 -3707
@@ -1,1509 +0,0 @@
1
- /**
2
- * Font Playground — curated catalog (60 fonts · 40 Hangul + 20 Latin).
3
- *
4
- * Freely-usable fonts pulled from Google Fonts (css2 CDN) plus noonnu
5
- * favorites served through jsdelivr / webfontworld when not on Google.
6
- * The playground curates and points at the source — it does not host or
7
- * redistribute font files — so every entry just needs a free-commercial-
8
- * use license, not specifically OFL. Render via the shell's single
9
- * consolidated Google `<link>` + per-jsdelivr `<style>`.
10
- *
11
- * Tag quality is what makes reference-based discovery work — mood / era /
12
- * use / personality tags should be hand-curated, not scraped.
13
- */
14
-
15
- import type { FontEntry } from "./types";
16
-
17
- const SAMPLE = {
18
- latin: "Design is intelligence made visible",
19
- hangul: "디자인은 보이는 지성이다",
20
- } as const;
21
-
22
- export const FONT_CATALOG: FontEntry[] = [
23
- /* ─────────── Korean (6) ─────────── */
24
- {
25
- id: "pretendard",
26
- name: "Pretendard",
27
- family: "sans",
28
- scripts: ["latin", "hangul"],
29
- cssFamily: `"Pretendard", sans-serif`,
30
- variable: true,
31
- axes: [{ tag: "wght", name: "Weight", min: 100, max: 900, default: 500 }],
32
- license: "OFL-1.1",
33
- source: "https://github.com/orioncactus/pretendard",
34
- description:
35
- "System-grade Korean + Latin unified sans. Shipped by Kil Hyungjin as a remix of Source Han Sans + Inter.",
36
- loader: { kind: "google", family: "Pretendard:wght@100..900" },
37
- tags: {
38
- mood: ["clean", "modern", "neutral"],
39
- era: ["2020s"],
40
- use: ["ui", "body", "display"],
41
- personality: ["professional", "approachable", "universal"],
42
- },
43
- sampleText: { latin: SAMPLE.latin, hangul: SAMPLE.hangul },
44
- designer: "Kil Hyungjin",
45
- },
46
- {
47
- id: "noto-sans-kr",
48
- name: "Noto Sans KR",
49
- family: "sans",
50
- scripts: ["latin", "hangul"],
51
- cssFamily: `"Noto Sans KR", sans-serif`,
52
- variable: true,
53
- axes: [{ tag: "wght", name: "Weight", min: 100, max: 900, default: 400 }],
54
- license: "OFL-1.1",
55
- source: "https://fonts.google.com/noto/specimen/Noto+Sans+KR",
56
- description:
57
- "Google's universal Korean sans. Unmatched script coverage (11,172 Hangul + CJK). Reads neutrally, ships everywhere.",
58
- loader: { kind: "google", family: "Noto+Sans+KR:wght@100..900" },
59
- tags: {
60
- mood: ["neutral", "technical"],
61
- era: ["2020s"],
62
- use: ["body", "ui", "heading"],
63
- personality: ["professional", "universal", "safe"],
64
- },
65
- sampleText: { latin: SAMPLE.latin, hangul: SAMPLE.hangul },
66
- designer: "Adobe + Google",
67
- },
68
- {
69
- id: "gowun-dodum",
70
- name: "Gowun Dodum",
71
- family: "sans",
72
- scripts: ["latin", "hangul"],
73
- cssFamily: `"Gowun Dodum", sans-serif`,
74
- variable: false,
75
- axes: [],
76
- weights: [400],
77
- license: "OFL-1.1",
78
- source: "https://fonts.google.com/specimen/Gowun+Dodum",
79
- description:
80
- "Gentle, slightly rounded Korean sans. Humanist terminals. Feels conversational — good for warm product copy.",
81
- loader: { kind: "google", family: "Gowun+Dodum" },
82
- tags: {
83
- mood: ["warm", "friendly", "soft"],
84
- era: ["contemporary"],
85
- use: ["body", "ui", "display"],
86
- personality: ["approachable", "humanist", "gentle"],
87
- },
88
- sampleText: { latin: SAMPLE.latin, hangul: SAMPLE.hangul },
89
- designer: "Gowun Batang",
90
- },
91
- {
92
- id: "jua",
93
- name: "Jua",
94
- family: "display",
95
- scripts: ["latin", "hangul"],
96
- cssFamily: `"Jua", sans-serif`,
97
- variable: false,
98
- axes: [],
99
- weights: [400],
100
- license: "OFL-1.1",
101
- source: "https://fonts.google.com/specimen/Jua",
102
- description:
103
- "Woowa Brothers' 주아체 — chunky, playful, handwritten feel. Iconic on Korean delivery / casual surfaces.",
104
- loader: { kind: "google", family: "Jua" },
105
- tags: {
106
- mood: ["playful", "warm", "bold"],
107
- era: ["contemporary"],
108
- use: ["display", "heading", "logo"],
109
- personality: ["friendly", "quirky", "confident"],
110
- },
111
- sampleText: {
112
- latin: "Sell what you don't need",
113
- hangul: "치킨은 살 안 쪄요",
114
- },
115
- designer: "Woowa Brothers (우아한형제들)",
116
- },
117
- {
118
- id: "nanum-pen-script",
119
- name: "Nanum Pen Script",
120
- family: "handwritten",
121
- scripts: ["latin", "hangul"],
122
- cssFamily: `"Nanum Pen Script", cursive`,
123
- variable: false,
124
- axes: [],
125
- weights: [400],
126
- license: "OFL-1.1",
127
- source: "https://fonts.google.com/specimen/Nanum+Pen+Script",
128
- description:
129
- "Naver's ballpoint-pen script. Intimate, hurried, unpolished — the opposite of corporate chrome.",
130
- loader: { kind: "google", family: "Nanum+Pen+Script" },
131
- tags: {
132
- mood: ["handwritten", "casual", "personal"],
133
- era: ["timeless"],
134
- use: ["display", "accent", "annotation"],
135
- personality: ["personal", "relaxed", "authentic"],
136
- },
137
- sampleText: {
138
- latin: "Handwritten notes feel closer",
139
- hangul: "손으로 쓴 글은 가깝게 느껴져요",
140
- },
141
- designer: "Naver",
142
- },
143
- {
144
- id: "black-han-sans",
145
- name: "Black Han Sans",
146
- family: "display",
147
- scripts: ["latin", "hangul"],
148
- cssFamily: `"Black Han Sans", sans-serif`,
149
- variable: false,
150
- axes: [],
151
- weights: [900],
152
- license: "OFL-1.1",
153
- source: "https://fonts.google.com/specimen/Black+Han+Sans",
154
- description:
155
- "Heavy Korean display sans — pure poster weight. Immediate shout-at-you presence for headlines.",
156
- loader: { kind: "google", family: "Black+Han+Sans" },
157
- tags: {
158
- mood: ["bold", "impactful", "assertive"],
159
- era: ["contemporary"],
160
- use: ["display", "heading", "logo"],
161
- personality: ["confident", "strong", "loud"],
162
- },
163
- sampleText: {
164
- latin: "Make it bold",
165
- hangul: "확실하게 주장한다",
166
- },
167
- designer: "Zess Type",
168
- },
169
-
170
- /* ─────────── Latin sans (4) ─────────── */
171
- {
172
- id: "inter",
173
- name: "Inter",
174
- family: "sans",
175
- scripts: ["latin"],
176
- cssFamily: `"Inter", sans-serif`,
177
- variable: true,
178
- axes: [{ tag: "wght", name: "Weight", min: 100, max: 900, default: 400 }],
179
- license: "OFL-1.1",
180
- source: "https://github.com/rsms/inter",
181
- description:
182
- "The default UI sans of the 2020s. Optimized for small-text legibility on screens. If in doubt, this.",
183
- loader: { kind: "google", family: "Inter:wght@100..900" },
184
- tags: {
185
- mood: ["clean", "neutral", "technical"],
186
- era: ["2010s", "2020s"],
187
- use: ["ui", "body"],
188
- personality: ["professional", "humanist", "pragmatic"],
189
- },
190
- sampleText: { latin: SAMPLE.latin },
191
- designer: "Rasmus Andersson",
192
- },
193
- {
194
- id: "geist",
195
- name: "Geist",
196
- family: "sans",
197
- scripts: ["latin"],
198
- cssFamily: `"Geist", sans-serif`,
199
- variable: true,
200
- axes: [{ tag: "wght", name: "Weight", min: 100, max: 900, default: 400 }],
201
- license: "OFL-1.1",
202
- source: "https://vercel.com/font",
203
- description:
204
- "Vercel's in-house sans. Sharper than Inter, engineered for interface chrome that looks considered.",
205
- loader: { kind: "google", family: "Geist:wght@100..900" },
206
- tags: {
207
- mood: ["sharp", "technical", "clean"],
208
- era: ["2020s"],
209
- use: ["ui", "display", "heading"],
210
- personality: ["professional", "precise", "modern"],
211
- },
212
- sampleText: { latin: SAMPLE.latin },
213
- designer: "Vercel + Basement.Studio",
214
- },
215
- {
216
- id: "manrope",
217
- name: "Manrope",
218
- family: "sans",
219
- scripts: ["latin"],
220
- cssFamily: `"Manrope", sans-serif`,
221
- variable: true,
222
- axes: [{ tag: "wght", name: "Weight", min: 200, max: 800, default: 400 }],
223
- license: "OFL-1.1",
224
- source: "https://fonts.google.com/specimen/Manrope",
225
- description:
226
- "Friendly, semi-geometric sans. Softer than Inter, warmer than Geist — a common sweet spot for landing-page body.",
227
- loader: { kind: "google", family: "Manrope:wght@200..800" },
228
- tags: {
229
- mood: ["friendly", "modern", "warm"],
230
- era: ["2020s"],
231
- use: ["ui", "body", "heading"],
232
- personality: ["approachable", "humanist", "balanced"],
233
- },
234
- sampleText: { latin: SAMPLE.latin },
235
- designer: "Mikhail Sharanda",
236
- },
237
- {
238
- id: "recursive",
239
- name: "Recursive",
240
- family: "sans",
241
- scripts: ["latin"],
242
- cssFamily: `"Recursive", sans-serif`,
243
- variable: true,
244
- axes: [
245
- { tag: "MONO", name: "Monospace", min: 0, max: 1, default: 0 },
246
- { tag: "CASL", name: "Casual", min: 0, max: 1, default: 0 },
247
- { tag: "wght", name: "Weight", min: 300, max: 1000, default: 400 },
248
- { tag: "slnt", name: "Slant", min: -15, max: 0, default: 0 },
249
- { tag: "CRSV", name: "Cursive", min: 0, max: 1, default: 0.5 },
250
- ],
251
- license: "OFL-1.1",
252
- source: "https://www.recursive.design/",
253
- description:
254
- "Five-axis variable. Move from precise sans → casual humanist → full monospace on the same family. Maximum expressiveness per KB.",
255
- loader: {
256
- kind: "google",
257
- family: "Recursive:CASL,CRSV,MONO,slnt,wght@0..1,0..1,0..1,-15..0,300..1000",
258
- },
259
- tags: {
260
- mood: ["expressive", "experimental", "flexible"],
261
- era: ["2020s"],
262
- use: ["display", "code", "ui", "body"],
263
- personality: ["playful", "modern", "versatile"],
264
- },
265
- sampleText: { latin: SAMPLE.latin },
266
- designer: "Stephen Nixon (Arrow Type)",
267
- },
268
-
269
- /* ─────────── Latin serif (3) ─────────── */
270
- {
271
- id: "playfair-display",
272
- name: "Playfair Display",
273
- family: "serif",
274
- scripts: ["latin"],
275
- cssFamily: `"Playfair Display", serif`,
276
- variable: true,
277
- axes: [{ tag: "wght", name: "Weight", min: 400, max: 900, default: 500 }],
278
- license: "OFL-1.1",
279
- source: "https://fonts.google.com/specimen/Playfair+Display",
280
- description:
281
- "High-contrast display serif with transitional-era DNA. Does elegant editorial / fashion headlines well; wrong for body.",
282
- loader: { kind: "google", family: "Playfair+Display:wght@400..900" },
283
- tags: {
284
- mood: ["elegant", "editorial", "contrast"],
285
- era: ["timeless", "transitional"],
286
- use: ["display", "heading", "logo"],
287
- personality: ["sophisticated", "luxurious", "dramatic"],
288
- },
289
- sampleText: { latin: "An Elegant Argument for Type" },
290
- designer: "Claus Eggers Sørensen",
291
- },
292
- {
293
- id: "fraunces",
294
- name: "Fraunces",
295
- family: "serif",
296
- scripts: ["latin"],
297
- cssFamily: `"Fraunces", serif`,
298
- variable: true,
299
- axes: [
300
- { tag: "opsz", name: "Optical size", min: 9, max: 144, default: 24 },
301
- { tag: "wght", name: "Weight", min: 100, max: 900, default: 500 },
302
- { tag: "SOFT", name: "Softness", min: 0, max: 100, default: 30 },
303
- { tag: "WONK", name: "Wonk", min: 0, max: 1, default: 0 },
304
- ],
305
- license: "OFL-1.1",
306
- source: "https://fonts.google.com/specimen/Fraunces",
307
- description:
308
- "Characterful display serif with Softness + Wonk axes. Push WONK=1 for the quirky alternate glyphs. Warm, human, slightly off-center.",
309
- loader: {
310
- kind: "google",
311
- family: "Fraunces:opsz,wght,SOFT,WONK@9..144,100..900,0..100,0..1",
312
- },
313
- tags: {
314
- mood: ["expressive", "warm", "characterful"],
315
- era: ["contemporary"],
316
- use: ["display", "heading", "logo"],
317
- personality: ["quirky", "warm", "memorable"],
318
- },
319
- sampleText: { latin: "Warmth, with a wink" },
320
- designer: "Undercase Type",
321
- },
322
- {
323
- id: "newsreader",
324
- name: "Newsreader",
325
- family: "serif",
326
- scripts: ["latin"],
327
- cssFamily: `"Newsreader", serif`,
328
- variable: true,
329
- axes: [
330
- { tag: "opsz", name: "Optical size", min: 6, max: 72, default: 16 },
331
- { tag: "wght", name: "Weight", min: 200, max: 800, default: 400 },
332
- ],
333
- license: "OFL-1.1",
334
- source: "https://fonts.google.com/specimen/Newsreader",
335
- description:
336
- "Readable long-form serif with optical-size axis. Designed for news interfaces; scales gracefully from caption to headline.",
337
- loader: { kind: "google", family: "Newsreader:opsz,wght@6..72,200..800" },
338
- tags: {
339
- mood: ["readable", "editorial", "calm"],
340
- era: ["contemporary"],
341
- use: ["body", "heading"],
342
- personality: ["thoughtful", "serious", "trustworthy"],
343
- },
344
- sampleText: { latin: "A paragraph you'll actually read" },
345
- designer: "Production Type",
346
- },
347
-
348
- /* ─────────── Display / retro (1) ─────────── */
349
- {
350
- id: "righteous",
351
- name: "Righteous",
352
- family: "display",
353
- scripts: ["latin"],
354
- cssFamily: `"Righteous", sans-serif`,
355
- variable: false,
356
- axes: [],
357
- weights: [400],
358
- license: "OFL-1.1",
359
- source: "https://fonts.google.com/specimen/Righteous",
360
- description:
361
- "Geometric retro display — reads as 70s–80s confident signage. Pairs well with soft-serif body.",
362
- loader: { kind: "google", family: "Righteous" },
363
- tags: {
364
- mood: ["retro", "confident", "geometric"],
365
- era: ["1970s", "1980s", "vintage"],
366
- use: ["display", "logo", "heading"],
367
- personality: ["vintage", "bold", "nostalgic"],
368
- },
369
- sampleText: { latin: "Never Lose Your Cool" },
370
- designer: "Astigmatic",
371
- },
372
-
373
- /* ─────────── Mono (2) ─────────── */
374
- {
375
- id: "jetbrains-mono",
376
- name: "JetBrains Mono",
377
- family: "mono",
378
- scripts: ["latin"],
379
- cssFamily: `"JetBrains Mono", monospace`,
380
- variable: true,
381
- axes: [{ tag: "wght", name: "Weight", min: 100, max: 800, default: 400 }],
382
- license: "OFL-1.1",
383
- source: "https://www.jetbrains.com/lp/mono/",
384
- description:
385
- "Designed for developers — big clear counters, ligature support. Comfortable on long reading, sharp on small text.",
386
- loader: { kind: "google", family: "JetBrains+Mono:wght@100..800" },
387
- tags: {
388
- mood: ["technical", "clear", "precise"],
389
- era: ["2020s"],
390
- use: ["code", "mono", "ui"],
391
- personality: ["developer", "precise", "readable"],
392
- },
393
- sampleText: { latin: "const design = 'intelligence'" },
394
- designer: "JetBrains",
395
- },
396
- {
397
- id: "ibm-plex-mono",
398
- name: "IBM Plex Mono",
399
- family: "mono",
400
- scripts: ["latin"],
401
- cssFamily: `"IBM Plex Mono", monospace`,
402
- variable: false,
403
- axes: [],
404
- weights: [300, 400, 500, 600, 700],
405
- license: "OFL-1.1",
406
- source: "https://github.com/IBM/plex",
407
- description:
408
- "IBM's corporate mono. Less playful than JetBrains, more institutional — fits documentation and technical writing.",
409
- loader: { kind: "google", family: "IBM+Plex+Mono:wght@300;400;500;600;700" },
410
- tags: {
411
- mood: ["technical", "corporate", "institutional"],
412
- era: ["contemporary"],
413
- use: ["code", "mono", "body"],
414
- personality: ["professional", "precise", "legible"],
415
- },
416
- sampleText: { latin: "# technical writing looks better here" },
417
- designer: "Mike Abbink + Bold Monday",
418
- },
419
-
420
- /* ─────────── Korean expansion (5) ─────────── */
421
- {
422
- id: "do-hyeon",
423
- name: "Do Hyeon",
424
- family: "display",
425
- scripts: ["latin", "hangul"],
426
- cssFamily: `"Do Hyeon", sans-serif`,
427
- variable: false,
428
- axes: [],
429
- weights: [400],
430
- license: "OFL-1.1",
431
- source: "https://fonts.google.com/specimen/Do+Hyeon",
432
- description:
433
- "Woowa Brothers' 도현체. Bold, squat, friendly — reads as Korean street signage + modern poster.",
434
- loader: { kind: "google", family: "Do+Hyeon" },
435
- tags: {
436
- mood: ["bold", "rounded", "playful"],
437
- era: ["contemporary"],
438
- use: ["display", "heading", "logo"],
439
- personality: ["friendly", "confident", "approachable"],
440
- },
441
- sampleText: { latin: "Sell it bold", hangul: "굵게 한 번 살아보자" },
442
- designer: "Woowa Brothers (우아한형제들)",
443
- },
444
- {
445
- id: "gowun-batang",
446
- name: "Gowun Batang",
447
- family: "serif",
448
- scripts: ["latin", "hangul"],
449
- cssFamily: `"Gowun Batang", serif`,
450
- variable: false,
451
- axes: [],
452
- weights: [400, 700],
453
- license: "OFL-1.1",
454
- source: "https://fonts.google.com/specimen/Gowun+Batang",
455
- description:
456
- "Warm Korean serif. Softer than Nanum Myeongjo — reads literary without feeling institutional.",
457
- loader: { kind: "google", family: "Gowun+Batang:wght@400;700" },
458
- tags: {
459
- mood: ["warm", "elegant", "calm"],
460
- era: ["contemporary"],
461
- use: ["body", "heading"],
462
- personality: ["gentle", "thoughtful", "humanist"],
463
- },
464
- sampleText: {
465
- latin: "A softer serif for the reading mind",
466
- hangul: "천천히 읽히는 문장을 위하여",
467
- },
468
- designer: "Gowun Batang",
469
- },
470
- {
471
- id: "nanum-gothic",
472
- name: "Nanum Gothic",
473
- family: "sans",
474
- scripts: ["latin", "hangul"],
475
- cssFamily: `"Nanum Gothic", sans-serif`,
476
- variable: false,
477
- axes: [],
478
- weights: [400, 700, 800],
479
- license: "OFL-1.1",
480
- source: "https://fonts.google.com/specimen/Nanum+Gothic",
481
- description:
482
- "Naver's foundational Korean sans — the 2010s workhorse. Safe everywhere, recognized by every Korean user.",
483
- loader: { kind: "google", family: "Nanum+Gothic:wght@400;700;800" },
484
- tags: {
485
- mood: ["neutral", "clean", "foundational"],
486
- era: ["2010s", "contemporary"],
487
- use: ["body", "ui", "heading"],
488
- personality: ["universal", "safe", "familiar"],
489
- },
490
- sampleText: { latin: "The default is a design choice", hangul: "익숙함도 디자인이다" },
491
- designer: "Naver",
492
- },
493
- {
494
- id: "gaegu",
495
- name: "Gaegu",
496
- family: "handwritten",
497
- scripts: ["latin", "hangul"],
498
- cssFamily: `"Gaegu", cursive`,
499
- variable: false,
500
- axes: [],
501
- weights: [300, 400, 700],
502
- license: "OFL-1.1",
503
- source: "https://fonts.google.com/specimen/Gaegu",
504
- description:
505
- "Kid-handwritten Korean script. Chunky, irregular strokes — reads playful and unpolished, like a school notebook.",
506
- loader: { kind: "google", family: "Gaegu:wght@300;400;700" },
507
- tags: {
508
- mood: ["handwritten", "playful", "casual"],
509
- era: ["timeless"],
510
- use: ["display", "accent"],
511
- personality: ["personal", "cute", "authentic"],
512
- },
513
- sampleText: { latin: "Schoolyard notes", hangul: "엉성한 손글씨의 매력" },
514
- },
515
- {
516
- id: "hahmlet",
517
- name: "Hahmlet",
518
- family: "serif",
519
- scripts: ["latin", "hangul"],
520
- cssFamily: `"Hahmlet", serif`,
521
- variable: true,
522
- axes: [{ tag: "wght", name: "Weight", min: 100, max: 900, default: 500 }],
523
- license: "OFL-1.1",
524
- source: "https://fonts.google.com/specimen/Hahmlet",
525
- description:
526
- "Contemporary Korean serif with variable weight. More contrast than Gowun Batang — reads editorial and modern.",
527
- loader: { kind: "google", family: "Hahmlet:wght@100..900" },
528
- tags: {
529
- mood: ["elegant", "editorial", "modern"],
530
- era: ["2020s"],
531
- use: ["display", "heading", "body"],
532
- personality: ["sophisticated", "contemporary", "deliberate"],
533
- },
534
- sampleText: {
535
- latin: "Editorial serif, Korean variable",
536
- hangul: "현대적 한글 가변 세리프",
537
- },
538
- designer: "Ethan Nakache",
539
- },
540
-
541
- /* ─────────── Latin expansion (10) ─────────── */
542
- {
543
- id: "dm-sans",
544
- name: "DM Sans",
545
- family: "sans",
546
- scripts: ["latin"],
547
- cssFamily: `"DM Sans", sans-serif`,
548
- variable: true,
549
- axes: [
550
- { tag: "opsz", name: "Optical size", min: 9, max: 40, default: 14 },
551
- { tag: "wght", name: "Weight", min: 100, max: 1000, default: 400 },
552
- ],
553
- license: "OFL-1.1",
554
- source: "https://fonts.google.com/specimen/DM+Sans",
555
- description:
556
- "Google's in-house low-contrast sans. Optical-size axis makes it work at 10px captions and 96px display without swapping families.",
557
- loader: { kind: "google", family: "DM+Sans:opsz,wght@9..40,100..1000" },
558
- tags: {
559
- mood: ["clean", "geometric", "friendly"],
560
- era: ["2020s"],
561
- use: ["ui", "body", "display"],
562
- personality: ["modern", "approachable", "balanced"],
563
- },
564
- sampleText: { latin: "Scale gracefully from caption to headline" },
565
- designer: "Colophon Foundry",
566
- },
567
- {
568
- id: "space-grotesk",
569
- name: "Space Grotesk",
570
- family: "sans",
571
- scripts: ["latin"],
572
- cssFamily: `"Space Grotesk", sans-serif`,
573
- variable: true,
574
- axes: [{ tag: "wght", name: "Weight", min: 300, max: 700, default: 400 }],
575
- license: "OFL-1.1",
576
- source: "https://fonts.google.com/specimen/Space+Grotesk",
577
- description:
578
- "Proportional evolution of Space Mono. Technical-but-humane — reads like something a well-rested engineer designed.",
579
- loader: { kind: "google", family: "Space+Grotesk:wght@300..700" },
580
- tags: {
581
- mood: ["geometric", "modern", "technical"],
582
- era: ["2020s"],
583
- use: ["display", "ui", "heading"],
584
- personality: ["futuristic", "precise", "quirky"],
585
- },
586
- sampleText: { latin: "Designed from a monospace" },
587
- designer: "Florian Karsten",
588
- },
589
- {
590
- id: "outfit",
591
- name: "Outfit",
592
- family: "sans",
593
- scripts: ["latin"],
594
- cssFamily: `"Outfit", sans-serif`,
595
- variable: true,
596
- axes: [{ tag: "wght", name: "Weight", min: 100, max: 900, default: 400 }],
597
- license: "OFL-1.1",
598
- source: "https://fonts.google.com/specimen/Outfit",
599
- description:
600
- "Geometric sans with a warm twist — slightly softer than Montserrat, more rhythmic than Poppins. Reads modern without shouting it.",
601
- loader: { kind: "google", family: "Outfit:wght@100..900" },
602
- tags: {
603
- mood: ["geometric", "clean", "modern"],
604
- era: ["2020s"],
605
- use: ["ui", "display", "heading"],
606
- personality: ["modern", "balanced", "confident"],
607
- },
608
- sampleText: { latin: "A new geometric, gently" },
609
- designer: "Rodrigo Fuenzalida",
610
- },
611
- {
612
- id: "poppins",
613
- name: "Poppins",
614
- family: "sans",
615
- scripts: ["latin"],
616
- cssFamily: `"Poppins", sans-serif`,
617
- variable: false,
618
- axes: [],
619
- weights: [100, 200, 300, 400, 500, 600, 700, 800, 900],
620
- license: "OFL-1.1",
621
- source: "https://fonts.google.com/specimen/Poppins",
622
- description:
623
- "The most-downloaded Google Font globally. Pure geometric sans, rounded terminals. Safe everywhere, maybe too safe.",
624
- loader: { kind: "google", family: "Poppins:wght@100;200;300;400;500;600;700;800;900" },
625
- tags: {
626
- mood: ["geometric", "friendly", "universal"],
627
- era: ["2010s", "2020s"],
628
- use: ["ui", "body", "display"],
629
- personality: ["approachable", "rounded", "popular"],
630
- },
631
- sampleText: { latin: "Rounded geometric, everywhere" },
632
- designer: "Indian Type Foundry",
633
- },
634
- {
635
- id: "lora",
636
- name: "Lora",
637
- family: "serif",
638
- scripts: ["latin"],
639
- cssFamily: `"Lora", serif`,
640
- variable: true,
641
- axes: [{ tag: "wght", name: "Weight", min: 400, max: 700, default: 400 }],
642
- license: "OFL-1.1",
643
- source: "https://fonts.google.com/specimen/Lora",
644
- description:
645
- "Calligraphic serif made for long reading. Warmer than Crimson, more literary than Newsreader. The blog-post default.",
646
- loader: { kind: "google", family: "Lora:wght@400..700" },
647
- tags: {
648
- mood: ["readable", "elegant", "warm"],
649
- era: ["contemporary", "timeless"],
650
- use: ["body", "heading"],
651
- personality: ["thoughtful", "literary", "gentle"],
652
- },
653
- sampleText: { latin: "Sentences want to be read slowly" },
654
- designer: "Cyreal",
655
- },
656
- {
657
- id: "work-sans",
658
- name: "Work Sans",
659
- family: "sans",
660
- scripts: ["latin"],
661
- cssFamily: `"Work Sans", sans-serif`,
662
- variable: true,
663
- axes: [{ tag: "wght", name: "Weight", min: 100, max: 900, default: 400 }],
664
- license: "OFL-1.1",
665
- source: "https://fonts.google.com/specimen/Work+Sans",
666
- description:
667
- "Transitional workhorse — optimised for on-screen text between 14-48px. Middle ground between Inter's cold and Manrope's warm.",
668
- loader: { kind: "google", family: "Work+Sans:wght@100..900" },
669
- tags: {
670
- mood: ["clean", "workhorse", "transitional"],
671
- era: ["2010s", "2020s"],
672
- use: ["ui", "body", "display"],
673
- personality: ["versatile", "pragmatic", "balanced"],
674
- },
675
- sampleText: { latin: "The sans that just works" },
676
- designer: "Wei Huang",
677
- },
678
- {
679
- id: "crimson-pro",
680
- name: "Crimson Pro",
681
- family: "serif",
682
- scripts: ["latin"],
683
- cssFamily: `"Crimson Pro", serif`,
684
- variable: true,
685
- axes: [{ tag: "wght", name: "Weight", min: 200, max: 900, default: 400 }],
686
- license: "OFL-1.1",
687
- source: "https://fonts.google.com/specimen/Crimson+Pro",
688
- description:
689
- "Old-style book serif, refined. Reads print-quality long-form — pairs well with serious body copy.",
690
- loader: { kind: "google", family: "Crimson+Pro:wght@200..900" },
691
- tags: {
692
- mood: ["classical", "readable", "elegant"],
693
- era: ["timeless"],
694
- use: ["body", "heading"],
695
- personality: ["literary", "traditional", "serious"],
696
- },
697
- sampleText: { latin: "On the quality of long reading" },
698
- designer: "Jacques Le Bailly",
699
- },
700
- {
701
- id: "caveat",
702
- name: "Caveat",
703
- family: "handwritten",
704
- scripts: ["latin"],
705
- cssFamily: `"Caveat", cursive`,
706
- variable: true,
707
- axes: [{ tag: "wght", name: "Weight", min: 400, max: 700, default: 400 }],
708
- license: "OFL-1.1",
709
- source: "https://fonts.google.com/specimen/Caveat",
710
- description:
711
- "Casual brush-ink script. Reads like marker on whiteboard — use for annotation layer over clean body, not as body itself.",
712
- loader: { kind: "google", family: "Caveat:wght@400..700" },
713
- tags: {
714
- mood: ["handwritten", "casual", "personal"],
715
- era: ["timeless"],
716
- use: ["accent", "display", "annotation"],
717
- personality: ["warm", "authentic", "quick"],
718
- },
719
- sampleText: { latin: "annotation beats illustration" },
720
- designer: "Pablo Impallari",
721
- },
722
- {
723
- id: "space-mono",
724
- name: "Space Mono",
725
- family: "mono",
726
- scripts: ["latin"],
727
- cssFamily: `"Space Mono", monospace`,
728
- variable: false,
729
- axes: [],
730
- weights: [400, 700],
731
- license: "OFL-1.1",
732
- source: "https://fonts.google.com/specimen/Space+Mono",
733
- description:
734
- "Retro-futurist mono. More character than JetBrains, less corporate than IBM Plex — good for hero code blocks and display.",
735
- loader: { kind: "google", family: "Space+Mono:wght@400;700" },
736
- tags: {
737
- mood: ["retro", "technical", "distinctive"],
738
- era: ["retro", "2010s"],
739
- use: ["code", "display"],
740
- personality: ["quirky", "futuristic", "characterful"],
741
- },
742
- sampleText: { latin: "echo 'hello, retro-future'" },
743
- designer: "Colophon Foundry",
744
- },
745
- {
746
- id: "bebas-neue",
747
- name: "Bebas Neue",
748
- family: "display",
749
- scripts: ["latin"],
750
- cssFamily: `"Bebas Neue", sans-serif`,
751
- variable: false,
752
- axes: [],
753
- weights: [400],
754
- license: "OFL-1.1",
755
- source: "https://fonts.google.com/specimen/Bebas+Neue",
756
- description:
757
- "Tall-and-narrow condensed display sans. One of the most-used display fonts on the web. Poster energy by default.",
758
- loader: { kind: "google", family: "Bebas+Neue" },
759
- tags: {
760
- mood: ["bold", "condensed", "impactful"],
761
- era: ["timeless"],
762
- use: ["display", "logo", "heading"],
763
- personality: ["confident", "editorial", "poster"],
764
- },
765
- sampleText: { latin: "POSTER ENERGY" },
766
- designer: "Ryoichi Tsunekawa",
767
- },
768
-
769
- /* ─────────── Korean handwritten / calligraphy (5) ─────────── */
770
- {
771
- id: "cute-font",
772
- name: "Cute Font",
773
- family: "handwritten",
774
- scripts: ["latin", "hangul"],
775
- cssFamily: `"Cute Font", cursive`,
776
- variable: false,
777
- axes: [],
778
- weights: [400],
779
- license: "OFL-1.1",
780
- source: "https://fonts.google.com/specimen/Cute+Font",
781
- description:
782
- "Chunky Korean handwritten script, wide round strokes. Reads as kid-diary or YouTube title — unpolished charm.",
783
- loader: { kind: "google", family: "Cute+Font" },
784
- tags: {
785
- mood: ["handwritten", "playful", "casual", "warm"],
786
- era: ["contemporary"],
787
- use: ["display", "accent"],
788
- personality: ["personal", "cute", "authentic"],
789
- },
790
- sampleText: { latin: "Cute and chunky", hangul: "귀엽고 둔탁한 손글씨" },
791
- },
792
- {
793
- id: "east-sea-dokdo",
794
- name: "East Sea Dokdo",
795
- family: "handwritten",
796
- scripts: ["latin", "hangul"],
797
- cssFamily: `"East Sea Dokdo", cursive`,
798
- variable: false,
799
- axes: [],
800
- weights: [400],
801
- license: "OFL-1.1",
802
- source: "https://fonts.google.com/specimen/East+Sea+Dokdo",
803
- description:
804
- "Korean brush-pen calligraphy. Irregular strokes with pressure variation — reads as 붓글씨 energy, not ballpoint.",
805
- loader: { kind: "google", family: "East+Sea+Dokdo" },
806
- tags: {
807
- mood: ["handwritten", "expressive", "calligraphy"],
808
- era: ["timeless"],
809
- use: ["display", "accent", "logo"],
810
- personality: ["personal", "authentic", "artistic"],
811
- },
812
- sampleText: { latin: "Brush strokes speak", hangul: "붓놀림에 기운이 담긴다" },
813
- },
814
- {
815
- id: "kirang-haerang",
816
- name: "Kirang Haerang",
817
- family: "handwritten",
818
- scripts: ["latin", "hangul"],
819
- cssFamily: `"Kirang Haerang", cursive`,
820
- variable: false,
821
- axes: [],
822
- weights: [400],
823
- license: "OFL-1.1",
824
- source: "https://fonts.google.com/specimen/Kirang+Haerang",
825
- description:
826
- "Warm Korean handwritten with subtle Japanese katakana influence. Friendly, rhythmic — good for zine-style display.",
827
- loader: { kind: "google", family: "Kirang+Haerang" },
828
- tags: {
829
- mood: ["handwritten", "playful", "warm"],
830
- era: ["contemporary"],
831
- use: ["display", "accent"],
832
- personality: ["personal", "characterful", "quirky"],
833
- },
834
- sampleText: { latin: "Zine-ready handwritten", hangul: "손으로 쓴 잡지 느낌" },
835
- },
836
- {
837
- id: "dokdo",
838
- name: "Dokdo",
839
- family: "handwritten",
840
- scripts: ["latin", "hangul"],
841
- cssFamily: `"Dokdo", cursive`,
842
- variable: false,
843
- axes: [],
844
- weights: [400],
845
- license: "OFL-1.1",
846
- source: "https://fonts.google.com/specimen/Dokdo",
847
- description:
848
- "Bold marker-pen Korean script. Thicker and more assertive than Nanum Pen — poster-friendly at large sizes.",
849
- loader: { kind: "google", family: "Dokdo" },
850
- tags: {
851
- mood: ["handwritten", "bold", "impactful"],
852
- era: ["contemporary"],
853
- use: ["display", "logo", "heading"],
854
- personality: ["confident", "authentic", "characterful"],
855
- },
856
- sampleText: { latin: "Marker-pen presence", hangul: "매직으로 힘껏 써내린" },
857
- },
858
- {
859
- id: "song-myung",
860
- name: "Song Myung",
861
- family: "serif",
862
- scripts: ["latin", "hangul"],
863
- cssFamily: `"Song Myung", serif`,
864
- variable: false,
865
- axes: [],
866
- weights: [400],
867
- license: "OFL-1.1",
868
- source: "https://fonts.google.com/specimen/Song+Myung",
869
- description:
870
- "Classical Korean 명조체 serif. Traditional, stately — reads as textbook or official document.",
871
- loader: { kind: "google", family: "Song+Myung" },
872
- tags: {
873
- mood: ["classical", "readable", "calm"],
874
- era: ["timeless"],
875
- use: ["body", "heading"],
876
- personality: ["traditional", "thoughtful", "serious"],
877
- },
878
- sampleText: { latin: "A classical Korean serif", hangul: "정갈한 명조체의 맛" },
879
- },
880
-
881
- /* ─────────── Korean — expanded (Google Fonts, 18) ─────────── */
882
- {
883
- id: "noto-serif-kr",
884
- name: "Noto Serif KR",
885
- family: "serif",
886
- scripts: ["latin", "hangul"],
887
- cssFamily: `"Noto Serif KR", serif`,
888
- variable: true,
889
- axes: [{ tag: "wght", name: "Weight", min: 200, max: 900, default: 400 }],
890
- license: "OFL-1.1",
891
- source: "https://fonts.google.com/noto/specimen/Noto+Serif+KR",
892
- description:
893
- "Universal Korean 명조체. Serif counterpart to Noto Sans KR — stately, readable, reliable for editorial long-form.",
894
- loader: { kind: "google", family: "Noto+Serif+KR:wght@200..900" },
895
- tags: {
896
- mood: ["editorial", "readable", "classical"],
897
- era: ["timeless"],
898
- use: ["body", "heading"],
899
- personality: ["traditional", "serious", "universal"],
900
- },
901
- sampleText: { latin: SAMPLE.latin, hangul: SAMPLE.hangul },
902
- designer: "Adobe + Google",
903
- },
904
- {
905
- id: "nanum-myeongjo",
906
- name: "Nanum Myeongjo",
907
- family: "serif",
908
- scripts: ["latin", "hangul"],
909
- cssFamily: `"Nanum Myeongjo", serif`,
910
- variable: false,
911
- axes: [],
912
- weights: [400, 700, 800],
913
- license: "OFL-1.1",
914
- source: "https://fonts.google.com/specimen/Nanum+Myeongjo",
915
- description:
916
- "Naver's 나눔명조. The default Korean editorial serif — quiet, literary, reads like a book.",
917
- loader: { kind: "google", family: "Nanum+Myeongjo:wght@400;700;800" },
918
- tags: {
919
- mood: ["editorial", "calm", "readable"],
920
- era: ["timeless"],
921
- use: ["body", "heading"],
922
- personality: ["literary", "thoughtful", "traditional"],
923
- },
924
- sampleText: { latin: "Books feel like books", hangul: "책이 책처럼 느껴지는 글꼴" },
925
- designer: "Naver",
926
- },
927
- {
928
- id: "nanum-brush-script",
929
- name: "Nanum Brush Script",
930
- family: "handwritten",
931
- scripts: ["latin", "hangul"],
932
- cssFamily: `"Nanum Brush Script", cursive`,
933
- variable: false,
934
- axes: [],
935
- weights: [400],
936
- license: "OFL-1.1",
937
- source: "https://fonts.google.com/specimen/Nanum+Brush+Script",
938
- description:
939
- "Naver's 나눔손글씨 붓. Broad wet brush — looks painted rather than written. Good for warm celebratory copy.",
940
- loader: { kind: "google", family: "Nanum+Brush+Script" },
941
- tags: {
942
- mood: ["handwritten", "warm", "expressive"],
943
- era: ["timeless"],
944
- use: ["display", "accent"],
945
- personality: ["personal", "celebratory", "characterful"],
946
- },
947
- sampleText: { latin: "Painted, not written", hangul: "쓴 게 아니라 그린 느낌" },
948
- designer: "Naver",
949
- },
950
- {
951
- id: "nanum-gothic-coding",
952
- name: "Nanum Gothic Coding",
953
- family: "mono",
954
- scripts: ["latin", "hangul"],
955
- cssFamily: `"Nanum Gothic Coding", monospace`,
956
- variable: false,
957
- axes: [],
958
- weights: [400, 700],
959
- license: "OFL-1.1",
960
- source: "https://fonts.google.com/specimen/Nanum+Gothic+Coding",
961
- description:
962
- "Monospaced Korean sans for code + tabular data. One of the few free monos that handles Hangul glyph widths cleanly.",
963
- loader: { kind: "google", family: "Nanum+Gothic+Coding:wght@400;700" },
964
- tags: {
965
- mood: ["technical", "neutral", "readable"],
966
- era: ["timeless"],
967
- use: ["code", "body"],
968
- personality: ["professional", "pragmatic", "universal"],
969
- },
970
- sampleText: { latin: "const font = 'code';", hangul: "콘솔·로그·표에 제격" },
971
- designer: "Naver",
972
- },
973
- {
974
- id: "gothic-a1",
975
- name: "Gothic A1",
976
- family: "sans",
977
- scripts: ["latin", "hangul"],
978
- cssFamily: `"Gothic A1", sans-serif`,
979
- variable: false,
980
- axes: [],
981
- weights: [100, 200, 300, 400, 500, 600, 700, 800, 900],
982
- license: "OFL-1.1",
983
- source: "https://fonts.google.com/specimen/Gothic+A1",
984
- description:
985
- "Nine-weight geometric Korean sans. Cleaner than Noto Sans KR, a sharper default for modern product UI.",
986
- loader: { kind: "google", family: "Gothic+A1:wght@100;200;300;400;500;600;700;800;900" },
987
- tags: {
988
- mood: ["clean", "geometric", "modern"],
989
- era: ["2020s"],
990
- use: ["ui", "body", "display"],
991
- personality: ["professional", "precise", "modern"],
992
- },
993
- sampleText: { latin: SAMPLE.latin, hangul: SAMPLE.hangul },
994
- designer: "HanType",
995
- },
996
- {
997
- id: "gugi",
998
- name: "Gugi",
999
- family: "display",
1000
- scripts: ["latin", "hangul"],
1001
- cssFamily: `"Gugi", sans-serif`,
1002
- variable: false,
1003
- axes: [],
1004
- weights: [400],
1005
- license: "OFL-1.1",
1006
- source: "https://fonts.google.com/specimen/Gugi",
1007
- description:
1008
- "Wobbly, hand-drawn-feel Korean display. Irregular edges read as playful — wrong for serious chrome, right for kid-brand energy.",
1009
- loader: { kind: "google", family: "Gugi" },
1010
- tags: {
1011
- mood: ["playful", "quirky", "warm"],
1012
- era: ["contemporary"],
1013
- use: ["display", "logo"],
1014
- personality: ["friendly", "characterful", "casual"],
1015
- },
1016
- sampleText: { latin: "Feels hand-drawn", hangul: "손으로 쓱쓱 그린 듯한" },
1017
- },
1018
- {
1019
- id: "hi-melody",
1020
- name: "Hi Melody",
1021
- family: "handwritten",
1022
- scripts: ["latin", "hangul"],
1023
- cssFamily: `"Hi Melody", cursive`,
1024
- variable: false,
1025
- axes: [],
1026
- weights: [400],
1027
- license: "OFL-1.1",
1028
- source: "https://fonts.google.com/specimen/Hi+Melody",
1029
- description:
1030
- "Teen-diary handwritten KR. Round, cheerful, slightly juvenile — nostalgic in the right context.",
1031
- loader: { kind: "google", family: "Hi+Melody" },
1032
- tags: {
1033
- mood: ["handwritten", "playful", "warm"],
1034
- era: ["contemporary"],
1035
- use: ["display", "accent"],
1036
- personality: ["personal", "cute", "youthful"],
1037
- },
1038
- sampleText: { latin: "Happy little notes", hangul: "오늘도 고마워요" },
1039
- },
1040
- {
1041
- id: "dongle",
1042
- name: "Dongle",
1043
- family: "display",
1044
- scripts: ["latin", "hangul"],
1045
- cssFamily: `"Dongle", sans-serif`,
1046
- variable: false,
1047
- axes: [],
1048
- weights: [300, 400, 700],
1049
- license: "OFL-1.1",
1050
- source: "https://fonts.google.com/specimen/Dongle",
1051
- description:
1052
- "Wide, slightly stretched Korean display. Retro 90s signage energy — feels like a Seoul back-alley shop sign.",
1053
- loader: { kind: "google", family: "Dongle:wght@300;400;700" },
1054
- tags: {
1055
- mood: ["retro", "warm", "nostalgic"],
1056
- era: ["1990s", "retro"],
1057
- use: ["display", "logo"],
1058
- personality: ["friendly", "local", "characterful"],
1059
- },
1060
- sampleText: { latin: "Back-alley signage", hangul: "골목 간판처럼" },
1061
- },
1062
- {
1063
- id: "poor-story",
1064
- name: "Poor Story",
1065
- family: "handwritten",
1066
- scripts: ["latin", "hangul"],
1067
- cssFamily: `"Poor Story", cursive`,
1068
- variable: false,
1069
- axes: [],
1070
- weights: [400],
1071
- license: "OFL-1.1",
1072
- source: "https://fonts.google.com/specimen/Poor+Story",
1073
- description:
1074
- "Scratchy, uneven Korean handwriting. Comic-strip captions, zine annotation — feels improvised on purpose.",
1075
- loader: { kind: "google", family: "Poor+Story" },
1076
- tags: {
1077
- mood: ["handwritten", "casual", "imperfect"],
1078
- era: ["contemporary"],
1079
- use: ["display", "accent"],
1080
- personality: ["personal", "authentic", "quirky"],
1081
- },
1082
- sampleText: { latin: "Scribbled margins", hangul: "끄적인 메모 같은" },
1083
- },
1084
- {
1085
- id: "single-day",
1086
- name: "Single Day",
1087
- family: "display",
1088
- scripts: ["latin", "hangul"],
1089
- cssFamily: `"Single Day", cursive`,
1090
- variable: false,
1091
- axes: [],
1092
- weights: [400],
1093
- license: "OFL-1.1",
1094
- source: "https://fonts.google.com/specimen/Single+Day",
1095
- description:
1096
- "Tall, narrow Korean display with a poster-like cadence. Works as an accent — not for running text.",
1097
- loader: { kind: "google", family: "Single+Day" },
1098
- tags: {
1099
- mood: ["editorial", "expressive", "narrow"],
1100
- era: ["contemporary"],
1101
- use: ["display", "heading"],
1102
- personality: ["confident", "poetic", "distinct"],
1103
- },
1104
- sampleText: { latin: "Poster day", hangul: "한 장의 포스터처럼" },
1105
- },
1106
- {
1107
- id: "stylish",
1108
- name: "Stylish",
1109
- family: "display",
1110
- scripts: ["latin", "hangul"],
1111
- cssFamily: `"Stylish", sans-serif`,
1112
- variable: false,
1113
- axes: [],
1114
- weights: [400],
1115
- license: "OFL-1.1",
1116
- source: "https://fonts.google.com/specimen/Stylish",
1117
- description:
1118
- "Elegant, narrow Korean sans with high contrast. Fashion/boutique feel — editorial but not serif.",
1119
- loader: { kind: "google", family: "Stylish" },
1120
- tags: {
1121
- mood: ["elegant", "editorial", "luxurious"],
1122
- era: ["contemporary"],
1123
- use: ["display", "heading", "logo"],
1124
- personality: ["sophisticated", "refined", "modern"],
1125
- },
1126
- sampleText: { latin: "Boutique poise", hangul: "편집샵의 우아함" },
1127
- },
1128
- {
1129
- id: "sunflower",
1130
- name: "Sunflower",
1131
- family: "sans",
1132
- scripts: ["latin", "hangul"],
1133
- cssFamily: `"Sunflower", sans-serif`,
1134
- variable: false,
1135
- axes: [],
1136
- weights: [300, 500, 700],
1137
- license: "OFL-1.1",
1138
- source: "https://fonts.google.com/specimen/Sunflower",
1139
- description:
1140
- "Geometric KR sans with open counters. Breathable at small sizes — a gentle alternative to Noto Sans KR for body.",
1141
- loader: { kind: "google", family: "Sunflower:wght@300;500;700" },
1142
- tags: {
1143
- mood: ["clean", "soft", "friendly"],
1144
- era: ["2010s", "2020s"],
1145
- use: ["ui", "body"],
1146
- personality: ["approachable", "balanced", "gentle"],
1147
- },
1148
- sampleText: { latin: SAMPLE.latin, hangul: SAMPLE.hangul },
1149
- },
1150
- {
1151
- id: "yeon-sung",
1152
- name: "Yeon Sung",
1153
- family: "display",
1154
- scripts: ["latin", "hangul"],
1155
- cssFamily: `"Yeon Sung", cursive`,
1156
- variable: false,
1157
- axes: [],
1158
- weights: [400],
1159
- license: "OFL-1.1",
1160
- source: "https://fonts.google.com/specimen/Yeon+Sung",
1161
- description:
1162
- "Brushy, rounded KR display. Feels like calligraphy with an attitude — good for food, drink, street-culture brands.",
1163
- loader: { kind: "google", family: "Yeon+Sung" },
1164
- tags: {
1165
- mood: ["playful", "bold", "warm"],
1166
- era: ["contemporary"],
1167
- use: ["display", "logo"],
1168
- personality: ["characterful", "bold", "friendly"],
1169
- },
1170
- sampleText: { latin: "Street kitchen vibe", hangul: "분식집 간판 느낌" },
1171
- },
1172
- {
1173
- id: "gamja-flower",
1174
- name: "Gamja Flower",
1175
- family: "handwritten",
1176
- scripts: ["latin", "hangul"],
1177
- cssFamily: `"Gamja Flower", cursive`,
1178
- variable: false,
1179
- axes: [],
1180
- weights: [400],
1181
- license: "OFL-1.1",
1182
- source: "https://fonts.google.com/specimen/Gamja+Flower",
1183
- description:
1184
- "Loose, marker-tip KR handwriting. Childlike without being twee — friendly captions, sticker text, DIY zines.",
1185
- loader: { kind: "google", family: "Gamja+Flower" },
1186
- tags: {
1187
- mood: ["handwritten", "casual", "warm"],
1188
- era: ["contemporary"],
1189
- use: ["display", "accent"],
1190
- personality: ["personal", "approachable", "playful"],
1191
- },
1192
- sampleText: { latin: "Sticker style", hangul: "스티커 손글씨처럼" },
1193
- },
1194
- {
1195
- id: "ibm-plex-sans-kr",
1196
- name: "IBM Plex Sans KR",
1197
- family: "sans",
1198
- scripts: ["latin", "hangul"],
1199
- cssFamily: `"IBM Plex Sans KR", sans-serif`,
1200
- variable: false,
1201
- axes: [],
1202
- weights: [100, 200, 300, 400, 500, 600, 700],
1203
- license: "OFL-1.1",
1204
- source: "https://fonts.google.com/specimen/IBM+Plex+Sans+KR",
1205
- description:
1206
- "IBM Plex extended to Korean. Crisp, slightly technical — reads as considered product chrome. Pairs with Plex Mono/Serif cleanly.",
1207
- loader: { kind: "google", family: "IBM+Plex+Sans+KR:wght@100;200;300;400;500;600;700" },
1208
- tags: {
1209
- mood: ["clean", "technical", "modern"],
1210
- era: ["2020s"],
1211
- use: ["ui", "body", "display"],
1212
- personality: ["professional", "precise", "considered"],
1213
- },
1214
- sampleText: { latin: SAMPLE.latin, hangul: SAMPLE.hangul },
1215
- designer: "Bold Monday + IBM",
1216
- },
1217
- {
1218
- id: "diphylleia",
1219
- name: "Diphylleia",
1220
- family: "serif",
1221
- scripts: ["latin", "hangul"],
1222
- cssFamily: `"Diphylleia", serif`,
1223
- variable: false,
1224
- axes: [],
1225
- weights: [400],
1226
- license: "OFL-1.1",
1227
- source: "https://fonts.google.com/specimen/Diphylleia",
1228
- description:
1229
- "Delicate high-contrast KR serif. Editorial display with a translucent feel — named for the Korean 'skeleton flower'.",
1230
- loader: { kind: "google", family: "Diphylleia" },
1231
- tags: {
1232
- mood: ["elegant", "editorial", "luxurious"],
1233
- era: ["contemporary"],
1234
- use: ["display", "heading"],
1235
- personality: ["refined", "poetic", "sophisticated"],
1236
- },
1237
- sampleText: { latin: "Translucent serif", hangul: "투명한 명조의 기품" },
1238
- },
1239
- {
1240
- id: "gasoek-one",
1241
- name: "Gasoek One",
1242
- family: "display",
1243
- scripts: ["latin", "hangul"],
1244
- cssFamily: `"Gasoek One", sans-serif`,
1245
- variable: false,
1246
- axes: [],
1247
- weights: [400],
1248
- license: "OFL-1.1",
1249
- source: "https://fonts.google.com/specimen/Gasoek+One",
1250
- description:
1251
- "Super-heavy KR display. Filled-in counters, shout-poster presence — pairs with thin sans for maximum contrast.",
1252
- loader: { kind: "google", family: "Gasoek+One" },
1253
- tags: {
1254
- mood: ["bold", "impactful", "loud"],
1255
- era: ["contemporary"],
1256
- use: ["display", "heading", "logo"],
1257
- personality: ["assertive", "confident", "strong"],
1258
- },
1259
- sampleText: { latin: "HEADLINE FUEL", hangul: "확성기처럼 외치기" },
1260
- },
1261
- {
1262
- id: "black-and-white-picture",
1263
- name: "Black And White Picture",
1264
- family: "display",
1265
- scripts: ["latin", "hangul"],
1266
- cssFamily: `"Black And White Picture", sans-serif`,
1267
- variable: false,
1268
- axes: [],
1269
- weights: [400],
1270
- license: "OFL-1.1",
1271
- source: "https://fonts.google.com/specimen/Black+And+White+Picture",
1272
- description:
1273
- "Chunky, stamp-like KR display. Reads as pop-art poster — 60s advertising energy.",
1274
- loader: { kind: "google", family: "Black+And+White+Picture" },
1275
- tags: {
1276
- mood: ["retro", "bold", "expressive"],
1277
- era: ["1960s", "retro"],
1278
- use: ["display", "logo"],
1279
- personality: ["vintage", "confident", "characterful"],
1280
- },
1281
- sampleText: { latin: "POP POSTER", hangul: "광고포스터 감성" },
1282
- },
1283
-
1284
- /* ─────────── Korean — noonnu / jsdelivr (6) ─────────── */
1285
- {
1286
- id: "gmarket-sans",
1287
- name: "Gmarket Sans",
1288
- family: "sans",
1289
- scripts: ["latin", "hangul"],
1290
- cssFamily: `"Gmarket Sans", sans-serif`,
1291
- variable: false,
1292
- axes: [],
1293
- weights: [300, 500, 700],
1294
- license: "Gmarket — free commercial use",
1295
- source: "https://company.gmarket.co.kr/company/about/company/company--font.asp",
1296
- description:
1297
- "G마켓 브랜드 산세리프. 가벼우면서도 또렷한 카운터 — 이커머스·이벤트 배너에 자주 보이는 얼굴.",
1298
- loader: {
1299
- kind: "jsdelivr",
1300
- fontFaceCss:
1301
- "@import url('https://cdn.jsdelivr.net/gh/fonts-archive/GmarketSans/GmarketSans.css');",
1302
- },
1303
- tags: {
1304
- mood: ["clean", "modern", "friendly"],
1305
- era: ["2010s", "2020s"],
1306
- use: ["display", "heading", "ui"],
1307
- personality: ["professional", "approachable", "commercial"],
1308
- },
1309
- sampleText: { latin: "Commerce-ready sans", hangul: "커머스에 어울리는 얼굴" },
1310
- designer: "G마켓",
1311
- },
1312
- {
1313
- id: "spoqa-han-sans-neo",
1314
- name: "Spoqa Han Sans Neo",
1315
- family: "sans",
1316
- scripts: ["latin", "hangul"],
1317
- cssFamily: `"Spoqa Han Sans Neo", sans-serif`,
1318
- variable: false,
1319
- axes: [],
1320
- weights: [100, 300, 400, 500, 700],
1321
- license: "OFL-1.1",
1322
- source: "https://spoqa.github.io/spoqa-han-sans/",
1323
- description:
1324
- "Spoqa가 깎은 한영 산세리프. Noto Sans KR보다 살짝 미니멀하고 현대적 — 국내 스타트업 UI의 오랜 기본값.",
1325
- loader: {
1326
- kind: "jsdelivr",
1327
- fontFaceCss:
1328
- "@import url('https://spoqa.github.io/spoqa-han-sans/css/SpoqaHanSansNeo.css');",
1329
- },
1330
- tags: {
1331
- mood: ["clean", "modern", "neutral"],
1332
- era: ["2010s", "2020s"],
1333
- use: ["ui", "body", "heading"],
1334
- personality: ["professional", "minimal", "balanced"],
1335
- },
1336
- sampleText: { latin: SAMPLE.latin, hangul: SAMPLE.hangul },
1337
- designer: "Spoqa",
1338
- },
1339
- {
1340
- id: "bm-hanna-pro",
1341
- name: "BM Hanna Pro",
1342
- family: "display",
1343
- scripts: ["latin", "hangul"],
1344
- cssFamily: `"BM HANNA Pro", sans-serif`,
1345
- variable: false,
1346
- axes: [],
1347
- weights: [400],
1348
- license: "Woowa — free commercial use",
1349
- source: "https://www.woowahan.com/fonts",
1350
- description:
1351
- "우아한형제들 한나체 Pro. 둥글한 획과 삐뚤빼뚤한 중심선 — 배달 브랜드의 친근한 손글씨 느낌.",
1352
- loader: {
1353
- kind: "jsdelivr",
1354
- fontFaceCss:
1355
- "@import url('https://cdn.jsdelivr.net/gh/fonts-archive/BMHANNAPro/BMHANNAPro.css');",
1356
- },
1357
- tags: {
1358
- mood: ["playful", "warm", "handwritten"],
1359
- era: ["contemporary"],
1360
- use: ["display", "heading", "logo"],
1361
- personality: ["friendly", "quirky", "authentic"],
1362
- },
1363
- sampleText: { latin: "Delivery brand feel", hangul: "배달 브랜드의 손글씨" },
1364
- designer: "Woowa Brothers (우아한형제들)",
1365
- },
1366
- {
1367
- id: "yg-jalnan",
1368
- name: "YG 여기어때 잘난체",
1369
- family: "display",
1370
- scripts: ["latin", "hangul"],
1371
- cssFamily: `"Jalnan", sans-serif`,
1372
- variable: false,
1373
- axes: [],
1374
- weights: [400],
1375
- license: "YG — free commercial use",
1376
- source: "https://noonnu.cc/font_page/162",
1377
- description:
1378
- "여기어때 '잘난체'. 과장된 세리프 장식 + 두꺼운 획 — 관종 에너지. 한 줄짜리 포스터 헤드라인용.",
1379
- loader: {
1380
- kind: "jsdelivr",
1381
- fontFaceCss:
1382
- "@import url('https://cdn.jsdelivr.net/gh/fonts-archive/Jalnan/Jalnan.css');",
1383
- },
1384
- tags: {
1385
- mood: ["bold", "expressive", "playful"],
1386
- era: ["contemporary"],
1387
- use: ["display", "heading"],
1388
- personality: ["confident", "loud", "characterful"],
1389
- },
1390
- sampleText: { latin: "LOOK-AT-ME HEADER", hangul: "잘난 헤드라인" },
1391
- designer: "여기어때",
1392
- },
1393
- {
1394
- id: "cafe24-ssurround",
1395
- name: "Cafe24 Ssurround",
1396
- family: "display",
1397
- scripts: ["latin", "hangul"],
1398
- cssFamily: `"Cafe24 Ssurround", sans-serif`,
1399
- variable: false,
1400
- axes: [],
1401
- weights: [400],
1402
- license: "Cafe24 — free commercial use",
1403
- source: "https://fonts.cafe24.com/",
1404
- description:
1405
- "Cafe24 쓰라운드체. 둥글한 모서리 + 두꺼운 획 — 여름·펑키 감성. 이벤트/프로모션 히어로에 자주 쓰임.",
1406
- loader: {
1407
- kind: "jsdelivr",
1408
- fontFaceCss:
1409
- "@import url('https://cdn.jsdelivr.net/gh/fonts-archive/Cafe24Ssurround/Cafe24Ssurround.css');",
1410
- },
1411
- tags: {
1412
- mood: ["playful", "bold", "retro"],
1413
- era: ["contemporary"],
1414
- use: ["display", "heading", "logo"],
1415
- personality: ["friendly", "energetic", "characterful"],
1416
- },
1417
- sampleText: { latin: "SUMMER VIBE", hangul: "여름 이벤트 포스터" },
1418
- designer: "Cafe24",
1419
- },
1420
- {
1421
- id: "suit-variable",
1422
- name: "SUIT Variable",
1423
- family: "sans",
1424
- scripts: ["latin", "hangul"],
1425
- cssFamily: `"SUIT Variable", "SUIT", sans-serif`,
1426
- variable: true,
1427
- axes: [{ tag: "wght", name: "Weight", min: 100, max: 900, default: 500 }],
1428
- license: "OFL-1.1",
1429
- source: "https://github.com/sun-typeface/SUIT",
1430
- description:
1431
- "선언(Sunn.us) SUIT. Pretendard의 대안으로 요즘 스타트업들이 자주 고르는 모던 한영 sans. 조금 더 단단한 무게감.",
1432
- loader: {
1433
- kind: "jsdelivr",
1434
- fontFaceCss:
1435
- "@import url('https://cdn.jsdelivr.net/gh/sunn-us/SUIT/fonts/variable/woff2/SUIT-Variable.css');",
1436
- },
1437
- tags: {
1438
- mood: ["clean", "modern", "neutral"],
1439
- era: ["2020s"],
1440
- use: ["ui", "body", "display"],
1441
- personality: ["professional", "modern", "precise"],
1442
- },
1443
- sampleText: { latin: SAMPLE.latin, hangul: SAMPLE.hangul },
1444
- designer: "선언 (Sunn.us)",
1445
- },
1446
- ];
1447
-
1448
- /** Quick index by id. */
1449
- export const FONT_BY_ID: Record<string, FontEntry> = Object.fromEntries(
1450
- FONT_CATALOG.map((f) => [f.id, f]),
1451
- );
1452
-
1453
- /** All unique mood tags across the catalog — used to populate filter chips. */
1454
- export function allMoods(): string[] {
1455
- const set = new Set<string>();
1456
- for (const f of FONT_CATALOG) for (const m of f.tags.mood) set.add(m);
1457
- return [...set].sort();
1458
- }
1459
-
1460
- /** Mood tag → how many catalog entries carry it. Used to surface the
1461
- * most-representative moods up-front so the filter isn't a wall of 40+
1462
- * equally-weighted chips. */
1463
- export function moodFrequency(): Map<string, number> {
1464
- const freq = new Map<string, number>();
1465
- for (const f of FONT_CATALOG)
1466
- for (const m of f.tags.mood) freq.set(m, (freq.get(m) ?? 0) + 1);
1467
- return freq;
1468
- }
1469
-
1470
- /** Semantic buckets over the full mood taxonomy. Anything not listed here
1471
- * falls into "other" and surfaces in the extended panel — no tag is ever
1472
- * silently dropped. */
1473
- export const MOOD_BUCKETS: { id: string; label: string; moods: string[] }[] = [
1474
- {
1475
- id: "feel",
1476
- label: "Feel",
1477
- moods: [
1478
- "warm", "soft", "friendly", "playful", "bold", "elegant", "luxurious",
1479
- "quirky", "confident", "calm", "nostalgic", "casual", "personal",
1480
- "loud", "imperfect", "assertive",
1481
- ],
1482
- },
1483
- {
1484
- id: "form",
1485
- label: "Form",
1486
- moods: [
1487
- "clean", "modern", "sharp", "rounded", "condensed", "narrow",
1488
- "geometric", "calligraphy", "handwritten", "classical", "transitional",
1489
- "experimental", "neutral", "foundational", "contrast", "characterful",
1490
- "distinctive", "expressive",
1491
- ],
1492
- },
1493
- {
1494
- id: "use",
1495
- label: "Purpose",
1496
- moods: [
1497
- "editorial", "readable", "workhorse", "universal", "corporate",
1498
- "institutional", "technical", "precise", "clear", "impactful",
1499
- "flexible", "retro",
1500
- ],
1501
- },
1502
- ];
1503
-
1504
- /** All unique use tags — filter chips. */
1505
- export function allUses(): string[] {
1506
- const set = new Set<string>();
1507
- for (const f of FONT_CATALOG) for (const u of f.tags.use) set.add(u);
1508
- return [...set].sort();
1509
- }