oh-my-design-cli 1.6.6 → 1.7.0

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 (230) hide show
  1. package/AGENTS.md +1 -1
  2. package/README.md +8 -8
  3. package/data/reference-fingerprints.json +1318 -10
  4. package/dist/bin/oh-my-design.js +1 -1
  5. package/dist/{install-skills-JNH66GOI.js → install-skills-YYHEC4CS.js} +5 -11
  6. package/dist/install-skills-YYHEC4CS.js.map +1 -0
  7. package/package.json +1 -1
  8. package/skills/claude-design/SKILL.md +7 -2
  9. package/web/references/11st/DESIGN.md +400 -0
  10. package/web/references/17live/DESIGN.md +43 -0
  11. package/web/references/29cm/DESIGN.md +41 -0
  12. package/web/references/91app/DESIGN.md +31 -0
  13. package/web/references/ably/DESIGN.md +54 -0
  14. package/web/references/airbnb/DESIGN.md +58 -0
  15. package/web/references/airtable/DESIGN.md +39 -0
  16. package/web/references/alipay/DESIGN.md +50 -0
  17. package/web/references/amazingtalker/DESIGN.md +434 -0
  18. package/web/references/appier/DESIGN.md +45 -0
  19. package/web/references/apple/DESIGN.md +47 -0
  20. package/web/references/baemin/DESIGN.md +142 -43
  21. package/web/references/banksalad/DESIGN.md +67 -0
  22. package/web/references/bilibili/DESIGN.md +45 -0
  23. package/web/references/bithumb/DESIGN.md +38 -0
  24. package/web/references/bmw/DESIGN.md +37 -0
  25. package/web/references/brandi/DESIGN.md +414 -0
  26. package/web/references/bunjang/DESIGN.md +47 -0
  27. package/web/references/cakeresume/DESIGN.md +29 -0
  28. package/web/references/cal/DESIGN.md +52 -0
  29. package/web/references/catchtable/DESIGN.md +79 -19
  30. package/web/references/cathay/DESIGN.md +432 -0
  31. package/web/references/channeltalk/DESIGN.md +48 -0
  32. package/web/references/class101/DESIGN.md +51 -0
  33. package/web/references/classting/DESIGN.md +41 -0
  34. package/web/references/classum/DESIGN.md +43 -0
  35. package/web/references/claude/DESIGN.md +157 -70
  36. package/web/references/clay/DESIGN.md +56 -0
  37. package/web/references/clickhouse/DESIGN.md +50 -0
  38. package/web/references/cloudflare/DESIGN.md +637 -0
  39. package/web/references/cohere/DESIGN.md +48 -0
  40. package/web/references/coinbase/DESIGN.md +139 -5
  41. package/web/references/coinone/DESIGN.md +39 -0
  42. package/web/references/composio/DESIGN.md +46 -0
  43. package/web/references/cookpad/DESIGN.md +37 -0
  44. package/web/references/coupang/DESIGN.md +57 -2
  45. package/web/references/cursor/DESIGN.md +44 -0
  46. package/web/references/dabang/DESIGN.md +57 -19
  47. package/web/references/dcard/DESIGN.md +57 -0
  48. package/web/references/dell/DESIGN.md +636 -0
  49. package/web/references/devsisters/DESIGN.md +29 -0
  50. package/web/references/discord/DESIGN.md +604 -0
  51. package/web/references/dji/DESIGN.md +39 -0
  52. package/web/references/drnow/DESIGN.md +52 -0
  53. package/web/references/duolingo/DESIGN.md +563 -0
  54. package/web/references/elevenlabs/DESIGN.md +39 -0
  55. package/web/references/expo/DESIGN.md +39 -0
  56. package/web/references/fastcampus/DESIGN.md +50 -0
  57. package/web/references/ferrari/DESIGN.md +47 -0
  58. package/web/references/figma/DESIGN.md +44 -0
  59. package/web/references/finda/DESIGN.md +413 -0
  60. package/web/references/flex/DESIGN.md +28 -0
  61. package/web/references/flo/DESIGN.md +43 -0
  62. package/web/references/framer/DESIGN.md +38 -0
  63. package/web/references/freee/DESIGN.md +48 -0
  64. package/web/references/fugle/DESIGN.md +41 -1
  65. package/web/references/gangnamunni/DESIGN.md +57 -1
  66. package/web/references/genie/DESIGN.md +415 -0
  67. package/web/references/github/DESIGN.md +727 -0
  68. package/web/references/gmarket/DESIGN.md +51 -0
  69. package/web/references/gogolook/DESIGN.md +25 -1
  70. package/web/references/gogoro/DESIGN.md +38 -0
  71. package/web/references/grip/DESIGN.md +39 -0
  72. package/web/references/hahow/DESIGN.md +26 -0
  73. package/web/references/hashicorp/DESIGN.md +42 -0
  74. package/web/references/hogangnono/DESIGN.md +41 -0
  75. package/web/references/hp/DESIGN.md +563 -0
  76. package/web/references/hyperconnect/DESIGN.md +393 -0
  77. package/web/references/hyundaicard/DESIGN.md +24 -0
  78. package/web/references/ibm/DESIGN.md +44 -0
  79. package/web/references/ichef/DESIGN.md +44 -0
  80. package/web/references/ikala/DESIGN.md +400 -0
  81. package/web/references/inflearn/DESIGN.md +38 -0
  82. package/web/references/intercom/DESIGN.md +38 -0
  83. package/web/references/jandi/DESIGN.md +382 -0
  84. package/web/references/jkopay/DESIGN.md +35 -1
  85. package/web/references/jobkorea/DESIGN.md +39 -0
  86. package/web/references/jumpit/DESIGN.md +37 -0
  87. package/web/references/kakao/DESIGN.md +64 -0
  88. package/web/references/kakaobank/DESIGN.md +55 -1
  89. package/web/references/kakaopay/DESIGN.md +59 -0
  90. package/web/references/kakaot/DESIGN.md +53 -0
  91. package/web/references/karrot/DESIGN.md +49 -0
  92. package/web/references/kbank/DESIGN.md +39 -0
  93. package/web/references/kdan/DESIGN.md +34 -1
  94. package/web/references/kintone/DESIGN.md +586 -0
  95. package/web/references/kkbox/DESIGN.md +22 -0
  96. package/web/references/kkday/DESIGN.md +47 -0
  97. package/web/references/kmong/DESIGN.md +427 -0
  98. package/web/references/krafton/DESIGN.md +37 -0
  99. package/web/references/kraken/DESIGN.md +44 -0
  100. package/web/references/krds/DESIGN.md +63 -0
  101. package/web/references/kream/DESIGN.md +32 -0
  102. package/web/references/kurly/DESIGN.md +38 -1
  103. package/web/references/laftel/DESIGN.md +40 -0
  104. package/web/references/lamborghini/DESIGN.md +54 -0
  105. package/web/references/layerx/DESIGN.md +615 -0
  106. package/web/references/lezhin/DESIGN.md +47 -0
  107. package/web/references/line/DESIGN.md +36 -0
  108. package/web/references/linear.app/DESIGN.md +182 -88
  109. package/web/references/loom/DESIGN.md +396 -0
  110. package/web/references/lovable/DESIGN.md +38 -0
  111. package/web/references/lunit/DESIGN.md +47 -19
  112. package/web/references/mastercard/DESIGN.md +587 -0
  113. package/web/references/meituan/DESIGN.md +42 -0
  114. package/web/references/melon/DESIGN.md +26 -0
  115. package/web/references/mercari/DESIGN.md +41 -0
  116. package/web/references/mercury/DESIGN.md +589 -0
  117. package/web/references/meta/DESIGN.md +615 -0
  118. package/web/references/millie/DESIGN.md +51 -0
  119. package/web/references/minimax/DESIGN.md +53 -0
  120. package/web/references/mintlify/DESIGN.md +45 -0
  121. package/web/references/miro/DESIGN.md +47 -0
  122. package/web/references/mistral.ai/DESIGN.md +37 -0
  123. package/web/references/momoshop/DESIGN.md +43 -0
  124. package/web/references/money-forward/DESIGN.md +42 -0
  125. package/web/references/mongodb/DESIGN.md +44 -0
  126. package/web/references/muji/DESIGN.md +605 -0
  127. package/web/references/musinsa/DESIGN.md +48 -0
  128. package/web/references/mustit/DESIGN.md +47 -1
  129. package/web/references/myrealtrip/DESIGN.md +49 -0
  130. package/web/references/naver/DESIGN.md +50 -1
  131. package/web/references/naverwebtoon/DESIGN.md +48 -0
  132. package/web/references/netflix/DESIGN.md +572 -0
  133. package/web/references/nexon/DESIGN.md +389 -0
  134. package/web/references/nhncloud/DESIGN.md +33 -0
  135. package/web/references/nike/DESIGN.md +588 -0
  136. package/web/references/note/DESIGN.md +28 -0
  137. package/web/references/notion/DESIGN.md +48 -0
  138. package/web/references/nvidia/DESIGN.md +50 -0
  139. package/web/references/ohouse/DESIGN.md +56 -0
  140. package/web/references/oliveyoung/DESIGN.md +47 -1
  141. package/web/references/ollama/DESIGN.md +40 -0
  142. package/web/references/openai/DESIGN.md +641 -0
  143. package/web/references/opencode.ai/DESIGN.md +37 -0
  144. package/web/references/payco/DESIGN.md +40 -0
  145. package/web/references/paypay/DESIGN.md +656 -0
  146. package/web/references/pchome/DESIGN.md +439 -0
  147. package/web/references/perplexity/DESIGN.md +546 -0
  148. package/web/references/piccollage/DESIGN.md +43 -0
  149. package/web/references/pinkoi/DESIGN.md +55 -0
  150. package/web/references/pinterest/DESIGN.md +44 -0
  151. package/web/references/pixiv/DESIGN.md +613 -0
  152. package/web/references/pixnet/DESIGN.md +430 -0
  153. package/web/references/posthog/DESIGN.md +50 -0
  154. package/web/references/publy/DESIGN.md +52 -0
  155. package/web/references/qanda/DESIGN.md +49 -1
  156. package/web/references/ragic/DESIGN.md +444 -0
  157. package/web/references/ramp/DESIGN.md +634 -0
  158. package/web/references/rayark/DESIGN.md +22 -0
  159. package/web/references/raycast/DESIGN.md +45 -0
  160. package/web/references/remember/DESIGN.md +44 -0
  161. package/web/references/renault/DESIGN.md +42 -0
  162. package/web/references/replicate/DESIGN.md +39 -0
  163. package/web/references/resend/DESIGN.md +44 -0
  164. package/web/references/retool/DESIGN.md +645 -0
  165. package/web/references/revolut/DESIGN.md +46 -0
  166. package/web/references/richart/DESIGN.md +465 -0
  167. package/web/references/ridi/DESIGN.md +47 -0
  168. package/web/references/riiid/DESIGN.md +32 -0
  169. package/web/references/robinhood/DESIGN.md +604 -0
  170. package/web/references/runwayml/DESIGN.md +45 -0
  171. package/web/references/sanity/DESIGN.md +50 -0
  172. package/web/references/sansan/DESIGN.md +631 -0
  173. package/web/references/sendbird/DESIGN.md +46 -0
  174. package/web/references/sentry/DESIGN.md +48 -0
  175. package/web/references/shinhancard/DESIGN.md +421 -0
  176. package/web/references/shopline/DESIGN.md +431 -0
  177. package/web/references/slack/DESIGN.md +635 -0
  178. package/web/references/smarthr/DESIGN.md +48 -0
  179. package/web/references/smartnews/DESIGN.md +29 -0
  180. package/web/references/socar/DESIGN.md +35 -0
  181. package/web/references/soomgo/DESIGN.md +326 -0
  182. package/web/references/spacex/DESIGN.md +27 -0
  183. package/web/references/spoon/DESIGN.md +46 -0
  184. package/web/references/spotify/DESIGN.md +49 -0
  185. package/web/references/starbucks/DESIGN.md +597 -0
  186. package/web/references/stripe/DESIGN.md +46 -0
  187. package/web/references/studio/DESIGN.md +602 -0
  188. package/web/references/supabase/DESIGN.md +41 -0
  189. package/web/references/superhuman/DESIGN.md +39 -0
  190. package/web/references/surveycake/DESIGN.md +442 -0
  191. package/web/references/tada/DESIGN.md +51 -0
  192. package/web/references/tesla/DESIGN.md +36 -0
  193. package/web/references/theverge/DESIGN.md +500 -0
  194. package/web/references/together.ai/DESIGN.md +33 -0
  195. package/web/references/toss/DESIGN.md +43 -0
  196. package/web/references/toss-securities/DESIGN.md +54 -19
  197. package/web/references/tossbank/DESIGN.md +57 -0
  198. package/web/references/trenbe/DESIGN.md +41 -0
  199. package/web/references/triple/DESIGN.md +47 -0
  200. package/web/references/tumblbug/DESIGN.md +48 -0
  201. package/web/references/tving/DESIGN.md +40 -0
  202. package/web/references/uber/DESIGN.md +36 -0
  203. package/web/references/ubie/DESIGN.md +615 -0
  204. package/web/references/uniqlo/DESIGN.md +575 -0
  205. package/web/references/upbit/DESIGN.md +42 -0
  206. package/web/references/upstage/DESIGN.md +38 -0
  207. package/web/references/velog/DESIGN.md +28 -0
  208. package/web/references/vercel/DESIGN.md +44 -0
  209. package/web/references/voicetube/DESIGN.md +39 -0
  210. package/web/references/voltagent/DESIGN.md +44 -0
  211. package/web/references/wadiz/DESIGN.md +71 -19
  212. package/web/references/wanted/DESIGN.md +46 -0
  213. package/web/references/warp/DESIGN.md +37 -0
  214. package/web/references/watcha/DESIGN.md +40 -0
  215. package/web/references/wavve/DESIGN.md +43 -1
  216. package/web/references/wconcept/DESIGN.md +45 -0
  217. package/web/references/webflow/DESIGN.md +49 -0
  218. package/web/references/wired/DESIGN.md +572 -0
  219. package/web/references/wise/DESIGN.md +41 -0
  220. package/web/references/x.ai/DESIGN.md +31 -0
  221. package/web/references/xiaohongshu/DESIGN.md +39 -0
  222. package/web/references/yanolja/DESIGN.md +45 -0
  223. package/web/references/yeogiotte/DESIGN.md +42 -1
  224. package/web/references/yogiyo/DESIGN.md +50 -0
  225. package/web/references/yourator/DESIGN.md +453 -0
  226. package/web/references/zapier/DESIGN.md +41 -0
  227. package/web/references/zigbang/DESIGN.md +33 -0
  228. package/web/references/zigzag/DESIGN.md +62 -0
  229. package/web/references/zozotown/DESIGN.md +578 -0
  230. package/dist/install-skills-JNH66GOI.js.map +0 -1
