cdragon 0.1.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 (91) hide show
  1. package/README.md +110 -0
  2. package/bin/cdragon.js +170 -0
  3. package/package.json +31 -0
  4. package/skills/agent-browser/SKILL.md +50 -0
  5. package/skills/grill-me/SKILL.md +7 -0
  6. package/skills/herdr-agent/SKILL.md +142 -0
  7. package/skills/herdr-cli/SKILL.md +388 -0
  8. package/skills/herdr-cli/scripts/herdr-agent-run-and-wait +203 -0
  9. package/skills/herdr-cli/scripts/herdr-agent-wait-complete +168 -0
  10. package/skills/notion-presentation/SKILL.md +170 -0
  11. package/skills/notion-presentation/references/example-redis-deck.md +97 -0
  12. package/skills/setup-matt-pocock-skills/SKILL.md +127 -0
  13. package/skills/setup-matt-pocock-skills/domain.md +51 -0
  14. package/skills/setup-matt-pocock-skills/issue-tracker-github.md +34 -0
  15. package/skills/setup-matt-pocock-skills/issue-tracker-gitlab.md +35 -0
  16. package/skills/setup-matt-pocock-skills/issue-tracker-local.md +19 -0
  17. package/skills/setup-matt-pocock-skills/triage-labels.md +15 -0
  18. package/skills/tdd/SKILL.md +108 -0
  19. package/skills/tdd/mocking.md +59 -0
  20. package/skills/tdd/refactoring.md +10 -0
  21. package/skills/tdd/tests.md +61 -0
  22. package/skills/to-html/SKILL.md +83 -0
  23. package/skills/to-html/designs/INDEX.md +74 -0
  24. package/skills/to-html/designs/airbnb.DESIGN.md +581 -0
  25. package/skills/to-html/designs/airtable.DESIGN.md +275 -0
  26. package/skills/to-html/designs/alipay.DESIGN.md +456 -0
  27. package/skills/to-html/designs/apple.DESIGN.md +566 -0
  28. package/skills/to-html/designs/banksalad.DESIGN.md +621 -0
  29. package/skills/to-html/designs/channeltalk.DESIGN.md +374 -0
  30. package/skills/to-html/designs/clay.DESIGN.md +398 -0
  31. package/skills/to-html/designs/clickhouse.DESIGN.md +374 -0
  32. package/skills/to-html/designs/cohere.DESIGN.md +361 -0
  33. package/skills/to-html/designs/coinone.DESIGN.md +218 -0
  34. package/skills/to-html/designs/coupang.DESIGN.md +502 -0
  35. package/skills/to-html/designs/cursor.DESIGN.md +416 -0
  36. package/skills/to-html/designs/elevenlabs.DESIGN.md +376 -0
  37. package/skills/to-html/designs/expo.DESIGN.md +373 -0
  38. package/skills/to-html/designs/figma.DESIGN.md +490 -0
  39. package/skills/to-html/designs/framer.DESIGN.md +393 -0
  40. package/skills/to-html/designs/freee.DESIGN.md +572 -0
  41. package/skills/to-html/designs/gangnamunni.DESIGN.md +621 -0
  42. package/skills/to-html/designs/gmarket.DESIGN.md +483 -0
  43. package/skills/to-html/designs/gogolook.DESIGN.md +131 -0
  44. package/skills/to-html/designs/hahow.DESIGN.md +158 -0
  45. package/skills/to-html/designs/hashicorp.DESIGN.md +369 -0
  46. package/skills/to-html/designs/hyundaicard.DESIGN.md +177 -0
  47. package/skills/to-html/designs/ibm.DESIGN.md +420 -0
  48. package/skills/to-html/designs/kakaobank.DESIGN.md +548 -0
  49. package/skills/to-html/designs/kakaopay.DESIGN.md +544 -0
  50. package/skills/to-html/designs/karrot.DESIGN.md +445 -0
  51. package/skills/to-html/designs/kdan.DESIGN.md +160 -0
  52. package/skills/to-html/designs/krds.DESIGN.md +997 -0
  53. package/skills/to-html/designs/line.DESIGN.md +431 -0
  54. package/skills/to-html/designs/linear.app.DESIGN.md +548 -0
  55. package/skills/to-html/designs/miro.DESIGN.md +272 -0
  56. package/skills/to-html/designs/mistral.ai.DESIGN.md +353 -0
  57. package/skills/to-html/designs/money-forward.DESIGN.md +401 -0
  58. package/skills/to-html/designs/mongodb.DESIGN.md +357 -0
  59. package/skills/to-html/designs/naver.DESIGN.md +533 -0
  60. package/skills/to-html/designs/nhncloud.DESIGN.md +174 -0
  61. package/skills/to-html/designs/opencode.ai.DESIGN.md +388 -0
  62. package/skills/to-html/designs/pinterest.DESIGN.md +322 -0
  63. package/skills/to-html/designs/posthog.DESIGN.md +430 -0
  64. package/skills/to-html/designs/raycast.DESIGN.md +422 -0
  65. package/skills/to-html/designs/remember.DESIGN.md +460 -0
  66. package/skills/to-html/designs/resend.DESIGN.md +396 -0
  67. package/skills/to-html/designs/sanity.DESIGN.md +449 -0
  68. package/skills/to-html/designs/sendbird.DESIGN.md +285 -0
  69. package/skills/to-html/designs/smarthr.DESIGN.md +404 -0
  70. package/skills/to-html/designs/socar.DESIGN.md +403 -0
  71. package/skills/to-html/designs/spotify.DESIGN.md +265 -0
  72. package/skills/to-html/designs/supabase.DESIGN.md +348 -0
  73. package/skills/to-html/designs/superhuman.DESIGN.md +414 -0
  74. package/skills/to-html/designs/together.ai.DESIGN.md +356 -0
  75. package/skills/to-html/designs/toss.DESIGN.md +655 -0
  76. package/skills/to-html/designs/uber.DESIGN.md +387 -0
  77. package/skills/to-html/designs/upstage.DESIGN.md +232 -0
  78. package/skills/to-html/designs/velog.DESIGN.md +168 -0
  79. package/skills/to-html/designs/vercel.DESIGN.md +479 -0
  80. package/skills/to-html/designs/wanted.DESIGN.md +529 -0
  81. package/skills/to-html/designs/wise.DESIGN.md +276 -0
  82. package/skills/to-html/designs/yanolja.DESIGN.md +463 -0
  83. package/skills/to-html/designs/yeogiotte.DESIGN.md +459 -0
  84. package/skills/to-html/designs/zapier.DESIGN.md +433 -0
  85. package/skills/to-html/designs/zigzag.DESIGN.md +633 -0
  86. package/skills/to-issues/SKILL.md +84 -0
  87. package/skills/to-prd/SKILL.md +75 -0
  88. package/src/colors.js +15 -0
  89. package/src/link.js +47 -0
  90. package/src/prompt.js +137 -0
  91. package/src/skills.js +75 -0
