oh-my-design-cli 1.8.7 → 1.9.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 (247) hide show
  1. package/.claude/hooks/lib/preferences-parser.cjs +1 -0
  2. package/.claude/hooks/lib/preferences-writer.cjs +1 -0
  3. package/.claude/hooks/post-edit-watch.cjs +1 -0
  4. package/.claude/hooks/session-end-foldin.cjs +1 -0
  5. package/.claude/hooks/session-state-loader.cjs +1 -0
  6. package/.claude/hooks/skill-activation.cjs +1 -0
  7. package/.claude/settings.json +10 -1
  8. package/.github/assets/logo-bg.png +0 -0
  9. package/AGENTS.md +20 -1
  10. package/CHANGELOG.md +482 -0
  11. package/MIGRATION.md +103 -0
  12. package/README.ja.md +56 -19
  13. package/README.ko.md +47 -30
  14. package/README.md +48 -30
  15. package/README.zh-TW.md +59 -22
  16. package/agents/AGENT.md +8 -7
  17. package/agents/omd-codex-image.md +1 -1
  18. package/agents/omd-critic.md +6 -7
  19. package/agents/omd-designer-review.md +1 -1
  20. package/agents/omd-final-qa.md +1 -1
  21. package/agents/omd-humanizer.md +38 -0
  22. package/agents/omd-kr-writer.md +3 -4
  23. package/agents/omd-locale-adapter.md +12 -16
  24. package/agents/omd-master.md +24 -19
  25. package/agents/omd-microcopy.md +1 -1
  26. package/agents/omd-orchestrator.md +7 -8
  27. package/agents/omd-slop-auditor.md +31 -0
  28. package/agents/omd-ux-researcher.md +1 -1
  29. package/data/reference-fingerprints.json +1995 -38
  30. package/dist/bin/oh-my-design.js +16 -8
  31. package/dist/bin/oh-my-design.js.map +1 -1
  32. package/dist/chunk-UJIHCEYF.js +99 -0
  33. package/dist/chunk-UJIHCEYF.js.map +1 -0
  34. package/dist/doctor-LDWSFM3I.js +763 -0
  35. package/dist/doctor-LDWSFM3I.js.map +1 -0
  36. package/dist/install-skills-ZZFNJ2II.js +1120 -0
  37. package/dist/install-skills-ZZFNJ2II.js.map +1 -0
  38. package/docs/CLI_QUICKSTART.md +157 -0
  39. package/package.json +25 -4
  40. package/scripts/postinstall.cjs +5 -4
  41. package/skills/claude-design/SKILL.md +38 -14
  42. package/skills/claude-design/references/claude-design-flow.md +11 -11
  43. package/skills/claude-design/references/codebase-analysis.md +5 -4
  44. package/skills/omd-final-qa/SKILL.md +1 -1
  45. package/skills/omd-harness/SKILL.md +51 -50
  46. package/skills/omd-humanize/SKILL.md +116 -0
  47. package/skills/omd-humanize/agents/openai.yaml +4 -0
  48. package/skills/omd-humanize/references/locale-playbooks.md +102 -0
  49. package/skills/omd-humanize/references/sources.md +11 -0
  50. package/skills/omd-init/SKILL.md +18 -12
  51. package/skills/omd-locale-adapter/SKILL.md +58 -91
  52. package/skills/omd-orchestrator/SKILL.md +11 -5
  53. package/skills/omd-reference-capture/SKILL.md +80 -26
  54. package/skills/omd-reference-capture/scripts/PLAYWRIGHT-LICENSE.txt +202 -0
  55. package/skills/omd-reference-capture/scripts/PLAYWRIGHT-NOTICE.txt +5 -0
  56. package/skills/omd-reference-capture/scripts/THIRD_PARTY_NOTICES.md +3 -0
  57. package/skills/omd-reference-capture/scripts/capture-reference-evidence.mjs +159906 -0
  58. package/skills/omd-slop-audit/SKILL.md +110 -0
  59. package/skills/omd-slop-audit/agents/openai.yaml +4 -0
  60. package/skills/omd-slop-audit/references/pattern-catalog.md +96 -0
  61. package/skills/omd-slop-audit/references/sources.md +24 -0
  62. package/web/references/104/DESIGN.md +354 -0
  63. package/web/references/11st/DESIGN.md +197 -316
  64. package/web/references/29cm/DESIGN.md +297 -393
  65. package/web/references/42dot/DESIGN.md +390 -0
  66. package/web/references/8percent/DESIGN.md +438 -0
  67. package/web/references/ably/DESIGN.md +267 -572
  68. package/web/references/acer/DESIGN.md +329 -0
  69. package/web/references/airbnb/DESIGN.md +219 -557
  70. package/web/references/alipay/DESIGN.md +179 -420
  71. package/web/references/apple/DESIGN.md +224 -498
  72. package/web/references/asleep/DESIGN.md +402 -0
  73. package/web/references/au/DESIGN.md +334 -0
  74. package/web/references/autopedia/DESIGN.md +382 -0
  75. package/web/references/aws-cloudscape/DESIGN.md +241 -0
  76. package/web/references/baemin/DESIGN.md +332 -491
  77. package/web/references/banksalad/DESIGN.md +269 -180
  78. package/web/references/barogo/DESIGN.md +416 -0
  79. package/web/references/beusable/DESIGN.md +464 -0
  80. package/web/references/bilibili/DESIGN.md +206 -374
  81. package/web/references/bmw/DESIGN.md +162 -276
  82. package/web/references/brandi/DESIGN.md +184 -325
  83. package/web/references/catchtable/DESIGN.md +219 -264
  84. package/web/references/cgv/DESIGN.md +317 -0
  85. package/web/references/channeltalk/DESIGN.md +210 -336
  86. package/web/references/china-airlines/DESIGN.md +291 -0
  87. package/web/references/cjonstyle/DESIGN.md +453 -0
  88. package/web/references/class101/DESIGN.md +168 -387
  89. package/web/references/classum/DESIGN.md +228 -203
  90. package/web/references/claude/DESIGN.md +242 -479
  91. package/web/references/clay/DESIGN.md +179 -377
  92. package/web/references/clickhouse/DESIGN.md +254 -343
  93. package/web/references/cohere/DESIGN.md +214 -324
  94. package/web/references/coinone/DESIGN.md +199 -179
  95. package/web/references/corca/DESIGN.md +414 -0
  96. package/web/references/coupang/DESIGN.md +205 -475
  97. package/web/references/cursor/DESIGN.md +240 -381
  98. package/web/references/dabang/DESIGN.md +248 -213
  99. package/web/references/dable/DESIGN.md +431 -0
  100. package/web/references/datarize/DESIGN.md +217 -330
  101. package/web/references/dealicious/DESIGN.md +402 -0
  102. package/web/references/drdiary/DESIGN.md +404 -0
  103. package/web/references/elastic/DESIGN.md +238 -0
  104. package/web/references/elevenlabs/DESIGN.md +183 -321
  105. package/web/references/eslite/DESIGN.md +257 -0
  106. package/web/references/evaair/DESIGN.md +338 -0
  107. package/web/references/expo/DESIGN.md +238 -331
  108. package/web/references/familymart-tw/DESIGN.md +254 -0
  109. package/web/references/ferrari/DESIGN.md +160 -377
  110. package/web/references/figma/DESIGN.md +197 -451
  111. package/web/references/fitpet/DESIGN.md +445 -0
  112. package/web/references/flex/DESIGN.md +170 -253
  113. package/web/references/framer/DESIGN.md +197 -340
  114. package/web/references/freee/DESIGN.md +211 -533
  115. package/web/references/friendliai/DESIGN.md +431 -0
  116. package/web/references/frip/DESIGN.md +440 -0
  117. package/web/references/gangnamunni/DESIGN.md +154 -591
  118. package/web/references/gaudiolab/DESIGN.md +414 -0
  119. package/web/references/google/DESIGN.md +290 -398
  120. package/web/references/hashicorp/DESIGN.md +273 -318
  121. package/web/references/heydealer/DESIGN.md +429 -0
  122. package/web/references/humanscape/DESIGN.md +433 -0
  123. package/web/references/hyundai/DESIGN.md +158 -368
  124. package/web/references/hyundaicard/DESIGN.md +171 -121
  125. package/web/references/ibm/DESIGN.md +227 -378
  126. package/web/references/idus/DESIGN.md +450 -0
  127. package/web/references/igaworks/DESIGN.md +437 -0
  128. package/web/references/inflearn/DESIGN.md +221 -366
  129. package/web/references/intuit/DESIGN.md +244 -0
  130. package/web/references/jandi/DESIGN.md +191 -291
  131. package/web/references/jobplanet/DESIGN.md +415 -0
  132. package/web/references/kakao/DESIGN.md +287 -475
  133. package/web/references/kakaobank/DESIGN.md +220 -521
  134. package/web/references/kakaogames/DESIGN.md +220 -0
  135. package/web/references/kakaopay/DESIGN.md +207 -526
  136. package/web/references/karrot/DESIGN.md +227 -251
  137. package/web/references/kb-kookmin/DESIGN.md +308 -0
  138. package/web/references/kbank/DESIGN.md +220 -175
  139. package/web/references/kmong/DESIGN.md +281 -356
  140. package/web/references/krds/DESIGN.md +245 -19
  141. package/web/references/kream/DESIGN.md +224 -359
  142. package/web/references/kurly/DESIGN.md +211 -533
  143. package/web/references/lamborghini/DESIGN.md +198 -360
  144. package/web/references/lguplus/DESIGN.md +259 -0
  145. package/web/references/likelion/DESIGN.md +283 -0
  146. package/web/references/line/DESIGN.md +396 -355
  147. package/web/references/linear.app/DESIGN.md +209 -562
  148. package/web/references/lotteon/DESIGN.md +386 -0
  149. package/web/references/lovable/DESIGN.md +255 -349
  150. package/web/references/makinarocks/DESIGN.md +149 -349
  151. package/web/references/maum-ai/DESIGN.md +423 -0
  152. package/web/references/medibloc/DESIGN.md +425 -0
  153. package/web/references/megabox/DESIGN.md +232 -0
  154. package/web/references/mercari/DESIGN.md +217 -434
  155. package/web/references/microsoft/DESIGN.md +234 -388
  156. package/web/references/mildang/DESIGN.md +411 -0
  157. package/web/references/millie/DESIGN.md +183 -504
  158. package/web/references/minimax/DESIGN.md +264 -322
  159. package/web/references/miricanvas/DESIGN.md +182 -355
  160. package/web/references/miro/DESIGN.md +234 -232
  161. package/web/references/mistral.ai/DESIGN.md +231 -314
  162. package/web/references/mixi/DESIGN.md +234 -0
  163. package/web/references/moin/DESIGN.md +445 -0
  164. package/web/references/mongodb/DESIGN.md +219 -316
  165. package/web/references/musinsa/DESIGN.md +184 -510
  166. package/web/references/mynavi/DESIGN.md +242 -0
  167. package/web/references/myrealtrip/DESIGN.md +169 -406
  168. package/web/references/naver/DESIGN.md +328 -499
  169. package/web/references/naverwebtoon/DESIGN.md +172 -395
  170. package/web/references/nhn/DESIGN.md +169 -346
  171. package/web/references/nhncloud/DESIGN.md +185 -123
  172. package/web/references/notion/DESIGN.md +271 -475
  173. package/web/references/nrise/DESIGN.md +417 -0
  174. package/web/references/ohouse/DESIGN.md +210 -549
  175. package/web/references/oliveyoung/DESIGN.md +217 -326
  176. package/web/references/ollama/DESIGN.md +241 -308
  177. package/web/references/onestore/DESIGN.md +248 -0
  178. package/web/references/palantir/DESIGN.md +256 -0
  179. package/web/references/panasonic/DESIGN.md +276 -0
  180. package/web/references/patternfly/DESIGN.md +259 -0
  181. package/web/references/payhere/DESIGN.md +438 -0
  182. package/web/references/pega/DESIGN.md +262 -0
  183. package/web/references/peoplefund/DESIGN.md +431 -0
  184. package/web/references/petfriends/DESIGN.md +428 -0
  185. package/web/references/pinkfong/DESIGN.md +199 -367
  186. package/web/references/pinterest/DESIGN.md +258 -308
  187. package/web/references/poya/DESIGN.md +286 -0
  188. package/web/references/pozalabs/DESIGN.md +438 -0
  189. package/web/references/protopie/DESIGN.md +419 -0
  190. package/web/references/qraft/DESIGN.md +448 -0
  191. package/web/references/quotabook/DESIGN.md +449 -0
  192. package/web/references/recruit/DESIGN.md +247 -0
  193. package/web/references/remember/DESIGN.md +202 -396
  194. package/web/references/resend/DESIGN.md +274 -348
  195. package/web/references/sakura-internet/DESIGN.md +269 -0
  196. package/web/references/samsung/DESIGN.md +157 -359
  197. package/web/references/sandoll/DESIGN.md +445 -0
  198. package/web/references/sanity/DESIGN.md +241 -375
  199. package/web/references/scatterlab/DESIGN.md +412 -0
  200. package/web/references/selectstar/DESIGN.md +439 -0
  201. package/web/references/servicenow/DESIGN.md +289 -0
  202. package/web/references/shinhanbank/DESIGN.md +161 -341
  203. package/web/references/shinhancard/DESIGN.md +208 -319
  204. package/web/references/sionic/DESIGN.md +454 -0
  205. package/web/references/sktelecom/DESIGN.md +310 -0
  206. package/web/references/socar/DESIGN.md +125 -32
  207. package/web/references/softbank/DESIGN.md +231 -0
  208. package/web/references/sony/DESIGN.md +234 -0
  209. package/web/references/soop/DESIGN.md +261 -0
  210. package/web/references/spacex/DESIGN.md +184 -323
  211. package/web/references/spotify/DESIGN.md +253 -394
  212. package/web/references/squeezebits/DESIGN.md +441 -0
  213. package/web/references/stayfolio/DESIGN.md +422 -0
  214. package/web/references/stripe/DESIGN.md +212 -491
  215. package/web/references/supabase/DESIGN.md +244 -316
  216. package/web/references/tabling/DESIGN.md +415 -0
  217. package/web/references/taishinbank/DESIGN.md +243 -0
  218. package/web/references/teamlab/DESIGN.md +240 -0
  219. package/web/references/teamsparta/DESIGN.md +472 -0
  220. package/web/references/tellingme/DESIGN.md +392 -0
  221. package/web/references/tesla/DESIGN.md +244 -427
  222. package/web/references/thsr/DESIGN.md +284 -0
  223. package/web/references/thumbtack/DESIGN.md +302 -0
  224. package/web/references/together.ai/DESIGN.md +257 -304
  225. package/web/references/toss/DESIGN.md +251 -593
  226. package/web/references/toss-securities/DESIGN.md +255 -178
  227. package/web/references/tossbank/DESIGN.md +195 -491
  228. package/web/references/toyota/DESIGN.md +238 -0
  229. package/web/references/tving/DESIGN.md +197 -245
  230. package/web/references/typed/DESIGN.md +413 -0
  231. package/web/references/uber/DESIGN.md +256 -333
  232. package/web/references/udn/DESIGN.md +250 -0
  233. package/web/references/upbit/DESIGN.md +145 -256
  234. package/web/references/upstage/DESIGN.md +211 -204
  235. package/web/references/uswds/DESIGN.md +287 -0
  236. package/web/references/vercel/DESIGN.md +236 -440
  237. package/web/references/wanted/DESIGN.md +215 -487
  238. package/web/references/wise/DESIGN.md +223 -231
  239. package/web/references/wisetracker/DESIGN.md +462 -0
  240. package/web/references/wooribank/DESIGN.md +245 -0
  241. package/web/references/yanolja/DESIGN.md +250 -419
  242. package/web/references/yeogiotte/DESIGN.md +235 -418
  243. package/web/references/zapier/DESIGN.md +256 -377
  244. package/web/references/zendesk/DESIGN.md +288 -0
  245. package/web/references/zigzag/DESIGN.md +200 -621
  246. package/dist/install-skills-7UUDOLG2.js +0 -734
  247. package/dist/install-skills-7UUDOLG2.js.map +0 -1