@@ -10,6 +10,35 @@ logo:
10
10
  slug: "https://www.google.com/s2/favicons?domain=devsisters.com&sz=256"
11
11
  verified: "2026-06-03"
12
12
  omd: "0.1"
13
+ tokens:
14
+ source: prose-derived
15
+ extracted: "2026-06-09"
16
+ colors:
17
+ primary: "#FF5F00"
18
+ bright-orange: "#FF8200"
19
+ yellow: "#FFCE00"
20
+ black: "#000000"
21
+ canvas: "#FFFFFF"
22
+ peach: "#F8E8DA"
23
+ border: "#DCDCDC"
24
+ body: "#666666"
25
+ typography:
26
+ family: { sans: "Pretendard", mono: "Pretendard" }
27
+ h1: { size: 32, weight: 900, use: "English display H1, all-caps azo-sans-web" }
28
+ h2: { size: 24, weight: 800, use: "H2 / CTA labels" }
29
+ h3: { size: 18, weight: 700, use: "H3 subheadings" }
30
+ body: { size: 16, weight: 500, lineHeight: 1.5, use: "Pretendard Korean body" }
31
+ label: { size: 14, weight: 500, use: "Nav links, footer items" }
32
+ spacing: { sm: 5.5, md: 12, base: 16, lg: 20, xl: 24 }
33
+ rounded: { sm: 8, md: 20, lg: 36, full: 9999 }
34
+ components:
35
+ button-primary: { type: button, bg: "#FF5F00", fg: "#FFFFFF", radius: 36, padding: "12px 24px", font: "azo-sans-web/800", use: "Orange primary CTA" }
36
+ button-secondary: { type: button, bg: "#000000", fg: "#FFFFFF", radius: 36, padding: "12px 24px", font: "azo-sans-web/800", use: "Black secondary pill button" }
37
+ nav: { type: tab, bg: "#FF5F00", fg: "#FFFFFF", padding: "0px 20px", font: "azo-sans-web/800", use: "Top nav bar" }
38
+ card: { type: card, bg: "#FFFFFF", radius: 8, use: "Standard content card, 1px #DCDCDC border" }
39
+ feature-card: { type: card, bg: "#FFFFFF", radius: 20, padding: "52px 80px", use: "News/feature card" }
40
+ badge: { type: badge, bg: "#FFCE00", fg: "#000000", radius: 36, padding: "5.5px 12px", use: "Accent tag badge" }
41
+ components_harvested: true
13
42
  ---