@@ -0,0 +1,285 @@
1
+ ---
2
+ id: "sendbird"
3
+ name: "Sendbird"
4
+ country: US
5
+ category: developer-tools
6
+ homepage: "https://sendbird.com"
7
+ primary_color: "#742DDD"
8
+ logo:
9
+ type: favicon
10
+ slug: "https://www.google.com/s2/favicons?domain=sendbird.com&sz=128"
11
+ verified: "2026-06-01"
12
+ omd: "0.1"
13
+ ds:
14
+ name: Sendbird UIKit
15
+ url: "https://sendbird.com/docs/chat/uikit/v3/react/overview"
16
+ type: system
17
+ description: Sendbird's official chat UIKit — a documented, token-driven conversation-UI system (React, iOS, Android, React Native) with named color sets, message components, and themeable light/dark resources.
18
+ ---
19
+ # Design System Inspiration of Sendbird
20
+
21
+ ## 1. Visual Theme & Atmosphere
22
+
23
+ Sendbird is a developer-infrastructure company that wears two faces, and the gap between them is the whole story. The **product** — the Sendbird UIKit that powers chat inside thousands of apps — is a disciplined, token-driven system built on a single confident **purple** (`#742DDD`, "Sendbird purple") sitting on an eight-step neutral grayscale, with green, red and blue reserved strictly for semantic meaning. It is functional software color: a 4px corner radius everywhere, flat fills, no gradients, a palette that survives being dropped into a customer's own app without fighting it. The **marketing site** (sendbird.com), by contrast, is a near-monochrome editorial surface — pure white grounds, an oversized **serif display face** running to 72px for headlines, body text set in Helvetica Now Text, and pill-shaped black-and-white CTAs with no brand color at all. One surface is engineered to disappear into a developer's product; the other is engineered to read like a printed enterprise brochure. The through-line is restraint: a brand that earns trust by looking calm, legible, and uncluttered, letting the single purple do its work only where it carries product meaning.
24
+
25
+ ## 2. Color Palette & Roles
26
+
27
+ Sendbird's UIKit ships a fully named, five-step-per-family color set (the authoritative design-system source). The marketing site layers a separate near-grayscale identity on top.
28
+
29
+ **Primary — Sendbird purple (brand + primary actions)**
30
+ - primary-100: `#DBD1FF`
31
+ - primary-200: `#C2A9FA`
32
+ - primary-300: `#742DDD` (the main color — default fills, links, focus)
33
+ - primary-400: `#6211C8` (hover)
34
+ - primary-500: `#491389` (pressed/active)
35
+
36
+ **Secondary — green (accents, success-adjacent)**
37
+ - secondary-100: `#A8E2AB`
38
+ - secondary-200: `#69C085`
39
+ - secondary-300: `#259C72`
40
+ - secondary-400: `#027D69`
41
+ - secondary-500: `#066858`
42
+
43
+ **Error — red (destructive, validation)**
44
+ - error-100: `#FDAAAA`
45
+ - error-200: `#F66161`
46
+ - error-300: `#DE360B` (light-theme error border + danger fill)
47
+ - error-400: `#BF0711`
48
+ - error-500: `#9D091E`
49
+
50
+ **Information — `#ADC9FF`** (informational highlights, link previews)
51
+
52
+ **Background — neutral grayscale (surfaces, light → dark)**
53
+ - background-50: `#FFFFFF`
54
+ - background-100: `#EEEEEE` (incoming message bubble, subtle fills)
55
+ - background-200: `#E0E0E0` (disabled fills)
56
+ - background-300: `#BDBDBD`
57
+ - background-400: `#393939`
58
+ - background-500: `#2C2C2C`
59
+ - background-600: `#161616`
60
+ - background-700: `#000000`
61
+
62
+ **Text on light (alpha black)**
63
+ - onlight-01: `#000000` @ 87% (primary text)
64
+ - onlight-02: `#000000` @ 50% (secondary text)
65
+ - onlight-03: `#000000` @ 38% (disabled text)
66
+ - onlight-04: `#000000` @ 12% (dividers, default input border)
67
+
68
+ **Text on dark (alpha white)** mirrors the above at 87 / 50 / 38 / 12% white. **Overlay:** `#000000` @ 55% (modal scrim), `#000000` @ 32% (lighter scrim).
69
+
70
+ **Marketing surface (sendbird.com, live):** ground `#FFFFFF`, body text `#424242`, near-black display + CTA ink `#0D0D0D`, nav ink `#0E1017`, footer + chip fill `#F2F3F7`, hairline borders `#E3E5EF` and `#D1D1D1`. No purple appears in the marketing chrome — brand color is held back for the product.
71
+
72
+ ## 3. Typography Rules
73
+
74
+ - **Product (UIKit):** the system font stack via `--sendbird-font-family-default` — platform-native sans (SF Pro / Roboto / system-ui) so embedded chat matches the host app. Message text and labels sit at 14px with a clear weight ladder (400 body, 500–600 labels).
75
+ - **Marketing display:** a **serif** display face for headlines, observed at **72px / weight 500** on the hero (`#0D0D0D`). The serif is the single most distinctive type choice — it signals editorial confidence and separates Sendbird from the geometric-sans default of developer-tool marketing.
76
+ - **Marketing body + nav:** **Helvetica Now Text** — body at 18px / 400 (`#424242`), nav links at 16px / 500 (`#0E1017`), small print near 13px / 600 on pill CTAs.
77
+ - **Hierarchy:** large serif headline → Helvetica Now subhead/body → medium-weight nav and buttons. Tight, legible, generous line spacing; never more than two type families on one surface.
78
+
79
+ ## 4. Component Stylings
80
+
81
+ > Two systems documented below: the **UIKit** (product, token-driven, purple) verified from the official component source, and the **marketing chrome** (sendbird.com) verified from live computed style. Each is the source of truth for its own surface.
82
+
83
+ ### UIKit Button
84
+
85
+ **Primary — Big (default)**
86
+ - Background: `#742DDD` (primary-300)
87
+ - Text: `#FFFFFF`
88
+ - Border: none
89
+ - Radius: 4px
90
+ - Padding: 10px 16px
91
+ - Height: 40px
92
+ - Font: 14px / 600 / system default
93
+ - Hover: background `#6211C8` (primary-400)
94
+ - Pressed: background `#491389` (primary-500)
95
+ - Use: the single most prominent action in a UIKit surface (send, confirm, create channel)
96
+
97
+ **Primary — Small**
98
+ - Background: `#742DDD`
99
+ - Text: `#FFFFFF`
100
+ - Radius: 4px
101
+ - Padding: 6px 16px
102
+ - Height: 32px
103
+ - Use: inline and toolbar actions
104
+
105
+ **Secondary (ghost)**
106
+ - Background: transparent
107
+ - Text: `#742DDD`
108
+ - Border: 1px solid `#742DDD`
109
+ - Radius: 4px
110
+ - Pressed: background `#000000` @ 4% (onlight wash)
111
+ - Use: lower-emphasis alternative beside a primary button
112
+
113
+ **Danger**
114
+ - Background: `#DE360B` (error-300)
115
+ - Text: `#FFFFFF`
116
+ - Radius: 4px
117
+ - Hover: background `#BF0711` (error-400)
118
+ - Pressed: background `#9D091E` (error-500)
119
+ - Use: destructive actions (leave channel, delete message)
120
+
121
+ **Disabled**
122
+ - Background: `#E0E0E0` (background-200)
123
+ - Text: `#000000` @ 38% (onlight-03)
124
+ - Radius: 4px
125
+ - Use: any blocked action; non-interactive
126
+
127
+ ### UIKit Input / TextField
128
+
129
+ **Default**
130
+ - Background: `#FFFFFF`
131
+ - Text: `#000000` @ 87% (onlight-01)
132
+ - Border: 1px solid `#000000` @ 12% (onlight-04)
133
+ - Radius: 4px
134
+ - Padding: 7px 12px
135
+ - Font: 14px / 400
136
+
137
+ **Focus**
138
+ - Border: 1px solid `#742DDD` (primary-300)
139
+ - Shadow: 0 0 0 1px `#742DDD`
140
+
141
+ **Error**
142
+ - Border: 1px solid `#DE360B` (error-300)
143
+
144
+ ### UIKit Message Bubble
145
+
146
+ **Outgoing (mine)**
147
+ - Background: `#742DDD` (primary-300)
148
+ - Text: `#FFFFFF`
149
+ - Max-width: 400px
150
+ - Use: messages sent by the current user, right-aligned
151
+
152
+ **Incoming (other)**
153
+ - Background: `#EEEEEE` (background-100)
154
+ - Text: `#000000` @ 87% (onlight-01)
155
+ - Max-width: 400px
156
+ - Avatar: 40px (min-width, left of bubble)
157
+ - Use: messages from other participants, left-aligned
158
+
159
+ ### Marketing CTA — Dark pill (primary)
160
+
161
+ **Default**
162
+ - Background: `#0D0D0D`
163
+ - Text: `#FFFFFF`
164
+ - Border: 1px solid `#0D0D0D`
165
+ - Radius: 24px
166
+ - Padding: 12px 10px
167
+ - Height: 42px
168
+ - Font: 13px / 600 / Helvetica Now Text
169
+ - Use: highest-emphasis marketing action
170
+
171
+ ### Marketing CTA — Outline pill (secondary)
172
+
173
+ **Default**
174
+ - Background: `#FFFFFF`
175
+ - Text: `#0D0D0D`
176
+ - Border: 1px solid `#0D0D0D`
177
+ - Radius: 24px
178
+ - Padding: 12px 10px
179
+ - Height: 42px
180
+ - Font: 13px / 600
181
+ - Use: secondary marketing action paired with the dark pill
182
+
183
+ ### Marketing Utility chip
184
+
185
+ **Default**
186
+ - Background: `#F2F3F7`
187
+ - Text: `#0D0D0D`
188
+ - Border: 1px solid `#E3E5EF`
189
+ - Radius: 8px
190
+ - Padding: 8px 12px
191
+ - Height: 50px
192
+ - Font: 18px / 400 / Helvetica Now Text
193
+ - Use: neutral selector / utility control on marketing surfaces
194
+
195
+ ### Marketing Input (newsletter)
196
+
197
+ **Default**
198
+ - Background: `#FFFFFF`
199
+ - Text: `#424242`
200
+ - Border: 1px solid `#D1D1D1`
201
+ - Radius: 50px
202
+ - Padding: 6px 35px
203
+ - Font: 12.8px / 400
204
+ - Use: pill-shaped email capture in footer/forms
205
+
206
+ ## 5. Layout Principles
207
+
208
+ - **UIKit:** a vertical conversation column with a fixed channel header, a scrolling message list, and a docked composer. Message rows are avatar + bubble, bubbles capped at 400px so long text wraps rather than spanning wide screens. 4px is the universal corner unit; spacing is an 8px rhythm.
209
+ - **Marketing:** generous single-column-of-attention sections on white, oversized serif headlines anchoring each block, wide margins, and image columns doing the visual work. No dense grids — the page breathes.
210
+ - **Density:** product is information-dense but calm (chat needs scannability); marketing is deliberately sparse.
211
+
212
+ ## 6. Depth & Elevation
213
+
214
+ Sendbird is overwhelmingly **flat**. The UIKit uses fills and 1px hairlines, not shadows, to separate surfaces — incoming bubble vs. ground is a fill contrast (`#EEEEEE` on `#FFFFFF`), not a drop shadow. Elevation appears only where it carries meaning: modals/menus float above a `#000000` @ 55% overlay scrim, and the input focus ring is a 1px purple halo rather than a glow. Marketing is similarly shadowless — depth comes from whitespace and scale, not z-axis tricks.
215
+
216
+ ## 7. Do's and Don'ts
217
+
218
+ ### Do
219
+ - Use purple `#742DDD` for exactly one primary action per surface; let neutrals carry everything else.
220
+ - Keep the 4px radius on product controls and the pill (24px / 50px) radius on marketing chrome — don't mix the two languages.
221
+ - Reserve green, red, and blue for semantic roles (success-adjacent, destructive/error, informational).
222
+ - Pair the serif display headline with Helvetica Now body on marketing; never set body copy in the serif.
223
+
224
+ ### Don't
225
+ - Introduce gradients, drop shadows, or a second brand hue — the system's calm depends on restraint.
226
+ - Put brand purple into marketing chrome, or near-black pills into the product UI; the surfaces are intentionally distinct.
227
+ - Combine multiple fields on one spec line; each token gets its own value.
228
+ - Let message bubbles exceed the 400px cap or drop the 40px avatar gutter.
229
+
230
+ ## 8. Responsive Behavior
231
+
232
+ - **UIKit:** the conversation column is fluid; bubble max-width collapses from 400px to `calc(100vw - 140px)` on narrow viewports, preserving the avatar gutter and right/left alignment. Channel list and conversation become a single stacked view on mobile.
233
+ - **Marketing:** the serif hero scales down from 72px on large screens; multi-column sections reflow to a single column; pill CTAs stay full-radius and stack vertically.
234
+ - Touch targets respect the 40px (Big) / 32px (Small) button heights as comfortable minimums.
235
+
236
+ ## 9. Agent Prompt Guide
237
+
238
+ When generating a Sendbird-style interface, specify which surface you mean:
239
+ - **"Sendbird UIKit style"** → token-driven chat UI: purple `#742DDD` primary, neutral grayscale, 4px radius, flat fills, 14px system-font text, message bubbles (outgoing purple / incoming `#EEEEEE`) capped at 400px with 40px avatars, semantic green/red/blue only.
240
+ - **"Sendbird marketing style"** → near-monochrome editorial: white ground, 72px serif display headline, Helvetica Now Text body, black `#0D0D0D` and white pill CTAs (24px radius), `#F2F3F7` neutral chips, no brand color in chrome.
241
+ - Default corner radius: **4px** (product) — state "pill" explicitly for marketing CTAs.
242
+ - Keep it flat: 1px hairlines and fills, not shadows. One primary action per surface.
243
+
244
+ ## 10. Voice & Tone
245
+
246
+ Sendbird speaks like **infrastructure that respects your time**: precise, technical without jargon-for-its-own-sake, confident but never loud. Product copy (UIKit labels, empty states) is plain and instructive — "No messages yet," "Send," "Leave channel." Marketing copy is declarative and enterprise-assured — "The AI customer experience platform" — short clauses, present tense, outcomes over features. The serif display face gives the words a measured, editorial gravity; the tone is a senior engineer who has already solved your problem and is calmly telling you how.
247
+
248
+ ## 11. Brand Narrative
249
+
250
+ Founded in Korea (originally as a community for parents) and now powering in-app conversations for some of the world's largest apps, Sendbird's story is **invisible reliability at scale**. The brand's job is to be the messaging layer you never think about — which is why the product design system is built to disappear into the host app, and why the brand color is held back from marketing chrome. The single purple is a signature you only meet where it matters: the action that sends, the link that connects. Everything else — grayscale surfaces, flat fills, serif calm — communicates "we are the dependable substrate, not the spectacle."
251
+
252
+ ## 12. Principles
253
+
254
+ 1. **Color carries meaning, not decoration.** One purple for primary action; semantic green/red/blue; everything else neutral.
255
+ 2. **Flat by default.** Fills and hairlines over shadows; elevation only for true overlays.
256
+ 3. **The product disappears.** UIKit is themeable and system-font-based so it adopts the host app's identity.
257
+ 4. **Two surfaces, two languages.** Product = 4px functional; marketing = pill editorial. Never blur them.
258
+ 5. **Restraint reads as trust.** Whitespace, legibility, and a single accent over visual noise.
259
+
260
+ ## 13. Personas
261
+
262
+ - **The app developer** embedding chat — wants tokens, theming, and components that drop in without fighting their design. Lives in the UIKit docs.
263
+ - **The enterprise buyer** evaluating a CX/messaging platform — meets the serif marketing site, reads "reliable, secure, at scale," needs trust signals (certifications, G2).
264
+ - **The end user** inside a customer's app — never sees "Sendbird," only a calm, legible conversation that feels native to the app they're using.
265
+
266
+ ## 14. States
267
+
268
+ - **Default / Hover / Pressed:** buttons step purple-300 → purple-400 → purple-500 (danger steps error-300 → 400 → 500).
269
+ - **Focus:** 1px purple `#742DDD` border + 1px purple box-shadow halo on inputs.
270
+ - **Error:** input border switches to error-300 `#DE360B`; validation text in error color.
271
+ - **Disabled:** background-200 `#E0E0E0` fill with onlight-03 (38% black) text; no interaction.
272
+ - **Empty:** plain instructive copy ("No messages yet") centered in the conversation column, neutral text, no illustration noise.
273
+ - **Loading:** lightweight skeleton/spinner in neutral grays; the composer stays docked.
274
+
275
+ ## 15. Motion & Easing
276
+
277
+ Motion is **minimal and purposeful**. New messages slide/fade into the list at the bottom; the composer and channel transitions are quick (~150–200ms) ease-out movements that never block input. State changes (hover, focus, pressed) are near-instant color transitions, not animated flourishes. Overlays fade their scrim in over ~200ms. The marketing site favors restraint too — subtle reveal-on-scroll rather than parallax theatrics. The guiding rule mirrors the visual system: motion clarifies, it does not perform.
278
+
279
+ ---
280
+ **Verified:** 2026-06-01 (CREATE pilot — first ref through the proof-gated pipeline)
281
+ **Tier 1 sources:** https://sendbird.com (live DOM via playwright getComputedStyle — marketing chrome: nav `#0E1017` 16px/500, serif h1 72px/500 `#0D0D0D`, dark pill `#0D0D0D` 24px radius, neutral chip `#F2F3F7`/`#E3E5EF` 8px, pill input 50px radius), https://sendbird.com/docs/chat/uikit/v3/android-view/customizations/resource-customization/color-resources (official UIKit color tokens — primary/secondary/error/background/onlight/ondark/overlay full palette), https://github.com/sendbird/sendbird-uikit-react (official UIKit source — Button index.scss 4px radius / Big 40px / Small 32px / variant fills, Input index.scss 7px·12px / focus + error borders, MessageContent index.scss 400px max-width / 40px avatar)
282
+ **Tier 2 sources:** getdesign.md/sendbird — NOT LISTED ("No designs found"). styles.refero.design — NOT LISTED (curated taste-set; ?q= does not server-filter; B2B SDK absent). Tier 1 (official UIKit docs + source + live inspect) treated as authoritative per pipeline.
283
+ **Conflicts unresolved:** none. Note: an earlier web search reported a green primary (#259c72) — that is the UIKit **secondary** palette; the Android `colors.xml` source confirms **primary = purple #742DDD**. Resolved in favor of the official source file.
284
+ **Proof:** see `.verification.md` (`## Proof` block, ≥5 raw computed-style samples).
285
+ **Surface split:** §4 documents two parallel systems — the UIKit product DS (purple, 4px, token-driven) and the sendbird.com marketing chrome (monochrome serif editorial, pill radius). Both retained as authoritative for their surface.