@@ -2,470 +2,302 @@
2
2
  id: bilibili
3
3
  name: Bilibili
4
4
  country: CN
5
- category: video-community
5
+ category: consumer-tech
6
6
  homepage: "https://www.bilibili.com"
7
7
  primary_color: "#FB7299"
8
8
  logo:
9
9
  type: simpleicons
10
10
  slug: bilibili
11
- verified: "2026-05-19"
11
+ verified: "2026-07-13"
12
12
  omd: "0.1"
13
+ verification_v2:
14
+ schema: 2
15
+ checked: "2026-07-13"
16
+ surfaces:
17
+ - id: home
18
+ kind: product-home
19
+ url: https://www.bilibili.com/
20
+ inspected: "2026-07-13"
21
+ - id: surface-2
22
+ kind: product-home
23
+ url: https://www.bilibili.com/
24
+ inspected: "2026-07-13"
25
+ - id: surface-3
26
+ kind: product-popular
27
+ url: https://www.bilibili.com/v/popular/all/
28
+ inspected: "2026-07-13"
29
+ sources:
30
+ - id: home-live
31
+ kind: product-surface
32
+ url: https://www.bilibili.com/
33
+ captured: "2026-07-13"
34
+ - id: home-refresh-live
35
+ kind: product-surface
36
+ url: https://www.bilibili.com/
37
+ captured: "2026-07-13"
38
+ - id: popular-live
39
+ kind: product-surface
40
+ url: https://www.bilibili.com/v/popular/all/
41
+ captured: "2026-07-13"
42
+ - id: corporate-information
43
+ kind: official-doc
44
+ url: https://ir.bilibili.com/en/corporate-information/
45
+ captured: "2026-07-13"
46
+ - id: sustainability-framework
47
+ kind: official-doc
48
+ url: https://ir.bilibili.com/media/crul0g3t/bilibili-sustainable-finance-framework.pdf
49
+ captured: "2026-07-13"
50
+ claims:
51
+ "tokens.colors.canvas": &home_evidence { surface_id: home, source_id: home-live, method: computed-style, captured: "2026-07-13" }
52
+ "tokens.colors.surface": *home_evidence
53
+ "tokens.colors.foreground": *home_evidence
54
+ "tokens.colors.muted": *home_evidence
55
+ "tokens.colors.secondary": *home_evidence
56
+ "tokens.colors.hairline": *home_evidence
57
+ "tokens.typography.family.sans": *home_evidence
58
+ "tokens.typography.nav-label.size": *home_evidence
59
+ "tokens.typography.nav-label.weight": *home_evidence
60
+ "tokens.typography.nav-label.lineHeight": *home_evidence
61
+ "tokens.typography.nav-label.use": *home_evidence
62
+ "tokens.typography.video-title.size": *home_evidence
63
+ "tokens.typography.video-title.weight": *home_evidence
64
+ "tokens.typography.video-title.lineHeight": *home_evidence
65
+ "tokens.typography.video-title.use": *home_evidence
66
+ "tokens.typography.metadata.size": *home_evidence
67
+ "tokens.typography.metadata.weight": *home_evidence
68
+ "tokens.typography.metadata.lineHeight": *home_evidence
69
+ "tokens.typography.metadata.use": *home_evidence
70
+ "tokens.spacing.xs": *home_evidence
71
+ "tokens.spacing.sm": *home_evidence
72
+ "tokens.spacing.md": *home_evidence
73
+ "tokens.rounded.sm": *home_evidence
74
+ "tokens.rounded.md": *home_evidence
75
+ "tokens.shadow.flat": *home_evidence
76
+ "tokens.components.video-card-cover.type": *home_evidence
77
+ "tokens.components.video-card-cover.bg": *home_evidence
78
+ "tokens.components.video-card-cover.radius": *home_evidence
79
+ "tokens.components.video-card-cover.use": *home_evidence
80
+ "tokens.components.video-card-stats.type": *home_evidence
81
+ "tokens.components.video-card-stats.fg": *home_evidence
82
+ "tokens.components.video-card-stats.radius": *home_evidence
83
+ "tokens.components.video-card-stats.padding": *home_evidence
84
+ "tokens.components.video-card-stats.font": *home_evidence
85
+ "tokens.components.video-card-stats.use": *home_evidence
86
+ "tokens.components.skeleton-line.type": *home_evidence
87
+ "tokens.components.skeleton-line.bg": *home_evidence
88
+ "tokens.components.skeleton-line.radius": *home_evidence
89
+ "tokens.components.skeleton-line.use": *home_evidence
90
+ conflicts: []
13
91
  tokens:
14
- source: prose-derived
15
- extracted: "2026-06-08"
16
- note: "Only bili pink #FB7299 verified; bili blue, gold coin, and all neutrals are best-fit approximations flagged in prose no public token layer."
92
+ source: live-extract
93
+ extracted: "2026-07-13"
94
+ note: "Three supplied desktop product snapshots across the home and popular routes. Tokens are limited to computed values with selector-level provenance; the existing catalog primary_color is not a current UI-token claim."
17
95
  colors:
18
- primary: "#FB7299"
19
- primary-hover: "#F25D8E"
20
- primary-tint: "#FFF0F4"
21
- brand: "#FB7299"
22
- brand-blue: "#00AEEC"
23
- brand-blue-dark: "#0089C7"
24
- canvas: "#FFFFFF"
25
- surface: "#F4F4F4"
26
- foreground: "#18191C"
27
- muted: "#61666D"
28
- hint: "#C9CCD0"
29
- hairline: "#E3E5E7"
30
- divider: "#F1F2F3"
31
- on-primary: "#FFFFFF"
32
- coin: "#FFB027"
33
- error: "#FF4D4F"
34
- success: "#52C41A"
96
+ canvas: "#f1f2f3"
97
+ surface: "#ffffff"
98
+ foreground: "#18191c"
99
+ muted: "#9499a0"
100
+ secondary: "#61666d"
101
+ hairline: "#e3e5e7"
35
102
  typography:
36
- family: { sans: "PingFang SC, Source Han Sans SC, 思源黑体, Microsoft YaHei, sans-serif", mono: "monospace" }
37
- page-header: { size: 18, weight: 600, lineHeight: 1.3, use: "Channel titles, section heads" }
38
- video-title: { size: 14, weight: 500, lineHeight: 1.4, use: "Video title in card, 2-line clamp" }
39
- body: { size: 14, weight: 400, lineHeight: 1.5, use: "Video detail, comments" }
40
- metadata: { size: 12, weight: 400, lineHeight: 1.4, use: "UP主 name, view/danmaku counts" }
41
- caption: { size: 11, weight: 400, lineHeight: 1.4, use: "Tags, fine labels, durations" }
42
- spacing: { xs: 4, sm: 8, md: 16, base: 16, lg: 24, xl: 32, xxl: 48, section: 64 }
43
- rounded: { sm: 4, md: 6, lg: 8, full: 9999 }
103
+ family: { sans: "-apple-system" }
104
+ nav-label: { size: 14, weight: 400, lineHeight: 64, use: "Product-home header entry links" }
105
+ video-title: { size: 15, weight: 400, lineHeight: 22, use: "Home video-card title" }
106
+ metadata: { size: 13, weight: 400, lineHeight: 17, use: "Home video-card owner and date" }
107
+ spacing: { xs: 4, sm: 8, md: 16 }
108
+ rounded: { sm: 4, md: 6 }
44
109
  shadow:
45
- hover: "rgba(0,0,0,0.08) 0px 2px 12px 0px"
46
- floating: "rgba(0,0,0,0.1) 0px 4px 16px 0px"
47
- modal: "rgba(0,0,0,0.12) 0px 6px 24px 0px"
48
- components_harvested: true
110
+ flat: "none"
111
+ components_harvested: false
49
112
  components:
50
- button-primary: { type: button, bg: "#FB7299", fg: "#FFFFFF", radius: "6px", padding: "6px 16px", font: "14px / 500", hover: "bg #F25D8E", use: "Follow / Sign up — pink is the action color" }
51
- button-secondary: { type: button, bg: "#FFFFFF", fg: "#61666D", border: "1px solid #E3E5E7", radius: "6px", padding: "6px 16px", font: "14px / 500", use: "Following / ghost toggle" }
52
- input-search: { type: input, bg: "#FFFFFF", fg: "#18191C", border: "1px solid #E3E5E7", radius: "8px", padding: "8px 14px", font: "14px / 400", focus: "border transitions to bili pink/blue", use: "Top search bar, comment input, form fields" }
53
- coin-action: { type: toggle, bg: "transparent", fg: "#FFB027", use: "Signature 投币 give-a-coin reward gesture, gold when active" }
54
- video-card: { type: card, bg: "#FFFFFF", radius: "6px", padding: "0 cover / 8px footer", shadow: "rgba(0,0,0,0.08) 0px 2px 12px 0px", hover: "subtle lift + cover preview", use: "16:9 cover + duration/count overlays, 2-line title 14px/500, UP主 name 12px/400 — atomic feed unit" }
55
- tag-chip: { type: badge, bg: "#F4F4F4", fg: "#61666D", radius: "4px", padding: "4px 10px", font: "12px / 400", active: "bg #FFF0F4 + fg #FB7299", use: "分区 partition filters above feed" }
56
- overlay-pill: { type: badge, bg: "rgba(0,0,0,0.6)", fg: "#FFFFFF", radius: "4px", padding: "2px 6px", font: "12px / 400", use: "Duration + view/danmaku counts over cover" }
57
- nav-tab: { type: tab, fg: "#61666D", active: "fg #FB7299 + pink bottom border", use: "Partition (分区) horizontal category nav" }
113
+ video-card-cover: { type: card, bg: "#f1f2f3", radius: "6px", use: "Product-home video-card cover wrapper; 248px × 140px in the captured desktop viewport" }
114
+ video-card-stats: { type: badge, fg: "#ffffff", radius: "0px 0px 6px 6px", padding: "16px 8px 6px", font: "13px / 400", use: "Product-home video-card statistics strip" }
115
+ skeleton-line: { type: card, bg: "#f1f2f3", radius: "4px", use: "Product-home video-card loading text line" }
58
116
  ---
59
117
 
60
118
  # Design System Inspiration of Bilibili
61
119
 
62
120
  ## 1. Visual Theme & Atmosphere
63
121
 
64
- Bilibili (哔哩哔哩, affectionately "B站" "B-site") is China's home of ACG culture — anime, comics, and games and the video community where a generation grew up, and its design wears that identity on its sleeve. The signature is the unmistakable **bili pink** (`#FB7299`) — a soft, warm, distinctly youthful pink that fans simply call "粉" — paired with a friendly **bili blue** accent and a clean white content surface. Bilibili's color is its personality: where most video platforms reach for red (YouTube), black (premium streamers), or corporate blue, Bilibili chose a gentle pink and made it iconic. The chrome is bright, light, and approachable; the feed is a card-based grid of video thumbnails, each showing a cover, duration, view/danmaku counts, title, and uploader (亲切地称为 "UP主"). The brand's emotional register is *community and fun* — this is a place of fandom, of bullet-comments (弹幕 / danmaku) flying across the screen, of in-jokes and shared culture, not a sterile content-delivery utility.
122
+ Bilibili describes itself as a leading video community for young generations in China, organised around users, high-quality content, creators, and the emotional bonds between them. The supplied 2026-07-13 desktop product snapshots express that proposition as a dense, content-first feed: a `#f1f2f3` page ground holds repeated video-card covers, white statistics text crosses the lower cover edge, titles sit in `#18191c`, and owner/date metadata recedes to `#9499a0`. These are current 1440×900 product observations, not reconstructions of the player, mobile app, marketing campaign, or corporate-site chrome.
65
123
 
