oh-my-design-cli 1.6.0 → 1.6.2

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 (81) hide show
  1. package/AGENTS.md +1 -1
  2. package/README.ko.md +12 -0
  3. package/README.md +49 -0
  4. package/data/reference-fingerprints.json +957 -2
  5. package/dist/bin/oh-my-design.js +4 -3
  6. package/dist/bin/oh-my-design.js.map +1 -1
  7. package/dist/{install-skills-IETT2TBJ.js → install-skills-6QFSN5BN.js} +108 -42
  8. package/dist/install-skills-6QFSN5BN.js.map +1 -0
  9. package/package.json +9 -3
  10. package/scripts/postinstall.cjs +6 -6
  11. package/skills/claude-design/SKILL.md +385 -0
  12. package/skills/claude-design/references/claude-design-flow.md +425 -0
  13. package/skills/claude-design/references/codebase-analysis.md +373 -0
  14. package/skills/claude-design/scripts/analyze_codebase.py +1369 -0
  15. package/skills/claude-design/scripts/clickable_link.sh +48 -0
  16. package/skills/claude-design/scripts/collect_source.py +178 -0
  17. package/skills/claude-design/scripts/drive_claude_design.cjs +378 -0
  18. package/skills/claude-design/scripts/gather_references.py +437 -0
  19. package/web/references/91app/DESIGN.md +151 -0
  20. package/web/references/airtable/DESIGN.md +16 -2
  21. package/web/references/bithumb/DESIGN.md +170 -0
  22. package/web/references/bunjang/DESIGN.md +20 -1
  23. package/web/references/cakeresume/DESIGN.md +162 -0
  24. package/web/references/catchtable/DESIGN.md +19 -0
  25. package/web/references/classting/DESIGN.md +251 -0
  26. package/web/references/classum/DESIGN.md +19 -0
  27. package/web/references/coinone/DESIGN.md +218 -0
  28. package/web/references/dabang/DESIGN.md +19 -0
  29. package/web/references/devsisters/DESIGN.md +253 -0
  30. package/web/references/dji/DESIGN.md +0 -1
  31. package/web/references/drnow/DESIGN.md +331 -0
  32. package/web/references/fastcampus/DESIGN.md +19 -0
  33. package/web/references/flex/DESIGN.md +19 -0
  34. package/web/references/flo/DESIGN.md +306 -0
  35. package/web/references/fugle/DESIGN.md +250 -0
  36. package/web/references/gmarket/DESIGN.md +19 -0
  37. package/web/references/gogolook/DESIGN.md +131 -0
  38. package/web/references/grip/DESIGN.md +250 -0
  39. package/web/references/hahow/DESIGN.md +158 -0
  40. package/web/references/hogangnono/DESIGN.md +308 -0
  41. package/web/references/hyundaicard/DESIGN.md +177 -0
  42. package/web/references/inflearn/DESIGN.md +19 -0
  43. package/web/references/jkopay/DESIGN.md +249 -0
  44. package/web/references/jobkorea/DESIGN.md +310 -0
  45. package/web/references/kbank/DESIGN.md +18 -0
  46. package/web/references/kdan/DESIGN.md +160 -0
  47. package/web/references/kkbox/DESIGN.md +114 -0
  48. package/web/references/krafton/DESIGN.md +230 -0
  49. package/web/references/kream/DESIGN.md +18 -0
  50. package/web/references/laftel/DESIGN.md +253 -0
  51. package/web/references/lezhin/DESIGN.md +301 -0
  52. package/web/references/lunit/DESIGN.md +19 -0
  53. package/web/references/melon/DESIGN.md +153 -0
  54. package/web/references/momoshop/DESIGN.md +279 -0
  55. package/web/references/mustit/DESIGN.md +282 -0
  56. package/web/references/nhncloud/DESIGN.md +174 -0
  57. package/web/references/oliveyoung/DESIGN.md +19 -0
  58. package/web/references/payco/DESIGN.md +227 -0
  59. package/web/references/piccollage/DESIGN.md +277 -0
  60. package/web/references/rayark/DESIGN.md +132 -0
  61. package/web/references/riiid/DESIGN.md +228 -0
  62. package/web/references/sendbird/DESIGN.md +285 -0
  63. package/web/references/socar/DESIGN.md +18 -0
  64. package/web/references/toss-securities/DESIGN.md +19 -0
  65. package/web/references/trenbe/DESIGN.md +252 -0
  66. package/web/references/tving/DESIGN.md +18 -0
  67. package/web/references/upbit/DESIGN.md +19 -0
  68. package/web/references/upstage/DESIGN.md +18 -0
  69. package/web/references/velog/DESIGN.md +168 -0
  70. package/web/references/voicetube/DESIGN.md +227 -0
  71. package/web/references/wadiz/DESIGN.md +19 -0
  72. package/web/references/webflow/DESIGN.md +16 -2
  73. package/web/references/yeogiotte/DESIGN.md +19 -0
  74. package/data/architecture-proposals/2026-05-13-thin-install-fresh-fetch.md +0 -189
  75. package/data/issues/2026-05-13-multi-surface-schema-rfc.md +0 -67
  76. package/data/reference-audits/2026-05-13-kr10.md +0 -132
  77. package/data/reference-audits/2026-05-14-kr10.md +0 -72
  78. package/data/reference-audits/2026-05-15-kr10.md +0 -124
  79. package/data/research/2026-05-18-agent-landscape.md +0 -69
  80. package/data/research/2026-05-18-kr-style-presets.md +0 -572
  81. package/dist/install-skills-IETT2TBJ.js.map +0 -1
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schema_version": 1,
3
- "generated_at": "2026-05-15T00:00:00Z",
3
+ "generated_at": "2026-06-01T00:00:00Z",
4
4
  "generator": "oh-my-design parallel agent extraction (Claude Code Agent tool, no API key)",
