oh-my-design-cli 1.6.7 → 1.7.1

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 (229) hide show
  1. package/README.ko.md +17 -36
  2. package/README.md +6 -6
  3. package/agents/AGENT.md +3 -3
  4. package/agents/omd-master.md +7 -7
  5. package/agents/omd-microcopy.md +1 -1
  6. package/agents/omd-ux-researcher.md +1 -1
  7. package/data/reference-fingerprints.json +1318 -10
  8. package/package.json +1 -1
  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
@@ -0,0 +1,635 @@
1
+ ---
2
+ id: slack
3
+ name: Slack
4
+ country: US
5
+ category: productivity
6
+ homepage: "https://slack.com"
7
+ primary_color: "#4A154B"
8
+ logo:
9
+ type: favicon
10
+ slug: "https://slack.com/favicon.ico"
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: "#4A154B"
19
+ primary-hover: "#611F69"
20
+ primary-active: "#7C3085"
21
+ brand: "#4A154B"
22
+ canvas: "#FFFFFF"
23
+ foreground: "#1D1C1D"
24
+ body: "#616061"
25
+ muted: "#868686"
26
+ on-primary: "#FFFFFF"
27
+ cta-green: "#007A5A"
28
+ cta-green-hover: "#148567"
29
+ link: "#1264A3"
30
+ error: "#E01E5A"
31
+ warning: "#ECB22E"
32
+ success: "#2BAC76"
33
+ accent-blue: "#36C5F0"
34
+ accent-green: "#2EB67D"
35
+ accent-yellow: "#ECB22E"
36
+ surface: "#F8F8F8"
37
+ hairline: "#E8E8E8"
38
+ sidebar: "#3F0E40"
39
+ typography:
40
+ family: { sans: "Lato", mono: "Monaco" }
41
+ display-hero: { size: 56, weight: 900, lineHeight: 1.14, tracking: -0.02, use: "Marketing hero headlines (Larsseit)" }
42
+ display-lg: { size: 44, weight: 700, lineHeight: 1.18, tracking: -0.01, use: "Section headers (web)" }
43
+ heading-1: { size: 32, weight: 700, lineHeight: 1.25, use: "Page titles" }
44
+ heading-2: { size: 24, weight: 700, lineHeight: 1.33, use: "Sub-sections, modal titles" }
45
+ heading-3: { size: 18, weight: 700, lineHeight: 1.44, use: "Card titles, channel headers" }
46
+ subtitle: { size: 16, weight: 700, lineHeight: 1.50, use: "List headers, emphasized labels" }
47
+ body-lg: { size: 16, weight: 400, lineHeight: 1.50, use: "Marketing body, descriptions" }
48
+ body: { size: 15, weight: 400, lineHeight: 1.46, use: "Message text — the workhorse" }
49
+ body-sm: { size: 13, weight: 400, lineHeight: 1.38, use: "Secondary info, metadata" }
50
+ caption: { size: 12, weight: 400, lineHeight: 1.33, use: "Timestamps, fine print" }
51
+ code: { size: 12, weight: 400, lineHeight: 1.50, use: "Inline code, code blocks (Monaco)" }
52
+ spacing: { xs: 4, sm: 8, md: 12, base: 16, lg: 24, xl: 32, xxl: 48 }
53
+ rounded: { sm: 4, md: 8, lg: 12, full: 9999 }
54
+ shadow:
55
+ card: "0 1px 3px rgba(0,0,0,0.08)"
56
+ feature: "0 4px 16px rgba(0,0,0,0.10)"
57
+ popover: "0 4px 12px rgba(0,0,0,0.12)"
58
+ modal: "0 18px 48px rgba(0,0,0,0.35)"
59
+ components_harvested: true
60
+ components:
61
+ button-primary: { type: button, bg: "#007A5A", fg: "#FFFFFF", radius: "4px", padding: "0 16px", height: "44px", font: "18px / 900", hover: "#148567", use: "Primary marketing CTA" }
62
+ button-aubergine: { type: button, bg: "#4A154B", fg: "#FFFFFF", radius: "4px", padding: "0 16px", font: "18px / 900", hover: "#611F69", use: "Brand-forward CTA on white" }
63
+ button-outline: { type: button, bg: "transparent", fg: "#4A154B", border: "1px solid #4A154B", radius: "4px", padding: "0 16px", font: "18px / 700", hover: "8% aubergine tint fill", use: "Secondary marketing action" }
64
+ button-product: { type: button, bg: "#007A5A", fg: "#FFFFFF", border: "1px solid transparent", radius: "4px", padding: "0 12px", height: "36px", font: "15px / 900", hover: "#148567", use: "In-app confirm (Send, Create channel)" }
65
+ button-danger: { type: button, bg: "#E01E5A", fg: "#FFFFFF", radius: "4px", padding: "0 12px", font: "15px / 900", hover: "darken 8%", disabled: "opacity 0.5", use: "Destructive confirm" }
66
+ input: { type: input, bg: "#FFFFFF", fg: "#1D1C1D", border: "1px solid rgba(29,28,29,0.3)", radius: "4px", padding: "11px 12px", font: "15px / 400", focus: "border #1264A3 + 0 0 0 1px #1264A3", use: "Standard form input" }
67
+ composer: { type: input, bg: "#FFFFFF", fg: "#1D1C1D", border: "1px solid rgba(29,28,29,0.3)", radius: "8px", padding: "8px 12px", font: "15px / 400", focus: "border rgba(29,28,29,0.5), inner shadow", use: "Message composer" }
68
+ card: { type: card, bg: "#FFFFFF", border: "1px solid #E8E8E8", radius: "8px", padding: "24px", shadow: "0 1px 3px rgba(0,0,0,0.08)", use: "Content panels, feature cards" }
69
+ badge-unread: { type: badge, bg: "#CD2553", fg: "#FFFFFF", radius: "9999px", padding: "1px 6px", font: "12px / 700", use: "Channel/DM unread count" }
70
+ badge-status: { type: badge, bg: "#F8F8F8", fg: "#616061", border: "1px solid #E8E8E8", radius: "12px", padding: "2px 10px", font: "13px / 700", use: "NEW, custom status, app labels" }
71
+ tab-sidebar: { type: tab, bg: "transparent", fg: "rgba(255,255,255,0.7)", active: "bg #1164A3, text #FFFFFF", hover: "bg rgba(255,255,255,0.1)", font: "15px / 700", use: "Channel list in sidebar" }
72
+ tab-segmented: { type: tab, bg: "transparent", fg: "#616061", active: "text #1D1C1D, 2px bottom border #4A154B", font: "15px / 700", use: "Threads/Mentions/Saved switching" }
73
+ toast: { type: toast, bg: "#1D1C1D", fg: "#FFFFFF", radius: "8px", padding: "12px 16px", shadow: "0 4px 12px rgba(0,0,0,0.2)", font: "15px / 400", use: "Transient confirmation" }
74
+ banner: { type: card, bg: "#FEF7E0", fg: "#1D1C1D", border: "3px solid #ECB22E", radius: "4px", padding: "12px 16px", use: "System notice, workspace announcement" }
75
+ dialog: { type: dialog, bg: "#FFFFFF", fg: "#1D1C1D", radius: "8px", padding: "24px", shadow: "0 18px 48px rgba(0,0,0,0.35)", use: "Create-channel, preferences, confirmation" }
76
+ toggle: { type: toggle, bg: "#868686", radius: "9999px", states: "on #007A5A", use: "Boolean settings; white thumb" }
77
+ ---
78
+
79
+ # Design System Inspiration of Slack
80
+
81
+ ## 1. Visual Theme & Atmosphere
82
+
83
+ Slack is the work-messaging app that made enterprise software feel human. Where legacy collaboration tools shouted in cold corporate blues and grays, Slack leads with **Aubergine** (`#4A154B`) — a deep, warm eggplant purple that is unmistakably its own. It reads as serious-but-friendly: confident enough for a Fortune 500 IT department, warm enough that you don't dread opening it on a Monday. The aubergine anchors the left sidebar and the marketing chrome, while the content canvas stays clean white (`#FFFFFF`) with near-black text (`#1D1C1D`).
84
+
85
+ What makes Slack instantly recognizable is the tension between that single sober aubergine and the **playful four-color hashtag logo** — cerulean (`#36C5F0`), green (`#2EB67D`), magenta-red (`#E01E5A`), and yellow (`#ECB22E`). The logo's multicolor optimism signals "this is where teams come together"; the aubergine UI signals "and you can get real work done here." The brand lives in that balance: friendly but not frivolous, colorful but not chaotic.
86
+
87
+ Typographically, Slack splits its world. The **product UI** runs on **Lato** — a humanist sans with rounded warmth that stays legible at message density. The **marketing site** uses **Larsseit** for headlines (geometric, confident) with **Circular** as a companion and **Helvetica Neue / system fonts** as fallbacks. The result is a system that feels approachable in the app and bold on the web.
88
+
89
+ **Key Characteristics:**
90
+ - Aubergine (`#4A154B`) as the brand anchor — sidebar, marketing chrome, primary identity
91
+ - Four-color hashtag logo (blue/green/red/yellow) as the playful counterweight
92
+ - Lato for product UI; Larsseit + Circular for marketing headlines
93
+ - Clean white content canvas with near-black text (`#1D1C1D`)
94
+ - Green CTA (`#007A5A`) for primary marketing actions — high contrast on aubergine
95
+ - Generous border-radius (4px UI, 8–12px marketing cards) for a soft, friendly feel
96
+ - Conversational, action-oriented voice that puts work in human terms
97
+
98
+ ## 2. Color Palette & Roles
99
+
100
+ ### Primary
101
+ - **Aubergine** (`#4A154B`): The brand color. Left sidebar, marketing nav, logo wordmark, primary identity surfaces. Pantone 7672 C. Warm, deep eggplant — never cold purple.
102
+ - **Aubergine Null** (`#611F69`): Resting/zero state of aubergine interactive elements on web.
103
+ - **Aubergine Active** (`#7C3085`): Hover/active state derived from aubergine.
104
+ - **Pure White** (`#FFFFFF`): Primary content canvas, card surfaces, message background.
105
+ - **Near Black** (`#1D1C1D`): Primary text color. A warm off-black, not pure `#000`.
106
+
107
+ ### Brand Multicolor (Logo / Accent Only)
108
+ - **Slack Blue** (`#36C5F0`): Logo lozenge. Decorative accent, illustration.
109
+ - **Slack Green** (`#2EB67D`): Logo lozenge. Online/active presence indicator inspiration.
110
+ - **Slack Red** (`#E01E5A`): Logo lozenge. Decorative accent, error-adjacent warmth.
111
+ - **Slack Yellow** (`#ECB22E`): Logo lozenge. Decorative accent, highlight.
112
+
113
+ ### Action / CTA
114
+ - **CTA Green** (`#007A5A`): Primary call-to-action button on marketing surfaces. Chosen for AA contrast against aubergine backgrounds.
115
+ - **CTA Green Hover** (`#148567`): Hover state for the green CTA.
116
+ - **Link Blue** (`#1264A3`): Inline hyperlinks, interactive text in product and marketing.
117
+ - **Link Blue Hover** (`#0B4C8C`): Hover state for links.
118
+
119
+ ### Semantic
120
+ - **Error Red** (`#E01E5A`): Destructive actions, error messages, validation failure.
121
+ - **Warning Yellow** (`#ECB22E`): Caution states, pending, attention-needed.
122
+ - **Success Green** (`#2BAC76`): Confirmations, sent, positive status.
123
+ - **Online Green** (`#2EB67D`): Presence dot — user is active.
124
+
125
+ ### Neutral Scale
126
+ - **Black 1000** (`#1D1C1D`): Primary text, headings.
127
+ - **Gray 900** (`#454245`): Secondary text, strong labels.
128
+ - **Gray 700** (`#616061`): Body text, descriptions, metadata.
129
+ - **Gray 500** (`#868686`): Placeholder, disabled text, timestamps.
130
+ - **Gray 300** (`#E8E8E8`): Borders, dividers, input outlines.
131
+ - **Gray 200** (`#F8F8F8`): Subtle surface fills, hover backgrounds.
132
+ - **Gray 100** (`#FBFAFB`): Lightest background tint.
133
+
134
+ ### Surface & Borders
135
+ - **Border Default**: `#E8E8E8`. Standard dividers, card edges, input borders.
136
+ - **Border Strong**: `#DDDDDD`. Emphasized separators.
137
+ - **Sidebar Aubergine**: `#3F0E40` (darker aubergine sidebar variant in product).
138
+ - **Overlay Scrim**: `rgba(29, 28, 29, 0.6)`. Modal backdrop.
139
+
140
+ ## 3. Typography Rules
141
+
142
+ ### Font Family
143
+ - **Product UI**: `Lato, "Helvetica Neue", Helvetica, "Segoe UI", Tahoma, Arial, sans-serif`
144
+ - **Marketing Headlines**: `Larsseit, "Helvetica Neue", Helvetica, Arial, sans-serif`
145
+ - **Marketing Body / Alt**: `Circular, "Helvetica Neue", Helvetica, Arial, sans-serif`
146
+ - **Monospace** (code blocks): `Monaco, Menlo, Consolas, "Courier New", monospace`
147
+ - **Emoji**: native platform emoji set, rendered inline at text size
148
+
149
+ ### Hierarchy
150
+
151
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
152
+ |------|------|------|--------|-------------|----------------|-------|
153
+ | Display Hero | Larsseit | 56px | 900 | 64px (1.14) | -0.02em | Marketing hero headlines |
154
+ | Display Large | Larsseit | 44px | 700 | 52px (1.18) | -0.01em | Section headers (web) |
155
+ | Heading 1 | Larsseit / Lato | 32px | 700 | 40px (1.25) | normal | Page titles |
156
+ | Heading 2 | Lato | 24px | 700 | 32px (1.33) | normal | Sub-sections, modal titles |
157
+ | Heading 3 | Lato | 18px | 700 | 26px (1.44) | normal | Card titles, channel headers |
158
+ | Subtitle | Lato | 16px | 700 | 24px (1.50) | normal | List headers, emphasized labels |
159
+ | Body Large | Lato | 16px | 400 | 24px (1.50) | normal | Marketing body, descriptions |
160
+ | Body | Lato | 15px | 400 | 22px (1.46) | normal | Message text — the workhorse |
161
+ | Body Small | Lato | 13px | 400 | 18px (1.38) | normal | Secondary info, metadata |
162
+ | Caption | Lato | 12px | 400 | 16px (1.33) | normal | Timestamps, fine print |
163
+ | Code | Monaco | 12px | 400 | 18px (1.50) | normal | Inline code, code blocks |
164
+
165
+ ### Principles
166
+ - **Two type worlds, one personality**: Lato carries the product; Larsseit carries marketing. Both are humanist/geometric sans with warmth — never a cold grotesque.
167
+ - **Weight does the work**: Lato in 400 (body), 700 (bold/headings), 900 (display). Italic for quoted/system messages.
168
+ - **Message density first**: Product body sits at 15px/1.46 — tuned for scanning long threads without fatigue.
169
+ - **Bold means emphasis, not decoration**: 700 weight signals names, headers, and `*bold*` markdown — never used for entire paragraphs.
170
+
171
+ ## 4. Component Stylings
172
+
173
+ ### Buttons
174
+
175
+ Slack buttons are friendly rectangles with soft corners. The hero action is the **green CTA**; aubergine and outline variants support it.
176
+
177
+ **Primary / Green (Marketing CTA)**
178
+ - Background: `#007A5A`
179
+ - Text: `#FFFFFF`
180
+ - Border: none
181
+ - Radius: 4px
182
+ - Padding: 0 16px
183
+ - Font: 18px / 900 / Larsseit (marketing), 15px / 700 / Lato (product)
184
+ - Height: 44px (marketing), 36px (product)
185
+ - Hover: `#148567`
186
+ - Use: Primary CTA — "Get started", "Try for free"
187
+
188
+ **Primary / Aubergine**
189
+ - Background: `#4A154B`
190
+ - Text: `#FFFFFF`
191
+ - Border: none
192
+ - Radius: 4px
193
+ - Padding: 0 16px
194
+ - Font: 18px / 900 / Larsseit
195
+ - Hover: `#611F69`
196
+ - Use: Brand-forward CTA on white surfaces ("Talk to sales")
197
+
198
+ **Secondary / Outline**
199
+ - Background: transparent
200
+ - Text: `#4A154B` (on light) / `#FFFFFF` (on aubergine)
201
+ - Border: 1px solid `#4A154B` (or `#FFFFFF` on dark)
202
+ - Radius: 4px
203
+ - Padding: 0 16px
204
+ - Font: 18px / 700 / Larsseit
205
+ - Hover: fill with 8% aubergine tint
206
+ - Use: Secondary marketing action ("Watch demo")
207
+
208
+ **Product / Primary**
209
+ - Background: `#007A5A`
210
+ - Text: `#FFFFFF`
211
+ - Border: 1px solid transparent
212
+ - Radius: 4px
213
+ - Padding: 0 12px
214
+ - Font: 15px / 900 / Lato
215
+ - Height: 36px
216
+ - Hover: `#148567`
217
+ - Use: In-app confirm ("Send", "Create channel")
218
+
219
+ **Product / Secondary**
220
+ - Background: `#FFFFFF`
221
+ - Text: `#1D1C1D`
222
+ - Border: 1px solid `rgba(29,28,29,0.3)`
223
+ - Radius: 4px
224
+ - Padding: 0 12px
225
+ - Font: 15px / 700 / Lato
226
+ - Hover: bg `#F8F8F8`
227
+ - Use: Cancel / dismiss / neutral action
228
+
229
+ **Danger**
230
+ - Background: `#E01E5A`
231
+ - Text: `#FFFFFF`
232
+ - Border: none
233
+ - Radius: 4px
234
+ - Padding: 0 12px
235
+ - Font: 15px / 900 / Lato
236
+ - Hover: darken 8%
237
+ - Use: Destructive confirm ("Delete", "Leave channel")
238
+
239
+ **Disabled (any variant)**: opacity `0.5`, `cursor: not-allowed`, no hover.
240
+
241
+ ### Inputs
242
+
243
+ **Text Field (default)**
244
+ - Background: `#FFFFFF`
245
+ - Text: `#1D1C1D`
246
+ - Border: 1px solid `rgba(29,28,29,0.3)`
247
+ - Radius: 4px
248
+ - Padding: 11px 12px
249
+ - Font: 15px / 400 / Lato
250
+ - Placeholder: `#868686`
251
+ - Focus: border `#1264A3` + `0 0 0 1px #1264A3` ring
252
+ - Use: Standard form input
253
+
254
+ **Message Composer**
255
+ - Background: `#FFFFFF`
256
+ - Text: `#1D1C1D`
257
+ - Border: 1px solid `rgba(29,28,29,0.3)`
258
+ - Radius: 8px
259
+ - Padding: 8px 12px
260
+ - Font: 15px / 400 / Lato
261
+ - Focus: border darkens to `rgba(29,28,29,0.5)`, subtle inner shadow
262
+ - Use: The message box — taller, rounder, with toolbar row
263
+
264
+ **Error State**
265
+ - Border: 1px solid `#E01E5A`
266
+ - Focus ring: `0 0 0 1px #E01E5A`
267
+ - Helper text below: `#E01E5A`, 13px / 400 / Lato
268
+ - Use: Validation failure
269
+
270
+ ### Cards
271
+
272
+ **Standard**
273
+ - Background: `#FFFFFF`
274
+ - Border: 1px solid `#E8E8E8`
275
+ - Radius: 8px
276
+ - Padding: 24px
277
+ - Shadow: `0 1px 3px rgba(0,0,0,0.08)`
278
+ - Use: Content panels, feature cards on web
279
+
280
+ **Marketing Feature**
281
+ - Background: `#FFFFFF`
282
+ - Border: none
283
+ - Radius: 12px
284
+ - Padding: 32px
285
+ - Shadow: `0 4px 16px rgba(0,0,0,0.10)`
286
+ - Use: Hero/promo cards, pricing tiles
287
+
288
+ **Message Hover Card**
289
+ - Background: `#FFFFFF`
290
+ - Border: 1px solid `#E8E8E8`
291
+ - Radius: 8px
292
+ - Padding: 0
293
+ - Shadow: `0 4px 12px rgba(0,0,0,0.12)`
294
+ - Use: Hover actions toolbar, message context popover
295
+
296
+ ### Badges & Pills
297
+
298
+ **Unread Count**
299
+ - Background: `#CD2553` (notification red)
300
+ - Text: `#FFFFFF`
301
+ - Border: none
302
+ - Radius: 9999px
303
+ - Padding: 1px 6px
304
+ - Font: 12px / 700 / Lato
305
+ - Use: Channel/DM unread badge
306
+
307
+ **Mention Highlight**
308
+ - Background: `rgba(29,155,209,0.1)` to aubergine-tinted on mention
309
+ - Text: `#1264A3`
310
+ - Radius: 3px
311
+ - Padding: 0 2px
312
+ - Use: `@you` mention inline
313
+
314
+ **Status Pill**
315
+ - Background: `#F8F8F8`
316
+ - Text: `#616061`
317
+ - Border: 1px solid `#E8E8E8`
318
+ - Radius: 12px
319
+ - Padding: 2px 10px
320
+ - Font: 13px / 700 / Lato
321
+ - Use: "NEW", custom status, app labels
322
+
323
+ **Presence Dot**
324
+ - Active: `#2EB67D` (filled circle, 8px)
325
+ - Away: hollow ring `rgba(29,28,29,0.4)`
326
+ - Use: User online/away indicator
327
+
328
+ ### Tabs
329
+
330
+ **Sidebar Channel (Active)**
331
+ - Background: `#1164A3` (selected, on aubergine sidebar)
332
+ - Text: `#FFFFFF`
333
+ - Font: 15px / 700 / Lato
334
+ - Inactive: text `rgba(255,255,255,0.7)`, no bg
335
+ - Hover (inactive): bg `rgba(255,255,255,0.1)`
336
+ - Use: Channel list in product sidebar
337
+
338
+ **Top Tab / Segmented**
339
+ - Background: transparent
340
+ - Text: `#616061` (inactive) / `#1D1C1D` (active)
341
+ - Active indicator: 2px bottom border `#4A154B`
342
+ - Font: 15px / 700 / Lato
343
+ - Use: Threads / Mentions / Saved tab switching
344
+
345
+ ### Toasts / Banners
346
+
347
+ **Toast (Default)**
348
+ - Background: `#1D1C1D`
349
+ - Text: `#FFFFFF`
350
+ - Border: none
351
+ - Radius: 8px
352
+ - Padding: 12px 16px
353
+ - Shadow: `0 4px 12px rgba(0,0,0,0.2)`
354
+ - Font: 15px / 400 / Lato
355
+ - Use: "Message saved", transient confirmation
356
+
357
+ **Info Banner**
358
+ - Background: `#FEF7E0` (soft yellow tint)
359
+ - Text: `#1D1C1D`
360
+ - Border-left: 3px solid `#ECB22E`
361
+ - Radius: 4px
362
+ - Padding: 12px 16px
363
+ - Use: System notice, workspace announcement
364
+
365
+ ### Dialogs
366
+
367
+ **Modal**
368
+ - Background: `#FFFFFF`
369
+ - Text: `#1D1C1D`
370
+ - Border: none
371
+ - Radius: 8px
372
+ - Padding: 24px
373
+ - Shadow: `0 18px 48px rgba(0,0,0,0.35)`
374
+ - Backdrop: `rgba(29,28,29,0.6)`
375
+ - Use: Create-channel, preferences, confirmation dialogs
376
+
377
+ ### Toggles
378
+
379
+ **Switch**
380
+ - On: `#007A5A`
381
+ - Off: `#868686`
382
+ - Border: none
383
+ - Radius: 9999px
384
+ - Thumb: `#FFFFFF` circle with `0 1px 2px rgba(0,0,0,0.2)` shadow
385
+ - Use: Boolean settings (notifications, do-not-disturb)
386
+
387
+ ---
388
+
389
+ **Verified:** 2026-06-06
390
+ **Tier 1 sources:** slack.com (live marketing site — aubergine chrome, green CTA, Larsseit headlines), Slack Brand Guidelines PDF (`a.slack-edge.com/.../Slack-Brand-Guidelines.pdf`) · https://slack.com (live production site)
391
+ **Tier 2 sources:** brandpalettes.com/slack-logo-color-codes, designyourway.net (Lato/Larsseit confirmation), onlinepalette.com/slack
392
+ **Conflicts unresolved:** none. Product UI (Lato, aubergine sidebar) and marketing web (Larsseit, green CTA) documented as parallel surfaces.
393
+
394
+ ## 5. Layout Principles
395
+
396
+ ### Spacing System
397
+ - Base unit: 4px
398
+ - Common values: 4px, 8px, 12px, 16px, 20px, 24px, 32px, 48px, 64px
399
+ - Product message rows: 8px vertical between messages, 16px horizontal gutters
400
+ - Marketing sections: 64–96px vertical rhythm between blocks
401
+
402
+ ### Grid & Container
403
+ - Marketing max-width: 1200px centered container
404
+ - Product layout: fixed left sidebar (260px) + flexible content + optional right pane (340px)
405
+ - 12-column grid on marketing pages with 24px gutters
406
+ - Message column: comfortable measure, full width within content area
407
+
408
+ ### Whitespace Philosophy
409
+ - **Conversation breathes**: Messages get vertical air so threads stay scannable; avatar + name + timestamp form a clear left rail.
410
+ - **Marketing is bold and open**: Big headlines, generous section padding, one idea per scroll section.
411
+ - **Density where it counts**: Sidebar channel lists are compact; the content canvas is spacious.
412
+
413
+ ### Border Radius Scale
414
+ - Tight (3px): inline mention highlights, small chips
415
+ - Standard (4px): buttons, inputs, small cards
416
+ - Comfortable (8px): cards, modals, message composer, toasts
417
+ - Large (12px): marketing feature cards
418
+ - Pill (9999px): badges, toggles, presence dots
419
+
420
+ ## 6. Depth & Elevation
421
+
422
+ | Level | Treatment | Use |
423
+ |-------|-----------|-----|
424
+ | Flat (Level 0) | No shadow | Sidebar, message rows, page background |
425
+ | Subtle (Level 1) | `0 1px 3px rgba(0,0,0,0.08)` | Standard cards, list separation |
426
+ | Raised (Level 2) | `0 4px 12px rgba(0,0,0,0.12)` | Hover toolbars, popovers, dropdowns |
427
+ | Floating (Level 3) | `0 4px 16px rgba(0,0,0,0.10)` | Marketing feature cards |
428
+ | Modal (Level 4) | `0 18px 48px rgba(0,0,0,0.35)` | Dialogs, full modals |
429
+
430
+ **Shadow Philosophy**: Slack uses neutral black shadows at low-to-moderate opacity. Elevation communicates interactivity (a hovered message reveals a floating action bar), but the product stays mostly flat — depth is reserved for things that genuinely float above the conversation. Marketing allows softer, larger shadows to lift feature cards off the page.
431
+
432
+ ### Blur Effects
433
+ - Modal backdrops use a solid scrim, not blur, to keep focus sharp
434
+ - Some marketing overlays apply subtle backdrop blur on sticky nav
435
+
436
+ ## 7. Do's and Don'ts
437
+
438
+ ### Do
439
+ - Use Aubergine (`#4A154B`) for brand chrome — sidebar, nav, identity surfaces
440
+ - Use Green CTA (`#007A5A`) for the primary action; it pops against aubergine
441
+ - Use Lato in the product UI; Larsseit for marketing headlines
442
+ - Keep border-radius at 4px for buttons/inputs, 8px for cards/modals
443
+ - Use the four-color logo only as logo or decorative accent — never as UI state colors
444
+ - Use near-black `#1D1C1D` for text, never pure `#000000`
445
+ - Use the green presence dot (`#2EB67D`) for active status
446
+
447
+ ### Don't
448
+ - Don't use aubergine as a CTA fill where green is expected — green is the action color
449
+ - Don't recolor the four-color logo or use its colors for functional UI states
450
+ - Don't use cold blue-purple — Slack's purple is warm aubergine, not violet
451
+ - Don't pack messages tightly; conversation needs vertical breathing room
452
+ - Don't use heavy shadows in-product — depth is reserved for floating elements
453
+ - Don't mix Lato and Larsseit within the same surface
454
+ - Don't set body text in bold (700); reserve it for names, headers, and `*bold*`
455
+
456
+ ## 8. Responsive Behavior
457
+
458
+ ### Breakpoints
459
+ | Name | Width | Key Changes |
460
+ |------|-------|-------------|
461
+ | Mobile | <640px | Single column, collapsed sidebar (hamburger), stacked CTAs |
462
+ | Tablet | 640–1024px | Sidebar as overlay, 2-up feature grids |
463
+ | Desktop | 1024–1280px | Full 3-pane product layout, multi-column marketing |
464
+ | Wide | >1280px | Centered 1200px container, generous margins |
465
+
466
+ ### Touch Targets
467
+ - Buttons: minimum 44px tall on touch surfaces
468
+ - Channel/DM rows: 36–44px tap height
469
+ - Icon buttons: 36px minimum hit area with padding
470
+
471
+ ### Collapsing Strategy
472
+ - Product sidebar collapses to an icon rail or hamburger drawer on mobile
473
+ - Right thread pane slides over content as a full-screen sheet on mobile
474
+ - Marketing hero stacks headline → subhead → CTA vertically
475
+ - Multi-column feature grids collapse to single column
476
+
477
+ ### Image Behavior
478
+ - App/integration logos: 20–40px, consistent within context
479
+ - Marketing illustrations: full-bleed or contained, maintain aspect ratio
480
+ - Avatars: 36px in lists, 48px in profiles, rounded 4px (squircle), never full circle
481
+
482
+ ## 9. Agent Prompt Guide
483
+
484
+ ### Quick Color Reference
485
+ - Brand / Sidebar: Aubergine (`#4A154B`)
486
+ - Aubergine Hover: (`#611F69`)
487
+ - Primary CTA: Green (`#007A5A`)
488
+ - CTA Hover: (`#148567`)
489
+ - Background: White (`#FFFFFF`)
490
+ - Surface tint: Light Gray (`#F8F8F8`)
491
+ - Heading text: Near Black (`#1D1C1D`)
492
+ - Body text: Gray (`#616061`)
493
+ - Placeholder: Gray (`#868686`)
494
+ - Border: Gray (`#E8E8E8`)
495
+ - Link: Blue (`#1264A3`)
496
+ - Success / Presence: Green (`#2EB67D`)
497
+ - Error: Red (`#E01E5A`)
498
+ - Warning: Yellow (`#ECB22E`)
499
+
500
+ ### Example Component Prompts
501
+ - "Create a Slack-style primary CTA: `#007A5A` bg, white text, 18px Larsseit weight 900, 44px tall, 4px radius, 0 16px padding. Hover `#148567`."
502
+ - "Build a channel sidebar row: aubergine `#3F0E40` bg. Active row `#1164A3` bg, white 15px Lato 700. Inactive `rgba(255,255,255,0.7)`. Hover `rgba(255,255,255,0.1)`. 36px tall, `#` prefix."
503
+ - "Design a message: 48px squircle avatar (4px radius) left, name 15px Lato 700 `#1D1C1D` + timestamp 12px `#868686`, body 15px/1.46 Lato 400 `#1D1C1D`. 8px vertical gap between messages."
504
+ - "Create a message composer: white bg, 1px border `rgba(29,28,29,0.3)`, 8px radius, 8px 12px padding, 15px Lato. Toolbar row of icon buttons below."
505
+ - "Build a feature card: white bg, 12px radius, 32px padding, shadow `0 4px 16px rgba(0,0,0,0.10)`. Larsseit 24px 700 title, Lato 16px/1.5 body `#616061`."
506
+
507
+ ### Iteration Guide
508
+ 1. Aubergine `#4A154B` is brand/chrome; green `#007A5A` is action. Don't swap them.
509
+ 2. Product UI = Lato; marketing = Larsseit headlines + Circular/Lato body.
510
+ 3. Radius: 4px buttons/inputs, 8px cards/modals, pill for badges/toggles.
511
+ 4. Text is near-black `#1D1C1D`, never pure black. Body in 400, names/headers in 700.
512
+ 5. The four-color logo is decorative only — never functional UI state colors.
513
+ 6. Conversation needs vertical air; keep message rows breathing.
514
+ 7. Shadows are neutral and reserved for floating elements.
515
+
516
+ ---
517
+
518
+ ## 10. Voice & Tone
519
+
520
+ Slack speaks like a sharp, friendly colleague: clear, warm, occasionally witty, never corporate. It puts work in human terms ("where work happens", "work starts in conversation") and favors plain verbs over jargon. Sentences are short and active. Humor shows up in microcopy and empty states, but it never gets in the way of getting something done. English is the primary voice; localized strings preserve the same warmth.
521
+
522
+ | Context | Tone |
523
+ |---|---|
524
+ | CTAs | Plain, inviting verbs: "Get started", "Try for free", "Create channel" |
525
+ | Success messages | Friendly, brief: "Message sent." "Channel created." Often a small celebratory emoji in-product. |
526
+ | Error messages | Blameless, specific, human: never "An error occurred." Say what happened and what to do. |
527
+ | Empty states | Light and encouraging: a touch of personality ("This is the very beginning of the #channel channel") plus one clear next step. |
528
+ | Onboarding | Second person, one idea at a time, conversational guidance. |
529
+ | Marketing | Confident and benefit-led: "AI in Slack doesn't make you think, it helps you do." |
530
+ | Notifications | Concise, scannable, action-first. Respect attention. |
531
+
532
+ **Forbidden phrases.** "An unexpected error occurred", "Oops! Something went wrong" without a fix, cold corporate filler ("Please be advised", "As per"), and over-cute copy on serious actions (deleting data, billing). Wit yields to clarity whenever stakes are high.
533
+
534
+ ## 11. Brand Narrative
535
+
536
+ Slack ("Searchable Log of All Conversation and Knowledge") was born inside **Tiny Speck** while building the game *Glitch*. When the game failed in 2012, the internal chat tool the team had built to coordinate became the product. Founded by **Stewart Butterfield** — who had previously co-founded Flickr — Slack launched publicly in **2014** and became one of the fastest-growing SaaS products in history, reaching a billion-dollar valuation in just over a year.
537
+
538
+ The design thesis was a rejection of enterprise software's coldness. Email and legacy collaboration tools were gray, siloed, and joyless. Slack proposed that work software could be **warm, fast, and even fun** without sacrificing power. The warm aubergine — not a cold institutional blue — was a deliberate signal: this is software made by people who like people. The playful four-color hashtag logo (a 2019 redesign that unified an earlier, busier mark) carries the optimism; the disciplined aubergine UI carries the credibility.
539
+
540
+ Slack was acquired by **Salesforce in 2021 for ~$27.7 billion**, one of the largest software acquisitions ever. Today it positions itself as the conversational layer of work — increasingly the home for AI agents working alongside human teams ("all your people and AI agents working together"). Across that evolution the brand has kept its core promise: make work feel less like work.
541
+
542
+ What Slack refuses: the gray sterility of legacy enterprise tools, the chaos of unstructured communication, and the cold formality of corporate software. It occupies a deliberate middle — serious enough for the enterprise, human enough that people actually want to use it.
543
+
544
+ ## 12. Principles
545
+
546
+ 1. **Warm, not cold.** The brand purple is aubergine, not violet; text is near-black, not pure black. Every default leans a degree warmer than the enterprise norm — that warmth is the brand.
547
+ 2. **Conversation is the interface.** Layout, spacing, and hierarchy all serve scanning and reading threads. Messages get vertical air; the content canvas stays clean.
548
+ 3. **One action color.** Green (`#007A5A`) means "do the thing." Aubergine is identity, not action. Never blur the two.
549
+ 4. **The logo stays playful; the UI stays disciplined.** Four colors belong to the mark and decoration. Functional UI uses the restrained aubergine/neutral/green system.
550
+ 5. **Plain language wins.** Copy reads like a smart colleague talking — short, active, jargon-free. Wit is welcome until stakes are high.
551
+ 6. **Fast and legible over dense.** Lato at 15px/1.46 for messages is tuned for reading volume without fatigue. Speed of comprehension is a feature.
552
+ 7. **Soft corners, gentle depth.** 4–8px radii and low neutral shadows keep the product approachable. Drama is reserved for marketing.
553
+ 8. **Human celebration.** Small moments of delight — an emoji on a sent message, a friendly empty state — reward the user without slowing them down.
554
+
555
+ ## 13. Personas
556
+
557
+ *Personas below are fictional archetypes informed by publicly described Slack user segments, not individual people.*
558
+
559
+ **Maya, 31, San Francisco.** Product manager at a 400-person SaaS company. Lives in Slack 9 hours a day across a dozen channels. Expects threads to load instantly and search to actually find that message from three weeks ago. Uses keyboard shortcuts constantly, reacts with emoji instead of typing "got it", and judges any new tool by whether it integrates with Slack. Mild rage if a notification is noisy or mistimed.
560
+
561
+ **Daniel, 47, Chicago.** IT director rolling Slack out to a 2,000-person org. Cares about SSO, compliance, admin controls, and not getting paged at 2am. The warm aubergine and friendly tone matter less to him than uptime and granular permissions — but he appreciates that employees adopt it without training. Distrusts anything that feels like a toy until he sees the enterprise grid controls.
562
+
563
+ **Priya, 24, Austin.** New grad, first job, first week. Slack is her primary workplace. The friendly onboarding copy and empty states ("This is the very beginning of the #team channel") make a daunting new job feel approachable. Customizes her sidebar theme, sets a status emoji daily, and treats DMs like texting. Would be lost without thread notifications and `@here`.
564
+
565
+ ## 14. States
566
+
567
+ | State | Treatment |
568
+ |---|---|
569
+ | **Empty (new channel)** | Friendly one-liner ("This is the very beginning of the #channel channel") in `#616061` 15px, plus a suggested action (invite people, set a topic). Personality, never sterile. |
570
+ | **Empty (search no results)** | Single line in `#868686` ("No results for '...'") with a tip to refine the query. No illustration required. |
571
+ | **Loading (first paint)** | Skeleton rows matching message structure in `#F8F8F8` with a 1.2s shimmer. Sidebar shows skeleton channel rows. |
572
+ | **Loading (sending)** | Message appears immediately in a dimmed state (`opacity 0.6`) with a small spinner; resolves to full opacity on confirm. |
573
+ | **Error (inline field)** | 1px `#E01E5A` border + `0 0 0 1px #E01E5A` focus ring, helper text below in `#E01E5A` 13px. One actionable sentence. |
574
+ | **Error (message failed)** | Red `#E01E5A` "Failed to send" label under the message with a "Retry" link. Message stays visible, never silently dropped. |
575
+ | **Error (toast)** | `#1D1C1D` bg, white 15px text, 8px radius, auto-dismiss ~4s. One blameless sentence. |
576
+ | **Success (sent)** | Message snaps to full opacity; optional small green check or emoji reaction. No blocking confirmation. |
577
+ | **Success (action)** | Brief `#1D1C1D` toast ("Channel created") bottom-center, 4s dismiss. |
578
+ | **Disabled** | Opacity `0.5`, `cursor: not-allowed`, no hover transition. Geometry preserved. |
579
+ | **Presence** | Filled green dot `#2EB67D` (active) / hollow ring `rgba(29,28,29,0.4)` (away) on avatars. |
580
+ | **Unread** | Bold channel name `#1D1C1D` 700 in sidebar + red `#CD2553` count badge for mentions/DMs. |
581
+
582
+ ## 15. Motion & Easing
583
+
584
+ **Durations:**
585
+
586
+ | Token | Value | Use |
587
+ |---|---|---|
588
+ | `motion-instant` | 0ms | Toggle flips, checkbox state |
589
+ | `motion-fast` | 100ms | Hover, focus, button press, emoji reaction pop |
590
+ | `motion-standard` | 200ms | The default — menu opens, tooltip, hover toolbar reveal |
591
+ | `motion-slow` | 300ms | Modal in/out, sidebar drawer, thread pane slide |
592
+ | `motion-emphasis` | 450ms | Celebratory moments — emoji confetti, onboarding advance |
593
+
594
+ **Easings:**
595
+
596
+ | Token | Curve | Use |
597
+ |---|---|---|
598
+ | `ease-enter` | `cubic-bezier(0.0, 0.0, 0.2, 1)` | Things appearing — menus, toasts, panes sliding in |
599
+ | `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Things leaving — dismissals, closing menus |
600
+ | `ease-standard` | `cubic-bezier(0.4, 0.0, 0.2, 1)` | Two-way transitions — hover states, expand/collapse |
601
+ | `ease-bounce` | `cubic-bezier(0.34, 1.56, 0.64, 1)` | Reserved for delight — emoji reaction pop, celebration. Never on routine UI. |
602
+
603
+ **Signature motions.**
604
+
605
+ 1. **Emoji reaction pop.** Adding a reaction scales the emoji from 0.6→1.1→1.0 over `motion-fast` with `ease-bounce`. A small, joyful overshoot — the one place bounce is licensed in-product.
606
+ 2. **Thread pane slide.** The right pane slides in from `x+340px` with `motion-slow / ease-enter`; content stays visible behind it. Dismissal uses `ease-exit` and feels quicker.
607
+ 3. **Hover action toolbar.** Hovering a message fades in the floating action bar over `motion-fast / ease-standard` — instant enough to feel responsive, soft enough to not flicker.
608
+ 4. **Message send.** A sent message fades from `opacity 0.6` to `1.0` over `motion-standard` once confirmed by the server — a subtle settle that signals "delivered".
609
+ 5. **Reduce motion.** Under `prefers-reduced-motion: reduce`, all tokens collapse to `motion-instant`, slides become fades, and the reaction pop drops its overshoot. Fully usable, just calm.
610
+
611
+ <!--
612
+ OmD v0.1 Sources
613
+
614
+ Direct verification via WebFetch (2026-06-06):
615
+ - https://slack.com — confirms aubergine brand chrome, conversational/AI-forward
616
+ marketing voice ("AI in Slack doesn't make you think, it helps you do",
617
+ "work starts in conversation"), green primary CTAs.
618
+
619
+ WebSearch (2026-06-06) — grounded tokens:
620
+ - Aubergine #4A154B (Pantone 7672 C); Aubergine Null #611F69; Aubergine Active #7C3085
621
+ (Slack Brand Guidelines PDF, a.slack-edge.com; brandpalettes.com; onlinepalette.com).
622
+ - Four-color logo: blue #36C5F0, green #2EB67D, red #E01E5A, yellow #ECB22E.
623
+ - Typography: Lato (product UI), Larsseit (marketing headlines), Circular companion,
624
+ Helvetica Neue fallback (designyourway.net; Slack brand guidelines).
625
+
626
+ Widely documented public facts:
627
+ - Slack = "Searchable Log of All Conversation and Knowledge"; built inside Tiny Speck
628
+ during the game Glitch; launched 2014; founder Stewart Butterfield (ex-Flickr);
629
+ acquired by Salesforce 2021 for ~$27.7B; 2019 logo redesign to the four-color hashtag.
630
+
631
+ Personas (§13) are fictional archetypes informed by publicly described Slack user
632
+ segments. Component pixel values (radii, paddings, heights) for in-app surfaces are
633
+ representative of Slack's observed UI conventions; exact internal design-token names
634
+ may differ. Green CTA #007A5A is the observed marketing action color.
635
+ -->