66
- The platform's defining UX primitive is **danmaku (弹幕)** — real-time bullet comments that scroll across the video itself, turning passive watching into a shared, almost-live communal experience. This is Bilibili's soul, and it shapes the design: the video player is the heart of the product, the comment culture is celebrated rather than hidden, and the whole interface signals "you're among friends who love the same things". Bilibili's mascots the **22娘 and 33娘 (2233 girls)**, two anime-style characters appear in empty states, errors, and brand moments, reinforcing the ACG warmth. The signature greeting `(゜-゜)つロ 干杯~` (a kaomoji raising a glass, "cheers~") is the brand's voice in a single string.
124
+ The corporate record says the website launched in June 2009, took the name “bilibili” in January 2010, and has expanded across varied video interests. It also names “All the Videos You Like” as the brand proposition and identifies bullet chatting as a signature engagement feature. Those first-party facts explain why a repeatable video-card/feed pattern and visible creator metadata belong in this reference; they do not establish colour tokens, player controls, motion, or state variants that were not observed in the supplied product capture.
67
125
 
68
- Typography is system-font-first with full Simplified-Chinese coverage (`PingFang SC`, `Source Han Sans` / `思源黑体`, `Microsoft YaHei`), no custom brand typeface — the warmth comes from the pink and the mascots, not from type. Type sizes are modest, the layout is content-dense (a video community is a discovery machine), but the pink chrome and friendly copy keep it from ever feeling cold.
126
+ **Observed characteristics:**
69
127
 
70
- **Key Characteristics:**
71
- - **bili pink `#FB7299`** the iconic, soft, youthful brand pink fans call "粉"; the brand's whole personality
72
- - **bili blue** accent (≈`#00AEEC`) secondary brand color, links, the logo's TV/bubble
73
- - Card-based video-thumbnail grid feed (cover + duration + view/danmaku counts + title + UP主)
74
- - **Danmaku (弹幕)** bullet-comments as the soul of the product communal, near-live watching
75
- - ACG / anime / youth-culture identity worn proudly — fandom, in-jokes, shared culture
76
- - The **2233 girls (22娘/33娘)** mascots in empty/error/brand surfaces; the `(゜-゜)つロ 干杯~` kaomoji greeting
77
- - Bright, light, white-and-pink chrome — friendly and approachable, never sterile or premium-dark
78
- - System-font-first + Simplified-Chinese fallbacks (`PingFang SC`, `思源黑体`); warmth from color, not type
79
- - The video player is the heart — comment culture celebrated, not hidden
80
- - Content-dense discovery feed kept warm by pink chrome + community copy
128
+ - Three supplied 1440×900 product snapshots across `https://www.bilibili.com/` (two snapshots) and `https://www.bilibili.com/v/popular/all/` (one snapshot).
129
+ - Neutral product-home palette: `#f1f2f3` page/skeleton ground, `#ffffff` surface and overlay text, `#18191c` foreground, and `#9499a0` metadata.
130
+ - Repeated 248px × 140px video-card covers with 6px corners and a 13px statistics strip.
131
+ - A system-resolved `-apple-system` effective family in this capture; no custom family is promoted.
132
+ - The capture did not record a CSS brand swatch, interaction expansion, player controls, mobile layout, or a public design-system surface.
81
133
 
82
134
  ## 2. Color Palette & Roles
83
135
 
84
- Bilibili does not expose a public CSS token layer; the values below combine the verified bili pink with observable live-site usage. Non-pink neutral hexes are best-fit approximations and flagged accordingly.
136
+ The values below are limited to computed product-home values in the supplied evidence. They are not an official public Bilibili colour specification.
85
137
 
86
- ### Brand
87
- - **bili pink** (`#FB7299`): The brand. Primary CTA fill, active/selected states, logo, like accents, the platform's identity. Fans call it "粉". RGB `rgb(251, 114, 153)`. Verified as Bilibili's official pink ("bili pink" / "girl pink").
88
- - **Pink Pressed** (≈`#F25D8E`, approximate): Darker pink for primary-button hover/press.
89
- - **Pink Tint** (≈`#FFF0F4`, approximate): Light pink wash for selected backgrounds, subtle highlights.
90
- - **bili blue** (≈`#00AEEC`, approximate): The secondary brand color — links, the logo's TV/speech-bubble mark, some interactive accents. The cool counterpoint to the warm pink.
91
- - **bili blue dark** (≈`#0089C7`, approximate): blue hover/press.
138
+ ### Product-home neutrals
92
139
 
93
- ### Surface
94
- - **Page White** (`#FFFFFF`): Default content background. Bright and light.
95
- - **Soft Gray Surface** (≈`#F4F4F4` / `#F6F7F8`, approximate): Page ground behind cards, skeleton blocks.
96
- - **Card White** (`#FFFFFF`): Video-card surface.
140
+ - **Page canvas** (`#f1f2f3`): Computed `body` background and video-card skeleton/cover fallback background.
141
+ - **Surface / overlay text** (`#ffffff`): Observed card-surface background and video-card statistics text.
142
+ - **Foreground** (`#18191c`): Computed body, video-card title, and focused/pressed search-field text.
143
+ - **Muted metadata** (`#9499a0`): Video-card owner/date row.
144
+ - **Secondary text** (`#61666d`): Default `nav-search-input` text.
145
+ - **Hairline / focused field fill** (`#e3e5e7`): Observed search-field focus and pressed background; also appears in the colour aggregate as a border/background candidate.
97
146
 
98
- ### Text (near-black + opacity)
99
- - **Primary Text** (≈`#18191C` / `#212121`, approximate): Video titles, primary body.
100
- - **Secondary Text** (≈`#61666D` / `#9499A0`, approximate): UP主 names, view/danmaku counts, metadata.
101
- - **Tertiary / Hint** (≈`#C9CCD0`, approximate): Placeholders, disabled labels.
147
+ ### Boundary
102
148
 
103
- ### Border & Divider
104
- - **Hairline Border** (≈`#E3E5E7`, approximate): Card edges, input borders, dividers.
105
- - **Divider** (≈`#F1F2F3`, approximate): List/section separators.
106
-
107
- ### State
108
- - **Like / Active** (`#FB7299`): The like and active states fill brand pink.
109
- - **Coin (投币) / Highlight** (≈`#FFB027`, approximate): The gold "coin" reward action accent (a signature Bilibili interaction).
110
- - **Error** (≈`#FF4D4F`, approximate): Form errors, destructive confirmations.
111
- - **Success** (≈`#52C41A`, approximate): Confirmations.
112
-
113
- > Role note: bili pink is the personality — it appears on the brand, the primary action, and the active state, and its warmth is the whole point. bili blue is the cool secondary accent (links, logo). The gold coin color is reserved for the distinctive "投币" (give-a-coin) reward gesture.
149
+ The existing frontmatter `primary_color` is retained as catalog metadata but is not emitted by this capture and is deliberately absent from `tokens.colors`. No current token claim is made for a pink action colour, blue accent, coin colour, error/success colour, or selected-state tint.
114
150
 
115
151
  ## 3. Typography Rules
116
152
 
117
- ### Font Stack
118
- ```
119
- -apple-system, BlinkMacSystemFont, "PingFang SC", "Source Han Sans SC", "思源黑体", "Microsoft YaHei", "微软雅黑", "Helvetica Neue", Arial, sans-serif
120
- ```
121
-
122
- System UI fonts lead with comprehensive Simplified-Chinese fallbacks (`PingFang SC` on Apple, `Source Han Sans SC` / `思源黑体` and `Microsoft YaHei` cross-platform). No custom brand typeface — Bilibili's warmth comes from the pink palette and the mascots, so the type stays native and readable.
153
+ ### Font evidence classes
123
154
 
124
- ### Weights
125
- - **Medium (500)**: Video titles, active tabs, button labels, section heads. The "this matters" weight.
126
- - **Regular (400)**: Body, UP主 names, metadata, counts.
127
- - **Semibold (600)**: Reserved for page titles, key numbers, emphasis.
128
-
129
- Bilibili rarely uses weight 700 the friendly community register tops out at 500/600. Hierarchy comes from the 500/400 split + the near-black/gray opacity ladder.
155
+ | Evidence class | Finding | Decision |
156
+ |---|---|---|
157
+ | Official product-use | The allowed first-party sources do not state that a named typeface is used in the product. | No brand family claim. |
158
+ | Live computed surface-use | The three product snapshots resolve visible text to `-apple-system, system-ui, Helvetica Neue, Helvetica, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, sans-serif`; the aggregate classifies `-apple-system` as system with 951 usages. | System family only; no substitute or specimen. |
159
+ | Official distributed brand asset | No first-party Bilibili font catalogue or licence was found. Huawei documents HarmonyOS Sans as its own design resource, not as a Bilibili asset. | None claimed for Bilibili. |
160
+ | Declared-only | `HarmonyOS_Regular` and `HarmonyOS_Medium` each have 54 Bilibili-CDN `@font-face` source URLs, but zero visible usages in the capture. | Declaration evidence only; not a UI family and no specimen. |
161
+ | Unresolved | The purpose, licence, and runtime use of the HarmonyOS declarations were not established by a first-party font source. | Omitted from tokens. |
130
162
 
