oh-my-design-cli 1.6.7 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. package/README.md +6 -6
  2. package/data/reference-fingerprints.json +1318 -10
  3. package/package.json +1 -1
  4. package/web/references/11st/DESIGN.md +400 -0
  5. package/web/references/17live/DESIGN.md +43 -0
  6. package/web/references/29cm/DESIGN.md +41 -0
  7. package/web/references/91app/DESIGN.md +31 -0
  8. package/web/references/ably/DESIGN.md +54 -0
  9. package/web/references/airbnb/DESIGN.md +58 -0
  10. package/web/references/airtable/DESIGN.md +39 -0
  11. package/web/references/alipay/DESIGN.md +50 -0
  12. package/web/references/amazingtalker/DESIGN.md +434 -0
  13. package/web/references/appier/DESIGN.md +45 -0
  14. package/web/references/apple/DESIGN.md +47 -0
  15. package/web/references/baemin/DESIGN.md +142 -43
  16. package/web/references/banksalad/DESIGN.md +67 -0
  17. package/web/references/bilibili/DESIGN.md +45 -0
  18. package/web/references/bithumb/DESIGN.md +38 -0
  19. package/web/references/bmw/DESIGN.md +37 -0
  20. package/web/references/brandi/DESIGN.md +414 -0
  21. package/web/references/bunjang/DESIGN.md +47 -0
  22. package/web/references/cakeresume/DESIGN.md +29 -0
  23. package/web/references/cal/DESIGN.md +52 -0
  24. package/web/references/catchtable/DESIGN.md +79 -19
  25. package/web/references/cathay/DESIGN.md +432 -0
  26. package/web/references/channeltalk/DESIGN.md +48 -0
  27. package/web/references/class101/DESIGN.md +51 -0
  28. package/web/references/classting/DESIGN.md +41 -0
  29. package/web/references/classum/DESIGN.md +43 -0
  30. package/web/references/claude/DESIGN.md +157 -70
  31. package/web/references/clay/DESIGN.md +56 -0
  32. package/web/references/clickhouse/DESIGN.md +50 -0
  33. package/web/references/cloudflare/DESIGN.md +637 -0
  34. package/web/references/cohere/DESIGN.md +48 -0
  35. package/web/references/coinbase/DESIGN.md +139 -5
  36. package/web/references/coinone/DESIGN.md +39 -0
  37. package/web/references/composio/DESIGN.md +46 -0
  38. package/web/references/cookpad/DESIGN.md +37 -0
  39. package/web/references/coupang/DESIGN.md +57 -2
  40. package/web/references/cursor/DESIGN.md +44 -0
  41. package/web/references/dabang/DESIGN.md +57 -19
  42. package/web/references/dcard/DESIGN.md +57 -0
  43. package/web/references/dell/DESIGN.md +636 -0
  44. package/web/references/devsisters/DESIGN.md +29 -0
  45. package/web/references/discord/DESIGN.md +604 -0
  46. package/web/references/dji/DESIGN.md +39 -0
  47. package/web/references/drnow/DESIGN.md +52 -0
  48. package/web/references/duolingo/DESIGN.md +563 -0
  49. package/web/references/elevenlabs/DESIGN.md +39 -0
  50. package/web/references/expo/DESIGN.md +39 -0
  51. package/web/references/fastcampus/DESIGN.md +50 -0
  52. package/web/references/ferrari/DESIGN.md +47 -0
  53. package/web/references/figma/DESIGN.md +44 -0
  54. package/web/references/finda/DESIGN.md +413 -0
  55. package/web/references/flex/DESIGN.md +28 -0
  56. package/web/references/flo/DESIGN.md +43 -0
  57. package/web/references/framer/DESIGN.md +38 -0
  58. package/web/references/freee/DESIGN.md +48 -0
  59. package/web/references/fugle/DESIGN.md +41 -1
  60. package/web/references/gangnamunni/DESIGN.md +57 -1
  61. package/web/references/genie/DESIGN.md +415 -0
  62. package/web/references/github/DESIGN.md +727 -0
  63. package/web/references/gmarket/DESIGN.md +51 -0
  64. package/web/references/gogolook/DESIGN.md +25 -1
  65. package/web/references/gogoro/DESIGN.md +38 -0
  66. package/web/references/grip/DESIGN.md +39 -0
  67. package/web/references/hahow/DESIGN.md +26 -0
  68. package/web/references/hashicorp/DESIGN.md +42 -0
  69. package/web/references/hogangnono/DESIGN.md +41 -0
  70. package/web/references/hp/DESIGN.md +563 -0
  71. package/web/references/hyperconnect/DESIGN.md +393 -0
  72. package/web/references/hyundaicard/DESIGN.md +24 -0
  73. package/web/references/ibm/DESIGN.md +44 -0
  74. package/web/references/ichef/DESIGN.md +44 -0
  75. package/web/references/ikala/DESIGN.md +400 -0
  76. package/web/references/inflearn/DESIGN.md +38 -0
  77. package/web/references/intercom/DESIGN.md +38 -0
  78. package/web/references/jandi/DESIGN.md +382 -0
  79. package/web/references/jkopay/DESIGN.md +35 -1
  80. package/web/references/jobkorea/DESIGN.md +39 -0
  81. package/web/references/jumpit/DESIGN.md +37 -0
  82. package/web/references/kakao/DESIGN.md +64 -0
  83. package/web/references/kakaobank/DESIGN.md +55 -1
  84. package/web/references/kakaopay/DESIGN.md +59 -0
  85. package/web/references/kakaot/DESIGN.md +53 -0
  86. package/web/references/karrot/DESIGN.md +49 -0
  87. package/web/references/kbank/DESIGN.md +39 -0
  88. package/web/references/kdan/DESIGN.md +34 -1
  89. package/web/references/kintone/DESIGN.md +586 -0
  90. package/web/references/kkbox/DESIGN.md +22 -0
  91. package/web/references/kkday/DESIGN.md +47 -0
  92. package/web/references/kmong/DESIGN.md +427 -0
  93. package/web/references/krafton/DESIGN.md +37 -0
  94. package/web/references/kraken/DESIGN.md +44 -0
  95. package/web/references/krds/DESIGN.md +63 -0
  96. package/web/references/kream/DESIGN.md +32 -0
  97. package/web/references/kurly/DESIGN.md +38 -1
  98. package/web/references/laftel/DESIGN.md +40 -0
  99. package/web/references/lamborghini/DESIGN.md +54 -0
  100. package/web/references/layerx/DESIGN.md +615 -0
  101. package/web/references/lezhin/DESIGN.md +47 -0
  102. package/web/references/line/DESIGN.md +36 -0
  103. package/web/references/linear.app/DESIGN.md +182 -88
  104. package/web/references/loom/DESIGN.md +396 -0
  105. package/web/references/lovable/DESIGN.md +38 -0
  106. package/web/references/lunit/DESIGN.md +47 -19
  107. package/web/references/mastercard/DESIGN.md +587 -0
  108. package/web/references/meituan/DESIGN.md +42 -0
  109. package/web/references/melon/DESIGN.md +26 -0
  110. package/web/references/mercari/DESIGN.md +41 -0
  111. package/web/references/mercury/DESIGN.md +589 -0
  112. package/web/references/meta/DESIGN.md +615 -0
  113. package/web/references/millie/DESIGN.md +51 -0
  114. package/web/references/minimax/DESIGN.md +53 -0
  115. package/web/references/mintlify/DESIGN.md +45 -0
  116. package/web/references/miro/DESIGN.md +47 -0
  117. package/web/references/mistral.ai/DESIGN.md +37 -0
  118. package/web/references/momoshop/DESIGN.md +43 -0
  119. package/web/references/money-forward/DESIGN.md +42 -0
  120. package/web/references/mongodb/DESIGN.md +44 -0
  121. package/web/references/muji/DESIGN.md +605 -0
  122. package/web/references/musinsa/DESIGN.md +48 -0
  123. package/web/references/mustit/DESIGN.md +47 -1
  124. package/web/references/myrealtrip/DESIGN.md +49 -0
  125. package/web/references/naver/DESIGN.md +50 -1
  126. package/web/references/naverwebtoon/DESIGN.md +48 -0
  127. package/web/references/netflix/DESIGN.md +572 -0
  128. package/web/references/nexon/DESIGN.md +389 -0
  129. package/web/references/nhncloud/DESIGN.md +33 -0
  130. package/web/references/nike/DESIGN.md +588 -0
  131. package/web/references/note/DESIGN.md +28 -0
  132. package/web/references/notion/DESIGN.md +48 -0
  133. package/web/references/nvidia/DESIGN.md +50 -0
  134. package/web/references/ohouse/DESIGN.md +56 -0
  135. package/web/references/oliveyoung/DESIGN.md +47 -1
  136. package/web/references/ollama/DESIGN.md +40 -0
  137. package/web/references/openai/DESIGN.md +641 -0
  138. package/web/references/opencode.ai/DESIGN.md +37 -0
  139. package/web/references/payco/DESIGN.md +40 -0
  140. package/web/references/paypay/DESIGN.md +656 -0
  141. package/web/references/pchome/DESIGN.md +439 -0
  142. package/web/references/perplexity/DESIGN.md +546 -0
  143. package/web/references/piccollage/DESIGN.md +43 -0
  144. package/web/references/pinkoi/DESIGN.md +55 -0
  145. package/web/references/pinterest/DESIGN.md +44 -0
  146. package/web/references/pixiv/DESIGN.md +613 -0
  147. package/web/references/pixnet/DESIGN.md +430 -0
  148. package/web/references/posthog/DESIGN.md +50 -0
  149. package/web/references/publy/DESIGN.md +52 -0
  150. package/web/references/qanda/DESIGN.md +49 -1
  151. package/web/references/ragic/DESIGN.md +444 -0
  152. package/web/references/ramp/DESIGN.md +634 -0
  153. package/web/references/rayark/DESIGN.md +22 -0
  154. package/web/references/raycast/DESIGN.md +45 -0
  155. package/web/references/remember/DESIGN.md +44 -0
  156. package/web/references/renault/DESIGN.md +42 -0
  157. package/web/references/replicate/DESIGN.md +39 -0
  158. package/web/references/resend/DESIGN.md +44 -0
  159. package/web/references/retool/DESIGN.md +645 -0
  160. package/web/references/revolut/DESIGN.md +46 -0
  161. package/web/references/richart/DESIGN.md +465 -0
  162. package/web/references/ridi/DESIGN.md +47 -0
  163. package/web/references/riiid/DESIGN.md +32 -0
  164. package/web/references/robinhood/DESIGN.md +604 -0
  165. package/web/references/runwayml/DESIGN.md +45 -0
  166. package/web/references/sanity/DESIGN.md +50 -0
  167. package/web/references/sansan/DESIGN.md +631 -0
  168. package/web/references/sendbird/DESIGN.md +46 -0
  169. package/web/references/sentry/DESIGN.md +48 -0
  170. package/web/references/shinhancard/DESIGN.md +421 -0
  171. package/web/references/shopline/DESIGN.md +431 -0
  172. package/web/references/slack/DESIGN.md +635 -0
  173. package/web/references/smarthr/DESIGN.md +48 -0
  174. package/web/references/smartnews/DESIGN.md +29 -0
  175. package/web/references/socar/DESIGN.md +35 -0
  176. package/web/references/soomgo/DESIGN.md +326 -0
  177. package/web/references/spacex/DESIGN.md +27 -0
  178. package/web/references/spoon/DESIGN.md +46 -0
  179. package/web/references/spotify/DESIGN.md +49 -0
  180. package/web/references/starbucks/DESIGN.md +597 -0
  181. package/web/references/stripe/DESIGN.md +46 -0
  182. package/web/references/studio/DESIGN.md +602 -0
  183. package/web/references/supabase/DESIGN.md +41 -0
  184. package/web/references/superhuman/DESIGN.md +39 -0
  185. package/web/references/surveycake/DESIGN.md +442 -0
  186. package/web/references/tada/DESIGN.md +51 -0
  187. package/web/references/tesla/DESIGN.md +36 -0
  188. package/web/references/theverge/DESIGN.md +500 -0
  189. package/web/references/together.ai/DESIGN.md +33 -0
  190. package/web/references/toss/DESIGN.md +43 -0
  191. package/web/references/toss-securities/DESIGN.md +54 -19
  192. package/web/references/tossbank/DESIGN.md +57 -0
  193. package/web/references/trenbe/DESIGN.md +41 -0
  194. package/web/references/triple/DESIGN.md +47 -0
  195. package/web/references/tumblbug/DESIGN.md +48 -0
  196. package/web/references/tving/DESIGN.md +40 -0
  197. package/web/references/uber/DESIGN.md +36 -0
  198. package/web/references/ubie/DESIGN.md +615 -0
  199. package/web/references/uniqlo/DESIGN.md +575 -0
  200. package/web/references/upbit/DESIGN.md +42 -0
  201. package/web/references/upstage/DESIGN.md +38 -0
  202. package/web/references/velog/DESIGN.md +28 -0
  203. package/web/references/vercel/DESIGN.md +44 -0
  204. package/web/references/voicetube/DESIGN.md +39 -0
  205. package/web/references/voltagent/DESIGN.md +44 -0
  206. package/web/references/wadiz/DESIGN.md +71 -19
  207. package/web/references/wanted/DESIGN.md +46 -0
  208. package/web/references/warp/DESIGN.md +37 -0
  209. package/web/references/watcha/DESIGN.md +40 -0
  210. package/web/references/wavve/DESIGN.md +43 -1
  211. package/web/references/wconcept/DESIGN.md +45 -0
  212. package/web/references/webflow/DESIGN.md +49 -0
  213. package/web/references/wired/DESIGN.md +572 -0
  214. package/web/references/wise/DESIGN.md +41 -0
  215. package/web/references/x.ai/DESIGN.md +31 -0
  216. package/web/references/xiaohongshu/DESIGN.md +39 -0
  217. package/web/references/yanolja/DESIGN.md +45 -0
  218. package/web/references/yeogiotte/DESIGN.md +42 -1
  219. package/web/references/yogiyo/DESIGN.md +50 -0
  220. package/web/references/yourator/DESIGN.md +453 -0
  221. package/web/references/zapier/DESIGN.md +41 -0
  222. package/web/references/zigbang/DESIGN.md +33 -0
  223. package/web/references/zigzag/DESIGN.md +62 -0
  224. package/web/references/zozotown/DESIGN.md +578 -0