5
- "count": 137,
5
+ "count": 170,
6
6
  "items": [
7
7
  {
8
8
  "id": "17live",
@@ -62,6 +62,35 @@
62
62
  "has_personas": true,
63
63
  "category_raw": "Commerce / Editorial Select-Shop"
64
64
  },
65
+ {
66
+ "id": "91app",
67
+ "primary_color_hex": "#061C3D",
68
+ "category": "Commerce",
69
+ "visual_theme": "Taiwan omnichannel retail-commerce SaaS (OMO). Deep-navy #061C3D structural brand with a coral-red #E85040 action accent on a clean white ground, Traditional-Chinese Noto Sans TC, generously rounded 16px primary buttons. Reads as trustworthy retail infrastructure with B2B confidence.",
70
+ "voice_fingerprint": {
71
+ "register": "b2b-confident",
72
+ "sentence_length": "medium",
73
+ "metaphor_density": "low",
74
+ "vocabulary_register": "traditional-chinese-business"
75
+ },
76
+ "tone_keywords": [
77
+ "trustworthy",
78
+ "retail-savvy",
79
+ "confident",
80
+ "omnichannel",
81
+ "growth-driven",
82
+ "professional"
83
+ ],
84
+ "antipatterns": [
85
+ "Keep navy #061C3D structural and coral #E85040 for action — don't swap their roles",
86
+ "No clutter — clean white ground",
87
+ "Maintain the rounded 16px primary-button language",
88
+ "No multi-field spec lines"
89
+ ],
90
+ "signature_motion": "Smooth, professional B2B transitions; confident hover states on the navy and coral CTAs. Restrained and credible.",
91
+ "has_personas": true,
92
+ "category_raw": "ecommerce / omnichannel retail SaaS (OMO)"
93
+ },
65
94
  {
66
95
  "id": "ably",
67
96
  "primary_color_hex": "#FA2E5F",
@@ -307,6 +336,35 @@
307
336
  "has_personas": true,
308
337
  "category_raw": "video-community"
309
338
  },
339
+ {
340
+ "id": "bithumb",
341
+ "primary_color_hex": "#1C2028",
342
+ "category": "Fintech",
343
+ "visual_theme": "Dark, premium, data-dense Korean crypto-exchange (No.1): a near-black #1C2028 structural base warmed by a bronze/brown #543E35 accent, signed by the proprietary Bithumb Trading Sans typeface, with Korea-convention trading colors (red #E15241 = up, blue #4880EE = down). Serious, money-grade.",
344
+ "voice_fingerprint": {
345
+ "register": "premium-serious",
346
+ "sentence_length": "short",
347
+ "metaphor_density": "low",
348
+ "vocabulary_register": "korean-financial"
349
+ },
350
+ "tone_keywords": [
351
+ "premium",
352
+ "dark",
353
+ "serious",
354
+ "data-dense",
355
+ "trustworthy",
356
+ "money-grade"
357
+ ],
358
+ "antipatterns": [
359
+ "Korea convention: red = price up, blue = price down (don't invert)",
360
+ "Keep the near-black + bronze pairing; don't lighten the trading base",
361
+ "Use Bithumb Trading Sans identity",
362
+ "No multi-field spec lines"
363
+ ],
364
+ "signature_motion": "Fast, precise data updates; restrained chrome motion. The dense trading surface prioritizes information over flourish.",
365
+ "has_personas": true,
366
+ "category_raw": "fintech / crypto-asset exchange"
367
+ },
310
368
  {
311
369
  "id": "bmw",
312
370
  "primary_color_hex": "#1c69d4",
@@ -343,6 +401,35 @@
343
401
  "category_raw": "C2C Used Marketplace",
344
402
  "country": "KR"
345
403
  },
404
+ {
405
+ "id": "cakeresume",
406
+ "primary_color_hex": "#13AB67",
407
+ "category": "Productivity",
408
+ "visual_theme": "Clean Taiwanese global talent network (Cake, formerly CakeResume): white ground, confident Cake green #13AB67 for primary action, deep-green #0C4129 headings, crisp 4px corners, set in Inter. Professional, optimistic, with human warmth.",
409
+ "voice_fingerprint": {
410
+ "register": "professional-optimistic",
411
+ "sentence_length": "medium",
412
+ "metaphor_density": "low",
413
+ "vocabulary_register": "english-professional"
414
+ },
415
+ "tone_keywords": [
416
+ "professional",
417
+ "optimistic",
418
+ "clean",
419
+ "trustworthy",
420
+ "modern",
421
+ "human"
422
+ ],
423
+ "antipatterns": [
424
+ "Cake green #13AB67 for primary action; deep green #0C4129 for headings",
425
+ "Crisp 4px corners and Inter type",
426
+ "Keep it professional-warm, not playful-loud",
427
+ "No multi-field spec lines"
428
+ ],
429
+ "signature_motion": "Clean, professional transitions; confident green hover states. Optimistic and steady.",
430
+ "has_personas": true,
431
+ "category_raw": "saas / talent network + resume builder"
432
+ },
346
433
  {
347
434
  "id": "cal",
348
435
  "primary_color_hex": "#242424",
@@ -423,6 +510,35 @@
423
510
  "has_personas": true,
424
511
  "category_raw": "Education"
425
512
  },
513
+ {
514
+ "id": "classting",
515
+ "primary_color_hex": "#00C896",
516
+ "category": "Education",
517
+ "visual_theme": "Optimistic-clinical; vivid mint-green on white with gradient section washes, rounded cards, Noto Sans KR typography",
518
+ "voice_fingerprint": {
519
+ "register": "professional-warm",
520
+ "sentence_length": "short-to-medium (avg ~10 words in KR)",
521
+ "metaphor_density": "low — data and outcomes as proof, not metaphor",
522
+ "vocabulary_register": "accessible-technical; edu-sector jargon used but always explained"
523
+ },
524
+ "tone_keywords": [
525
+ "precise",
526
+ "encouraging",
527
+ "grounded",
528
+ "data-driven",
529
+ "empathetic"
530
+ ],
531
+ "antipatterns": [
532
+ "heavy drop shadows",
533
+ "pure black text",
534
+ "italic decorative text",
535
+ "cramped layouts",
536
+ "multiple competing CTA colors per section"
537
+ ],
538
+ "signature_motion": "pulse skeleton 1.5s ease-in-out + fast 0.1s hover micro-transitions",
539
+ "has_personas": true,
540
+ "category_raw": "education / AI-LMS / K-12 EdTech"
541
+ },
426
542
  {
427
543
  "id": "classum",
428
544
  "primary_color_hex": "#ff4438",
@@ -552,6 +668,36 @@
552
668
  "has_personas": false,
553
669
  "category_raw": "fintech"
554
670
  },
671
+ {
672
+ "id": "coinone",
673
+ "primary_color_hex": "#006BD6",
674
+ "category": "Fintech",
675
+ "visual_theme": "Calm, blue-anchored Korean crypto exchange: white surfaces with near-black #040505 text and a single confident Coinone Blue (#006BD6 identity, #0B59D5 applied CTA) carrying every primary action. Flat, lightly-bordered, trust-first; dense in trading views, airy in onboarding. KR convention trading colors (red = up, blue = down).",
676
+ "voice_fingerprint": {
677
+ "register": "steady, plain, reassuring",
678
+ "sentence_length": "short",
679
+ "metaphor_density": "low",
680
+ "vocabulary_register": "korean-financial"
681
+ },
682
+ "tone_keywords": [
683
+ "trustworthy",
684
+ "calm",
685
+ "blue",
686
+ "plain",
687
+ "data-dense",
688
+ "second-person"
689
+ ],
690
+ "antipatterns": [
691
+ "Korea convention: red = price up, blue = price down (do not invert)",
692
+ "One filled-blue CTA per view — do not stack competing primaries",
693
+ "Stay within the Coinone Blue family (no teal/purple drift)",
694
+ "Flat bordered surfaces — avoid shadow-heavy trading cards",
695
+ "No multi-field spec lines"
696
+ ],
697
+ "signature_motion": "Restrained: brief red-up/blue-down price flashes that settle quickly; calm chrome, minimal motion in trading views.",
698
+ "has_personas": true,
699
+ "category_raw": "fintech / crypto-asset exchange"
700
+ },
555
701
  {
556
702
  "id": "composio",
557
703
  "primary_color_hex": "#0007cd",
@@ -691,6 +837,35 @@
691
837
  "has_personas": false,
692
838
  "category_raw": "social"
693
839
  },
840
+ {
841
+ "id": "devsisters",
842
+ "primary_color_hex": "#FF5F00",
843
+ "category": "Consumer Tech / Gaming",
844
+ "visual_theme": "Bold orange energy — full-bleed primary-colour chrome, pill-shaped buttons, rounded cards, dual-register bilingual typography",
845
+ "voice_fingerprint": {
846
+ "register": "energetic and warm-direct",
847
+ "sentence_length": "short-to-medium declarative",
848
+ "metaphor_density": "low — concrete action verbs preferred over abstract metaphor",
849
+ "vocabulary_register": "accessible-global with Korean warmth"
850
+ },
851
+ "tone_keywords": [
852
+ "joyful",
853
+ "brave",
854
+ "essential",
855
+ "global",
856
+ "playful-bold"
857
+ ],
858
+ "antipatterns": [
859
+ "no italic usage",
860
+ "no heavy drop shadows",
861
+ "no pastel tones",
862
+ "no hedged corporate language",
863
+ "no light-weight (100-300) fonts in UI"
864
+ ],
865
+ "signature_motion": "0.8s cubic-bezier(0.075, 0.82, 0.165, 1) content reveal; 0.2s linear micro-transitions",
866
+ "has_personas": true,
867
+ "category_raw": "consumer-tech"
868
+ },
694
869
  {
695
870
  "id": "dji",
696
871
  "primary_color_hex": "#000000",
@@ -721,6 +896,35 @@
721
896
  "has_personas": true,
722
897
  "category_raw": "consumer-hardware"
723
898
  },
899
+ {
900
+ "id": "drnow",
901
+ "primary_color_hex": "#FF8D00",
902
+ "category": "Healthcare",
903
+ "visual_theme": "warm-orange medical — vibrant orange against clean neutral gray; rounded cards; clean sans-serif; anti-clinical healthcare aesthetic",
904
+ "voice_fingerprint": {
905
+ "register": "conversational Korean with plain language; patient-empathy first",
906
+ "sentence_length": "short declarative — 5–10 syllables per phrase",
907
+ "metaphor_density": "low — concrete benefit statements over abstraction",
908
+ "vocabulary_register": "consumer-healthcare; avoids jargon; warm second-person address"
909
+ },
910
+ "tone_keywords": [
911
+ "warm",
912
+ "accessible",
913
+ "trustworthy",
914
+ "urgent-not-alarming",
915
+ "empathetic"
916
+ ],
917
+ "antipatterns": [
918
+ "clinical blue as primary",
919
+ "sterile institutional language",
920
+ "heavy drop shadows",
921
+ "deep gradient in functional UI context",
922
+ "font weight outside 400–700 range"
923
+ ],
924
+ "signature_motion": "slide-up 300ms ease-out for bottom sheets; skeleton-shimmer 1.5s ease-in-out; fade+translateY(20px) 500ms ease-out for page enters",
925
+ "has_personas": true,
926
+ "category_raw": "healthcare / telemedicine / KR consumer app"
927
+ },
724
928
  {
725
929
  "id": "elevenlabs",
726
930
  "primary_color_hex": "#ffffff",
@@ -842,6 +1046,34 @@
842
1046
  "category_raw": "HR SaaS / Workforce Management",
843
1047
  "country": "KR"
844
1048
  },
1049
+ {
1050
+ "id": "flo",
1051
+ "primary_color_hex": "#3f3fff",
1052
+ "category": "consumer-tech",
1053
+ "visual_theme": "Luminous white canvas with a single high-saturation electric blue (#3f3fff) as the sole interactive color; achromatic neutrals everywhere else; album art supplies all other color",
1054
+ "voice_fingerprint": {
1055
+ "register": "Korean conversational; warm and direct; speaks to the listener as a fellow music fan, not a subscriber",
1056
+ "sentence_length": "short — 4–8 syllables per phrase in UI copy",
1057
+ "metaphor_density": "low — one central water/flow metaphor embedded in the brand name itself",
1058
+ "vocabulary_register": "everyday Korean with no jargon; avoids superlatives"
1059
+ },
1060
+ "tone_keywords": [
1061
+ "effortless",
1062
+ "personal",
1063
+ "honest",
1064
+ "warm",
1065
+ "restrained"
1066
+ ],
1067
+ "antipatterns": [
1068
+ "chart-first hierarchy",
1069
+ "decorative animation competing with audio",
1070
+ "multiple blue CTAs on one screen",
1071
+ "drop shadows on flat list rows"
1072
+ ],
1073
+ "signature_motion": "transform 0.25s ease-in for UI transitions; opacity 0.3s for player overlays; stagger on entrance with 0.15s transform + 0.3s delay",
1074
+ "has_personas": true,
1075
+ "category_raw": "music streaming / consumer-tech"
1076
+ },
845
1077
  {
846
1078
  "id": "framer",
847
1079
  "primary_color_hex": "#0099ff",
@@ -886,6 +1118,35 @@
886
1118
  "has_personas": false,
887
1119
  "category_raw": "saas"
888
1120
  },
1121
+ {
1122
+ "id": "fugle",
1123
+ "primary_color_hex": "#f4af1c",
1124
+ "category": "Fintech",
1125
+ "visual_theme": "data-dense light canvas with amber accent; dual light/dark modes for research vs. active-trading contexts; 4 px radius system; tight 12–14 px type scale",
1126
+ "voice_fingerprint": {
1127
+ "register": "peer-to-peer investor; precise and empowering",
1128
+ "sentence_length": "short to medium; declarative",
1129
+ "metaphor_density": "low",
1130
+ "vocabulary_register": "financial domain terminology used naturally; no jargon-dumbing"
1131
+ },
1132
+ "tone_keywords": [
1133
+ "precise",
1134
+ "empowering",
1135
+ "peer-to-peer",
1136
+ "serious",
1137
+ "clear"
1138
+ ],
1139
+ "antipatterns": [
1140
+ "decorative amber fills",
1141
+ "Western red-down/green-up convention",
1142
+ "heavy shadow on resting state",
1143
+ "entrance animation on data rows",
1144
+ "FOMO urgency language"
1145
+ ],
1146
+ "signature_motion": "cubic-bezier(.4,.6,.2,1) at 0.2s for interactive states; amber bouncing-dot loader at 0.6s cubic-bezier(0,1,1,0)",
1147
+ "has_personas": true,
1148
+ "category_raw": "fintech / Taiwan equity trading platform"
1149
+ },
889
1150
  {
890
1151
  "id": "gangnamunni",
891
1152
  "primary_color_hex": "#d54300",
@@ -928,6 +1189,35 @@
928
1189
  "category_raw": "Legacy E-commerce (Shinsegae)",
929
1190
  "country": "KR"
930
1191
  },
1192
+ {
1193
+ "id": "gogolook",
1194
+ "primary_color_hex": "#0CD25F",
1195
+ "category": "Consumer",
1196
+ "visual_theme": "Friendly Taiwanese TrustTech (Whoscall caller-ID / anti-scam): clean white ground, vivid documented brand green #0CD25F, fully-rounded 100px pill buttons, and a big playful Nunito rounded display over Noto Sans body. Approachable protection, not enterprise security.",
1197
+ "voice_fingerprint": {
1198
+ "register": "reassuring-friendly",
1199
+ "sentence_length": "short",
1200
+ "metaphor_density": "moderate",
1201
+ "vocabulary_register": "english-consumer"
1202
+ },
1203
+ "tone_keywords": [
1204
+ "friendly",
1205
+ "reassuring",
1206
+ "approachable",
1207
+ "safe",
1208
+ "playful",
1209
+ "trustworthy"
1210
+ ],
1211
+ "antipatterns": [
1212
+ "Keep the fully-rounded pill language (100px)",
1213
+ "Brand green #0CD25F leads; pink/teal are category accents",
1214
+ "Don't make it look like cold enterprise security",
1215
+ "No multi-field spec lines"
1216
+ ],
1217
+ "signature_motion": "Bouncy, friendly micro-interactions on the rounded pills; reassuring and light.",
1218
+ "has_personas": true,
1219
+ "category_raw": "consumer-tech / TrustTech anti-scam app"
1220
+ },
931
1221
  {
932
1222
  "id": "gogoro",
933
1223
  "primary_color_hex": "#000000",
@@ -958,6 +1248,64 @@
958
1248
  "has_personas": true,
959
1249
  "category_raw": "automotive"
960
1250
  },
1251
+ {
1252
+ "id": "grip",
1253
+ "primary_color_hex": "#eb2b51",
1254
+ "category": "Live Commerce / E-commerce",
1255
+ "visual_theme": "dark-first cinema-mode with rose-red CTA accent, live-gradient avatar rings, and mobile-only 420px column layout",
1256
+ "voice_fingerprint": {
1257
+ "register": "energetic and community-warm; direct Korean imperative copy with real-time urgency cues",
1258
+ "sentence_length": "short (5-12 characters for UI labels, 15-30 for promo copy)",
1259
+ "metaphor_density": "low — brand relies on literal live/watch/buy framing rather than abstract metaphor",
1260
+ "vocabulary_register": "colloquial Korean commerce vocabulary; 'Gripper' as proprietary seller term"
1261
+ },
1262
+ "tone_keywords": [
1263
+ "energetic",
1264
+ "direct",
1265
+ "community-warm",
1266
+ "real-time",
1267
+ "participatory"
1268
+ ],
1269
+ "antipatterns": [
1270
+ "static badge for live status instead of animated gradient ring",
1271
+ "using #ff3c78 as checkout button color (it is the lighter affordance, not the CTA)",
1272
+ "shadows on action buttons",
1273
+ "multi-column layout breaking the 420px mobile column",
1274
+ "rounded corners >8px on purchase buttons"
1275
+ ],
1276
+ "signature_motion": "live-avatar ring: 810ms cubic-bezier(0.167,0.166,1,1) pulse scale 1→1.06→1 × 4 iterations, then infinite on active broadcast; ripple-sm 810ms scale 1.02→1.2 opacity 1→0",
1277
+ "has_personas": true,
1278
+ "category_raw": "live commerce / mobile shopping"
1279
+ },
1280
+ {
1281
+ "id": "hahow",
1282
+ "primary_color_hex": "#00CCB4",
1283
+ "category": "Education",
1284
+ "visual_theme": "Friendly Taiwanese EdTech course marketplace (好學校): a soft gray-blue #F5F7F9 canvas, the bright brand teal #00CCB4 from its own design tokens, rounded 8px cards, and warm orange/coral promo accents, set in PingFang TC. Encouraging and human, not corporate.",
1285
+ "voice_fingerprint": {
1286
+ "register": "warm-encouraging",
1287
+ "sentence_length": "medium",
1288
+ "metaphor_density": "moderate",
1289
+ "vocabulary_register": "traditional-chinese-friendly"
1290
+ },
1291
+ "tone_keywords": [
1292
+ "friendly",
1293
+ "warm",
1294
+ "approachable",
1295
+ "encouraging",
1296
+ "human",
1297
+ "playful"
1298
+ ],
1299
+ "antipatterns": [
1300
+ "Keep the brand teal #00CCB4; warm orange/coral are promo accents only",
1301
+ "Maintain rounded 8px cards (not sharp)",
1302
+ "Don't go corporate-cold — the tone is human",
1303
+ "No multi-field spec lines"
1304
+ ],
1305
+ "signature_motion": "Gentle, friendly transitions; warm hover lifts on cards. Encouraging, never abrupt.",
1306
+ "has_personas": true,
1307
+ "category_raw": "education / EdTech course marketplace"
1308
+ },
961
1309
  {
962
1310
  "id": "hashicorp",
963
1311
  "primary_color_hex": "#000000",
@@ -979,6 +1327,64 @@
979
1327
  "has_personas": false,
980
1328
  "category_raw": "enterprise infrastructure / developer tools"
981
1329
  },
1330
+ {
1331
+ "id": "hogangnono",
1332
+ "primary_color_hex": "#584de4",
1333
+ "category": "Consumer Tech",
1334
+ "visual_theme": "map-first data transparency — bold indigo on white, minimal decoration, data-dense split-panel layout",
1335
+ "voice_fingerprint": {
1336
+ "register": "direct and factual, Korean consumer-protective tone",
1337
+ "sentence_length": "short to medium — action-oriented labels, no marketing prose",
1338
+ "metaphor_density": "very low — data speaks for itself",
1339
+ "vocabulary_register": "plain Korean; avoids real-estate jargon; explains technical terms inline"
1340
+ },
1341
+ "tone_keywords": [
1342
+ "transparent",
1343
+ "plain-spoken",
1344
+ "user-protective",
1345
+ "data-honest",
1346
+ "anti-hype"
1347
+ ],
1348
+ "antipatterns": [
1349
+ "paid-listing distortion",
1350
+ "lifestyle hero imagery",
1351
+ "multiple filled CTAs competing on same screen",
1352
+ "fabricated or rounded price estimates",
1353
+ "agent-centric copywriting"
1354
+ ],
1355
+ "signature_motion": "300 ms ease colour transitions on buttons; bottomBoundIn / topBoundIn keyframe for sheets and modals; instant price-number updates (no count-up)",
1356
+ "has_personas": true,
1357
+ "category_raw": "consumer-tech / proptech / real estate transparency"
1358
+ },
1359
+ {
1360
+ "id": "hyundaicard",
1361
+ "primary_color_hex": "#000000",
1362
+ "category": "Fintech",
1363
+ "visual_theme": "Monochrome premium minimalism — black-and-white luxury where withholding color IS the identity — anchored by the proprietary Youandi (유앤아이) typeface as the brand signature. White ground, black ink, Noto Sans KR body, typography-as-identity. Korea's most design-celebrated card brand.",
1364
+ "voice_fingerprint": {
1365
+ "register": "premium-restrained",
1366
+ "sentence_length": "short",
1367
+ "metaphor_density": "low",
1368
+ "vocabulary_register": "korean-premium"
1369
+ },
1370
+ "tone_keywords": [
1371
+ "premium",
1372
+ "monochrome",
1373
+ "minimal",
1374
+ "typographic",
1375
+ "confident",
1376
+ "cultured"
1377
+ ],
1378
+ "antipatterns": [
1379
+ "No decorative color — the brand is monochrome; color is withheld on purpose",
1380
+ "Don't substitute a generic font for the Youandi display identity",
1381
+ "No visual clutter — typography and whitespace carry it",
1382
+ "No multi-field spec lines"
1383
+ ],
1384
+ "signature_motion": "Editorial restraint — slow, deliberate reveals; nothing flashy. The premium feel comes from stillness and typographic precision.",
1385
+ "has_personas": true,
1386
+ "category_raw": "fintech / premium credit card (design-led brand)"
1387
+ },
982
1388
  {
983
1389
  "id": "ibm",
984
1390
  "primary_color_hex": "#0f62fe",
@@ -1061,6 +1467,63 @@
1061
1467
  "has_personas": false,
1062
1468
  "category_raw": "customer service / AI helpdesk SaaS"
1063
1469
  },
1470
+ {
1471
+ "id": "jkopay",
1472
+ "primary_color_hex": "#C9191D",
1473
+ "category": "Fintech",
1474
+ "visual_theme": "Approachable civic red — clean white-gray canvas with bold brand red CTAs, frosted-glass nav, PingFang TC CJK typography, soft card shadows",
1475
+ "voice_fingerprint": {
1476
+ "register": "conversational Mandarin",
1477
+ "sentence_length": "short to medium",
1478
+ "metaphor_density": "low",
1479
+ "vocabulary_register": "everyday vernacular, minimal jargon"
1480
+ },
1481
+ "tone_keywords": [
1482
+ "approachable",
1483
+ "empowering",
1484
+ "matter-of-fact",
1485
+ "civic",
1486
+ "warm"
1487
+ ],
1488
+ "antipatterns": [
1489
+ "banking formality",
1490
+ "deep drop shadows",
1491
+ "competing accent colors",
1492
+ "icon-only navigation",
1493
+ "sub-13px text"
1494
+ ],
1495
+ "signature_motion": "QR scan pulse rings at 800ms, 250ms modal fade, cubic-bezier(0.4,0,0.2,1) for interactive states",
1496
+ "has_personas": true,
1497
+ "category_raw": "fintech / e-wallet / mobile payment"
1498
+ },
1499
+ {
1500
+ "id": "jobkorea",
1501
+ "primary_color_hex": "#083ccc",
1502
+ "category": "consumer-tech",
1503
+ "visual_theme": "confident-functional",
1504
+ "voice_fingerprint": {
1505
+ "register": "informal-Korean (-해요 speech level), warm-direct, data-led",
1506
+ "sentence_length": "short (8-16 syllables per sentence)",
1507
+ "metaphor_density": "low — prefers concrete numbers over figurative language",
1508
+ "vocabulary_register": "everyday Korean with light digital-native terms; avoids HR jargon"
1509
+ },
1510
+ "tone_keywords": [
1511
+ "direct",
1512
+ "encouraging",
1513
+ "data-grounded",
1514
+ "trustworthy",
1515
+ "accessible"
1516
+ ],
1517
+ "antipatterns": [
1518
+ "vague aspiration without data",
1519
+ "HR jargon",
1520
+ "superlatives without proof",
1521
+ "cold AI recs without context"
1522
+ ],
1523
+ "signature_motion": "6s ease-in-out gradient loop on AI search bar; 200ms cubic-bezier(0.4,0,0.2,1) card hover elevation",
1524
+ "has_personas": true,
1525
+ "category_raw": "employment portal / HR tech platform"
1526
+ },
1064
1527
  {
1065
1528
  "id": "jumpit",
1066
1529
  "primary_color_hex": "#00DD6D",
@@ -1220,6 +1683,64 @@
1220
1683
  "category_raw": "Internet-only Bank",
1221
1684
  "country": "KR"
1222
1685
  },
1686
+ {
1687
+ "id": "kdan",
1688
+ "primary_color_hex": "#00DC87",
1689
+ "category": "Productivity",
1690
+ "visual_theme": "Bold Taiwanese document-workflow SaaS (PDF/e-sign/SDKs): a deep teal-black #002D37 structural base, an electric-lime #CAFF00 pop accent, and the kdanGreen #00DC87 brand token, set in Clear Sans with crisp 4px corners. Energetic, modern, developer-credible.",
1691
+ "voice_fingerprint": {
1692
+ "register": "confident-modern",
1693
+ "sentence_length": "medium",
1694
+ "metaphor_density": "low",
1695
+ "vocabulary_register": "english-technical"
1696
+ },
1697
+ "tone_keywords": [
1698
+ "bold",
1699
+ "modern",
1700
+ "energetic",
1701
+ "credible",
1702
+ "workflow-driven",
1703
+ "crisp"
1704
+ ],
1705
+ "antipatterns": [
1706
+ "Keep kdanGreen #00DC87 as brand, #002D37 as structure, #CAFF00 as the loud accent — don't blur roles",
1707
+ "Maintain crisp 4px corners",
1708
+ "No gradients",
1709
+ "No multi-field spec lines"
1710
+ ],
1711
+ "signature_motion": "Crisp, confident transitions; the lime CTA pops with energy while the teal-black base stays steady.",
1712
+ "has_personas": true,
1713
+ "category_raw": "productivity / document-workflow SaaS"
1714
+ },
1715
+ {
1716
+ "id": "kkbox",
1717
+ "primary_color_hex": "#00B6E1",
1718
+ "category": "Entertainment",
1719
+ "visual_theme": "Dark, premium Taiwanese music-streaming (KKCompany): a near-black #111111 canvas, the signature KKBOX cyan-blue #00B6E1 as the single brand accent, oversized Work Sans display type, and softly-rounded 30px buttons. Cinematic and music-forward.",
1720
+ "voice_fingerprint": {
1721
+ "register": "cinematic-premium",
1722
+ "sentence_length": "short",
1723
+ "metaphor_density": "moderate",
1724
+ "vocabulary_register": "english-media"
1725
+ },
1726
+ "tone_keywords": [
1727
+ "dark",
1728
+ "premium",
1729
+ "cinematic",
1730
+ "music-forward",
1731
+ "immersive",
1732
+ "bold"
1733
+ ],
1734
+ "antipatterns": [
1735
+ "Near-black #111111 canvas — don't lighten",
1736
+ "KKBOX cyan #00B6E1 is the single accent; don't add competing hues",
1737
+ "Keep oversized Work Sans display",
1738
+ "No multi-field spec lines"
1739
+ ],
1740
+ "signature_motion": "Smooth, cinematic transitions; the cyan accent glows against the dark. Music-forward pacing.",
1741
+ "has_personas": true,
1742
+ "category_raw": "entertainment / music streaming (KKCompany)"
1743
+ },
1223
1744
  {
1224
1745
  "id": "kkday",
1225
1746
  "primary_color_hex": "#FF5C00",
@@ -1250,6 +1771,35 @@
1250
1771
  "has_personas": true,
1251
1772
  "category_raw": "ecommerce"
1252
1773
  },
1774
+ {
1775
+ "id": "krafton",
1776
+ "primary_color_hex": "#000000",
1777
+ "category": "Consumer Tech / Gaming Publisher",
1778
+ "visual_theme": "dark-monochrome-cinematic",
1779
+ "voice_fingerprint": {
1780
+ "register": "formal-ambitious",
1781
+ "sentence_length": "short-to-medium",
1782
+ "metaphor_density": "low",
1783
+ "vocabulary_register": "aspirational-direct"
1784
+ },
1785
+ "tone_keywords": [
1786
+ "pioneering",
1787
+ "cinematic",
1788
+ "direct",
1789
+ "bold",
1790
+ "ambitious"
1791
+ ],
1792
+ "antipatterns": [
1793
+ "no drop-shadows",
1794
+ "no color CTAs",
1795
+ "no border-radius on buttons",
1796
+ "no serif body fonts",
1797
+ "no light-mode-only design"
1798
+ ],
1799
+ "signature_motion": "translateY(100px) → 0 + opacity 0 → 1 over 0.8s ease-out on scroll reveal; 2px underline expands left→right over 0.3s ease-out on text hover",
1800
+ "has_personas": true,
1801
+ "category_raw": "consumer-tech"
1802
+ },
1253
1803
  {
1254
1804
  "id": "kraken",
1255
1805
  "primary_color_hex": "#7132f5",
@@ -1345,6 +1895,35 @@
1345
1895
  "has_personas": true,
1346
1896
  "category_raw": "premium grocery / dawn delivery"
1347
1897
  },
1898
+ {
1899
+ "id": "laftel",
1900
+ "primary_color_hex": "#816BFF",
1901
+ "category": "consumer-tech",
1902
+ "visual_theme": "dark-first streaming UI with saturated violet accent; dual-mode light/dark; thumbnail-heavy grid layout; anime-entertainment aesthetic",
1903
+ "voice_fingerprint": {
1904
+ "register": "fan-to-fan (덕후 voice), warm-direct, quietly authoritative",
1905
+ "sentence_length": "short and punchy; one idea per sentence",
1906
+ "metaphor_density": "low — brand relies on concrete anime-world vocabulary rather than abstract metaphors",
1907
+ "vocabulary_register": "K-anime vernacular mixed with plain Korean; avoids corporate formality"
1908
+ },
1909
+ "tone_keywords": [
1910
+ "fan-fluent",
1911
+ "warm",
1912
+ "direct",
1913
+ "authoritative",
1914
+ "inclusive"
1915
+ ],
1916
+ "antipatterns": [
1917
+ "corporate broadcast tone",
1918
+ "generic 'Popular' as primary discovery",
1919
+ "hardcoded hex in themed components",
1920
+ "border-radius values outside 4px/8px/50% system",
1921
+ "font-weight above 700"
1922
+ ],
1923
+ "signature_motion": "0.2s ease for overlays/toasts; 0.4s ease for colour transitions; 1.5s linear skeleton shimmer; 1.4s ease-in-out spinner",
1924
+ "has_personas": true,
1925
+ "category_raw": "consumer-tech"
1926
+ },
1348
1927
  {
1349
1928
  "id": "lamborghini",
1350
1929
  "primary_color_hex": "#FFC000",
@@ -1367,6 +1946,34 @@
1367
1946
  "has_personas": false,
1368
1947
  "category_raw": "luxury automotive"
1369
1948
  },
1949
+ {
1950
+ "id": "lezhin",
1951
+ "primary_color_hex": "#eb0014",
1952
+ "category": "consumer-tech",
1953
+ "visual_theme": "dark-immersive content-first",
1954
+ "voice_fingerprint": {
1955
+ "register": "direct and candid",
1956
+ "sentence_length": "short declarative",
1957
+ "metaphor_density": "low",
1958
+ "vocabulary_register": "informal-adult"
1959
+ },
1960
+ "tone_keywords": [
1961
+ "bold",
1962
+ "direct",
1963
+ "unfiltered",
1964
+ "premium",
1965
+ "content-first"
1966
+ ],
1967
+ "antipatterns": [
1968
+ "decorative chrome",
1969
+ "pastel softness",
1970
+ "excessive rounding",
1971
+ "verbose CTA copy"
1972
+ ],
1973
+ "signature_motion": "250ms ease-in-out slide transforms; 1.8s skeleton shimmer",
1974
+ "has_personas": true,
1975
+ "category_raw": "consumer-tech"
1976
+ },
1370
1977
  {
1371
1978
  "id": "line",
1372
1979
  "primary_color_hex": "#07b53b",
@@ -1483,6 +2090,35 @@
1483
2090
  "has_personas": true,
1484
2091
  "category_raw": "local-services"
1485
2092
  },
2093
+ {
2094
+ "id": "melon",
2095
+ "primary_color_hex": "#00CD3C",
2096
+ "category": "Entertainment",
2097
+ "visual_theme": "Dense, white, content-first Korean music-streaming UI (Kakao Entertainment): packed charts and lists, small 12-14px Pretendard type, sharp 0px corners, with the signature Melon green #00CD3C rationed onto active nav, tabs, and primary actions. Grayscale hierarchy (#1A1A1A/#666/#999) lets the green do all the signaling.",
2098
+ "voice_fingerprint": {
2099
+ "register": "utilitarian-dense",
2100
+ "sentence_length": "short",
2101
+ "metaphor_density": "low",
2102
+ "vocabulary_register": "korean-mainstream"
2103
+ },
2104
+ "tone_keywords": [
2105
+ "dense",
2106
+ "efficient",
2107
+ "content-first",
2108
+ "mainstream",
2109
+ "scannable",
2110
+ "green-signal"
2111
+ ],
2112
+ "antipatterns": [
2113
+ "No rounded corners — Melon is square (0px)",
2114
+ "Don't spread the green; ration it to active/primary",
2115
+ "Don't inflate type — density depends on 12-14px",
2116
+ "No multi-field spec lines"
2117
+ ],
2118
+ "signature_motion": "Minimal, utilitarian transitions; the player and list interactions stay quick and quiet — the green marks live elements rather than animating.",
2119
+ "has_personas": true,
2120
+ "category_raw": "entertainment / music streaming"
2121
+ },
1486
2122
  {
1487
2123
  "id": "mercari",
1488
2124
  "primary_color_hex": "#ff333f",
@@ -1624,6 +2260,35 @@
1624
2260
  "has_personas": false,
1625
2261
  "category_raw": "AI platform"
1626
2262
  },
2263
+ {
2264
+ "id": "momoshop",
2265
+ "primary_color_hex": "#D62872",
2266
+ "category": "E-commerce",
2267
+ "visual_theme": "Dense value-grid; hot magenta-pink brand anchor on neutral grey canvas; urgent deal energy with functional typography hierarchy",
2268
+ "voice_fingerprint": {
2269
+ "register": "colloquial Traditional Chinese Mandarin, direct and warm",
2270
+ "sentence_length": "short (4–8 characters per clause)",
2271
+ "metaphor_density": "low — concrete logistics and price facts preferred",
2272
+ "vocabulary_register": "everyday consumer vocabulary, deal-forward, trust-reinforcing"
2273
+ },
2274
+ "tone_keywords": [
2275
+ "energetic",
2276
+ "trustworthy",
2277
+ "deal-focused",
2278
+ "direct",
2279
+ "warm"
2280
+ ],
2281
+ "antipatterns": [
2282
+ "decorative motion/parallax",
2283
+ "vague superlatives without price anchor",
2284
+ "heavy drop shadows on cards",
2285
+ "pure white page canvas",
2286
+ "price font used for body text"
2287
+ ],
2288
+ "signature_motion": "opacity .3s ease for modal/drawer transitions; no scroll animations; instant search overlay toggle",
2289
+ "has_personas": true,
2290
+ "category_raw": "ecommerce"
2291
+ },
1627
2292
  {
1628
2293
  "id": "money-forward",
1629
2294
  "primary_color_hex": "#3B7DE9",
@@ -1705,6 +2370,35 @@
1705
2370
  "has_personas": true,
1706
2371
  "category_raw": "fashion e-commerce"
1707
2372
  },
2373
+ {
2374
+ "id": "mustit",
2375
+ "primary_color_hex": "#D00000",
2376
+ "category": "ecommerce",
2377
+ "visual_theme": "luxury-marketplace-minimal — near-black and white canvas with single brand-red accent; flat surfaces, tight grid, high product photo density",
2378
+ "voice_fingerprint": {
2379
+ "register": "direct-discovery",
2380
+ "sentence_length": "short-to-medium (data-first, scan-friendly)",
2381
+ "metaphor_density": "low (periscope/lens metaphor in brand identity only)",
2382
+ "vocabulary_register": "mixed Korean-English luxury retail; action verbs dominant"
2383
+ },
2384
+ "tone_keywords": [
2385
+ "direct",
2386
+ "discovery-forward",
2387
+ "confident",
2388
+ "trust-anchored",
2389
+ "concise"
2390
+ ],
2391
+ "antipatterns": [
2392
+ "heavy drop shadows",
2393
+ "decorative use of brand red",
2394
+ "verbose luxury puffery",
2395
+ "rounded product image frames",
2396
+ "viewport zoom enabled"
2397
+ ],
2398
+ "signature_motion": "0.4s cubic-bezier(.47,1.64,.41,.8) spring toast bounce-in; 0.25s ease-out standard sheet/fade",
2399
+ "has_personas": true,
2400
+ "category_raw": "luxury resale ecommerce / secondhand luxury marketplace (KR)"
2401
+ },
1708
2402
  {
1709
2403
  "id": "myrealtrip",
1710
2404
  "primary_color_hex": "#2B96ED",
@@ -1794,6 +2488,35 @@
1794
2488
  "has_personas": true,
1795
2489
  "category_raw": "Content Platform (Webtoon)"
1796
2490
  },
2491
+ {
2492
+ "id": "nhncloud",
2493
+ "primary_color_hex": "#125DE6",
2494
+ "category": "Developer Tools",
2495
+ "visual_theme": "Two-surface enterprise cloud: a polished corporate site (Pretendard Variable, vivid brand blue #125DE6, big 30px rounded pills) paired with the TOAST UI open-source widget library (lighter #00a9ff accent, tight 4px radius, 13px text). Clean, functional, trustworthy infrastructure.",
2496
+ "voice_fingerprint": {
2497
+ "register": "enterprise-precise",
2498
+ "sentence_length": "medium",
2499
+ "metaphor_density": "low",
2500
+ "vocabulary_register": "korean-technical"
2501
+ },
2502
+ "tone_keywords": [
2503
+ "enterprise",
2504
+ "trustworthy",
2505
+ "functional",
2506
+ "clean",
2507
+ "scalable",
2508
+ "precise"
2509
+ ],
2510
+ "antipatterns": [
2511
+ "Don't mix the corporate 30px-pill language with the TOAST UI 4px-widget language",
2512
+ "Don't use the #00a9ff widget blue as the corporate brand color (#125DE6)",
2513
+ "No gradients",
2514
+ "No multi-field spec lines"
2515
+ ],
2516
+ "signature_motion": "Restrained corporate transitions; functional widget interactions in TOAST UI. Motion clarifies, never decorates.",
2517
+ "has_personas": true,
2518
+ "category_raw": "backend-devops / cloud infrastructure (NHN Cloud + TOAST UI)"
2519
+ },
1797
2520
  {
1798
2521
  "id": "note",
1799
2522
  "primary_color_hex": "#41C9B4",
@@ -1961,6 +2684,63 @@
1961
2684
  "has_personas": false,
1962
2685
  "category_raw": "developer AI tool"
1963
2686
  },
2687
+ {
2688
+ "id": "payco",
2689
+ "primary_color_hex": "#FF2233",
2690
+ "category": "Fintech",
2691
+ "visual_theme": "High-contrast red-and-white; functional and trustworthy; clean white surfaces with vivid brand red anchoring all primary actions",
2692
+ "voice_fingerprint": {
2693
+ "register": "friendly-direct",
2694
+ "sentence_length": "short",
2695
+ "metaphor_density": "low",
2696
+ "vocabulary_register": "everyday consumer Korean"
2697
+ },
2698
+ "tone_keywords": [
2699
+ "practical",
2700
+ "reassuring",
2701
+ "familiar",
2702
+ "action-led",
2703
+ "benefit-first"
2704
+ ],
2705
+ "antipatterns": [
2706
+ "decorative motion",
2707
+ "heavy drop shadows",
2708
+ "multiple competing accent colors",
2709
+ "dense typographic hierarchy"
2710
+ ],
2711
+ "signature_motion": "fp_nav active underline width expansion 0.5s",
2712
+ "has_personas": true,
2713
+ "category_raw": "fintech / payment super-app"
2714
+ },
2715
+ {
2716
+ "id": "piccollage",
2717
+ "primary_color_hex": "#4FC3C4",
2718
+ "category": "Consumer Tech",
2719
+ "visual_theme": "Warm scrapbook-cream canvas with teal CTA accents and celebratory purple-to-coral gradient highlights; rounded pills; diffuse soft shadows",
2720
+ "voice_fingerprint": {
2721
+ "register": "warm-conversational",
2722
+ "sentence_length": "short-punchy",
2723
+ "metaphor_density": "low",
2724
+ "vocabulary_register": "everyday-friendly"
2725
+ },
2726
+ "tone_keywords": [
2727
+ "joyful",
2728
+ "approachable",
2729
+ "celebratory",
2730
+ "empowering",
2731
+ "warm"
2732
+ ],
2733
+ "antipatterns": [
2734
+ "hard drop-shadows",
2735
+ "sharp corners",
2736
+ "clinical phrasing",
2737
+ "dark overlays",
2738
+ "serif body text"
2739
+ ],
2740
+ "signature_motion": "200ms ease-in-out color transitions; 700ms cubic-bezier(.22,1,.36,1) reveal-from-rect entry animation",
2741
+ "has_personas": true,
2742
+ "category_raw": "consumer-tech"
2743
+ },
1964
2744
  {
1965
2745
  "id": "pinkoi",
1966
2746
  "primary_color_hex": "#10567b",
@@ -2084,6 +2864,35 @@
2084
2864
  "has_personas": true,
2085
2865
  "category_raw": "edutech / AI math solver"
2086
2866
  },
2867
+ {
2868
+ "id": "rayark",
2869
+ "primary_color_hex": "#5FE0EE",
2870
+ "category": "Entertainment",
2871
+ "visual_theme": "Dark premium gaming aesthetic from a Taipei rhythm-game studio (Cytus/Deemo/Sdorica): a near-black #1A1C1D canvas lit by a single electric-cyan #5FE0EE accent, white display type, and sharp 3px corners with white-outlined cyan CTAs. Cool, neon-on-black, rhythm-game energy.",
2872
+ "voice_fingerprint": {
2873
+ "register": "cool-gaming",
2874
+ "sentence_length": "short",
2875
+ "metaphor_density": "moderate",
2876
+ "vocabulary_register": "english-gaming"
2877
+ },
2878
+ "tone_keywords": [
2879
+ "dark",
2880
+ "electric",
2881
+ "premium",
2882
+ "rhythmic",
2883
+ "immersive",
2884
+ "cool"
2885
+ ],
2886
+ "antipatterns": [
2887
+ "No light backgrounds — the canvas is near-black #1A1C1D",
2888
+ "No second accent — electric cyan #5FE0EE is the only chromatic lift",
2889
+ "Don't round corners heavily (sharp 3px)",
2890
+ "No multi-field spec lines"
2891
+ ],
2892
+ "signature_motion": "Beat-synced, kinetic energy true to rhythm games; quick sharp transitions, neon glow accents on the cyan.",
2893
+ "has_personas": true,
2894
+ "category_raw": "entertainment / indie game studio"
2895
+ },
2087
2896
  {
2088
2897
  "id": "raycast",
2089
2898
  "primary_color_hex": "#FF6363",
@@ -2246,6 +3055,35 @@
2246
3055
  "has_personas": true,
2247
3056
  "category_raw": "e-book / web novel"
2248
3057
  },
3058
+ {
3059
+ "id": "riiid",
3060
+ "primary_color_hex": "#14161A",
3061
+ "category": "Education",
3062
+ "visual_theme": "Scholarly monochromatic — near-white canvas (#FCFCFC) with ink-dark primary (#131519), cool-grey accents, Playfair Display headings paired with Pretendard body; no saturated brand colours",
3063
+ "voice_fingerprint": {
3064
+ "register": "reflective-academic",
3065
+ "sentence_length": "medium-long",
3066
+ "metaphor_density": "low",
3067
+ "vocabulary_register": "educated-professional"
3068
+ },
3069
+ "tone_keywords": [
3070
+ "scholarly",
3071
+ "clear",
3072
+ "humanist",
3073
+ "measured",
3074
+ "Socratic"
3075
+ ],
3076
+ "antipatterns": [
3077
+ "warm/saturated accent colours",
3078
+ "heavy drop shadows",
3079
+ "countdown urgency",
3080
+ "gamification chrome",
3081
+ "mixed serif/sans in same role"
3082
+ ],
3083
+ "signature_motion": "fade-in-0 + zoom-in-95 at 200ms; color-only hover transitions at duration-200; no layout-shift animations",
3084
+ "has_personas": true,
3085
+ "category_raw": "education"
3086
+ },
2249
3087
  {
2250
3088
  "id": "runwayml",
2251
3089
  "primary_color_hex": "#000000",
@@ -2288,6 +3126,36 @@
2288
3126
  "has_personas": false,
2289
3127
  "category_raw": "technical"
2290
3128
  },
3129
+ {
3130
+ "id": "sendbird",
3131
+ "primary_color_hex": "#742DDD",
3132
+ "category": "Developer Tools",
3133
+ "visual_theme": "Two-faced infrastructure: a token-driven chat UIKit on Sendbird purple #742DDD over an 8-step neutral grayscale with universal 4px flat fills, paired with a near-monochrome marketing site — white ground, 72px serif display headline, Helvetica Now Text body, black/white pill CTAs. Brand color is held back from chrome and spent only on product primary actions.",
3134
+ "voice_fingerprint": {
3135
+ "register": "infrastructure-precise",
3136
+ "sentence_length": "short",
3137
+ "metaphor_density": "low",
3138
+ "vocabulary_register": "english-technical"
3139
+ },
3140
+ "tone_keywords": [
3141
+ "precise",
3142
+ "reliable",
3143
+ "enterprise-assured",
3144
+ "plain",
3145
+ "calm",
3146
+ "invisible"
3147
+ ],
3148
+ "antipatterns": [
3149
+ "No gradients or drop shadows — flat fills and 1px hairlines only",
3150
+ "No brand purple in marketing chrome",
3151
+ "No second brand hue; green/red/blue are semantic only",
3152
+ "No multi-field spec lines",
3153
+ "No body copy set in the serif display face"
3154
+ ],
3155
+ "signature_motion": "New messages fade/slide in at the column bottom (~150-200ms ease-out); near-instant color steps on hover/focus/press (purple-300 -> 400 -> 500); overlay scrim fades in ~200ms. Motion clarifies, never performs.",
3156
+ "has_personas": true,
3157
+ "category_raw": "developer-infra / conversations API (UIKit)"
3158
+ },
2291
3159
  {
2292
3160
  "id": "sentry",
2293
3161
  "primary_color_hex": "#6a5fc1",
@@ -2676,6 +3544,34 @@
2676
3544
  "has_personas": true,
2677
3545
  "category_raw": "Fintech"
2678
3546
  },
3547
+ {
3548
+ "id": "trenbe",
3549
+ "primary_color_hex": "#7620F6",
3550
+ "category": "Ecommerce",
3551
+ "visual_theme": "luxury-monochrome-purple-accent",
3552
+ "voice_fingerprint": {
3553
+ "register": "direct-trustworthy",
3554
+ "sentence_length": "short-to-medium",
3555
+ "metaphor_density": "low",
3556
+ "vocabulary_register": "formal-clear"
3557
+ },
3558
+ "tone_keywords": [
3559
+ "trustworthy",
3560
+ "direct",
3561
+ "savvy",
3562
+ "tech-forward",
3563
+ "accessible-luxury"
3564
+ ],
3565
+ "antipatterns": [
3566
+ "vague-luxury-cliche",
3567
+ "shadow-heavy-cards",
3568
+ "gradients-behind-product-images",
3569
+ "purple-as-primary-button-inside-shopping-ui"
3570
+ ],
3571
+ "signature_motion": "0.325s ease-out modal slide-up",
3572
+ "has_personas": true,
3573
+ "category_raw": "global luxury ecommerce platform"
3574
+ },
2679
3575
  {
2680
3576
  "id": "triple",
2681
3577
  "primary_color_hex": "#368FFF",
@@ -2795,6 +3691,35 @@
2795
3691
  "category_raw": "AI / LLM (Solar)",
2796
3692
  "country": "KR"
2797
3693
  },
3694
+ {
3695
+ "id": "velog",
3696
+ "primary_color_hex": "#12B886",
3697
+ "category": "Developer Tools",
3698
+ "visual_theme": "Reading-first Korean dev-blog surface on the Open Color palette: soft gray0 #F8F9FA canvas, white content, near-black #212529 text, and brand teal6 #12B886 reserved as the single action signal (the write button). Calm, editorial, content-forward.",
3699
+ "voice_fingerprint": {
3700
+ "register": "calm-editorial",
3701
+ "sentence_length": "medium",
3702
+ "metaphor_density": "low",
3703
+ "vocabulary_register": "korean-developer"
3704
+ },
3705
+ "tone_keywords": [
3706
+ "calm",
3707
+ "reading-first",
3708
+ "minimal",
3709
+ "content-forward",
3710
+ "legible",
3711
+ "developer-native"
3712
+ ],
3713
+ "antipatterns": [
3714
+ "No teal as a background wash — it is the single action color",
3715
+ "No pure black text (use #212529)",
3716
+ "No heavy shadows — depth is the gray-to-white value step",
3717
+ "No multi-field spec lines"
3718
+ ],
3719
+ "signature_motion": "Quiet, near-instant state transitions; the dark login pill and teal write button are static anchors — motion stays out of the reading surface.",
3720
+ "has_personas": true,
3721
+ "category_raw": "developer-tools / dev-blogging platform"
3722
+ },
2798
3723
  {
2799
3724
  "id": "vercel",
2800
3725
  "primary_color_hex": "#171717",
@@ -2821,6 +3746,36 @@
2821
3746
  "has_personas": true,
2822
3747
  "category_raw": "developer-infra"
2823
3748
  },
3749
+ {
3750
+ "id": "voicetube",
3751
+ "primary_color_hex": "#7E3AAF",
3752
+ "category": "Education",
3753
+ "visual_theme": "dark-purple cinematic; dark canvas #18131D body background, gradient nav #210040→#1D102B, pill buttons with #653AAF→#A73AAF gradient; streaming-platform-meets-edtech aesthetic",
3754
+ "voice_fingerprint": {
3755
+ "register": "warm-energetic-bilingual; Mandarin-first CTA copy paired with English taglines",
3756
+ "sentence_length": "short (2–5 words for CTAs, 1–2 sentence paragraphs for UI copy)",
3757
+ "metaphor_density": "low — concrete product language, action verbs, numbered benefits",
3758
+ "vocabulary_register": "accessible everyday; avoids academic jargon; mixes zh-TW and en-US copy fluidly"
3759
+ },
3760
+ "tone_keywords": [
3761
+ "encouraging",
3762
+ "playful",
3763
+ "community-oriented",
3764
+ "accessible",
3765
+ "energetic"
3766
+ ],
3767
+ "antipatterns": [
3768
+ "academic language",
3769
+ "passive voice",
3770
+ "light backgrounds as page canvas",
3771
+ "square-corner buttons",
3772
+ "multiple box-shadows",
3773
+ "sans CJK fallback fonts"
3774
+ ],
3775
+ "signature_motion": "150ms ease-out for standard transitions; carousel dots expand 10px→30px at 150ms; no spring physics",
3776
+ "has_personas": true,
3777
+ "category_raw": "education"
3778
+ },
2824
3779
  {
2825
3780
  "id": "voltagent",
2826
3781
  "primary_color_hex": "#00d992",