131
- ### Size Scale (observed)
132
- | Role | Size | Weight | Notes |
133
- |---|---|---|---|
134
- | Page/section header | `18–20px` | 600 | Channel titles, section heads |
135
- | Video title (in card) | `14–15px` | 500 | Two-line clamp on cards |
136
- | Body / description | `14–15px` | 400 | Video detail, comments |
137
- | UP主 / metadata | `12–13px` | 400 | Uploader name, view/danmaku counts |
138
- | Caption / tag | `11–12px` | 400 | Tags, fine labels, durations |
163
+ ### Observed product-home scale
139
164
 
140
- ### Conventions
141
- - **Video titles clamp to two lines** in the feed; overflow ellipsizes.
142
- - **Counts are everywhere and first-class** views (播放), danmaku (弹幕), likes, coins — set in gray metadata weight; they're the social signals of a video community.
143
- - **Type stays modest** so the thumbnail cover does the visual work; the cover is the headline.
144
- - **CJK-first** fallback stack chosen so Simplified Chinese renders crisply at small sizes.
165
+ | Role | Size | Weight | Line height | Selector provenance |
166
+ |---|---:|---:|---:|---|
167
+ | Header entry link | `14px` | `400` | `64px` | `home::[data-omd-capture="0"]` (`entry-title`) |
168
+ | Video-card title | `15px` | `400` | `22px` | `home::h3` (`bili-video-card__info--tit`) |
169
+ | Owner/date metadata | `13px` | `400` | `17px` | `bili-video-card__info--author` / `--date` |
145
170
 
146
171
  ## 4. Component Stylings
147
172
 
148
- ### Buttons
173
+ Scope: the entries below are selector-backed observations from the three supplied product snapshots. The collector recorded zero interaction expansions and zero observed states; unobserved player, follow, coin, upload, modal, tab, and mobile variants are not component specifications.
174
+
175
+ ### Video card
149
176
 
150
- **Primary CTA (Follow UP主 / 关注, Sign up)**
151
- - Background: `#FB7299`
152
- - Text: `#FFFFFF`
153
- - Border: none
154
- - Radius: 6px (or pill 16px for follow chips)
155
- - Padding: 6px 16px
156
- - Font: 14px / 500
157
- - Hover/press: background ≈`#F25D8E`
158
- - Use: Primary action — Follow, Sign up. bili pink is the action color.
159
-
160
- **Secondary (Following / 已关注, ghost)**
161
- - Background: `#FFFFFF`
162
- - Text: ≈`#61666D`
163
- - Border: 1px solid ≈`#E3E5E7`
177
+ **Cover wrapper**
178
+ - Background: `#f1f2f3`
164
179
  - Radius: 6px
165
- - Padding: 6px 16px
166
- - Font: 14px / 500
167
- - Use: Already-following / secondary toggle.
180
+ - Use: `home::div.bili-video-card__image--wrap`, a 248px × 140px video-card cover wrapper in the captured desktop feed
168
181
 
169
- **Coin (投币) Action**
170
- - Background: transparent (icon button)
171
- - Icon: gold ≈`#FFB027` when active
172
- - Use: The signature "give a coin" reward gesture under videos — gold accent.
182
+ **Statistics strip**
183
+ - Text: `#ffffff`
184
+ - Radius: 0px 0px 6px 6px
185
+ - Padding: 16px 8px 6px
186
+ - Font: 13px / 400
187
+ - Use: `home::div.bili-video-card__stats`, lower cover-edge statistics strip
173
188
 
174
189
  ### Inputs
175
190
 
176
- **Search / Default**
177
- - Background: `#FFFFFF` (or filled ≈`#F4F4F4`)
178
- - Text: ≈`#18191C`
179
- - Border: 1px solid ≈`#E3E5E7`
180
- - Radius: 8px (search) / 6px (form field)
181
- - Padding: 8px 14px
191
+ **Home search field**
192
+ - Text: `#61666d`
193
+ - Radius: 0px
194
+ - Padding: 0px 8px 0px 0px
182
195
  - Font: 14px / 400
183
- - Focus: border transitions to bili pink/blue
184
- - Use: Top search bar, comment input, form fields.
185
-
186
- ### Cards
187
-
188
- **Video Card (feed grid)**
189
- - Background: `#FFFFFF`
190
- - Border: none
191
- - Radius: 6–8px (cover top corners + card)
192
- - Padding: 0 on cover; 8px on text footer
193
- - Shadow: none default; subtle lift on hover (web)
194
- - Layout: 16:9 cover image (the star, with a duration pill bottom-right + view/danmaku overlay bottom-left) → 2-line title (14px/500) → UP主 name (12px/400 gray)
195
- - Use: The atomic unit of the discovery feed.
196
-
197
- ### Tags / Badges
198
-
199
- **Partition / Tag Chip**
200
- - Background: ≈`#F4F4F4` (or pink-tint `#FFF0F4` for active)
201
- - Text: ≈`#61666D` (or `#FB7299` active)
202
- - Radius: 4px (or pill)
203
- - Padding: 4px 10px
204
- - Font: 12px / 400
205
- - Use: 分区 (partition) filters — 番剧/游戏/音乐/科技 etc., tags above the feed.
206
-
207
- **Duration / Count Overlay (on cover)**
208
- - Background: black ~60% pill
209
- - Text: `#FFFFFF`
210
- - Radius: 4px
211
- - Padding: 2px 6px
212
- - Font: 12px / 400
213
- - Use: Duration bottom-right; view/danmaku counts bottom-left, over the thumbnail.
196
+ - Use: `home::[data-omd-capture="9"]` (`nav-search-input`); the same default component appears on `surface-2` and `surface-3`
214
197
 
215
- ### Navigation
198
+ ### Loading
216
199
 
217
- - Top bar: bili pink/blue logo (TV-bubble + 22/33 mascot energy) left, partition nav, search center, login/upload right
218
- - Partition (分区) row: horizontal category nav — 首页/番剧/直播/游戏中心/会员购…
219
- - Active nav item: bili pink text + pink underline indicator
220
- - Mobile: bottom tab bar, the center upload "+" in brand pink
200
+ **Video-card skeleton line**
201
+ - Background: `#f1f2f3`
202
+ - Radius: 4px
203
+ - Use: `home::p.bili-video-card__skeleton--text` and `--light` loading placeholders
221
204
 
222
- ### Video Player (the heart)
205
+ ### Buttons
223
206
 
224
- - Large 16:9 player, dark player chrome
225
- - **Danmaku layer**: bullet comments scroll right-to-left across the video; toggle + density controls
226
- - Below: title, UP主, action row (点赞 like / 投币 coin / 收藏 favorite / 转发 share) — the signature "一键三连" (one-click triple: like+coin+favorite)
227
- - Comment section + danmaku list
207
+ **Feed roll button**
208
+ - Background: `#ffffff`
209
+ - Text: `#18191c`
210
+ - Border: 1px solid `#e3e5e7`
211
+ - Radius: 8px
212
+ - Padding: 9px
213
+ - Font: 12px / 400
214
+ - Use: `home::[data-omd-capture="87"]` (`primary-btn roll-btn`) default appearance; no button state was observed
228
215
 
229
216
  ## 5. Layout Principles
230
217
 
231
- ### Spacing
232
- | Use | Value |
233
- |---|---|
234
- | Card gap | `12–16px` |
235
- | Card text footer padding | `8px` |
236
- | Chip padding | `4px 10px` |
237
- | Page horizontal margin | `12–24px` |
238
- | Section vertical | `16–24px` |
218
+ The supplied capture is one 1440×900 product-home viewport. Within it, repeated video-card covers measure 248px × 140px. The observed card title begins below the cover; the information block has a 10px top margin, and the metadata row has a 4px top margin. The capture’s spacing aggregate contains 4px, 8px, and 16px frequently enough to support the small token set, but it does not establish a general grid, responsive breakpoint, or full page-margin scale.
239
219
 
240
- ### Grid
241
- - Feed: responsive card grid — 4–6 columns wide web, 2 columns mobile
242
- - Video detail: player + info (left/main) + recommended-videos rail (right)
243
- - Channel/partition pages: grid + horizontal scroll rows per sub-category
220
+ ## 6. Depth & Elevation
244
221
 