@@ -0,0 +1,546 @@
1
+ ---
2
+ id: perplexity
3
+ name: Perplexity
4
+ country: US
5
+ category: ai
6
+ homepage: "https://www.perplexity.ai"
7
+ primary_color: "#20808D"
8
+ logo:
9
+ type: simpleicons
10
+ slug: "perplexity"
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: "#20808d"
19
+ primary-hover: "#1a6873"
20
+ primary-deep: "#13343b"
21
+ primary-tint: "#e5f2f2"
22
+ teal-on-dark: "#34b4c4"
23
+ ink: "#091717"
24
+ canvas: "#fbfaf4"
25
+ surface: "#fcfcf9"
26
+ surface-white: "#ffffff"
27
+ body: "#2e3a3a"
28
+ muted: "#5c6a6a"
29
+ placeholder: "#8a9494"
30
+ hairline: "#e4e4dc"
31
+ hairline-soft: "#efefe9"
32
+ dark-canvas: "#0d1117"
33
+ dark-surface: "#161b22"
34
+ dark-line: "#2a2f37"
35
+ ink-inverse: "#f2f2ed"
36
+ success: "#1f9d6b"
37
+ error: "#e0524a"
38
+ warning: "#d9923a"
39
+ on-primary: "#ffffff"
40
+ typography:
41
+ family: { sans: "FK Grotesk", mono: "Berkeley Mono" }
42
+ display-hero: { size: 48, weight: 500, lineHeight: 1.08, tracking: -0.02, use: "Landing hero" }
43
+ display: { size: 36, weight: 500, lineHeight: 1.17, tracking: -0.02, use: "Marketing section headers" }
44
+ heading-lg: { size: 28, weight: 600, lineHeight: 1.29, tracking: -0.01, use: "Thread title, page headers" }
45
+ heading: { size: 22, weight: 600, lineHeight: 1.36, tracking: -0.01, use: "Answer section headers, modal titles" }
46
+ subtitle: { size: 18, weight: 600, lineHeight: 1.44, use: "Source group labels, card headings" }
47
+ answer-body: { size: 16, weight: 400, lineHeight: 1.63, use: "Generated answer text, reading-first leading" }
48
+ body: { size: 15, weight: 400, lineHeight: 1.60, use: "UI descriptions, settings" }
49
+ label: { size: 14, weight: 500, lineHeight: 1.43, use: "Buttons, tabs, chips" }
50
+ caption: { size: 13, weight: 400, lineHeight: 1.38, use: "Metadata, source domains, timestamps" }
51
+ mono: { size: 13, weight: 400, lineHeight: 1.54, use: "Code, model IDs" }
52
+ spacing: { xs: 4, sm: 8, md: 12, base: 16, lg: 24, xl: 32, xxl: 48, section: 64 }
53
+ rounded: { sm: 6, md: 10, lg: 16, full: 9999 }
54
+ shadow:
55
+ ambient: "rgba(9,23,23,0.06) 0px 1px 3px"
56
+ standard: "rgba(9,23,23,0.08) 0px 2px 8px"
57
+ elevated: "rgba(9,23,23,0.20) 0px 16px 48px"
58
+ components:
59
+ button-primary: { type: button, bg: "#20808d", fg: "#ffffff", radius: 10, padding: "0 18px", font: "14px / 500", use: "Ask / submit primary CTA" }
60
+ button-secondary: { type: button, bg: "#fcfcf9", fg: "#091717", radius: 10, padding: "0 18px", font: "14px / 500", use: "Secondary action, 1px #e4e4dc border" }
61
+ button-ghost: { type: button, bg: "#efefe9", fg: "#5c6a6a", radius: 8, padding: "0 12px", font: "14px / 500", use: "Toolbar actions (Share, Sources, More)" }
62
+ pill: { type: badge, bg: "#ffffff", fg: "#2e3a3a", radius: 9999, padding: "6px 14px", font: "13px / 500", use: "Focus mode / filter selector", active: "#20808d border, #13343b text, #e5f2f2 bg" }
63
+ composer: { type: input, bg: "#ffffff", fg: "#091717", radius: 16, padding: "16px 18px", font: "16px / 400", use: "The Ask box, 1px #e4e4dc border, focus #20808d ring" }
64
+ text-field: { type: input, bg: "#ffffff", fg: "#091717", radius: 10, padding: "10px 14px", font: "15px / 400", use: "Standard text field, 1px #e4e4dc border" }
65
+ answer-card: { type: card, bg: "#fcfcf9", radius: 12, padding: "20px 24px", use: "Generated answer block, 1px #efefe9 border, editorial flat" }
66
+ source-card: { type: card, bg: "#ffffff", radius: 10, padding: "12px 14px", use: "Cited source card, 1px #e4e4dc border" }
67
+ citation-chip: { type: badge, bg: "#e5f2f2", fg: "#13343b", radius: 6, padding: "1px 6px", font: "11px / 600", use: "Inline source reference" }
68
+ badge-pro: { type: badge, bg: "#13343b", fg: "#ffffff", radius: 6, padding: "2px 8px", font: "11px / 600", use: "PRO / model labels" }
69
+ badge-status: { type: badge, bg: "#e5f2f2", fg: "#20808d", radius: 6, padding: "2px 8px", font: "11px / 600", use: "New / Beta / focus-mode labels" }
70
+ tab: { type: tab, fg: "#5c6a6a", font: "14px / 500", use: "Home / Discover / Spaces / Library", active: "#091717 text, 2px bottom border #20808d" }
71
+ toast: { type: toast, bg: "#091717", fg: "#f2f2ed", radius: 10, padding: "12px 16px", font: "14px / 400", use: "Copied / Shared transient confirmations" }
72
+ dialog: { type: dialog, bg: "#fbfaf4", fg: "#091717", radius: 16, padding: "28px", use: "Sign-in, settings, share, upgrade modal" }
73
+ toggle: { type: toggle, bg: "#20808d", radius: 9999, use: "Settings switch, #ffffff thumb" }
74
+ components_harvested: true
75
+ ---
76
+
77
+ # Design System Inspiration of Perplexity
78
+
79
+ ## 1. Visual Theme & Atmosphere
80
+
81
+ Perplexity is an AI answer engine, and its design is built around a single idea: get out of the way of the answer. Where most AI products lean on neon gradients, glassmorphism, and a cold sci-fi chrome, Perplexity went the opposite direction — a calm, editorial, almost Scandinavian aesthetic where the interface dissolves and the text takes the stage. The brand was crafted by studio **Smith & Diction**, who described the brief as "creating an invisible brand": the product is a reading experience, so the chrome should feel like good paper and good ink, not a dashboard.
82
+
83
+ The atmosphere is quiet and literary. Surfaces are warm off-white and bone-paper tones (`#FBFAF4`, `#FCFCF9`) rather than clinical pure white, paired with a deep near-black ink (`#091717`) that reads like printed type. The one expressive move is the signature **Peacock / True Turquoise teal** (`#20808D`) — a muted, slightly grayed teal that nods to terminal phosphor and to the Perplexity "answer cursor" without tipping into the saturated cyan that every other AI startup uses. It is confident but never loud.
84
+
85
+ Typographically the brand runs on **FK Grotesk** and **FK Display** (Florian Karsten's grotesque family), a choice that gives the UI a precise, subway-signage neutrality with just enough idiosyncratic character (the alternates, the display weight) to feel authored rather than defaulted. Body copy frequently uses **FK Grotesk Neue** for legibility at small sizes. The result is an interface that feels like a well-set magazine that happens to think.
86
+
87
+ **Key Characteristics:**
88
+ - Peacock teal (`#20808D`) as the single brand accent — muted, terminal-adjacent, never neon
89
+ - Warm paper backgrounds (`#FBFAF4` / `#FCFCF9`), not pure white — an editorial, low-glare reading surface
90
+ - Deep teal-black ink (`#091717`) for type — reads like print, not `#000`
91
+ - FK Grotesk / FK Display / FK Grotesk Neue — neutral grotesque with quiet character
92
+ - "Invisible brand" philosophy: the answer is the hero, the chrome recedes
93
+ - First-class dark mode built on the same teal, on a near-black `#0D1117`-family canvas
94
+ - Generous radii (8–12px) and soft, low-contrast borders for a paper-soft feel
95
+
96
+ ## 2. Color Palette & Roles
97
+
98
+ ### Primary
99
+ - **True Turquoise / Peacock** (`#20808D`): The brand teal. Primary interactive accent — the submit/answer button, active links, focus rings, source highlights, the answer cursor. The single hue allowed to carry brand voice.
100
+ - **Teal Hover** (`#1A6873`): Darkened Peacock for hover/pressed states on teal surfaces.
101
+ - **Teal Deep** (`#13343B`): Inky teal for emphasis on light surfaces, selected-source rails, and quiet brand washes.
102
+ - **Teal Tint** (`#E5F2F2`): Pale teal wash for informational backgrounds, hovered list rows, citation chips on light surfaces.
103
+
104
+ ### Ink & Paper (Neutrals — light mode)
105
+ - **Offblack Ink** (`#091717`): Primary text. A teal-tinted near-black that reads like printed ink, never harsh `#000000`.
106
+ - **Paper** (`#FBFAF4`): Primary page background — warm bone-white, the editorial reading surface.
107
+ - **Paper Raised** (`#FCFCF9`): Card and panel surface, fractionally lighter/cooler than the page.
108
+ - **Pure White** (`#FFFFFF`): Reserved for input wells and elevated overlays that need to pop off Paper.
109
+ - **Ink 700** (`#2E3A3A`): Strong body text, sub-headings.
110
+ - **Ink 500** (`#5C6A6A`): Secondary text, metadata, captions.
111
+ - **Ink 400** (`#8A9494`): Placeholder text, disabled labels, timestamps.
112
+ - **Line 200** (`#E4E4DC`): Default borders and dividers on Paper — soft, warm, low-contrast.
113
+ - **Line 100** (`#EFEFE9`): Hairline separators inside grouped lists.
114
+
115
+ ### Dark Mode (the canonical reading mode for many users)
116
+ - **Canvas** (`#0D1117`): Primary dark page background — near-black with a cool cast.
117
+ - **Surface** (`#161B22`): Cards, the composer well, source panels.
118
+ - **Surface Raised** (`#1C2128`): Hovered rows, popovers, menus.
119
+ - **Ink Inverse** (`#F2F2ED`): Primary text on dark — warm off-white, matching the Paper temperature.
120
+ - **Ink Inverse 500** (`#9BA1A6`): Secondary text on dark.
121
+ - **Line Dark** (`#2A2F37`): Borders and dividers on dark surfaces.
122
+ - **Teal on Dark** (`#34B4C4`): A brightened Peacock used as the accent on dark canvas so the teal keeps its contrast.
123
+
124
+ ### Semantic
125
+ - **Success** (`#1F9D6B`): Confirmations, copied-to-clipboard, completed runs.
126
+ - **Error** (`#E0524A`): Failed queries, destructive actions, rate-limit notices.
127
+ - **Warning** (`#D9923A`): Soft cautions, "this answer may be outdated" flags.
128
+ - **Info** (`#20808D`): Informational notes reuse the brand teal — info and brand are the same voice here.
129
+
130
+ ### Source / Citation Accents
131
+ Citation chips and source pills cycle through a restrained set so users can distinguish references at a glance without a rainbow:
132
+ - **Source Teal** (`#20808D`), **Source Slate** (`#4B5A66`), **Source Plum** (`#6E5A86`), **Source Clay** (`#A86A4B`). All muted, all sitting quietly under the text.
133
+
134
+ ## 3. Typography Rules
135
+
136
+ ### Font Family
137
+ - **Display / Wordmark**: `"FK Display", "FK Grotesk", Georgia, serif-fallback` — used for the logotype and the largest hero moments only.
138
+ - **Primary UI / Headings**: `"FK Grotesk", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif`
139
+ - **Body / Answer text**: `"FK Grotesk Neue", "FK Grotesk", "Inter", sans-serif` — the Neue cut is optimized for small-size legibility, used for answer bodies and dense reading.
140
+ - **Monospace**: `"Berkeley Mono", "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace` — code blocks, model names, API snippets.
141
+
142
+ ### Hierarchy
143
+
144
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
145
+ |------|------|------|--------|-------------|----------------|-------|
146
+ | Display Hero | FK Display | 48px | 500 | 52px (1.08) | -0.02em | Landing hero, "Where knowledge begins" |
147
+ | Display | FK Display | 36px | 500 | 42px (1.17) | -0.02em | Marketing section headers |
148
+ | Heading Large | FK Grotesk | 28px | 600 | 36px (1.29) | -0.01em | Thread title, page headers |
149
+ | Heading | FK Grotesk | 22px | 600 | 30px (1.36) | -0.01em | Answer section headers, modal titles |
150
+ | Subtitle | FK Grotesk | 18px | 600 | 26px (1.44) | normal | Source group labels, card headings |
151
+ | Answer Body | FK Grotesk Neue | 16px | 400 | 26px (1.63) | normal | The hero — generated answer text, generous leading for reading |
152
+ | Body | FK Grotesk Neue | 15px | 400 | 24px (1.60) | normal | UI descriptions, settings |
153
+ | Label | FK Grotesk | 14px | 500 | 20px (1.43) | normal | Buttons, tabs, chips |
154
+ | Caption | FK Grotesk Neue | 13px | 400 | 18px (1.38) | normal | Metadata, source domains, timestamps |
155
+ | Mono | Berkeley Mono | 13px | 400 | 20px (1.54) | normal | Code, model IDs (`sonar-pro`) |
156
+
157
+ ### Principles
158
+ - **Reading-first leading**: Answer body uses ~1.6 line-height — well above typical UI. The product is text, so the text breathes like a magazine column, not a form.
159
+ - **Display is rare**: FK Display appears only in the wordmark and the largest marketing moments. The UI itself is almost entirely FK Grotesk / Neue. Restraint keeps the display weight special.
160
+ - **Negative tracking on big type**: Headings and display tighten slightly (-0.01 to -0.02em) for an editorial, set-by-hand feel. Body and small sizes stay at normal tracking for legibility.
161
+ - **Three weights**: 400 (body), 500 (labels/display), 600 (headings). No black, no thin — the grotesque carries authority at mid-weights.
162
+ - **Inline citations are typographic**: Source numbers `[1]` render as superscript teal tokens inside the answer flow, part of the type system rather than separate UI.
163
+
164
+ ## 4. Component Stylings
165
+
166
+ ### Buttons
167
+
168
+ **Primary (Submit / Ask)**
169
+ - Background: `#20808D`
170
+ - Text: `#FFFFFF`
171
+ - Border: none
172
+ - Radius: 10px
173
+ - Padding: 0 18px (height 44px)
174
+ - Font: 14px / 500 / FK Grotesk
175
+ - Hover: `#1A6873`
176
+ - Pressed: `#13343B`
177
+ - Disabled: `#20808D` at 40% opacity
178
+ - Use: The ask/submit action, primary CTA on marketing pages
179
+
180
+ **Secondary (Outline)**
181
+ - Background: transparent
182
+ - Text: `#091717`
183
+ - Border: 1px solid `#E4E4DC`
184
+ - Radius: 10px
185
+ - Padding: 0 18px (height 44px)
186
+ - Font: 14px / 500 / FK Grotesk
187
+ - Hover: background `#FCFCF9`, border `#D6D6CC`
188
+ - Use: Secondary actions next to a primary (e.g. "Rewrite", "Copy")
189
+
190
+ **Ghost / Quiet**
191
+ - Background: transparent
192
+ - Text: `#5C6A6A`
193
+ - Border: none
194
+ - Radius: 8px
195
+ - Padding: 0 12px (height 36px)
196
+ - Font: 14px / 500 / FK Grotesk
197
+ - Hover: background `#EFEFE9`, text `#091717`
198
+ - Use: Toolbar actions, icon+label buttons in the thread (Share, Sources, More)
199
+
200
+ **Pill (Focus mode / Filter)**
201
+ - Background: `#FFFFFF`
202
+ - Text: `#2E3A3A`
203
+ - Border: 1px solid `#E4E4DC`
204
+ - Radius: 9999px
205
+ - Padding: 6px 14px (height 34px)
206
+ - Font: 13px / 500 / FK Grotesk
207
+ - Active: border `#20808D`, text `#13343B`, background `#E5F2F2`
208
+ - Use: Search-focus selectors (Web, Academic, Writing), source filters
209
+
210
+ ### Composer (the Ask box)
211
+
212
+ The composer is the signature surface — a large rounded well where the user types.
213
+ - Background: `#FFFFFF` (light) / `#161B22` (dark)
214
+ - Text: `#091717` / `#F2F2ED`
215
+ - Border: 1px solid `#E4E4DC` / `#2A2F37`
216
+ - Radius: 16px
217
+ - Padding: 16px 18px
218
+ - Font: 16px / 400 / FK Grotesk Neue
219
+ - Placeholder: `#8A9494` ("Ask anything…")
220
+ - Focus: border `#20808D`, soft ring `0 0 0 3px rgba(32,128,141,0.12)`
221
+ - Shadow: `0 1px 3px rgba(9,23,23,0.06)`
222
+ - Inner toolbar: focus-mode pills left, attach/voice/submit icons right; submit is the teal Primary button
223
+
224
+ ### Inputs (standard)
225
+
226
+ **Text Field**
227
+ - Background: `#FFFFFF`
228
+ - Text: `#091717`
229
+ - Border: 1px solid `#E4E4DC`
230
+ - Radius: 10px
231
+ - Padding: 10px 14px
232
+ - Font: 15px / 400 / FK Grotesk Neue
233
+ - Placeholder: `#8A9494`
234
+ - Focus: border `#20808D`, ring `0 0 0 3px rgba(32,128,141,0.12)`
235
+ - Error: border `#E0524A`, ring `rgba(224,82,74,0.12)`
236
+
237
+ ### Cards
238
+
239
+ **Answer Card**
240
+ - Background: `#FCFCF9`
241
+ - Border: 1px solid `#EFEFE9`
242
+ - Radius: 12px
243
+ - Padding: 20px 24px
244
+ - Shadow: none (separation via warm border, editorial flat)
245
+ - Use: The container for a generated answer block in a thread
246
+
247
+ **Source Card**
248
+ - Background: `#FFFFFF`
249
+ - Border: 1px solid `#E4E4DC`
250
+ - Radius: 10px
251
+ - Padding: 12px 14px
252
+ - Shadow: `0 1px 2px rgba(9,23,23,0.05)`
253
+ - Hover: border `#20808D`, lift to `0 2px 8px rgba(9,23,23,0.08)`
254
+ - Content: favicon 16px + domain (13px `#5C6A6A`) + title (14px `#091717`), 2-line clamp
255
+ - Use: Horizontal scroll rail of cited sources above an answer
256
+
257
+ **Discover / Feed Card**
258
+ - Background: `#FCFCF9`
259
+ - Border: 1px solid `#EFEFE9`
260
+ - Radius: 12px
261
+ - Padding: 0 (image top, 16px text)
262
+ - Use: Discover-tab editorial story cards
263
+
264
+ ### Citation Chips
265
+
266
+ - Background: `#E5F2F2` (light) / `rgba(52,180,196,0.16)` (dark)
267
+ - Text: `#13343B` / `#34B4C4`
268
+ - Border: none
269
+ - Radius: 6px
270
+ - Padding: 1px 6px
271
+ - Font: 11px / 600 / FK Grotesk (or superscript `[1]` inline)
272
+ - Use: Inline source references inside answer text; hover reveals a source popover
273
+
274
+ ### Badges
275
+
276
+ **Pro / Model Badge**
277
+ - Background: `#13343B`
278
+ - Text: `#FFFFFF`
279
+ - Border: none
280
+ - Radius: 6px
281
+ - Padding: 2px 8px
282
+ - Font: 11px / 600 / FK Grotesk
283
+ - Use: "PRO", model labels (`Sonar`, `GPT-5`, `Claude`)
284
+
285
+ **Status Badge (Weak)**
286
+ - Background: `#E5F2F2`
287
+ - Text: `#20808D`
288
+ - Border: none
289
+ - Radius: 6px
290
+ - Padding: 2px 8px
291
+ - Font: 11px / 600 / FK Grotesk
292
+ - Use: "New", "Beta", focus-mode labels
293
+
294
+ ### Tabs
295
+
296
+ **Top Nav Tab**
297
+ - Inactive: text `#5C6A6A`, transparent
298
+ - Active: text `#091717`, 2px bottom border `#20808D`
299
+ - Font: 14px / 500 / FK Grotesk
300
+ - Use: Home / Discover / Spaces / Library navigation
301
+
302
+ ### Toasts
303
+
304
+ **Default**
305
+ - Background: `#091717`
306
+ - Text: `#F2F2ED`
307
+ - Border: none
308
+ - Radius: 10px
309
+ - Padding: 12px 16px
310
+ - Shadow: `0 4px 16px rgba(9,23,23,0.18)`
311
+ - Font: 14px / 400 / FK Grotesk Neue
312
+ - Use: "Copied", "Shared", transient confirmations — bottom-center, 3s dismiss
313
+
314
+ ### Dialogs
315
+
316
+ **Centered Modal**
317
+ - Background: `#FBFAF4`
318
+ - Text: `#091717`
319
+ - Border: none
320
+ - Radius: 16px
321
+ - Padding: 28px
322
+ - Shadow: `0 16px 48px rgba(9,23,23,0.20)`
323
+ - Backdrop: `rgba(9,23,23,0.40)`
324
+ - Use: Sign-in, settings, share, upgrade prompts
325
+
326
+ ### Toggles
327
+
328
+ **Switch**
329
+ - On: `#20808D` track / off: `#D6D6CC` track
330
+ - Thumb: `#FFFFFF` 18px circle, `0 1px 2px rgba(9,23,23,0.20)`
331
+ - Radius: 9999px
332
+ - Use: Settings (e.g. AI Profile, dark mode, auto-suggestions)
333
+
334
+
335
+ **Tier 1 sources:** https://www.perplexity.ai (live production site, verified via live DOM getComputedStyle).
336
+
337
+ ## 5. Layout Principles
338
+
339
+ ### Spacing System
340
+ - Base unit: 4px
341
+ - Common values: 4, 8, 12, 16, 20, 24, 32, 40, 48, 64px
342
+ - Reading column gets generous vertical rhythm (24–32px between answer blocks)
343
+
344
+ ### Grid & Container
345
+ - Centered single reading column, max-width ~768px for answer/thread content (a magazine measure)
346
+ - Marketing pages: 1200px max container with 24px gutters
347
+ - Three-zone app shell: collapsible left rail (nav/library), centered content column, optional right rail (sources/related)
348
+ - Discover feed: responsive 1–3 column masonry of story cards
349
+
350
+ ### Whitespace Philosophy
351
+ - **The answer breathes**: Generated text gets a constrained measure (~68ch) and ~1.6 leading so it reads like an article, never a wall.
352
+ - **Quiet chrome**: Toolbars and nav sit in muted ink grays so they recede; only the teal and the answer text earn the user's eye.
353
+ - **Source rails are calm**: Citations live in a horizontal scroll above or beside the answer, never crowding the prose.
354
+
355
+ ### Border Radius Scale
356
+ - Small (6px): chips, citation tokens, badges
357
+ - Standard (10px): buttons, inputs, source cards
358
+ - Comfortable (12px): answer/feed cards
359
+ - Large (16px): composer well, modals
360
+ - Pill (9999px): focus-mode pills, toggles
361
+
362
+ ## 6. Depth & Elevation
363
+
364
+ | Level | Treatment | Use |
365
+ |-------|-----------|-----|
366
+ | Flat (0) | No shadow, warm border only | Answer cards, page surfaces — the editorial default |
367
+ | Subtle (1) | `0 1px 2px rgba(9,23,23,0.05)` | Source cards, inputs at rest |
368
+ | Standard (2) | `0 2px 8px rgba(9,23,23,0.08)` | Hovered source cards, popovers |
369
+ | Elevated (3) | `0 4px 16px rgba(9,23,23,0.12)` | Dropdowns, menus, toasts |
370
+ | Modal (4) | `0 16px 48px rgba(9,23,23,0.20)` | Dialogs, command palette |
371
+
372
+ **Shadow Philosophy**: Perplexity is paper-flat by default. Most separation comes from warm, low-contrast borders and the temperature shift between Paper (`#FBFAF4`) and Paper Raised (`#FCFCF9`), not from drop shadows. Shadows are reserved for genuinely floating layers, and they're tinted with the ink color (`rgba(9,23,23,…)`) rather than pure black, keeping the whole surface warm. The brand's restraint is the point — depth is a tool, not decoration.
373
+
374
+ ### Blur Effects
375
+ - Source popovers and the command palette use a light backdrop blur (`blur(8px)`) over a translucent scrim
376
+ - The sticky composer applies a subtle blur as content scrolls beneath it
377
+
378
+ ## 7. Do's and Don'ts
379
+
380
+ ### Do
381
+ - Use Peacock teal (`#20808D`) as the single accent — buttons, links, focus rings, active states
382
+ - Background with warm paper tones (`#FBFAF4` / `#FCFCF9`), not pure white
383
+ - Use teal-tinted ink (`#091717`) for text, never `#000000`
384
+ - Set answer body in FK Grotesk Neue at ~1.6 line-height for a reading experience
385
+ - Constrain the answer column to a ~68ch measure
386
+ - Keep chrome quiet (`#5C6A6A` ink grays) so the answer is the hero
387
+ - Render inline citations as small teal `[1]` tokens in the type flow
388
+ - Provide a first-class dark mode on `#0D1117` with brightened teal `#34B4C4`
389
+
390
+ ### Don't
391
+ - Don't use saturated neon cyan or AI-startup gradients — the teal is muted on purpose
392
+ - Don't put the answer in pure white boxes with heavy shadows — stay paper-flat
393
+ - Don't crowd the reading column with dense toolbars or rails
394
+ - Don't use bright multi-color accents for sources — keep the muted source palette
395
+ - Don't set body text below 15px or above 16px in the answer flow
396
+ - Don't use `#000000` text or `#FFFFFF` page backgrounds in light mode
397
+ - Don't let the brand teal decorate non-interactive elements — it signals action and citation
398
+
399
+ ## 8. Responsive Behavior
400
+
401
+ ### Breakpoints
402
+ | Name | Width | Key Changes |
403
+ |------|-------|-------------|
404
+ | Mobile | <640px | Single column, left rail becomes a drawer, composer docks to bottom |
405
+ | Tablet | 640–1024px | Reading column + collapsible left rail, source rail moves above answer |
406
+ | Desktop | 1024–1440px | Three-zone shell, source rail can sit right |
407
+ | Wide | >1440px | Centered content caps at ~768px reading width, rails widen |
408
+
409
+ ### Touch Targets
410
+ - Buttons: 44px primary, 36px ghost — comfortable thumb targets on mobile
411
+ - Composer submit: 40px circular/rounded target, always reachable
412
+ - Source cards: full-width tappable rows on mobile
413
+
414
+ ### Collapsing Strategy
415
+ - Left navigation rail collapses to icon-only, then to a hamburger drawer on mobile
416
+ - Source rail: right-side on desktop → horizontal scroll strip above the answer on mobile
417
+ - Related questions: sidebar list on desktop → stacked chips below the answer on mobile
418
+ - Composer: inline on desktop, sticky-bottom with safe-area inset on mobile
419
+
420
+ ### Image Behavior
421
+ - Source favicons: fixed 16px
422
+ - Discover story images: 16:9, full-bleed card tops, lazy-loaded
423
+ - Generated/answer images: responsive, max content-width, rounded 10px
424
+
425
+ ## 9. Agent Prompt Guide
426
+
427
+ ### Quick Color Reference
428
+ - Primary accent: Peacock Teal (`#20808D`)
429
+ - Teal Hover: (`#1A6873`)
430
+ - Page background: Paper (`#FBFAF4`)
431
+ - Card surface: Paper Raised (`#FCFCF9`)
432
+ - Input/overlay surface: White (`#FFFFFF`)
433
+ - Heading/body ink: Offblack (`#091717`)
434
+ - Secondary text: Ink 500 (`#5C6A6A`)
435
+ - Placeholder: Ink 400 (`#8A9494`)
436
+ - Border: Line 200 (`#E4E4DC`)
437
+ - Teal tint bg: (`#E5F2F2`)
438
+ - Dark canvas: (`#0D1117`), dark teal accent (`#34B4C4`)
439
+ - Success (`#1F9D6B`) · Error (`#E0524A`) · Warning (`#D9923A`)
440
+
441
+ ### Example Component Prompts
442
+ - "Build the Ask composer: white well, 16px radius, 1px `#E4E4DC` border, 16/18 padding. Placeholder 'Ask anything…' in `#8A9494`, 16px FK Grotesk Neue. Focus: `#20808D` border + 3px `rgba(32,128,141,0.12)` ring. Bottom toolbar: focus-mode pills left, teal submit button right."
443
+ - "Create a primary button: `#20808D` bg, white text, 14px/500 FK Grotesk, 44px tall, 10px radius, 18px h-padding. Hover `#1A6873`, pressed `#13343B`."
444
+ - "Design a source card: white bg, 10px radius, 1px `#E4E4DC` border. 16px favicon + domain (13px `#5C6A6A`) + title (14px `#091717`, 2-line clamp). Hover: teal border, `0 2px 8px rgba(9,23,23,0.08)` lift."
445
+ - "Lay out an answer block: `#FCFCF9` card, 12px radius, 1px `#EFEFE9` border, no shadow, 20/24 padding. Body in FK Grotesk Neue 16px, line-height 1.63, color `#091717`, max-width 68ch. Inline `[1]` citations as `#13343B` superscript on `#E5F2F2`."
446
+ - "Make a focus-mode pill row: white pills, 9999px radius, 1px `#E4E4DC` border, 13px/500 FK Grotesk, 6/14 padding. Active pill: `#E5F2F2` bg, `#20808D` border, `#13343B` text."
447
+
448
+ ### Iteration Guide
449
+ 1. Page = warm Paper (`#FBFAF4`), never pure white. Ink = `#091717`, never `#000`.
450
+ 2. Teal `#20808D` is the only accent and signals action or citation — use it sparingly.
451
+ 3. Answer text is the hero: FK Grotesk Neue, 16px, ~1.6 leading, ~68ch measure.
452
+ 4. Paper-flat by default — separate surfaces with warm borders, not shadows.
453
+ 5. Radii: 6px chips, 10px buttons/inputs, 12px cards, 16px composer/modals.
454
+ 6. Provide dark mode on `#0D1117` with brightened teal `#34B4C4`.
455
+ 7. Keep chrome quiet (`#5C6A6A`) so it recedes behind the answer.
456
+
457
+ ---
458
+
459
+ ## 10. Voice & Tone
460
+
461
+ Perplexity speaks like a sharp, well-read research assistant: direct, neutral, citation-obsessed, and allergic to hype. The product's core promise is trust, so the copy never overclaims — it answers, then shows its sources. Sentences are clean and declarative. There's a quiet curiosity to the brand voice (the tagline lineage is literally "Where knowledge begins"), but it stays understated; Perplexity would rather be right than clever.
462
+
463
+ | Context | Tone |
464
+ |---|---|
465
+ | Composer placeholder | Open invitation: `Ask anything…` |
466
+ | CTAs | Plain verbs: `Ask`, `Search`, `Sources`, `Rewrite`, `Share` |
467
+ | Answers | Neutral, structured, citation-backed. Confident but hedged when evidence is thin (`Based on available sources…`). |
468
+ | Empty states | Curious and inviting, never apologetic (`Start a thread to see it here.`). |
469
+ | Errors | Plain and actionable (`Couldn't reach that source. Try again.`). No `Oops`, no cute mascots. |
470
+ | Marketing | Editorial, restrained, idea-led. Lets whitespace and the wordmark carry weight. |
471
+ | Upgrade prompts | Value-first, low-pressure (`Pro gives you more sources and stronger models.`). |
472
+
473
+ **Forbidden phrases.** No `Oops`, no `magic`, no `revolutionary`, no exclamation-stacked hype, no emoji in answers. Never present a synthesized claim without a path to its source — unsourced confidence is the one thing the brand will not do.
474
+
475
+ ## 11. Brand Narrative
476
+
477
+ Perplexity AI was founded in **2022** by Aravind Srinivas, Denis Yarats, Johnny Ho, and Andy Konwinski as an "answer engine" — a search product that responds in synthesized, cited prose instead of ten blue links. The thesis was that the future of search is a conversation that always shows its work. That single conviction — **answers with citations** — drives every design decision.
478
+
479
+ When the brand identity needed to mature past a developer prototype, Perplexity worked with Philadelphia studio **Smith & Diction**, who framed the work as building "an invisible brand." The logic: Perplexity is a reading and thinking tool, so the most respectful design recedes. They reached for an editorial, Scandinavian-leaning system — warm paper grounds, a precise grotesque type family (**FK Grotesk / FK Display**), and a single muted teal (`#20808D`) chosen specifically because it was *not* the saturated cyan of the AI gold rush. The teal reads a little like terminal phosphor and a little like a peacock — technical and natural at once.
480
+
481
+ What Perplexity refuses is instructive: no gradient meshes, no glassmorphic dashboards, no neon "AI" sheen, no mascot. In a category sprinting toward maximal sci-fi spectacle, Perplexity bet on the opposite — calm, literacy, and trust. The interface should feel like the best version of reading a really good article, where the answer is the design and the chrome is just good paper and good ink.
482
+
483
+ ## 12. Principles
484
+
485
+ 1. **The answer is the hero.** Every pixel of chrome exists to deliver the user to the text faster and then disappear. If a UI element competes with the answer for attention, it's wrong.
486
+ 2. **Always show your work.** No claim without a path to its source. Citations are a first-class, typographic part of the answer, not an afterthought panel.
487
+ 3. **Calm over spectacle.** Warm paper, muted teal, quiet grays. The brand earns trust by *not* shouting in a category that shouts.
488
+ 4. **One accent, used with discipline.** Teal `#20808D` means action or citation. It never decorates. Restraint makes the teal legible as a signal.
489
+ 5. **Read like print.** Answer text gets a constrained measure and generous leading. The product is text; it should typeset like a magazine, not a form.
490
+ 6. **Paper-flat depth.** Separation comes from warm borders and surface temperature, not drop shadows. Elevation is reserved for things that truly float.
491
+ 7. **Dark mode is not an afterthought.** Many users read at night; the dark theme is designed in parallel with the same teal logic, not bolted on.
492
+ 8. **Invisible brand.** The strongest identity here is the one you stop noticing — the brand succeeds when the user only remembers the answer.
493
+
494
+ ## 13. Personas
495
+
496
+ *Personas below are fictional archetypes informed by publicly described knowledge-worker and researcher segments, not individual people.*
497
+
498
+ **Maya, 29, San Francisco.** Product manager who replaced her default search engine with Perplexity six months ago. Uses it 15+ times a day for quick fact-finding, competitive research, and drafting. She trusts it specifically *because* every answer shows sources — she clicks through to verify the ones that matter. Reads in dark mode all day. Gets irritated by any AI tool that sounds confident without proof.
499
+
500
+ **Daniel, 44, Boston.** Academic researcher in public health. Uses Perplexity's Academic focus to scan literature and find primary sources fast, then follows citations into the actual papers. Values the muted, distraction-free reading surface — it lets him stay in long research sessions without eye strain. Skeptical of "AI magic" language; the citation rail is what keeps him on the product.
501
+
502
+ **Priya, 23, London.** Graduate student and heavy Discover-feed reader. Treats Perplexity as both a research tool and a morning news habit. Loves the editorial card layout and the clean type — says it "feels like a magazine that answers back." Switches between web, academic, and writing focus modes constantly. Shares answer threads with classmates.
503
+
504
+ ## 14. States
505
+
506
+ | State | Treatment |
507
+ |---|---|
508
+ | **Empty (new thread)** | Centered composer on Paper, "Ask anything…" placeholder, a few suggested-prompt pills below in `#FCFCF9` with `#E4E4DC` borders. Inviting, never apologetic. |
509
+ | **Empty (library)** | Single line of `#5C6A6A` body (`Start a thread to see it here.`) — no illustration. |
510
+ | **Loading (generating answer)** | Teal `#20808D` shimmer cursor pulses where text will appear; source cards fade in first, then the answer streams token-by-token. Skeleton lines in `#EFEFE9`. |
511
+ | **Streaming** | Answer text writes in left-to-right; a teal block cursor (`#20808D`) trails the last token. Citations pop in as their sources resolve. |
512
+ | **Error (query failed)** | Inline notice card: `#E0524A` left border, `Couldn't complete that. Try again.` in `#091717`, a teal retry button. No mascot, no `Oops`. |
513
+ | **Error (source unreachable)** | Source card dims to 50% with a `#8A9494` "Unavailable" label; the answer continues with remaining sources. |
514
+ | **Success (copied/shared)** | Dark toast (`#091717` bg, `#F2F2ED` text) bottom-center, 3s, `Copied to clipboard`. |
515
+ | **Focus mode active** | Selected pill flips to `#E5F2F2` bg / `#20808D` border / `#13343B` text; others stay quiet white. |
516
+ | **Skeleton** | `#EFEFE9` (light) / `#1C2128` (dark) blocks at final dimensions, 1.2s shimmer with low-opacity highlight, rounded to component radius. |
517
+ | **Disabled** | Buttons drop to 40% opacity; inputs keep `#E4E4DC` border and `#8A9494` text so geometry stays stable. |
518
+ | **Hover (source card)** | Border shifts to `#20808D`, card lifts to `0 2px 8px rgba(9,23,23,0.08)`. |
519
+
520
+ ## 15. Motion & Easing
521
+
522
+ **Durations:**
523
+
524
+ | Token | Value | Use |
525
+ |---|---|---|
526
+ | `motion-instant` | 0ms | Toggle flips, focus-pill selection |
527
+ | `motion-fast` | 120ms | Hover, focus rings, button press |
528
+ | `motion-standard` | 220ms | Card hover-lift, popover open, tab switch |
529
+ | `motion-slow` | 360ms | Modal/dialog entrance, drawer slide |
530
+ | `motion-stream` | per-token | Answer streaming cadence — tokens appear as generated, the brand's signature motion |
531
+
532
+ **Easings:**
533
+
534
+ | Token | Curve | Use |
535
+ |---|---|---|
536
+ | `ease-enter` | `cubic-bezier(0.0, 0.0, 0.2, 1)` | Things appearing — popovers, toasts, source cards |
537
+ | `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Dismissals, leaving elements |
538
+ | `ease-standard` | `cubic-bezier(0.4, 0.0, 0.2, 1)` | Two-way transitions — hover lifts, tab content |
539
+ | `ease-cursor` | `steps / linear` | The teal answer cursor blink — mechanical, terminal-like, intentional |
540
+
541
+ **Signature motions.**
542
+
543
+ 1. **Answer streaming.** The defining motion. Generated text appears token-by-token in reading order, trailed by a teal block cursor (`#20808D`). Sources resolve and fade in slightly ahead of the text that cites them, so citations are "ready" by the time you read past them. Never reveal a full answer in one flash — the streaming *is* the brand telling you it's thinking and sourcing in real time.
544
+ 2. **Source-card lift.** On hover, a source card raises with `motion-standard / ease-standard`, its border warming from `#E4E4DC` to teal `#20808D`. A quiet, confident invitation to click through.
545
+ 3. **Citation popover.** Hovering an inline `[1]` opens a source preview with `motion-fast / ease-enter` and a light backdrop blur — fast, so it feels like the source was always there.
546
+ 4. **Reduce motion.** Under `prefers-reduced-motion: reduce`, streaming collapses to a single fade-in of the completed answer, the cursor blink stops, and all `motion-*` tokens drop to `motion-instant`. The product stays fully usable — just static.
@@ -10,6 +10,49 @@ logo:
10
10
  slug: "https://www.google.com/s2/favicons?domain=piccollage.com&sz=256"
11
11
  verified: "2026-06-03"
12
12
  omd: "0.1"
13
+ tokens:
14
+ source: prose-derived
15
+ extracted: "2026-06-09"
16
+ colors:
17
+ primary: "#4fc3c4"
18
+ teal-nav: "#b7e1da"
19
+ teal-footer: "#7ad2c3"
20
+ teal-border: "#2db59e"
21
+ hero-bg: "#fbf2eb"
22
+ nav-bg: "#f5f4ef"
23
+ surface: "#ece9df"
24
+ surface-hover: "#e8e4d9"
25
+ divider: "#d9d2bf"
26
+ body: "#292929"
27
+ body-secondary: "#4d4d4d"
28
+ accent-pink: "#f85482"
29
+ accent-yellow: "#ffcf3d"
30
+ gradient-1: "#8235b8"
31
+ gradient-2: "#974dcb"
32
+ gradient-3: "#ef4967"
33
+ gradient-4: "#ee604d"
34
+ on-primary: "#ffffff"
35
+ typography:
36
+ family: { sans: "Poppins", display: "Zilla Slab" }
37
+ display: { size: 60, weight: 600, lineHeight: 1.12, use: "Marketing hero headline (Zilla Slab)" }
38
+ section-title: { size: 36, weight: 700, use: "Feature card / section headline (desktop)" }
39
+ sub-headline: { size: 25, weight: 500, lineHeight: 1.4, use: "Hero tagline / sub-headline" }
40
+ body: { size: 18, weight: 400, use: "Feature descriptions, body copy" }
41
+ label: { size: 14, weight: 500, tracking: -0.28, use: "UI label, nav button" }
42
+ spacing: { xs: 4, sm: 8, md: 12, base: 16, lg: 24, xl: 32, xxl: 48, section: 64 }
43
+ rounded: { sm: 4, md: 8, lg: 16, full: 9999 }
44
+ shadow:
45
+ ambient: "rgba(0,0,0,0.08) 0px 2px 12px"
46
+ card: "rgba(0,0,0,0.10) 0px 0px 12px"
47
+ thumbnail: "rgba(0,0,0,0.15) 0px 0px 8px"
48
+ components:
49
+ button-primary: { type: button, bg: "#4fc3c4", fg: "#ffffff", radius: 9999, font: "14px / 700", use: "App download / sticky CTA" }
50
+ button-nav: { type: button, bg: "#b7e1da", fg: "#292929", radius: 9999, padding: "8px 12px", font: "14px / 500", use: "Nav Download button, 1.5px #2db59e border" }
51
+ icon-button: { type: button, bg: "#ece9df", radius: 9999, use: "Toolbar / nav icon button, 1.5px #d9d2bf border" }
52
+ nav-item: { type: tab, fg: "#4d4d4d", radius: 9999, padding: "8px 12px", font: "14px / 500", use: "Nav menu item" }
53
+ card: { type: card, bg: "#ffffff", radius: 16, use: "Feature panel, 2px #e8e4d9 border, soft shadow" }
54
+ thumbnail: { type: card, radius: 16, use: "Collage thumbnail, soft drop shadow" }
55
+ components_harvested: true
13
56
  ---
14
57
 
15
58
  # PicCollage
@@ -10,6 +10,61 @@ logo:
10
10
  slug: pinkoi
11
11
  verified: "2026-05-15"
12
12
  omd: "0.1"
13
+ tokens:
14
+ source: prose-derived
15
+ extracted: "2026-06-09"
16
+ note: "primary = §2 Mid Teal #10567b (--primary/--login base); purchase-exclusive CTA = coral #f16c5d"
17
+ colors:
18
+ primary: "#10567b"
19
+ primary-hover: "#064162"
20
+ primary-active: "#003354"
21
+ link: "#2e90b7"
22
+ canvas: "#f7f7f8"
23
+ surface: "#ffffff"
24
+ surface-hover: "#eeeeef"
25
+ border-light: "#e5e5e6"
26
+ border-mid: "#d3d3d5"
27
+ heading: "#39393e"
28
+ text-secondary: "#515156"
29
+ muted: "#66666a"
30
+ subtle: "#7c7c80"
31
+ faint: "#929295"
32
+ disabled: "#a8a8ab"
33
+ ink: "#202026"
34
+ purchase: "#f16c5d"
35
+ purchase-hover: "#e56051"
36
+ purchase-active: "#da5648"
37
+ error: "#e63349"
38
+ error-hover: "#d72136"
39
+ success: "#2cac97"
40
+ on-primary: "#ffffff"
41
+ typography:
42
+ family: { sans: "Helvetica Neue", cjk: "PingFang TC" }
43
+ section-heading: { size: 22, weight: 700, use: "Section headings — weight-driven hierarchy" }
44
+ card-title: { size: 18, weight: 700, use: "Card titles, mid headings" }
45
+ subhead: { size: 16, weight: 500, use: "Subheadings, stronger labels" }
46
+ body: { size: 14, weight: 400, use: "Body, button text default, breadcrumbs" }
47
+ meta: { size: 13, weight: 400, use: "Inline metadata, secondary text" }
48
+ badge: { size: 12, weight: 400, use: "Badge text, small labels, breadcrumbs" }
49
+ caption: { size: 11, weight: 400, use: "Captions, timestamps" }
50
+ spacing: { xs: 4, sm: 8, md: 12, base: 16, lg: 24, xl: 32, xxl: 48, section: 64 }
51
+ rounded: { sm: 2, md: 4, lg: 8, full: 9999 }
52
+ shadow:
53
+ soft: "rgba(32,32,38,0.12) 0px 2px 4px"
54
+ edge: "rgba(32,32,38,0.2) 0px 1px 1px"
55
+ modal: "rgba(32,32,38,0.4) 0px 8px 24px"
56
+ components:
57
+ button-primary: { type: button, bg: "#10567b", fg: "#ffffff", radius: 4, padding: "8px 12px", font: "14px / 400", use: "Primary CTA, 1px #10567b border" }
58
+ button-secondary: { type: button, bg: "#ffffff", fg: "#39393e", radius: 4, padding: "8px 12px", font: "14px / 400", use: "Cancel / neutral CTA, 1px #a8a8ab border" }
59
+ button-purchase: { type: button, bg: "#f16c5d", fg: "#ffffff", radius: 4, padding: "8px 12px", font: "14px / 400", use: "Add to Cart / Buy Now (conversion-exclusive coral)" }
60
+ button-danger: { type: button, bg: "#e63349", fg: "#ffffff", radius: 4, padding: "8px 12px", font: "14px / 400", use: "Destructive actions" }
61
+ button-success: { type: button, bg: "#2cac97", fg: "#ffffff", radius: 4, padding: "8px 12px", font: "14px / 400", use: "Confirmations, follow" }
62
+ input: { type: input, bg: "#ffffff", fg: "#39393e", radius: 4, padding: "8px 12px", font: "14px / 400", use: "Standard text input, 1px #d3d3d5 border" }
63
+ product-card: { type: card, bg: "#ffffff", radius: 4, use: "6-column commerce product grid, image-led" }
64
+ card: { type: card, bg: "#ffffff", radius: 4, padding: "16px", use: "Generic content card, 1px #d3d3d5 border" }
65
+ card-badge: { type: badge, bg: "#10567b", fg: "#ffffff", radius: 2, padding: "1px 4px", font: "12px / 400", use: "Inline product card badge" }
66
+ discount-badge: { type: badge, bg: "#e63349", fg: "#ffffff", radius: 2, padding: "2px 6px", font: "12px / 700", use: "Discount ribbon on product image" }
67
+ components_harvested: true
13
68
  ---
14
69
 
15
70
  # Design System Inspiration of Pinkoi