14
43
 
15
44
  # Devsisters
@@ -0,0 +1,604 @@
1
+ ---
2
+ id: discord
3
+ name: Discord
4
+ country: US
5
+ category: consumer-tech
6
+ homepage: "https://discord.com"
7
+ primary_color: "#5865F2"
8
+ logo:
9
+ type: simpleicons
10
+ slug: "discord"
11
+ verified: "2026-06-06"
12
+ added: "2026-06-06"
13
+ omd: "0.1"
14
+ tokens:
15
+ source: prose-derived
16
+ extracted: "2026-06-09"
17
+ colors:
18
+ primary: "#5865F2"
19
+ primary-hover: "#4752C4"
20
+ primary-active: "#3C45A5"
21
+ green: "#57F287"
22
+ yellow: "#FEE75C"
23
+ fuchsia: "#EB459E"
24
+ red: "#ED4245"
25
+ surface-tertiary: "#1E1F22"
26
+ surface-secondary: "#2B2D31"
27
+ surface-primary: "#313338"
28
+ surface-floating: "#111214"
29
+ text-normal: "#DBDEE1"
30
+ heading: "#F2F3F5"
31
+ muted: "#949BA4"
32
+ interactive: "#B5BAC1"
33
+ link: "#00A8FC"
34
+ grey-secondary: "#4E5058"
35
+ message-box: "#383A40"
36
+ on-primary: "#FFFFFF"
37
+ typography:
38
+ family: { sans: "gg sans", mono: "gg mono" }
39
+ hero: { size: 56, weight: 800, lineHeight: 1.1, tracking: -0.02, use: "Marketing hero headline" }
40
+ display-lg: { size: 32, weight: 700, lineHeight: 1.25, tracking: -0.01, use: "Modal titles, big moments" }
41
+ h1: { size: 24, weight: 700, lineHeight: 1.25, use: "Section headers" }
42
+ h2: { size: 20, weight: 600, lineHeight: 1.30, use: "Sub-sections, settings groups" }
43
+ channel: { size: 16, weight: 600, lineHeight: 1.25, use: "Channel/server headers" }
44
+ body-lg: { size: 16, weight: 400, lineHeight: 1.375, use: "Message text, descriptions" }
45
+ body: { size: 14, weight: 400, lineHeight: 1.29, use: "Standard UI text, list items" }
46
+ label: { size: 12, weight: 600, lineHeight: 1.33, tracking: 0.02, use: "Section labels UPPERCASE" }
47
+ caption: { size: 12, weight: 400, lineHeight: 1.33, use: "Timestamps, helper text" }
48
+ code: { size: 14, weight: 400, lineHeight: 1.29, use: "Inline code, code blocks (gg mono)" }
49
+ spacing: { xs: 4, sm: 8, md: 12, base: 16, lg: 20, xl: 24, xxl: 32, section: 40 }
50
+ rounded: { sm: 4, md: 8, lg: 16, full: 9999 }
51
+ shadow:
52
+ floating: "0 4px 8px rgba(0,0,0,0.24)"
53
+ modal: "0 8px 16px rgba(0,0,0,0.24)"
54
+ high: "0 12px 32px rgba(0,0,0,0.36)"
55
+ components:
56
+ button-primary: { type: button, bg: "#5865F2", fg: "#FFFFFF", radius: 8, padding: "2px 16px", font: "14px/500 gg sans", use: "Primary action — Send, Confirm, Join" }
57
+ button-secondary: { type: button, bg: "#4E5058", fg: "#FFFFFF", radius: 8, padding: "2px 16px", font: "14px/500 gg sans", use: "Neutral secondary action" }
58
+ button-link: { type: button, bg: "transparent", fg: "#FFFFFF", padding: "2px 4px", font: "14px/500 gg sans", use: "Tertiary action, subtle cancel" }
59
+ input: { type: input, bg: "#1E1F22", fg: "#DBDEE1", radius: 4, padding: "10px 12px", font: "16px/400 gg sans", use: "Settings forms, search, login" }
60
+ message-box: { type: input, bg: "#383A40", fg: "#DBDEE1", radius: 8, padding: "11px 16px", font: "16px/400 gg sans", use: "Chat composer" }
61
+ embed-card: { type: card, bg: "#2B2D31", radius: 4, padding: "16px", use: "Rich link previews, bot responses (4px left accent)" }
62
+ settings-card: { type: card, bg: "#2B2D31", radius: 8, padding: "16px 20px", use: "Grouped settings rows" }
63
+ modal: { type: dialog, bg: "#313338", radius: 8, padding: "16px", use: "Confirmation dialogs, server settings" }
64
+ mention-badge: { type: badge, bg: "#ED4245", fg: "#FFFFFF", radius: 9999, padding: "0 4px", font: "12px/700 gg sans", use: "Unread mention counter" }
65
+ nitro-badge: { type: badge, bg: "#5865F2", fg: "#FFFFFF", radius: 4, font: "12px/600 gg sans", use: "Nitro / boosted badge" }
66
+ settings-tab: { type: tab, bg: "transparent", fg: "#B5BAC1", radius: 4, padding: "6px 10px", font: "16px/500 gg sans", active: "bg #404249, text #FFFFFF", use: "Settings sidebar item" }
67
+ tooltip: { type: card, bg: "#111214", fg: "#F2F3F5", radius: 8, padding: "8px 12px", font: "14px/600 gg sans", use: "Hover hints on icons" }
68
+ toast: { type: toast, bg: "#111214", fg: "#DBDEE1", radius: 8, padding: "12px 16px", use: "Transient confirmations (4px left status accent)" }
69
+ toggle: { type: toggle, bg: "#57F287", radius: 9999, use: "Boolean settings — track green on, #80848E off" }
70
+ components_harvested: true
71
+ ---
72
+
73
+ # Design System Inspiration of Discord
74
+
75
+ ## 1. Visual Theme & Atmosphere
76
+
77
+ Discord is the place where communities hang out, and its interface is built to feel like a clubhouse, not an enterprise tool. The product UI lives almost entirely in dark mode by default — deep slate-navy surfaces (`#313338` chat, `#2B2D31` channel sidebar, `#1E1F22` server rail) layered like physical panels, with one electric accent doing all the talking: **Blurple** (`#5865F2`). Blurple is a portmanteau of "blue" and "purple," and that in-between quality is the whole personality — friendly but not corporate, energetic but not aggressive. It is the most-tapped color in the app and the single most recognizable thing about the brand.
78
+
79
+ The marketing site (`discord.com`) is the playful sibling of the product: bright Blurple fields, hand-drawn-feeling illustrations of Wumpus (the brand mascot) and friends, big rounded headlines, and a tone that reads like a group chat. Where the product is dark and focused, the marketing surface is bright and loud. Both share the same DNA — generous rounded corners, the Blurple accent, and **gg sans**, Discord's proprietary typeface introduced in the 2021 rebrand to replace Whitney/Uni Sans. gg sans has rounded terminals and a warm, geometric character that echoes the friendly curves of the Clyde logo.
80
+
81
+ The 2021 rebrand brightened the original Blurple (`#7289DA`) into the more saturated, confident `#5865F2` seen today, and standardized a five-color "Discord palette" (Blurple, Green, Yellow, Fuchsia, Red) for accents, statuses, and illustration.
82
+
83
+ **Key Characteristics:**
84
+ - Blurple (`#5865F2`) as the universal interactive accent — buttons, links, mentions, active states
85
+ - Dark-mode-first product UI with layered slate-navy surfaces (`#1E1F22` → `#2B2D31` → `#313338`)
86
+ - gg sans proprietary typeface — rounded, geometric, warm; 6 weights
87
+ - Five-color brand palette: Blurple, Green, Yellow, Fuchsia, Red
88
+ - Bright, illustrative, playful marketing surface vs. focused dark product surface
89
+ - Generous rounded corners (4px–8px–16px scale) and pill buttons
90
+ - Mascot-driven personality (Wumpus, Clyde) and conversational copy
91
+
92
+ ## 2. Color Palette & Roles
93
+
94
+ ### Primary
95
+ - **Blurple** (`#5865F2`): Primary interactive color — CTAs, links, mentions, active channel, selected state, focus rings. The workhorse of every actionable element.
96
+ - **Blurple Hover** (`#4752C4`): Hover/pressed state for Blurple buttons. A darker, deeper Blurple.
97
+ - **Blurple Active** (`#3C45A5`): Pressed/active state, the deepest Blurple step.
98
+ - **White** (`#FFFFFF`): Primary text on dark surfaces, button labels on Blurple.
99
+
100
+ ### Brand Palette (Discord Five)
101
+ - **Blurple** (`#5865F2`): The signature. Brand and interaction.
102
+ - **Green** (`#57F287`): Success, online status, positive confirmation, Nitro accents.
103
+ - **Yellow** (`#FEE75C`): Idle status, highlights, playful accent, warnings (soft).
104
+ - **Fuchsia** (`#EB459E`): Nitro / premium accent, decorative pop, special moments.
105
+ - **Red** (`#ED4245`): Errors, destructive actions, Do Not Disturb status, mention badges.
106
+
107
+ ### Product Surfaces (Dark — default)
108
+ - **Background Tertiary** (`#1E1F22`): Server rail (left-most), deepest surface, also app chrome.
109
+ - **Background Secondary** (`#2B2D31`): Channel sidebar, member list — the second layer.
110
+ - **Background Primary** (`#313338`): Main chat area — the surface you read on.
111
+ - **Background Floating** (`#111214`): Tooltips, popouts, context menus — darker than primary for lift.
112
+ - **Background Modifier Hover** (`rgba(78,80,88,0.3)`): Row hover in lists and channels.
113
+ - **Background Modifier Selected** (`rgba(78,80,88,0.6)`): Selected channel/row background.
114
+
115
+ ### Product Surfaces (Light theme)
116
+ - **Background Primary** (`#FFFFFF`): Main chat area in light mode.
117
+ - **Background Secondary** (`#F2F3F5`): Channel sidebar in light mode.
118
+ - **Background Tertiary** (`#E3E5E8`): Server rail / deepest light surface.
119
+
120
+ ### Text (Dark theme)
121
+ - **Text Normal** (`#DBDEE1`): Primary body / message text. Soft off-white, not pure white, to reduce eye strain.
122
+ - **Header Primary** (`#F2F3F5`): Headings, usernames, strong labels.
123
+ - **Text Muted** (`#949BA4`): Timestamps, secondary metadata, placeholder, channel names (inactive).
124
+ - **Interactive Normal** (`#B5BAC1`): Default icon/interactive element color.
125
+ - **Interactive Hover** (`#DBDEE1`): Hovered icon/interactive element.
126
+ - **Text Link** (`#00A8FC`): Inline hyperlinks in messages (a brighter cyan-blue, distinct from Blurple).
127
+
128
+ ### Borders & Dividers
129
+ - **Border Subtle** (`rgba(255,255,255,0.06)`): Hairline dividers between sections.
130
+ - **Border Strong** (`#1E1F22`): Channel/server separators, input outlines on dark.
131
+ - **Input Background** (`#1E1F22`): Message box and form input fill on dark.
132
+
133
+ ## 3. Typography Rules
134
+
135
+ ### Font Family
136
+ - **Primary**: `"gg sans", "Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif`
137
+ - **Display (marketing)**: `"ginto", "gg sans", sans-serif` — Discord uses a Ginto-family display face for big marketing headlines.
138
+ - **Monospace (code blocks)**: `"gg mono", Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", Menlo, Monaco, monospace`
139
+ - **Emoji**: Native platform emoji plus Discord's custom emoji rendering.
140
+
141
+ gg sans ships in six weights: 300 (Light), 400 (Normal), 500 (Medium), 600 (Semibold), 700 (Bold), 800 (Extrabold). The product UI primarily uses 400, 500, 600, and 700.
142
+
143
+ ### Hierarchy
144
+
145
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
146
+ |------|------|------|--------|-------------|----------------|-------|
147
+ | Marketing Hero | ginto / gg sans | 56px | 800 | 1.1 | -0.02em | Landing page headline |
148
+ | Display Large | gg sans | 32px | 700 | 40px (1.25) | -0.01em | Modal titles, big moments |
149
+ | Heading 1 | gg sans | 24px | 700 | 30px (1.25) | normal | Section headers |
150
+ | Heading 2 | gg sans | 20px | 600 | 26px (1.30) | normal | Sub-sections, settings groups |
151
+ | Channel Name | gg sans | 16px | 600 | 20px (1.25) | normal | Channel/server headers |
152
+ | Body Large | gg sans | 16px | 400 | 22px (1.375) | normal | Message text, descriptions |
153
+ | Body | gg sans | 14px | 400 | 18px (1.29) | normal | Standard UI text, list items |
154
+ | Label | gg sans | 12px | 600 | 16px (1.33) | 0.02em | Section labels (UPPERCASE) |
155
+ | Caption | gg sans | 12px | 400 | 16px (1.33) | normal | Timestamps, helper text |
156
+ | Code | gg mono | 14px | 400 | 18px (1.29) | normal | Inline code, code blocks |
157
+
158
+ ### Principles
159
+ - **Soft white, not pure white**: Body text is `#DBDEE1`, never `#FFFFFF`, on dark surfaces — reduces glare during long chat sessions.
160
+ - **Uppercase micro-labels**: Section labels (CHANNELS, ONLINE — 14, etc.) use 12px/600 uppercase with `0.02em` tracking for scannable structure.
161
+ - **Weight, not size, for emphasis**: Usernames and headers lean on 600/700 weight rather than dramatically larger sizes — the chat stays dense and readable.
162
+ - **Rounded warmth**: gg sans's rounded terminals carry the brand's friendliness into every line of text without extra ornament.
163
+
164
+ ## 4. Component Stylings
165
+
166
+ ### Buttons
167
+
168
+ Discord buttons are filled, borderless, and pill-to-rounded. Default height is 38px (medium); a 32px small and a 44px large also exist. Radius is 8px for standard buttons (Discord moved toward more rounded buttons post-rebrand; many primary CTAs are fully pill-shaped on marketing).
169
+
170
+ **Primary (Brand)**
171
+ - Background: `#5865F2`
172
+ - Text: `#FFFFFF`
173
+ - Border: none
174
+ - Radius: 8px
175
+ - Padding: 2px 16px (min-height 38px)
176
+ - Font: 14px / 500 / gg sans
177
+ - Hover: background `#4752C4`
178
+ - Active: background `#3C45A5`
179
+ - Disabled: opacity 0.5, no pointer
180
+ - Use: Primary action — Send, Confirm, Join Server, Continue
181
+
182
+ **Secondary (Grey)**
183
+ - Background: `#4E5058`
184
+ - Text: `#FFFFFF`
185
+ - Border: none
186
+ - Radius: 8px
187
+ - Padding: 2px 16px
188
+ - Font: 14px / 500 / gg sans
189
+ - Hover: background `#6D6F78`
190
+ - Use: Neutral secondary action paired with Primary (Cancel-adjacent, Back)
191
+
192
+ **Success (Green)**
193
+ - Background: `#248046`
194
+ - Text: `#FFFFFF`
195
+ - Border: none
196
+ - Radius: 8px
197
+ - Font: 14px / 500 / gg sans
198
+ - Hover: background `#1A6334`
199
+ - Use: Positive confirm (Accept Invite, Complete)
200
+
201
+ **Destructive (Red)**
202
+ - Background: `#DA373C`
203
+ - Text: `#FFFFFF`
204
+ - Border: none
205
+ - Radius: 8px
206
+ - Font: 14px / 500 / gg sans
207
+ - Hover: background `#A12828`
208
+ - Use: Delete, Leave Server, Ban, Kick
209
+
210
+ **Link / Ghost**
211
+ - Background: transparent
212
+ - Text: `#FFFFFF` (underline on hover)
213
+ - Border: none
214
+ - Padding: 2px 4px
215
+ - Font: 14px / 500 / gg sans
216
+ - Use: Tertiary action, "No thanks", subtle cancel inside modals
217
+
218
+ **Outline**
219
+ - Background: transparent
220
+ - Text: `#FFFFFF`
221
+ - Border: 1px solid `#4E5058`
222
+ - Radius: 8px
223
+ - Use: Secondary marketing CTA, low-emphasis action on dark
224
+
225
+ **Marketing CTA (Pill)**
226
+ - Background: `#FFFFFF` (on Blurple section) or `#5865F2` (on white section)
227
+ - Text: `#23272A` on white / `#FFFFFF` on Blurple
228
+ - Radius: 28px (fully pill)
229
+ - Padding: 16px 32px
230
+ - Font: 20px / 500 / gg sans
231
+ - Hover: subtle shadow lift + 1.02 scale
232
+ - Use: "Download" / "Open Discord in your browser" landing CTAs
233
+
234
+ ### Inputs
235
+
236
+ **Text Input (dark)**
237
+ - Background: `#1E1F22`
238
+ - Text: `#DBDEE1`
239
+ - Border: 1px solid `#1E1F22` (default), `#5865F2` on focus
240
+ - Radius: 4px
241
+ - Padding: 10px 12px
242
+ - Font: 16px / 400 / gg sans
243
+ - Placeholder: `#87898C`
244
+ - Use: Settings forms, search, login fields
245
+
246
+ **Message Box**
247
+ - Background: `#383A40`
248
+ - Text: `#DBDEE1`
249
+ - Border: none
250
+ - Radius: 8px
251
+ - Padding: 11px 16px
252
+ - Font: 16px / 400 / gg sans
253
+ - Placeholder: `#6D6F78` ("Message #general")
254
+ - Use: The chat composer — the most-used input in the app
255
+
256
+ **Error Input**
257
+ - Background: `#1E1F22`
258
+ - Border: 1px solid `#FA777C`
259
+ - Radius: 4px
260
+ - Helper text: `#FA777C` 12px below
261
+ - Use: Validation error state, paired with inline message
262
+
263
+ ### Cards / Panels
264
+
265
+ **Embed (link/bot card)**
266
+ - Background: `#2B2D31`
267
+ - Border-left: 4px solid `#5865F2` (color customizable per embed)
268
+ - Radius: 4px
269
+ - Padding: 16px
270
+ - Use: Rich link previews, bot responses, announcements
271
+
272
+ **Settings Card**
273
+ - Background: `#2B2D31`
274
+ - Border: none
275
+ - Radius: 8px
276
+ - Padding: 16px 20px
277
+ - Use: Grouped settings rows, account panels
278
+
279
+ **Modal**
280
+ - Background: `#313338`
281
+ - Border: none
282
+ - Radius: 8px
283
+ - Padding: 16px (header) / 0 16px (body) / 16px (footer `#2B2D31`)
284
+ - Shadow: `0 8px 16px rgba(0,0,0,0.24)`
285
+ - Use: Confirmation dialogs, server settings, invite flows
286
+
287
+ ### Badges & Pills
288
+
289
+ **Mention Badge (unread count)**
290
+ - Background: `#F23F43` (red)
291
+ - Text: `#FFFFFF`
292
+ - Radius: 9999px (pill)
293
+ - Padding: 0 4px (min 16px)
294
+ - Font: 12px / 700 / gg sans
295
+ - Use: Unread mention/DM counter on server icons and channels
296
+
297
+ **Nitro / Premium Badge**
298
+ - Background: `#5865F2` or gradient toward `#EB459E`
299
+ - Text: `#FFFFFF`
300
+ - Radius: 4px
301
+ - Font: 12px / 600 / gg sans
302
+ - Use: Nitro tags, boosted badges
303
+
304
+ **Status Pill**
305
+ - Online `#23A55A`, Idle `#F0B232`, DND `#F23F43`, Offline `#80848E`
306
+ - Radius: 9999px (dot, 10px diameter with `#2B2D31` ring)
307
+ - Use: Presence indicator on avatars
308
+
309
+ ### Tabs
310
+
311
+ **Settings Sidebar Item (Active)**
312
+ - Background: `#404249`
313
+ - Text: `#FFFFFF`
314
+ - Radius: 4px
315
+ - Padding: 6px 10px
316
+ - Font: 16px / 500 / gg sans
317
+ - Inactive: text `#B5BAC1`, transparent bg; hover `#35373C` bg + `#DBDEE1` text
318
+
319
+ **Channel Item (Active)**
320
+ - Background: `rgba(78,80,88,0.6)`
321
+ - Text/Icon: `#FFFFFF`
322
+ - Left indicator: 8px white pill on the server rail for active server
323
+ - Radius: 4px
324
+ - Inactive: text `#949BA4`; hover `rgba(78,80,88,0.3)` + `#DBDEE1`
325
+
326
+ ### Tooltips
327
+
328
+ - Background: `#111214`
329
+ - Text: `#F2F3F5`
330
+ - Radius: 8px
331
+ - Padding: 8px 12px
332
+ - Font: 14px / 600 / gg sans
333
+ - Shadow: `0 4px 8px rgba(0,0,0,0.24)`
334
+ - Arrow: 6px triangle matching background
335
+ - Use: Hover hints on icons, server names on the rail
336
+
337
+ ### Toasts / Notifications
338
+
339
+ - Background: `#111214`
340
+ - Text: `#DBDEE1`
341
+ - Radius: 8px
342
+ - Padding: 12px 16px
343
+ - Shadow: `0 8px 16px rgba(0,0,0,0.24)`
344
+ - Accent: 4px left border in status color (Blurple/Green/Red)
345
+ - Use: Transient confirmations, connection status
346
+
347
+ ### Toggles
348
+
349
+ - Track On: `#23A55A` (green) — Discord toggles go green when active, not Blurple
350
+ - Track Off: `#80848E`
351
+ - Thumb: `#FFFFFF` circle with subtle inner shadow; on-state shows a check glyph
352
+ - Radius: 9999px (pill track, ~40px wide × 24px tall)
353
+ - Use: Boolean settings (notifications, privacy switches)
354
+
355
+
356
+ **Tier 1 sources:** https://discord.com (live production site, verified via live DOM getComputedStyle).
357
+
358
+ ## 5. Layout Principles
359
+
360
+ ### Spacing System
361
+ - Base unit: 4px
362
+ - Common values: 4px, 8px, 12px, 16px, 20px, 24px, 32px, 40px
363
+ - Message vertical rhythm: 16px group gap, tight 2px within a grouped message run
364
+ - Sidebar item spacing: 2px between channels, 8px between channel categories
365
+
366
+ ### Grid & Container (Product)
367
+ - **Three-panel shell**: Server rail (72px fixed) → Channel sidebar (240px) → Main content (flex) → optional Member list (240px)
368
+ - Server rail icons: 48px rounded-squircle, 8px gap
369
+ - Content max readability width is not capped — chat fills available space, messages left-aligned full-bleed
370
+
371
+ ### Grid & Container (Marketing)
372
+ - Centered content, max-width ~1260px
373
+ - Generous vertical section padding (80–120px)
374
+ - Alternating Blurple / white / off-white full-bleed bands
375
+
376
+ ### Whitespace Philosophy
377
+ - **Density where it counts**: Chat is information-dense (you want to see history); settings and onboarding are spacious and calm.
378
+ - **Panels as physical layers**: The three surface shades create depth without shadows — the eye reads `#1E1F22` < `#2B2D31` < `#313338` as receding-to-near.
379
+ - **Marketing breathes loud**: Big type, big illustrations, big Blurple fields — the opposite of the focused product.
380
+
381
+ ### Border Radius Scale
382
+ - Tight (4px): Inputs, embeds, channel items, small chips
383
+ - Standard (8px): Buttons, modals, cards, tooltips
384
+ - Squircle (16px): Server icons, avatars (hover morphs circle→squircle)
385
+ - Pill (9999px): Status dots, mention badges, marketing CTAs, toggles
386
+
387
+ ## 6. Depth & Elevation
388
+
389
+ | Level | Treatment | Use |
390
+ |-------|-----------|-----|
391
+ | Base (Level 0) | Surface color only (`#313338`) | Main chat, page background |
392
+ | Layer (Level 1) | Adjacent darker surface (`#2B2D31`) | Sidebars, cards — depth via color, not shadow |
393
+ | Floating (Level 2) | `0 4px 8px rgba(0,0,0,0.24)` on `#111214` | Tooltips, popouts, context menus |
394
+ | Modal (Level 3) | `0 8px 16px rgba(0,0,0,0.24)` on `#313338` | Dialogs, settings overlays |
395
+ | High (Level 4) | `0 12px 32px rgba(0,0,0,0.36)` | Full-screen modals, image lightbox |
396
+
397
+ **Shadow Philosophy**: In dark mode, Discord communicates elevation primarily through *surface color stepping* rather than shadow — a floating panel is darker (`#111214`) than the surface it sits on (`#313338`), which reads as lifted. Shadows are reserved for true overlays (menus, modals) and are soft, pure-black, low-opacity. Marketing surfaces use slightly more playful drop shadows and a faint Blurple glow on hovered CTAs.
398
+
399
+ ### Blur & Overlay
400
+ - Modal scrim: `rgba(0,0,0,0.85)` behind dialogs
401
+ - Streamer-mode / spoiler blur: heavy gaussian blur revealed on click
402
+ - No frosted-glass chrome in the core product — surfaces are opaque for performance and clarity
403
+
404
+ ## 7. Do's and Don'ts
405
+
406
+ ### Do
407
+ - Use Blurple (`#5865F2`) for the single primary action and all interactive accents
408
+ - Build the product UI dark-first with the three layered surfaces (`#1E1F22` / `#2B2D31` / `#313338`)
409
+ - Use soft white (`#DBDEE1`) for body text, reserving pure white for headers/usernames
410
+ - Use green (`#23A55A`) for toggles and online status, not Blurple
411
+ - Keep buttons filled and borderless with 8px radius; pill (9999px) for marketing CTAs
412
+ - Round server icons into squircles (16px) and avatars into circles
413
+ - Use the five-color brand palette for status, illustration, and accents
414
+ - Let the marketing surface be loud, illustrated, and Wumpus-friendly
415
+
416
+ ### Don't
417
+ - Don't use the legacy Blurple (`#7289DA`) — the brand moved to `#5865F2` in 2021
418
+ - Don't put Blurple on toggles or success states — those are green
419
+ - Don't use pure white (`#FFFFFF`) for long-form body text on dark surfaces
420
+ - Don't rely on heavy shadows in-product — depth comes from surface stepping
421
+ - Don't mix the playful marketing tone into destructive/safety flows — those stay clear and calm
422
+ - Don't crowd the chat with chrome — keep the three-panel shell clean
423
+ - Don't recolor status dots arbitrarily — green/yellow/red/grey are fixed semantics
424
+
425
+ ## 8. Responsive Behavior
426
+
427
+ ### Breakpoints
428
+ | Name | Width | Key Changes |
429
+ |------|-------|-------------|
430
+ | Mobile | <768px | Single panel at a time; swipe between server rail, channels, chat, members |
431
+ | Tablet | 768–1024px | Two panels visible; member list collapses to a toggle |
432
+ | Desktop | >1024px | Full three/four-panel shell |
433
+
434
+ ### Touch Targets
435
+ - Mobile rows and buttons: minimum 44px tall
436
+ - Server icons: 48px tap target with 8px spacing
437
+ - Message action buttons appear on long-press (mobile) / hover (desktop)
438
+
439
+ ### Collapsing Strategy
440
+ - Member list (240px) is the first to collapse on narrowing
441
+ - Channel sidebar becomes a swipe-in drawer on mobile
442
+ - Marketing layout reflows multi-column feature grids to single column under 768px
443
+ - Modals become full-screen sheets on mobile
444
+
445
+ ### Image & Media Behavior
446
+ - Avatars: 32px (message), 40px (member list), 80px+ (profile) — always circular
447
+ - Server icons: 48px squircle, fall back to initials on `#5865F2` if no image
448
+ - Inline media: max-width constrained, click to expand to lightbox
449
+ - Illustrations (marketing): SVG, scale fluidly, Wumpus and friends anchor each section
450
+
451
+ ## 9. Agent Prompt Guide
452
+
453
+ ### Quick Color Reference
454
+ - Primary CTA: Blurple (`#5865F2`)
455
+ - CTA Hover: Blurple Dark (`#4752C4`)
456
+ - Surface (chat): `#313338`
457
+ - Surface (sidebar): `#2B2D31`
458
+ - Surface (rail/floating): `#1E1F22` / `#111214`
459
+ - Body text: Soft White (`#DBDEE1`)
460
+ - Heading text: `#F2F3F5`
461
+ - Muted text: `#949BA4`
462
+ - Link: Cyan-Blue (`#00A8FC`)
463
+ - Success / Online: Green (`#23A55A` / `#57F287`)
464
+ - Error / DND: Red (`#ED4245` / `#F23F43`)
465
+ - Idle / Highlight: Yellow (`#F0B232` / `#FEE75C`)
466
+ - Premium: Fuchsia (`#EB459E`)
467
+
468
+ ### Example Component Prompts
469
+ - "Create a Discord message row: dark surface `#313338`, 40px circular avatar, username in `#F2F3F5` 16px weight 600 next to timestamp `#949BA4` 12px, message body `#DBDEE1` 16px weight 400. Hover: row bg `rgba(78,80,88,0.3)` with action icons appearing top-right."
470
+ - "Build a primary button: `#5865F2` bg, white 14px weight 500 text, 8px radius, 2px 16px padding, 38px min-height. Hover `#4752C4`, active `#3C45A5`, disabled opacity 0.5."
471
+ - "Design the channel sidebar: `#2B2D31` bg, 240px wide. Category labels uppercase 12px weight 600 `#949BA4` with 0.02em tracking. Channel items 16px `#949BA4`, hover `rgba(78,80,88,0.3)`, active `rgba(78,80,88,0.6)` with white text."
472
+ - "Create a message composer: `#383A40` bg, 8px radius, 11px 16px padding, placeholder `#6D6F78` reading 'Message #general', text `#DBDEE1` 16px."
473
+ - "Make a server rail: 72px wide `#1E1F22`, 48px squircle icons (16px radius) with 8px gaps. Active server shows an 8px white pill on the left edge. Hover morphs the icon from circle to squircle."
474
+
475
+ ### Iteration Guide
476
+ 1. Default to dark mode with the three layered surfaces; light mode is a secondary theme.
477
+ 2. Blurple (`#5865F2`) is the one interactive accent — green is for toggles/status, not actions.
478
+ 3. Body text is soft white `#DBDEE1`; headers/usernames are `#F2F3F5`; metadata `#949BA4`.
479
+ 4. gg sans throughout, weights 400/500/600/700; uppercase 12px/600 for section labels.
480
+ 5. Radius: 4px inputs/embeds, 8px buttons/cards/modals, 16px server icons, pill for badges/CTAs.
481
+ 6. Depth via surface stepping, not shadow — overlays get soft black low-opacity shadows.
482
+ 7. Marketing surfaces flip to bright Blurple/white with big pill CTAs and Wumpus illustration.
483
+
484
+ ## 10. Voice & Tone
485
+
486
+ Discord writes like the friend who runs the group chat — casual, warm, lowercase-comfortable, in on the joke, but never confusing when it matters. The brand voice leans playful ("Group chat that's all fun & games," "hop in when you're free, no need to call") and leans on its mascots (Wumpus, Clyde, Nelly) for personality. But the voice is situational: it gets out of the way in safety, billing, and destructive flows, where copy turns plain and direct.
487
+
488
+ | Context | Tone |
489
+ |---|---|
490
+ | Marketing headlines | Playful, lowercase-leaning, community-first ("imagine a place...") |
491
+ | CTAs | Short, inviting verbs ("Open Discord", "Join", "Add Friend", "Send") |
492
+ | Empty states | Friendly + Wumpus illustration + one suggested action ("It's quiet here... for now.") |
493
+ | Success messages | Light, brief, occasionally cheeky ("Friend request sent!") |
494
+ | Error messages | Plain and specific — playful tone drops ("Something went wrong. Try again.") |
495
+ | Safety / Trust & Safety | Direct, serious, no jokes — clarity over personality |
496
+ | Billing / Nitro | Clear value framing, gentle excitement, never pressure |
497
+ | Notifications | Concise, scannable, who-did-what-where |
498
+
499
+ **Forbidden in serious flows.** No memes, no Wumpus, no exclamation-stacking in safety, account-security, payment-failure, or moderation copy. The playful voice is a feature of discovery and community surfaces, not of consequence surfaces.
500
+
501
+ ## 11. Brand Narrative
502
+
503
+ Discord was founded in **2015** by **Jason Citron** and **Stan Vishnevskiy**, born out of the frustration that existing voice-chat tools (Skype, TeamSpeak, Ventrilo) were clunky for gaming with friends. The original wedge was simple: low-latency voice chat that just worked while you played. From there it grew into "your place to talk" — a platform of community-run **servers** organized into **channels** for text, voice, and video.
504
+
505
+ The brand's central metaphor is the *clubhouse*: a place that's yours and your friends', persistent, low-pressure, drop-in. The product design encodes this — the three-panel shell is a literal building (rail of buildings → rooms inside → the room you're in), and the dark, focused UI keeps the spotlight on conversation. The mascot **Clyde** (and the rounded logo built from his face) gives the whole system its friendly geometry; **Wumpus**, the wide-eyed blob, is the marketing heart.
506
+
507
+ The **2021 rebrand** was a pivotal design moment. Discord broadened from "for gamers" to "for everyone — communities of any kind," and the visual system grew up with it: the new brighter Blurple (`#5865F2`), the proprietary **gg sans** typeface replacing licensed fonts, a five-color palette, and a more illustration-forward marketing language. The rebrand kept the playfulness but added range — the system could now be loud and inviting on the landing page and calm and focused in the app.
508
+
509
+ What Discord refuses: the sterile minimalism of enterprise chat (Slack's neutrality, Teams' corporate gray), and the attention-hungry feed mechanics of social media. There is no algorithmic feed, no like-count dopamine loop. The design's job is to make a *room feel alive* without making it feel like a product trying to capture you. Blurple is friendly, not urgent; the dark surfaces are a place to settle in, not a dashboard to monitor.
510
+
511
+ ## 12. Principles
512
+
513
+ 1. **The conversation is the product.** Chrome recedes (dark layered surfaces) so the message column is always the brightest, most legible thing on screen.
514
+ 2. **One accent, used sparingly.** Blurple marks the primary action and live state. Overusing it would dilute the one color the brand owns. Status uses its own fixed semantic colors.
515
+ 3. **Depth by layering, not shadow.** Three surface shades build a sense of physical panels. Reserve shadows for true overlays.
516
+ 4. **Soft on the eyes.** Long chat sessions demand soft white text and muted contrast steps — never pure-white walls of text.
517
+ 5. **Playful where you explore, plain where it counts.** Personality (Wumpus, jokes, lowercase warmth) lives on discovery and community surfaces; safety, billing, and destructive flows are direct and calm.
518
+ 6. **Rounded everywhere.** From gg sans's terminals to server squircles to pill CTAs, the friendly curve is the through-line. Sharp corners feel off-brand.
519
+ 7. **Status has fixed meaning.** Green = online/success, Yellow = idle, Red = DND/error, Grey = offline. These never get reassigned for decoration.
520
+ 8. **Communities, not feeds.** No infinite scroll of strangers, no engagement bait. The design serves the room the user chose to be in.
521
+
522
+ ## 13. Personas
523
+
524
+ *Personas below are fictional archetypes informed by publicly described Discord user segments, not individual people.*
525
+
526
+ **Maya, 19, Austin TX.** College sophomore who runs a 400-member server for her art community. Lives in dark mode, switches between five servers a day, and treats Discord as her primary social home — more than Instagram. She notices when a server icon's mention badge turns red and triages by color. She expects new features to feel native and unobtrusive; an intrusive popup gets dismissed in half a second. Heavy emoji and custom-sticker user; personality matters as much as function.
527
+
528
+ **Devon, 27, Seattle.** Backend engineer who uses Discord for three things: a gaming friend group, two open-source project servers, and a hobby mechanical-keyboard community. Values low-latency voice above all (it's why he came), keeps notifications tightly tuned, and reads code blocks in `gg mono` daily. Skeptical of feature bloat — he wants the clubhouse to stay a clubhouse, not become a platform that monetizes his attention. Will pay for Nitro for the quality-of-life perks, not the flex.
529
+
530
+ **Priya, 34, London.** Community manager who administers a 12,000-member server for a creator. Lives in moderation tools, audit logs, and role/permission settings. For her the playful tone must never leak into safety and moderation surfaces — she needs clear, unambiguous controls. Cares about onboarding flows (rules screens, verification) being legible to brand-new members. Uses the desktop app on a wide monitor with all four panels open.
531
+
532
+ ## 14. States
533
+
534
+ | State | Treatment |
535
+ |---|---|
536
+ | **Empty (no messages)** | Wumpus illustration centered, friendly one-liner in `#949BA4` ("This is the start of the #channel channel."), no hard CTA — the message box invites the first message. |
537
+ | **Empty (no friends/DMs)** | Larger Wumpus illustration, headline in `#F2F3F5`, single Blurple "Add Friend" button. Warm, inviting copy. |
538
+ | **Loading (first paint)** | Skeleton blocks in `#3A3C42` matching message-row layout (avatar circle + text bars). Subtle shimmer. Server rail and sidebars paint first. |
539
+ | **Loading (sending message)** | Message appears immediately in a dimmed `opacity: 0.6` state; resolves to full opacity on server ack. Fails to a red retry affordance. |
540
+ | **Error (inline field)** | `#FA777C` 1px border on input, helper text below in `#FA777C` 12px. One clear sentence. |
541
+ | **Error (connection)** | Top banner in `#F0B232` (reconnecting) or `#F23F43` (offline) with white text, spans the chat width, auto-clears on reconnect. |
542
+ | **Error (action failed)** | Toast on `#111214`, `#DBDEE1` text, red left accent, plain copy ("Couldn't send. Try again."). No jokes. |
543
+ | **Success (friend added / settings saved)** | Brief toast or inline green flash; a "Saved" pill in `#23A55A`. Settings pages show a sticky "Careful — you have unsaved changes!" bar in `#1E1F22` until saved. |
544
+ | **Presence states** | Online `#23A55A`, Idle `#F0B232` (crescent), DND `#F23F43` (minus bar), Offline `#80848E`, Streaming `#593695` (purple). Dot has a `#2B2D31` ring against the surface. |
545
+ | **Disabled** | Buttons drop to `opacity: 0.5`, no hover, `cursor: not-allowed`. Inputs keep border geometry, text greys to `#87898C`. |
546
+ | **Hover (message row)** | Row bg shifts to `rgba(78,80,88,0.3)`, action toolbar (react, reply, more) fades in top-right over `motion-fast`. |
547
+ | **Spoiler / NSFW** | Content covered by heavy blur + `#202225` overlay, revealed on click. Streamer mode auto-blurs sensitive UI. |
548
+
549
+ ## 15. Motion & Easing
550
+
551
+ **Durations:**
552
+
553
+ | Token | Value | Use |
554
+ |---|---|---|
555
+ | `motion-instant` | 0ms | Theme toggles, immediate state flips |
556
+ | `motion-fast` | 100ms | Hover reveals, tooltip show, icon color change, message action toolbar |
557
+ | `motion-standard` | 200ms | The default — popouts, dropdowns, tab switches, badge pop |
558
+ | `motion-emphasis` | 300ms | Modal open, settings page transitions, panel slides |
559
+ | `motion-page` | 350ms | Mobile panel swipes, full-screen sheet presentation |
560
+
561
+ **Easings:**
562
+
563
+ | Token | Curve | Use |
564
+ |---|---|---|
565
+ | `ease-enter` | `cubic-bezier(0.0, 0.0, 0.2, 1)` | Things appearing — popouts, tooltips, modals |
566
+ | `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Things leaving — dismissals, closing menus |
567
+ | `ease-standard` | `cubic-bezier(0.4, 0.0, 0.2, 1)` | Two-way transitions — accordions, tab content |
568
+ | `ease-bounce` | `cubic-bezier(0.34, 1.56, 0.64, 1)` | Playful overshoot — server-icon squircle morph, mention-badge pop, emoji reactions |
569
+
570
+ **Signature motions.**
571
+
572
+ 1. **Squircle morph.** Hovering or selecting a server icon morphs its border-radius from a full circle to a 16px squircle over `motion-standard / ease-bounce`. A white pill simultaneously grows on the left rail edge (4px idle → 40px active). This is the single most recognizable Discord micro-interaction.
573
+ 2. **Mention badge pop.** A new unread mention scales the red badge from 0 → 1.0 with a slight overshoot (`ease-bounce`, `motion-standard`). Reactions and emoji additions use the same bounce.
574
+ 3. **Message action toolbar.** On row hover, the react/reply/more toolbar fades and slides 4px into place over `motion-fast / ease-enter` — fast enough to feel instant, smooth enough to feel intentional.
575
+ 4. **Popout & modal.** Context menus and popouts scale from `0.95 → 1.0` with opacity `0 → 1` over `motion-standard / ease-enter`; modals additionally fade in a `rgba(0,0,0,0.85)` scrim. Dismissals use `motion-fast / ease-exit`.
576
+ 5. **Reduce motion.** Under `prefers-reduced-motion: reduce`, bounce easings collapse to `ease-standard`, slides become fades, and the squircle morph becomes an instant radius change. The app stays fully usable.
577
+
578
+ <!--
579
+ OmD v0.1 Sources
580
+
581
+ Direct verification (2026-06-06):
582
+ - WebFetch https://discord.com — confirms dark-mode-first product surface, Blurple
583
+ brand accent, playful/community marketing voice ("group chat that's all fun &
584
+ games", "find your friends on discord"), mascot references (Wumpus, Clyde, Nelly),
585
+ filled borderless button approach, rounded UI.
586
+ - WebSearch (Discord branding / color sources: discord.com/branding,
587
+ color-name.com, mobbin.com, colorxs.com) — confirms Blurple #5865F2 (2021 rebrand
588
+ from legacy #7289DA), five-color palette Green #57F287 / Yellow #FEE75C /
589
+ Fuchsia #EB459E / Red #ED4245, custom rounded sans-serif (gg sans), Clyde logo.
590
+
591
+ Token-level product surface values (#1E1F22 / #2B2D31 / #313338 surfaces,
592
+ #DBDEE1 text, status greens/reds, message-box #383A40, hover rgba(78,80,88,*))
593
+ reflect Discord's widely-documented dark-theme design tokens and are standard
594
+ across the public Discord client; treated as authoritative for this reference.
595
+
596
+ gg sans, gg mono, and the Ginto display family are Discord's publicly-known
597
+ proprietary type choices introduced/used post-2021 rebrand.
598
+
599
+ Personas (§13) are fictional archetypes informed by publicly described Discord
600
+ user segments. Any resemblance to specific individuals is unintended.
601
+
602
+ Interpretive claims (e.g., "depth by layering, not shadow", clubhouse metaphor)
603
+ are editorial readings of the design, not documented Discord statements.
604
+ -->