245
- ### Density
246
- Bilibili is **high-density discovery**. A video community lives on showing many videos at once — the feed packs cards, the partition nav is broad, the recommended rail is long. The pink chrome and friendly copy keep the density warm rather than overwhelming.
222
+ All selector-backed component samples used here reported `box-shadow: none`. The card cover, title area, statistics strip, search field, and skeleton are therefore represented as flat. Dropdowns, dialogs, mini-players, hover lift, and modal elevation were not observed and are omitted.
247
223
 
248
- ## 6. Depth & Elevation
224
+ ## 7. Do's and Don'ts
249
225
 
250
- Bilibili web chrome is **mostly flat**. Cards separate via gray ground + radius + gap; depth appears on floating UI and on hover.
226
+ ### Do
251
227
 
252
- | Level | Value (approx) | Use |
253
- |---|---|---|
254
- | Flat | none | Default feed cards, chips, inputs |
255
- | Hover lift (web) | `0 2px 12px rgba(0,0,0,0.08)` | Video card on hover |
256
- | Floating | `0 4px 16px rgba(0,0,0,0.1)` | Dropdowns, popovers, mini-player |
257
- | Modal | `0 6px 24px rgba(0,0,0,0.12)` | Login dialog, share sheet |
258
-
259
- ### Z-Index
260
- - Sticky top bar above content
261
- - Floating mini-player / dropdowns above page
262
- - Modal + mask above dropdowns
263
- - Toast at highest level
264
-
265
- ### Animation
266
- - Card hover lift + cover preview (gif/video preview on hover, web)
267
- - Danmaku scroll (the signature kinetic layer)
268
- - "一键三连" long-press triple-action burst animation (like+coin+favorite)
269
- - Friendly, soft easing
228
+ - Use the observed `#f1f2f3`/`#ffffff`/`#18191c`/`#9499a0` product-home relationship only where its feed/card context is relevant.
229
+ - Preserve the 6px cover and 4px skeleton-line corner observations as component-local values.
230
+ - Treat all components here as default-state observations; this packet records no interaction or state expansion.
270
231
 
271
- ## 7. Do's and Don'ts
232
+ ### Don't
272
233
 
273
- - **DO** make bili pink `#FB7299` the brand and the primary action it's the personality, lean into it.
274
- - **DON'T** swap the pink for a red or a corporate blue; the pink IS Bilibili. Use bili blue only as the cool secondary accent.
275
- - **DO** build the feed as a card grid of 16:9 thumbnails with duration + view/danmaku overlays + 2-line title + UP主.
276
- - **DON'T** hide the engagement counts — views, danmaku, coins are the social proof of a video community.
277
- - **DO** celebrate danmaku and the "一键三连" (like+coin+favorite) culture in the player UI; the comment culture is the soul.
278
- - **DON'T** treat Bilibili like a sterile content-delivery player — the community warmth is the differentiator.
279
- - **DO** use the 2233 mascots and friendly kaomoji copy (`(゜-゜)つロ 干杯~`) in empty/error/brand moments.
280
- - **DON'T** write cold corporate system copy — the ACG-community warmth is the brand voice.
281
- - **DO** keep chrome bright, light, white-and-pink; generous radii (4–8px); friendly shapes.
282
- - **DON'T** go dark-premium or sharp-corporate — that's the opposite of the youth-community register.
283
- - **DO** lead the font stack with `PingFang SC` / `思源黑体`; cap weight at 500/600.
284
- - **DON'T** go weight 700 — heavy bold reads aggressive against the friendly register.
234
+ - Do not present the frontmatter `primary_color` as a current product CSS token from this capture.
235
+ - Do not infer player actions, coin/follow controls, dialogs, tabs, mobile navigation, hover motion, or form-error states from the captured home page.
236
+ - Do not use `HarmonyOS_Regular` or `HarmonyOS_Medium` as a Bilibili UI font without visible usage plus first-party product or licence corroboration.
285
237
 
286
238
  ## 8. Responsive Behavior
287
239
 
288
- | Width | Behavior |
289
- |---|---|
290
- | Desktop `>1280px` | 5–6 column card grid, full partition nav, player + recommended rail |
291
- | Laptop `1024–1280px` | 4-column grid, recommended rail narrows |
292
- | Tablet `768–1024px` | 3-column grid, partition nav scrolls, recommended rail below player |
293
- | Mobile `<768px` | 2-column grid, bottom tab bar, full-width player, danmaku toggle prominent |
294
-
295
- ### Touch & Mobile
296
- - Bottom tab bar with brand-pink center upload "+"
297
- - Full-width player; danmaku send + toggle thumb-accessible
298
- - Min 44px tap targets; generous like/coin/favorite hit areas
299
- - Cover hover-preview (web) → tap-to-play (mobile)
300
-
301
- ### Media
302
- - Video covers: 16:9, `object-fit: cover`, lazy-loaded, hover-preview on web
303
- - Player: adaptive bitrate, danmaku layer overlaid
304
- - Partition pages mix grid + horizontal-scroll rows
240
+ `[FILL IN this packet contains one 1440×900 desktop capture only. No breakpoint, mobile, touch-target, or responsive-layout claim is established.]`
305
241
 
306
242
  ## 9. Agent Prompt Guide
307
243
 
308
- ### Quick Color Reference
309
- - Brand / like / primary CTA: `#FB7299` (pressed ≈`#F25D8E`, tint ≈`#FFF0F4`)
310
- - Secondary accent / links: bili blue ≈`#00AEEC`
311
- - Coin/reward: gold ≈`#FFB027`
312
- - Page bg: `#FFFFFF`; card ground: ≈`#F4F4F4`
313
- - Primary text: ≈`#18191C`; secondary: ≈`#61666D`; hint: ≈`#C9CCD0`; border: ≈`#E3E5E7`
314
-
315
- ### Example Component Prompts
316
- - "Create a Bilibili video card: white bg, 6px radius, no border. 16:9 cover (top corners 6px) with a duration pill (black-60% bg, white 12px) bottom-right and view/danmaku counts overlay bottom-left, then 2-line title clamp 14px weight 500 `#18191C`, then UP主 name 12px `#61666D`. Subtle hover lift `0 2px 12px rgba(0,0,0,0.08)` with cover preview."
317
- - "Build a Bilibili follow button: bg `#FB7299`, white text 14px weight 500, 6px radius, padding `6px 16px`. Hover ≈`#F25D8E`. Following state: white bg, `#61666D` text, 1px `#E3E5E7` border."
318
- - "Design the Bilibili player action row: like (heart, fills `#FB7299`), coin/投币 (fills gold `#FFB027`), favorite (star), share — with a 'one-click triple' (一键三连) long-press that bursts all three. Counts beside each icon in `#61666D`."
319
- - "Create a Bilibili empty state: bright white, a 2233-girls mascot illustration, a friendly kaomoji line like `(゜-゜)つロ 干杯~`, one pink CTA. Warm and community-toned, never cold."
320
-
321
- ### Iteration Guide
322
- 1. **bili pink `#FB7299` is the personality** — brand + primary action + active state. Lean in; never swap for red.
323
- 2. **bili blue is the cool secondary**; gold is the coin/reward gesture. Don't expand the palette beyond these.
324
- 3. **16:9 thumbnail cards** with duration + count overlays + 2-line title + UP主. Counts are social proof — show them.
325
- 4. **Danmaku and 一键三连 are the soul** — celebrate the comment/reward culture in the player.
326
- 5. **2233 mascots + kaomoji copy** in empty/error/brand moments; warm community voice everywhere.
327
- 6. **Bright white-and-pink, generous radii, friendly shapes** — never dark-premium or sharp-corporate.
328
- 7. **`PingFang SC` / `思源黑体` fallbacks**, weights cap at 500/600, hierarchy via near-black/gray opacity.
329
- 8. **Mostly flat**; lift cards on hover, reserve shadow for floating UI.
244
+ ### Evidence-safe prompt
330
245
 
331
- ---
246
+ - “Create a product-home video-card cover with `#f1f2f3` fallback background and 6px radius. Add a lower statistics strip with `#ffffff` 13px/400 text, `0px 0px 6px 6px` radius, and `16px 8px 6px` padding. Do not add an unobserved CTA, player control, hover behaviour, or brand-colour fill.”
247
+ - “Create a flat search field matching the observed home input: `#61666d` default text, 0px radius, `0px 8px 0px 0px` padding, 14px/400. Do not add an unobserved focus, pressed, or validation state.”
332
248
 
333
- ## 10. Voice & Tone
249
+ ### Boundary
334
250
 
335
- Bilibili's voice is **young, warm, and fluent in ACG community culture** — it talks like a friend who's deep in the fandom, uses internet/anime vernacular naturally, and treats users as fellow members of a community rather than as an audience. The register in Simplified Chinese is casual `你`, playful, full of community-native expressions, and famously fond of **kaomoji** (颜文字) — the signature `(゜-゜)つロ 干杯~` ("cheers~", a little figure raising a glass) is the brand's voice distilled to one string. Users are addressed and refer to themselves with insider vocabulary: uploaders are **UP主**, the site is **B站**, watching together via **弹幕** (danmaku), supporting a creator via **一键三连** (one-click like+coin+favorite). The brand leans into this lexicon rather than translating it into corporate speak, because the in-group language *is* the belonging.
251
+ Use the current product-home token set as a narrow reference. Do not turn corporate narrative, a CDN declaration, or historic catalog metadata into a product component or token.
336
252
 
337
- | Context | Tone |
338
- |---|---|
339
- | CTAs | Short, friendly verb. `关注` (Follow), `投稿` (Upload), `点赞`/`投币`/`收藏`. Casual `你`. |
340
- | Greetings / brand | Kaomoji-led warmth. `(゜-゜)つロ 干杯~`. Community in-jokes welcome. |
341
- | Empty / error states | 2233-mascot + a light, friendly, blameless line. Often self-deprecating-cute, never cold. |
342
- | Engagement | Counts beside icons (播放/弹幕/点赞/投币). The numbers are the community signal. |
343
- | Creator-facing | Encouraging, fan-aware ("UP主加油"). The platform sides with its creators. |
344
- | Error messages | Light, blameless, often with a mascot. State the issue + the fix, keep it warm. |
345
- | Community guidelines | Slightly more formal but still member-to-member, protecting the community vibe. |
346
-
347
- **Forbidden phrases.** Cold corporate system tone (`系统错误,请稍后重试` bare and humorless — pair it with a mascot and a warmer line). The formal `您` in casual community contexts (reserve for legal/payment). Aggressive marketing hype that breaks the fan-community trust. Treating users as a passive "audience" (受众) rather than members (用户/小伙伴) — Bilibili's whole identity is participatory.
348
-
349
- **Voice samples.**
350
- - `(゜-゜)つロ 干杯~` — the signature kaomoji greeting, the brand voice in one string. <!-- cited: appears in bilibili.com homepage content via WebFetch 2026-05-19 -->
351
- - `UP主` / `B站` / `一键三连` / `弹幕` — the community lexicon the brand voice leans on. <!-- cited: widely documented Bilibili community vocabulary; UP主 + danmaku confirmed in live homepage content 2026-05-19 -->
352
- - `关注` / `投稿` — follow / upload CTAs, short friendly verbs. <!-- illustrative: standard Bilibili CTA register; not quoted as a specific live string -->
353
- - `UP主加油` — creator-encouragement pattern. <!-- illustrative: reflects Bilibili creator-facing register -->
253
+ ## 10. Voice & Tone
254
+
255
+ No first-party voice-and-tone guideline was found in the allowed sources. The corporate sources describe a welcoming, engaging community built around users and creators, and name “All the Videos You Like” as the value proposition; those statements support community-oriented content strategy, not an invented UI-copy system. Product-specific microcopy, error copy, and mascot language remain unverified.
354
256
 
355
257
  ## 11. Brand Narrative
356
258
 
357
- Bilibili was founded in **2009** by **Xu Yi (徐逸)**, originally launched as **Mikufans** a video site built by and for ACG (anime/comics/games) fans, explicitly inspired by Japan's Niconico and its danmaku (bullet-comment) culture. It was renamed **bilibili** in 2010 (the name a reference to a character, 御坂美琴 "Biribiri", from the anime *A Certain Scientific Railgun*). From the start, Bilibili was not a general video utility but a **community for a specific subculture** — and that community-first, fandom-rooted identity is the brand's foundation. Danmaku — comments scrolling across the video so viewers feel they're watching *together*, even asynchronously was the founding innovation and remains the soul of the product. <!-- source: widely documented public history (Xu Yi / Mikufans 2009 / bilibili rename 2010 / Niconico-inspired danmaku); not re-verified against a primary Bilibili source this pass -->
259
+ Bilibili’s corporate information states that its website launched in June 2009 and was officially named “bilibili” in January 2010. It defines the company as a full-spectrum video community serving varied interests and says the community is built around aspiring users, high-quality content, talented creators, and the emotional bond between them. Its stated mission is to enrich the everyday lives of young generations in China.
358
260
 
359
- Over the following decade Bilibili grew far beyond anime into a full video community games, technology, lifestyle, music, knowledge/study content, and live streaming while keeping its ACG-rooted warmth and its distinctive participation rituals (一键三连, 投币, danmaku). Famously, for years new users had to pass a community-knowledge quiz to earn full membership — a deliberate gate to preserve community culture as the platform scaled. The brand's mascots, the **22娘 and 33娘 (2233 girls)**, and the iconic bili pink keep the identity unmistakably youthful and fandom-native even as the audience broadened into one of China's largest video communities.
261
+ The same first-party material frames “All the Videos You Like” as the value proposition and describes users and creators discovering and interacting across lifestyle, games, entertainment, anime, and technology and knowledge. It identifies bullet chatting as a signature feature designed to foster engagement, while the founder biography says the platform continues to refine that feature and the product UI.
360
262
 
361
- What Bilibili refuses: the sterile content-delivery feel of a generic video utility, a corporate-red or premium-dark palette, cold humorless system copy, and treating users as a passive audience. What it embraces: a singular iconic pink, danmaku and the participation rituals as the soul, the 2233 mascots and kaomoji warmth, the community in-group lexicon (B站/UP主/一键三连), and a design that always signals "you're among friends who love the same things".
263
+ The supplied product-home observation contributes a narrow visual counterpart: a repeated video-card feed where title and creator metadata are distinct pieces of information. It does not establish the brand colour, player interface, historical mascot treatment, or a broader visual system.
362
264
 
363
265
  ## 12. Principles
364
266
 
365
- 1. **The community is the product.** Bilibili is a place to belong, not a feed to consume. *UI implication:* Surface participation everywhere — danmaku, 一键三连, coins, comments. Use member language (UP主, 小伙伴), never passive-audience framing. Design celebrates contribution.
366
-
367
- 2. **The pink is the personality.** `#FB7299` is iconic precisely because it's an unusual choice for video. *UI implication:* Lean into the pink for brand + primary action + active state; pair with bili blue as the cool accent. Never dilute it into a generic red or corporate blue.
267
+ 1. **Community is a stated business priority.** Corporate information says the company cultivates belonging through interest-based sub-communities and interactive features. *UI implication:* When product evidence exists, preserve the relationship between content, creators, and community context rather than collapsing it into anonymous media tiles.
368
268
 
369
- 3. **Danmaku is sacred.** Bullet-comments across the video are the founding innovation and the emotional core. *UI implication:* The player is the heart of the product; danmaku is a first-class layer (toggle, density, send), not an afterthought. The shared-watching feeling is the differentiator.
269
+ 2. **Diverse interests share one video community.** The official proposition covers entertainment, games, lifestyle, anime, technology, knowledge, and more. *UI implication:* Use product-specific evidence before generalising one content category’s visual treatment to another surface.
370
270
 
371
- 4. **Warmth over polish.** The 2233 mascots, the kaomoji, the friendly copy make even errors feel like a friend shrugging. *UI implication:* Empty/error states get a mascot and a warm line; system copy is light and blameless. A cold humorless string is off-brand.
372
-
373
- 5. **Discovery is dense, but never cold.** A video community shows a lot at once. *UI implication:* Pack the feed with cards and counts, but keep the chrome bright white-and-pink with friendly copy so density reads as abundance, not clutter.
374
-
375
- 6. **Counts are belonging.** Views, danmaku, likes, coins signal what the community loves. *UI implication:* Show engagement metrics prominently in gray metadata weight — they're trust and social proof, not noise.
271
+ 3. **Bullet chatting is a signature interaction, not a token source.** The company identifies it as an engagement feature, but this packet does not contain player-state evidence. *UI implication:* Do not fabricate controls, motion, density settings, or colours for it.
376
272
 
377
273
  ## 13. Personas
378
274
 
379
- *Personas are fictional archetypes informed by publicly described Bilibili user segments (young ACG/gaming fans, creators/UP主, knowledge-content viewers), not individual people.*
275
+ *These are evidence-bounded stakeholder groups, not fictional people or behavioural research findings.*
380
276
 
381
- **小林 (Xiao Lin), 19, Wuhan.** University freshman, lifelong anime fan. Lives on B站 watches 番剧 (anime), turns danmaku on so it feels like watching with everyone, sends a 一键三连 to UP主s he loves, and bought membership years ago after passing the community quiz. Fluent in the lexicon; the kaomoji greeting feels like home. Would never call himself an "audience" — he's a member.
277
+ **Young-generation video community member.** Bilibili identifies young generations in China as its core audience and describes interest-based sub-communities. No individual demographic, task flow, or device preference is asserted here.
382
278
 
383
- **阿哲 (A Zhe), 27, Hangzhou.** Tech UP主 (uploader) posts coding tutorials and gadget reviews. Obsesses over his thumbnail covers because the card grid rewards a great 16:9 cover, and lives by his 投币/三连 counts. Engages with danmaku and comments because the community relationship is his channel's lifeblood. Reads the platform as on his side ("UP主加油").
279
+ **Content creator.** The corporate narrative identifies talented creators as one of the community’s pillars and describes users and creators discovering and interacting with content. The packet does not establish a creator-tool UI.
384
280
 
385
- **周悦 (Zhou Yue), 23, Beijing.** Came for study-with-me and knowledge content (Bilibili's "study area" is huge), stayed for the warm community vibe. Browses the dense feed comfortably because the pink chrome and friendly copy never feel corporate. Sends danmaku to feel less alone while studying late. The mascots and kaomoji are part of why the site feels like a friendly place rather than a utility.
281
+ **Interest-led viewer.** Official corporate material names varied video interests, including games, entertainment, anime, and technology/knowledge. The current product-home evidence only supports the feed-card context, not a persona-specific experience.
386
282
 
387
283
  ## 14. States
388
284
 
389
- | State | Treatment |
285
+ | State | Evidence-bound treatment |
390
286
  |---|---|
391
- | **Empty (no content / new channel)** | Bright white, a 2233-girls mascot, a warm line (often kaomoji-led), one pink CTA. Cute, never blaming. |
392
- | **Empty (search no results)** | Mascot + gentle line + suggested partitions/tags. Friendly redirect. |
393
- | **Loading (feed)** | Card-grid skeletongray 16:9 blocks + title-line blocks matching the grid, gentle shimmer. |
394
- | **Loading (player)** | Player skeleton + buffering spinner; cover shows until ready. |
395
- | **Error (network)** | Mascot + light blameless line (`(°□°)` flavored) + retry. Warm, not a cold system dump. |
396
- | **Error (form/comment)** | Inline ≈`#FF4D4F` message + fix, kept light. |
397
- | **Error (video unavailable)** | Mascot + factual friendly line + back/explore links. |
398
- | **Success (一键三连)** | Like + coin + favorite burst together with a brief celebratory animation — the signature joyful moment. |
399
- | **Success (follow/post)** | Light toast (`关注成功` / `投稿成功`), brief, warm. |
400
- | **Like / coin** | Heart fills `#FB7299` (pop); coin fills gold `#FFB027` (pop); counts increment. |
401
- | **Skeleton** | Gray 16:9 + line blocks at exact dimensions, gentle shimmer. |
402
- | **Disabled** | Reduced opacity + gray fill together; control keeps its rounded shape. |
287
+ | Empty | `[FILL IN no first-party empty-state observation in this packet.]` |
288
+ | Loading | Video-card skeleton text lines use `#f1f2f3` with 4px corners on the product home. |
289
+ | Error | `[FILL INno error-state observation in this packet.]` |
290
+ | Success | `[FILL IN no success-state observation in this packet.]` |
291
+ | Skeleton | Cover fallback is `#f1f2f3` with 6px corners; text lines use 4px corners. |
292
+ | Disabled | `[FILL IN no disabled-state observation in this packet.]` |
403
293
 
404
294
  ## 15. Motion & Easing
405
295
 
406
- Bilibili's motion is **friendly, playful, and community-celebratory** restrained for chrome, but genuinely joyful at the participation moments (一键三连, coin, like) and ever-present in the danmaku layer.
407
-
408
- **Durations:**
409
-
410
- | Token | Value | Use |
411
- |---|---|---|
412
- | `motion-instant` | 0ms | Tab/toggle commits |
413
- | `motion-fast` | 200ms | Hover, chip select, button feedback |
414
- | `motion-standard` | 300ms | Like/coin pop, dropdowns, card hover lift |
415
- | `motion-celebrate` | 500ms | 一键三连 triple-action burst, success moments |
416
- | `danmaku-scroll` | ~6–10s | Bullet comment traversal across the video (continuous, density-dependent) |
417
-
418
- **Easings:**
419
-
420
- | Token | Curve | Use |
421
- |---|---|---|
422
- | `ease-standard` | `cubic-bezier(0.4, 0, 0.2, 1)` | Default two-way transitions |
423
- | `ease-enter` | `cubic-bezier(0.0, 0.0, 0.2, 1)` | Dropdowns, sheets arriving |
424
- | `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Dismissals |
425
- | `ease-pop` | `cubic-bezier(0.34, 1.4, 0.64, 1)` | **Reserved.** Like/coin pops + 一键三连 burst — joyful overshoot at participation moments. |
426
-
427
- **Spring stance.** Overshoot/spring is **reserved for the participation rituals** — the like-pop, the coin-pop, and especially the **一键三连** burst (long-press triggers all three actions with a celebratory animation). These are the emotional peaks of being a community member, so they're the one place the UI is allowed to be exuberant. Chrome transitions stay calm; danmaku is its own continuous kinetic layer.
428
-
429
- **Signature motions.**
430
- 1. **一键三连 burst.** Long-pressing the like button fires like + coin + favorite together with a celebratory `ease-pop` animation over `motion-celebrate`. The single most joyful moment in the product.
431
- 2. **Danmaku scroll.** Bullet comments traverse the video right-to-left over `danmaku-scroll`, density and speed adjustable. The continuous kinetic soul of the watching experience.
432
- 3. **Like / coin pop.** Heart fills pink, coin fills gold, each with a `1 → 1.25 → 1` `ease-pop` and count increment over `motion-standard`.
433
- 4. **Card hover (web).** Card lifts (`motion-standard / ease-standard`) and the cover begins a muted preview — discovery feels alive.
434
- 5. **Reduce motion.** Under `prefers-reduced-motion: reduce`, pops flatten to instant fills, the 一键三连 burst becomes a simple state change, and danmaku can be disabled/static per user preference. Fully functional, no forced kinetics.
435
-
436
- <!--
437
- OmD v0.1 Sources — Bilibili / B站
438
-
439
- Tier 1 (live): bilibili.com homepage via WebFetch 2026-05-19 — confirmed the
440
- pink-and-blue ACG brand aesthetic, card-based video-thumbnail grid feed
441
- (cover + counts + title + uploader), horizontal partition (番剧/电影/游戏…) nav,
442
- clean sans-serif type, mascot presence, and the signature kaomoji greeting
443
- `(゜-゜)つロ 干杯~`. No public CSS token layer is exposed.
444
-
445
- Tier 2 (brand color / facts): WebSearch 2026-05-19 — bili pink #FB7299
446
- (RGB 251,114,153) verified as Bilibili's official pink ("bili pink" / "girl
447
- pink" / 粉) across brand-color sources (Brandfetch, BrandColorCode) and confirmed
448
- in a PipePipe GitHub issue treating #FB7299 as Bilibili's canonical top color.
449
- Founding history (Xu Yi 徐逸 / Mikufans 2009 / bilibili rename 2010 /
450
- Niconico-inspired danmaku / Railgun "Biribiri" name origin / 2233 mascots /
451
- community quiz) is widely documented public history.
452
-
453
- ⚠️ SOURCING CAVEAT: Only #FB7299 is verified. bili blue (≈#00AEEC), the gold
454
- coin color (≈#FFB027), and all neutral hexes in §2/§4 are BEST-FIT
455
- APPROXIMATIONS of observed live-site usage and common Bilibili-palette references,
456
- flagged "approximate" inline. Do not present them to the brand owner as verbatim
457
- Bilibili tokens.
458
-
459
- Community lexicon (UP主/B站/弹幕/一键三连/投币) is widely documented public Bilibili
460
- vocabulary; UP主 + danmaku + the kaomoji greeting confirmed in live homepage
461
- content. Voice samples marked illustrative are not quoted live strings. Personas
462
- (§13) are fictional archetypes. The 2233 girls are Bilibili's official mascots.
463
- -->
296
+ `[FILL IN the supplied capture reports no interaction expansion and no motion/easing measurements. Do not infer hover, player, or celebratory motion from static component evidence.]`
464
297
 
465
298
  ---
466
299
 
467
- **Verified:** 2026-05-19 (omd:add-reference — CN batch)
468
- **Tier 1 sources:** bilibili.com (live — pink/blue ACG brand aesthetic, video-thumbnail card grid feed, partition nav, mascot presence, signature kaomoji `(゜-゜)つロ 干杯~`, UP主/danmaku culture; no public token layer).
469
- **Tier 2 sources:** Brandfetch / BrandColorCode + PipePipe GitHub issue (bili pink `#FB7299` RGB 251,114,153 verified as official pink); widely documented history (Xu Yi 徐逸, Mikufans 2009 bilibili 2010, Niconico-inspired danmaku, 2233 mascots, community quiz).
470
- **Style ref:** `line` (Asian super-app/community warmth) + ACG youth-culture patterns.
471
- **Conflicts unresolved:** Only `#FB7299` is verified; bili blue, the gold coin color, and §2/§4 neutrals are flagged approximate (observed usage, no public token layer).
300
+ **Verified:** 2026-07-13
301
+ **Tier 1 sources:** https://www.bilibili.com/ and https://www.bilibili.com/v/popular/all/ (supplied computed-style product snapshots, 2026-07-13); https://ir.bilibili.com/en/corporate-information/ (official company narrative); https://ir.bilibili.com/media/crul0g3t/bilibili-sustainable-finance-framework.pdf (official company/community narrative); https://developer.huawei.com/consumer/en/design/resource/ (HarmonyOS Sans source-domain boundary)
302
+ **Tier 2 sources:** https://getdesign.md/bilibili (attempted 2026-07-13; direct fetch rejected as unsafe); https://styles.refero.design/?q=bilibili (attempted 2026-07-13; direct fetch rejected as unsafe); https://styles.refero.design/ (catalog landing retrieved, no Bilibili-specific specification used)
303
+ **Conflicts unresolved:** none