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.
- package/.claude/hooks/lib/preferences-parser.cjs +1 -0
- package/.claude/hooks/lib/preferences-writer.cjs +1 -0
- package/.claude/hooks/post-edit-watch.cjs +1 -0
- package/.claude/hooks/session-end-foldin.cjs +1 -0
- package/.claude/hooks/session-state-loader.cjs +1 -0
- package/.claude/hooks/skill-activation.cjs +1 -0
- package/.claude/settings.json +10 -1
- package/.github/assets/logo-bg.png +0 -0
- package/AGENTS.md +20 -1
- package/CHANGELOG.md +482 -0
- package/MIGRATION.md +103 -0
- package/README.ja.md +56 -19
- package/README.ko.md +47 -30
- package/README.md +48 -30
- package/README.zh-TW.md +59 -22
- package/agents/AGENT.md +8 -7
- package/agents/omd-codex-image.md +1 -1
- package/agents/omd-critic.md +6 -7
- package/agents/omd-designer-review.md +1 -1
- package/agents/omd-final-qa.md +1 -1
- package/agents/omd-humanizer.md +38 -0
- package/agents/omd-kr-writer.md +3 -4
- package/agents/omd-locale-adapter.md +12 -16
- package/agents/omd-master.md +24 -19
- package/agents/omd-microcopy.md +1 -1
- package/agents/omd-orchestrator.md +7 -8
- package/agents/omd-slop-auditor.md +31 -0
- package/agents/omd-ux-researcher.md +1 -1
- package/data/reference-fingerprints.json +1995 -38
- package/dist/bin/oh-my-design.js +16 -8
- package/dist/bin/oh-my-design.js.map +1 -1
- package/dist/chunk-UJIHCEYF.js +99 -0
- package/dist/chunk-UJIHCEYF.js.map +1 -0
- package/dist/doctor-LDWSFM3I.js +763 -0
- package/dist/doctor-LDWSFM3I.js.map +1 -0
- package/dist/install-skills-ZZFNJ2II.js +1120 -0
- package/dist/install-skills-ZZFNJ2II.js.map +1 -0
- package/docs/CLI_QUICKSTART.md +157 -0
- package/package.json +25 -4
- package/scripts/postinstall.cjs +5 -4
- package/skills/claude-design/SKILL.md +38 -14
- package/skills/claude-design/references/claude-design-flow.md +11 -11
- package/skills/claude-design/references/codebase-analysis.md +5 -4
- package/skills/omd-final-qa/SKILL.md +1 -1
- package/skills/omd-harness/SKILL.md +51 -50
- package/skills/omd-humanize/SKILL.md +116 -0
- package/skills/omd-humanize/agents/openai.yaml +4 -0
- package/skills/omd-humanize/references/locale-playbooks.md +102 -0
- package/skills/omd-humanize/references/sources.md +11 -0
- package/skills/omd-init/SKILL.md +18 -12
- package/skills/omd-locale-adapter/SKILL.md +58 -91
- package/skills/omd-orchestrator/SKILL.md +11 -5
- package/skills/omd-reference-capture/SKILL.md +80 -26
- package/skills/omd-reference-capture/scripts/PLAYWRIGHT-LICENSE.txt +202 -0
- package/skills/omd-reference-capture/scripts/PLAYWRIGHT-NOTICE.txt +5 -0
- package/skills/omd-reference-capture/scripts/THIRD_PARTY_NOTICES.md +3 -0
- package/skills/omd-reference-capture/scripts/capture-reference-evidence.mjs +159906 -0
- package/skills/omd-slop-audit/SKILL.md +110 -0
- package/skills/omd-slop-audit/agents/openai.yaml +4 -0
- package/skills/omd-slop-audit/references/pattern-catalog.md +96 -0
- package/skills/omd-slop-audit/references/sources.md +24 -0
- package/web/references/104/DESIGN.md +354 -0
- package/web/references/11st/DESIGN.md +197 -316
- package/web/references/29cm/DESIGN.md +297 -393
- package/web/references/42dot/DESIGN.md +390 -0
- package/web/references/8percent/DESIGN.md +438 -0
- package/web/references/ably/DESIGN.md +267 -572
- package/web/references/acer/DESIGN.md +329 -0
- package/web/references/airbnb/DESIGN.md +219 -557
- package/web/references/alipay/DESIGN.md +179 -420
- package/web/references/apple/DESIGN.md +224 -498
- package/web/references/asleep/DESIGN.md +402 -0
- package/web/references/au/DESIGN.md +334 -0
- package/web/references/autopedia/DESIGN.md +382 -0
- package/web/references/aws-cloudscape/DESIGN.md +241 -0
- package/web/references/baemin/DESIGN.md +332 -491
- package/web/references/banksalad/DESIGN.md +269 -180
- package/web/references/barogo/DESIGN.md +416 -0
- package/web/references/beusable/DESIGN.md +464 -0
- package/web/references/bilibili/DESIGN.md +206 -374
- package/web/references/bmw/DESIGN.md +162 -276
- package/web/references/brandi/DESIGN.md +184 -325
- package/web/references/catchtable/DESIGN.md +219 -264
- package/web/references/cgv/DESIGN.md +317 -0
- package/web/references/channeltalk/DESIGN.md +210 -336
- package/web/references/china-airlines/DESIGN.md +291 -0
- package/web/references/cjonstyle/DESIGN.md +453 -0
- package/web/references/class101/DESIGN.md +168 -387
- package/web/references/classum/DESIGN.md +228 -203
- package/web/references/claude/DESIGN.md +242 -479
- package/web/references/clay/DESIGN.md +179 -377
- package/web/references/clickhouse/DESIGN.md +254 -343
- package/web/references/cohere/DESIGN.md +214 -324
- package/web/references/coinone/DESIGN.md +199 -179
- package/web/references/corca/DESIGN.md +414 -0
- package/web/references/coupang/DESIGN.md +205 -475
- package/web/references/cursor/DESIGN.md +240 -381
- package/web/references/dabang/DESIGN.md +248 -213
- package/web/references/dable/DESIGN.md +431 -0
- package/web/references/datarize/DESIGN.md +217 -330
- package/web/references/dealicious/DESIGN.md +402 -0
- package/web/references/drdiary/DESIGN.md +404 -0
- package/web/references/elastic/DESIGN.md +238 -0
- package/web/references/elevenlabs/DESIGN.md +183 -321
- package/web/references/eslite/DESIGN.md +257 -0
- package/web/references/evaair/DESIGN.md +338 -0
- package/web/references/expo/DESIGN.md +238 -331
- package/web/references/familymart-tw/DESIGN.md +254 -0
- package/web/references/ferrari/DESIGN.md +160 -377
- package/web/references/figma/DESIGN.md +197 -451
- package/web/references/fitpet/DESIGN.md +445 -0
- package/web/references/flex/DESIGN.md +170 -253
- package/web/references/framer/DESIGN.md +197 -340
- package/web/references/freee/DESIGN.md +211 -533
- package/web/references/friendliai/DESIGN.md +431 -0
- package/web/references/frip/DESIGN.md +440 -0
- package/web/references/gangnamunni/DESIGN.md +154 -591
- package/web/references/gaudiolab/DESIGN.md +414 -0
- package/web/references/google/DESIGN.md +290 -398
- package/web/references/hashicorp/DESIGN.md +273 -318
- package/web/references/heydealer/DESIGN.md +429 -0
- package/web/references/humanscape/DESIGN.md +433 -0
- package/web/references/hyundai/DESIGN.md +158 -368
- package/web/references/hyundaicard/DESIGN.md +171 -121
- package/web/references/ibm/DESIGN.md +227 -378
- package/web/references/idus/DESIGN.md +450 -0
- package/web/references/igaworks/DESIGN.md +437 -0
- package/web/references/inflearn/DESIGN.md +221 -366
- package/web/references/intuit/DESIGN.md +244 -0
- package/web/references/jandi/DESIGN.md +191 -291
- package/web/references/jobplanet/DESIGN.md +415 -0
- package/web/references/kakao/DESIGN.md +287 -475
- package/web/references/kakaobank/DESIGN.md +220 -521
- package/web/references/kakaogames/DESIGN.md +220 -0
- package/web/references/kakaopay/DESIGN.md +207 -526
- package/web/references/karrot/DESIGN.md +227 -251
- package/web/references/kb-kookmin/DESIGN.md +308 -0
- package/web/references/kbank/DESIGN.md +220 -175
- package/web/references/kmong/DESIGN.md +281 -356
- package/web/references/krds/DESIGN.md +245 -19
- package/web/references/kream/DESIGN.md +224 -359
- package/web/references/kurly/DESIGN.md +211 -533
- package/web/references/lamborghini/DESIGN.md +198 -360
- package/web/references/lguplus/DESIGN.md +259 -0
- package/web/references/likelion/DESIGN.md +283 -0
- package/web/references/line/DESIGN.md +396 -355
- package/web/references/linear.app/DESIGN.md +209 -562
- package/web/references/lotteon/DESIGN.md +386 -0
- package/web/references/lovable/DESIGN.md +255 -349
- package/web/references/makinarocks/DESIGN.md +149 -349
- package/web/references/maum-ai/DESIGN.md +423 -0
- package/web/references/medibloc/DESIGN.md +425 -0
- package/web/references/megabox/DESIGN.md +232 -0
- package/web/references/mercari/DESIGN.md +217 -434
- package/web/references/microsoft/DESIGN.md +234 -388
- package/web/references/mildang/DESIGN.md +411 -0
- package/web/references/millie/DESIGN.md +183 -504
- package/web/references/minimax/DESIGN.md +264 -322
- package/web/references/miricanvas/DESIGN.md +182 -355
- package/web/references/miro/DESIGN.md +234 -232
- package/web/references/mistral.ai/DESIGN.md +231 -314
- package/web/references/mixi/DESIGN.md +234 -0
- package/web/references/moin/DESIGN.md +445 -0
- package/web/references/mongodb/DESIGN.md +219 -316
- package/web/references/musinsa/DESIGN.md +184 -510
- package/web/references/mynavi/DESIGN.md +242 -0
- package/web/references/myrealtrip/DESIGN.md +169 -406
- package/web/references/naver/DESIGN.md +328 -499
- package/web/references/naverwebtoon/DESIGN.md +172 -395
- package/web/references/nhn/DESIGN.md +169 -346
- package/web/references/nhncloud/DESIGN.md +185 -123
- package/web/references/notion/DESIGN.md +271 -475
- package/web/references/nrise/DESIGN.md +417 -0
- package/web/references/ohouse/DESIGN.md +210 -549
- package/web/references/oliveyoung/DESIGN.md +217 -326
- package/web/references/ollama/DESIGN.md +241 -308
- package/web/references/onestore/DESIGN.md +248 -0
- package/web/references/palantir/DESIGN.md +256 -0
- package/web/references/panasonic/DESIGN.md +276 -0
- package/web/references/patternfly/DESIGN.md +259 -0
- package/web/references/payhere/DESIGN.md +438 -0
- package/web/references/pega/DESIGN.md +262 -0
- package/web/references/peoplefund/DESIGN.md +431 -0
- package/web/references/petfriends/DESIGN.md +428 -0
- package/web/references/pinkfong/DESIGN.md +199 -367
- package/web/references/pinterest/DESIGN.md +258 -308
- package/web/references/poya/DESIGN.md +286 -0
- package/web/references/pozalabs/DESIGN.md +438 -0
- package/web/references/protopie/DESIGN.md +419 -0
- package/web/references/qraft/DESIGN.md +448 -0
- package/web/references/quotabook/DESIGN.md +449 -0
- package/web/references/recruit/DESIGN.md +247 -0
- package/web/references/remember/DESIGN.md +202 -396
- package/web/references/resend/DESIGN.md +274 -348
- package/web/references/sakura-internet/DESIGN.md +269 -0
- package/web/references/samsung/DESIGN.md +157 -359
- package/web/references/sandoll/DESIGN.md +445 -0
- package/web/references/sanity/DESIGN.md +241 -375
- package/web/references/scatterlab/DESIGN.md +412 -0
- package/web/references/selectstar/DESIGN.md +439 -0
- package/web/references/servicenow/DESIGN.md +289 -0
- package/web/references/shinhanbank/DESIGN.md +161 -341
- package/web/references/shinhancard/DESIGN.md +208 -319
- package/web/references/sionic/DESIGN.md +454 -0
- package/web/references/sktelecom/DESIGN.md +310 -0
- package/web/references/socar/DESIGN.md +125 -32
- package/web/references/softbank/DESIGN.md +231 -0
- package/web/references/sony/DESIGN.md +234 -0
- package/web/references/soop/DESIGN.md +261 -0
- package/web/references/spacex/DESIGN.md +184 -323
- package/web/references/spotify/DESIGN.md +253 -394
- package/web/references/squeezebits/DESIGN.md +441 -0
- package/web/references/stayfolio/DESIGN.md +422 -0
- package/web/references/stripe/DESIGN.md +212 -491
- package/web/references/supabase/DESIGN.md +244 -316
- package/web/references/tabling/DESIGN.md +415 -0
- package/web/references/taishinbank/DESIGN.md +243 -0
- package/web/references/teamlab/DESIGN.md +240 -0
- package/web/references/teamsparta/DESIGN.md +472 -0
- package/web/references/tellingme/DESIGN.md +392 -0
- package/web/references/tesla/DESIGN.md +244 -427
- package/web/references/thsr/DESIGN.md +284 -0
- package/web/references/thumbtack/DESIGN.md +302 -0
- package/web/references/together.ai/DESIGN.md +257 -304
- package/web/references/toss/DESIGN.md +251 -593
- package/web/references/toss-securities/DESIGN.md +255 -178
- package/web/references/tossbank/DESIGN.md +195 -491
- package/web/references/toyota/DESIGN.md +238 -0
- package/web/references/tving/DESIGN.md +197 -245
- package/web/references/typed/DESIGN.md +413 -0
- package/web/references/uber/DESIGN.md +256 -333
- package/web/references/udn/DESIGN.md +250 -0
- package/web/references/upbit/DESIGN.md +145 -256
- package/web/references/upstage/DESIGN.md +211 -204
- package/web/references/uswds/DESIGN.md +287 -0
- package/web/references/vercel/DESIGN.md +236 -440
- package/web/references/wanted/DESIGN.md +215 -487
- package/web/references/wise/DESIGN.md +223 -231
- package/web/references/wisetracker/DESIGN.md +462 -0
- package/web/references/wooribank/DESIGN.md +245 -0
- package/web/references/yanolja/DESIGN.md +250 -419
- package/web/references/yeogiotte/DESIGN.md +235 -418
- package/web/references/zapier/DESIGN.md +256 -377
- package/web/references/zendesk/DESIGN.md +288 -0
- package/web/references/zigzag/DESIGN.md +200 -621
- package/dist/install-skills-7UUDOLG2.js +0 -734
- package/dist/install-skills-7UUDOLG2.js.map +0 -1
|
@@ -8,386 +8,319 @@ primary_color: "#000000"
|
|
|
8
8
|
logo:
|
|
9
9
|
type: simpleicons
|
|
10
10
|
slug: ollama
|
|
11
|
-
verified: "2026-
|
|
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, kind: marketing, url: "https://ollama.com/", inspected: "2026-07-13" }
|
|
18
|
+
- { id: surface-2, kind: marketing, url: "https://ollama.com/pricing", inspected: "2026-07-13" }
|
|
19
|
+
- { id: surface-3, kind: documentation, url: "https://docs.ollama.com/", inspected: "2026-07-13" }
|
|
20
|
+
sources:
|
|
21
|
+
- { id: home-live, kind: product-surface, url: "https://ollama.com/", captured: "2026-07-13" }
|
|
22
|
+
- { id: pricing-live, kind: product-surface, url: "https://ollama.com/pricing", captured: "2026-07-13" }
|
|
23
|
+
- { id: docs-live, kind: official-doc, url: "https://docs.ollama.com/", captured: "2026-07-13" }
|
|
24
|
+
- { id: repository, kind: official-doc, url: "https://github.com/ollama/ollama", captured: "2026-07-13" }
|
|
25
|
+
conflicts: []
|
|
26
|
+
claims:
|
|
27
|
+
"tokens.colors.ink": { surface_id: home, source_id: home-live, method: computed-style, captured: "2026-07-13" }
|
|
28
|
+
"tokens.colors.action": { surface_id: home, source_id: home-live, method: computed-style, captured: "2026-07-13" }
|
|
29
|
+
"tokens.colors.canvas": { surface_id: home, source_id: home-live, method: computed-style, captured: "2026-07-13" }
|
|
30
|
+
"tokens.colors.muted": { surface_id: home, source_id: home-live, method: computed-style, captured: "2026-07-13" }
|
|
31
|
+
"tokens.colors.hairline": { surface_id: home, source_id: home-live, method: computed-style, captured: "2026-07-13" }
|
|
32
|
+
"tokens.colors.outline": { surface_id: home, source_id: home-live, method: computed-style, captured: "2026-07-13" }
|
|
33
|
+
"tokens.typography.family.sans": { surface_id: home, source_id: home-live, method: computed-style, captured: "2026-07-13" }
|
|
34
|
+
"tokens.typography.family.mono": { surface_id: home, source_id: home-live, method: computed-style, captured: "2026-07-13" }
|
|
35
|
+
"tokens.typography.body-sm.size": { surface_id: home, source_id: home-live, method: computed-style, captured: "2026-07-13" }
|
|
36
|
+
"tokens.typography.body-sm.weight": { surface_id: home, source_id: home-live, method: computed-style, captured: "2026-07-13" }
|
|
37
|
+
"tokens.typography.body-sm.lineHeight": { surface_id: home, source_id: home-live, method: computed-style, captured: "2026-07-13" }
|
|
38
|
+
"tokens.typography.body-sm.use": { surface_id: home, source_id: home-live, method: computed-style, captured: "2026-07-13" }
|
|
39
|
+
"tokens.typography.body.size": { surface_id: home, source_id: home-live, method: computed-style, captured: "2026-07-13" }
|
|
40
|
+
"tokens.typography.body.weight": { surface_id: home, source_id: home-live, method: computed-style, captured: "2026-07-13" }
|
|
41
|
+
"tokens.typography.body.lineHeight": { surface_id: home, source_id: home-live, method: computed-style, captured: "2026-07-13" }
|
|
42
|
+
"tokens.typography.body.use": { surface_id: home, source_id: home-live, method: computed-style, captured: "2026-07-13" }
|
|
43
|
+
"tokens.typography.nav.size": { surface_id: home, source_id: home-live, method: computed-style, captured: "2026-07-13" }
|
|
44
|
+
"tokens.typography.nav.weight": { surface_id: home, source_id: home-live, method: computed-style, captured: "2026-07-13" }
|
|
45
|
+
"tokens.typography.nav.lineHeight": { surface_id: home, source_id: home-live, method: computed-style, captured: "2026-07-13" }
|
|
46
|
+
"tokens.typography.nav.use": { surface_id: home, source_id: home-live, method: computed-style, captured: "2026-07-13" }
|
|
47
|
+
"tokens.typography.section.size": { surface_id: surface-2, source_id: pricing-live, method: computed-style, captured: "2026-07-13" }
|
|
48
|
+
"tokens.typography.section.weight": { surface_id: surface-2, source_id: pricing-live, method: computed-style, captured: "2026-07-13" }
|
|
49
|
+
"tokens.typography.section.lineHeight": { surface_id: surface-2, source_id: pricing-live, method: computed-style, captured: "2026-07-13" }
|
|
50
|
+
"tokens.typography.section.use": { surface_id: surface-2, source_id: pricing-live, method: computed-style, captured: "2026-07-13" }
|
|
51
|
+
"tokens.spacing.xxs": { surface_id: home, source_id: home-live, method: computed-style, captured: "2026-07-13" }
|
|
52
|
+
"tokens.spacing.xs": { surface_id: home, source_id: home-live, method: computed-style, captured: "2026-07-13" }
|
|
53
|
+
"tokens.spacing.sm": { surface_id: home, source_id: home-live, method: computed-style, captured: "2026-07-13" }
|
|
54
|
+
"tokens.spacing.md": { surface_id: home, source_id: home-live, method: computed-style, captured: "2026-07-13" }
|
|
55
|
+
"tokens.spacing.lg": { surface_id: home, source_id: home-live, method: computed-style, captured: "2026-07-13" }
|
|
56
|
+
"tokens.spacing.xl": { surface_id: home, source_id: home-live, method: computed-style, captured: "2026-07-13" }
|
|
57
|
+
"tokens.spacing.2xl": { surface_id: home, source_id: home-live, method: computed-style, captured: "2026-07-13" }
|
|
58
|
+
"tokens.rounded.full": { surface_id: home, source_id: home-live, method: computed-style, captured: "2026-07-13" }
|
|
59
|
+
"tokens.shadow.none": { surface_id: home, source_id: home-live, method: computed-style, captured: "2026-07-13" }
|
|
13
60
|
tokens:
|
|
14
|
-
source:
|
|
15
|
-
extracted: "2026-
|
|
61
|
+
source: reconciled
|
|
62
|
+
extracted: "2026-07-13"
|
|
16
63
|
colors:
|
|
17
64
|
ink: "#000000"
|
|
18
|
-
|
|
19
|
-
darkest: "#090909"
|
|
65
|
+
action: "#262626"
|
|
20
66
|
canvas: "#ffffff"
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
mid-gray: "#525252"
|
|
25
|
-
silver: "#a3a3a3"
|
|
26
|
-
button-text: "#404040"
|
|
27
|
-
ring: "#3b82f6"
|
|
28
|
-
border-light: "#d4d4d4"
|
|
67
|
+
muted: "#737373"
|
|
68
|
+
hairline: "#e5e7eb"
|
|
69
|
+
outline: "#d4d4d4"
|
|
29
70
|
typography:
|
|
30
|
-
family: { sans: "
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
caption: { size: 14, weight: 400, lineHeight: 1.43, use: "Metadata, descriptions" }
|
|
38
|
-
small: { size: 12, weight: 400, lineHeight: 1.33, use: "Smallest sans text" }
|
|
39
|
-
code: { size: 16, weight: 400, lineHeight: 1.5, use: "Inline code, commands" }
|
|
40
|
-
spacing: { sm: 10, base: 24 }
|
|
41
|
-
rounded: { sm: 12, md: 12, lg: 12, full: 9999 }
|
|
71
|
+
family: { sans: "ui-sans-serif", mono: "ui-monospace" }
|
|
72
|
+
body-sm: { size: 14, weight: 400, lineHeight: 1.43, use: "Observed product text and input" }
|
|
73
|
+
body: { size: 16, weight: 400, lineHeight: 1.5, use: "Observed product list and body text" }
|
|
74
|
+
nav: { size: 18, weight: 400, lineHeight: 1.56, use: "Product navigation and header controls" }
|
|
75
|
+
section: { size: 30, weight: 500, lineHeight: 1.2, use: "Observed pricing heading" }
|
|
76
|
+
spacing: { xxs: 4, xs: 6, sm: 8, md: 12, lg: 16, xl: 24, 2xl: 32 }
|
|
77
|
+
rounded: { full: 9999 }
|
|
42
78
|
shadow:
|
|
43
79
|
none: "none"
|
|
44
|
-
components:
|
|
45
|
-
|
|
46
|
-
button-secondary: { type: button, bg: "#ffffff", fg: "#404040", radius: 9999, padding: "10px 24px", use: "Secondary action, white pill" }
|
|
47
|
-
button-cta: { type: button, bg: "#000000", fg: "#ffffff", radius: 9999, use: "Max emphasis (Create account, Download)" }
|
|
48
|
-
card: { type: card, bg: "#ffffff", radius: 12, use: "Container, 1px light-gray border, no shadow" }
|
|
49
|
-
input: { type: input, bg: "#ffffff", radius: 9999, use: "Pill search/form field" }
|
|
50
|
-
tab-pill: { type: tab, bg: "transparent", radius: 9999, use: "Pill tab selector", active: "#e5e5e5 bg" }
|
|
51
|
-
model-tag: { type: badge, bg: "#e5e5e5", fg: "#262626", radius: 9999, use: "Model browse tag" }
|
|
52
|
-
components_harvested: true
|
|
80
|
+
components: {}
|
|
81
|
+
components_harvested: false
|
|
53
82
|
---
|
|
54
83
|
|
|
55
84
|
# Design System Inspiration of Ollama
|
|
56
85
|
|
|
57
86
|
## 1. Visual Theme & Atmosphere
|
|
58
87
|
|
|
59
|
-
Ollama
|
|
88
|
+
Ollama is a developer platform for getting open models running locally, through an app, CLI, API, and integrations. Its public product marketing surface makes that technical proposition feel deliberately direct: a white canvas, black and charcoal calls to action, spare text links, terminal-shaped instructions, and full-pill controls. The current homepage pairs the local-first promise with an optional cloud offer—"Start local. Scale with cloud."—rather than replacing the local workflow. That evolution is echoed in the pricing surface, which introduces Free, Pro, and Max tiers while keeping download and local use visible. Visually, the recognizable expression is restrained neutral contrast and rounded product controls, not an independently named color system or decorative campaign treatment.
|
|
60
89
|
|
|
61
|
-
The
|
|
90
|
+
The July 2026 company post describes the product as a way to make open models easy to run, build with, own, and keep private; its homepage and pricing page now present cloud capacity as an extension for larger or parallel workloads. The live values below describe those public marketing product surfaces at the captured desktop viewport. Documentation chrome is recorded separately and is not promoted into product tokens.
|
|
62
91
|
|
|
63
|
-
|
|
92
|
+
**Key characteristics:**
|
|
64
93
|
|
|
65
|
-
|
|
66
|
-
-
|
|
67
|
-
-
|
|
68
|
-
-
|
|
69
|
-
-
|
|
70
|
-
- Pill-shaped geometry on all interactive elements (buttons, tabs, inputs, tags)
|
|
71
|
-
- The Ollama llama as the sole illustration — black line art, no color
|
|
72
|
-
- Extreme content restraint — the homepage is short, focused, and uncluttered
|
|
94
|
+
- White canvas, black text, and charcoal (`#262626`) primary CTAs.
|
|
95
|
+
- Full-pill (`9999px`) controls for the observed product inputs and calls to action.
|
|
96
|
+
- No observed drop shadow on the product controls in the supplied capture.
|
|
97
|
+
- System-stack body text plus a separately unresolved rounded display-family observation.
|
|
98
|
+
- Terminal and command language used as product content, not ornament.
|
|
73
99
|
|
|
74
100
|
## 2. Color Palette & Roles
|
|
75
101
|
|
|
76
|
-
###
|
|
77
|
-
- **Pure Black** (`#000000`): Primary headlines, primary links, and the darkest text. The only "color" that demands attention.
|
|
78
|
-
- **Near Black** (`#262626`): Button text on light surfaces, secondary headline weight.
|
|
79
|
-
- **Darkest Surface** (`#090909`): The darkest possible surface — barely distinguishable from pure black, used for footer or dark containers.
|
|
102
|
+
### Product marketing surfaces
|
|
80
103
|
|
|
81
|
-
|
|
82
|
-
- **
|
|
83
|
-
- **
|
|
84
|
-
- **
|
|
104
|
+
- **Ink** (`#000000`): observed primary text and the text of white pricing actions.
|
|
105
|
+
- **Action charcoal** (`#262626`): observed header download and hero CTA background.
|
|
106
|
+
- **Canvas** (`#ffffff`): observed page and inverted pricing CTA surface.
|
|
107
|
+
- **Muted** (`#737373`): observed secondary product text.
|
|
108
|
+
- **Hairline** (`#e5e7eb`): observed product border color.
|
|
109
|
+
- **Outline** (`#d4d4d4`): observed border on a white product CTA.
|
|
85
110
|
|
|
86
|
-
###
|
|
87
|
-
- **Stone** (`#737373`): Secondary body text, footer links, and de-emphasized content. The primary "muted" tone.
|
|
88
|
-
- **Mid Gray** (`#525252`): Emphasized secondary text, slightly darker than Stone.
|
|
89
|
-
- **Silver** (`#a3a3a3`): Tertiary text, placeholders, and deeply de-emphasized metadata.
|
|
90
|
-
- **Button Text Dark** (`#404040`): Specific to white-surface button text.
|
|
111
|
+
### Documentation chrome — separate domain
|
|
91
112
|
|
|
92
|
-
|
|
93
|
-
- **Ring Blue** (`#3b82f6` at 50%): The ONLY non-gray color in the entire system — Tailwind's default focus ring, used exclusively for keyboard accessibility. Never visible in normal interaction flow.
|
|
94
|
-
- **Border Light** (`#d4d4d4`): A slightly darker gray for white-surface button borders.
|
|
95
|
-
|
|
96
|
-
### Gradient System
|
|
97
|
-
- **None.** Ollama uses absolutely no gradients. Visual separation comes from flat color blocks and single-pixel borders. This is a deliberate, almost philosophical design choice.
|
|
113
|
+
The captured docs homepage uses additional light-gray, charcoal, and semantic color values. Those belong to `docs.ollama.com` chrome and are not product-marketing tokens. No gradient token is asserted from the supplied evidence.
|
|
98
114
|
|
|
99
115
|
## 3. Typography Rules
|
|
100
116
|
|
|
101
|
-
###
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
|
120
|
-
|
|
121
|
-
|
|
|
122
|
-
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
- **Tight display, comfortable body**: Headlines compress to 1.0 line-height, while body text relaxes to 1.43–1.56. The contrast creates clear hierarchy without needing weight contrast.
|
|
128
|
-
- **Monospace for developer identity**: Code blocks and terminal commands appear throughout as primary content, using the system monospace stack.
|
|
117
|
+
### Official product-use
|
|
118
|
+
|
|
119
|
+
Ollama’s official homepage, pricing page, documentation, and public repository all frame the product around local and open-model workflows. They do not provide a first-party typography specification or a downloadable Ollama-branded typeface in the sources reviewed for this update.
|
|
120
|
+
|
|
121
|
+
### Live computed product-surface use
|
|
122
|
+
|
|
123
|
+
`ui-sans-serif` is the high-confidence visible system stack across the captured homepage and pricing page; `system-ui` is also observed in the bundle. These are system-stack facts, not a claim to a proprietary Ollama font. The observed product text scale includes 14px/400/20px, 16px/400/24px, 18px/400/28px, and a 30px/500/36px pricing heading.
|
|
124
|
+
|
|
125
|
+
`SF Pro Rounded` appears in computed headings on the homepage and pricing page (including 36px/500/40px and 48px/600/48px), but the supplied FontFaceSet/source reconciliation contains no matching loaded face or source URL. It remains **unresolved** and is deliberately excluded from `tokens.typography.family`. Apple describes SF Pro and its rounded variant as Apple platform fonts; that does not establish an Ollama-distributed webfont or a portable product token.
|
|
126
|
+
|
|
127
|
+
`ui-monospace` is observed in product command-related UI and is retained as a system-stack token. The capture does not establish a custom downloadable monospace family for the product.
|
|
128
|
+
|
|
129
|
+
### Declared-only documentation assets
|
|
130
|
+
|
|
131
|
+
On `docs.ollama.com`, the raw bundle declares `Inter`, `paperMono`, `CMU Typewriter Text`, and `Latin Modern` sources. It records zero visible usage for each. They remain declared-only documentation assets, not product typography tokens or live specimens. The docs surface is therefore not evidence for the homepage/pricing typography system.
|
|
132
|
+
|
|
133
|
+
### Typography application
|
|
134
|
+
|
|
135
|
+
| Role | Family status | Observed size / weight / line height | Surface boundary |
|
|
136
|
+
|------|---------------|--------------------------------------|------------------|
|
|
137
|
+
| Product body | system `ui-sans-serif` | 14px / 400 / 20px; 16px / 400 / 24px | homepage and pricing |
|
|
138
|
+
| Product navigation | system `ui-sans-serif` | 18px / 400 / 28px | homepage |
|
|
139
|
+
| Pricing section title | system `ui-sans-serif` | 30px / 500 / 36px | pricing |
|
|
140
|
+
| Rounded display headings | unresolved `SF Pro Rounded` | 36px / 500 / 40px; 48px / 600 / 48px | homepage and pricing; no loaded/source match |
|
|
141
|
+
| Product command UI | system `ui-monospace` | 14px / 400 / 22.75px | homepage |
|
|
142
|
+
| Docs fonts | declared-only | no visible usage recorded | docs only |
|
|
129
143
|
|
|
130
144
|
## 4. Component Stylings
|
|
131
145
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
-
|
|
137
|
-
-
|
|
138
|
-
-
|
|
139
|
-
- Radius:
|
|
140
|
-
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
-
|
|
146
|
-
-
|
|
147
|
-
- Radius:
|
|
148
|
-
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
-
|
|
159
|
-
-
|
|
160
|
-
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
-
|
|
166
|
-
-
|
|
167
|
-
-
|
|
168
|
-
-
|
|
169
|
-
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
-
|
|
173
|
-
-
|
|
174
|
-
-
|
|
175
|
-
-
|
|
176
|
-
-
|
|
177
|
-
-
|
|
178
|
-
|
|
179
|
-
###
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
-
|
|
183
|
-
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
-
|
|
194
|
-
-
|
|
195
|
-
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
-
|
|
204
|
-
-
|
|
205
|
-
- Tabbed by category (Coding, Documents & RAG, Automation, Chat)
|
|
146
|
+
The variants below preserve the captured selector, surface, and default-state provenance. The collector recorded zero interaction snapshots, so no hover, focus, pressed, disabled, error, dialog, or menu state is specified.
|
|
147
|
+
|
|
148
|
+
### Product marketing — Header controls
|
|
149
|
+
|
|
150
|
+
**Sign-in ghost**
|
|
151
|
+
- Background: `rgba(0, 0, 0, 0.05)`
|
|
152
|
+
- Text: `#000000`
|
|
153
|
+
- Radius: `9999px`
|
|
154
|
+
- Padding: `6px 16px`
|
|
155
|
+
- Font: `18px / 400 / ui-sans-serif`
|
|
156
|
+
- Use: Homepage header link at `home::[data-omd-capture="5"]`.
|
|
157
|
+
|
|
158
|
+
**Download charcoal CTA**
|
|
159
|
+
- Background: `#262626`
|
|
160
|
+
- Text: `#ffffff`
|
|
161
|
+
- Radius: `9999px`
|
|
162
|
+
- Padding: `6px 16px`
|
|
163
|
+
- Font: `18px / 400 / ui-sans-serif`
|
|
164
|
+
- Use: Homepage header CTA at `home::[data-omd-capture="6"]`.
|
|
165
|
+
|
|
166
|
+
### Product marketing — Hero and pricing actions
|
|
167
|
+
|
|
168
|
+
**Hero charcoal CTA**
|
|
169
|
+
- Background: `#262626`
|
|
170
|
+
- Text: `#ffffff`
|
|
171
|
+
- Radius: `9999px`
|
|
172
|
+
- Padding: `12px 32px`
|
|
173
|
+
- Font: `18px / 500 / ui-sans-serif`
|
|
174
|
+
- Use: Homepage hero action at `home::[data-omd-capture="10"]`.
|
|
175
|
+
|
|
176
|
+
**Pricing outlined CTA**
|
|
177
|
+
- Background: `#ffffff`
|
|
178
|
+
- Text: `#000000`
|
|
179
|
+
- Border: `1px solid #d4d4d4`
|
|
180
|
+
- Radius: `9999px`
|
|
181
|
+
- Padding: `8px 24px`
|
|
182
|
+
- Font: `14px / 500 / ui-sans-serif`
|
|
183
|
+
- Use: Homepage pricing action at `home::[data-omd-capture="12"]`.
|
|
184
|
+
|
|
185
|
+
**Pricing white CTA**
|
|
186
|
+
- Background: `#ffffff`
|
|
187
|
+
- Text: `#000000`
|
|
188
|
+
- Radius: `9999px`
|
|
189
|
+
- Padding: `8px 24px`
|
|
190
|
+
- Font: `14px / 500 / ui-sans-serif`
|
|
191
|
+
- Use: Homepage pricing action at `home::[data-omd-capture="13"]`.
|
|
192
|
+
|
|
193
|
+
### Product marketing — Input
|
|
194
|
+
|
|
195
|
+
**Pill input**
|
|
196
|
+
- Text: `#000000`
|
|
197
|
+
- Border: `0px solid #6b7280`
|
|
198
|
+
- Radius: `9999px`
|
|
199
|
+
- Padding: `10px 12px`
|
|
200
|
+
- Font: `14px / 400 / ui-sans-serif`
|
|
201
|
+
- Use: Homepage input at `home::[data-omd-capture="4"]`; also observed on pricing.
|
|
202
|
+
|
|
203
|
+
### Documentation chrome — separate domain
|
|
204
|
+
|
|
205
|
+
**Docs search control**
|
|
206
|
+
- Background: `#ffffff`
|
|
207
|
+
- Text: `#6f6f6f`
|
|
208
|
+
- Radius: `12px`
|
|
209
|
+
- Padding: `0px 12px 0px 14px`
|
|
210
|
+
- Font: `14px / 400 / ui-sans-serif`
|
|
211
|
+
- Use: Docs-only search button at `surface-3::[data-omd-capture="5"]`.
|
|
212
|
+
|
|
213
|
+
**Docs link card**
|
|
214
|
+
- Background: `#ffffff`
|
|
215
|
+
- Border: `1px solid oklab(0.144787 0.00000661612 0.00000289828 / 0.1)`
|
|
216
|
+
- Radius: `16px`
|
|
217
|
+
- Font: `16px / 400 / ui-sans-serif`
|
|
218
|
+
- Use: Docs-only link cards at `surface-3::[data-omd-capture="34"]` and related selectors.
|
|
206
219
|
|
|
207
220
|
## 5. Layout Principles
|
|
208
221
|
|
|
209
|
-
### Spacing
|
|
210
|
-
- Base unit: 8px
|
|
211
|
-
- Scale: 4px, 6px, 8px, 9px, 10px, 12px, 14px, 16px, 20px, 24px, 32px, 40px, 48px, 88px, 112px
|
|
212
|
-
- Button padding: 10px 24px (consistent across all buttons)
|
|
213
|
-
- Card internal padding: approximately 24–32px
|
|
214
|
-
- Section vertical spacing: very generous (88px–112px)
|
|
222
|
+
### Spacing system
|
|
215
223
|
|
|
216
|
-
|
|
217
|
-
- Max container width: approximately 1024–1280px, centered
|
|
218
|
-
- Hero: centered single-column with llama illustration
|
|
219
|
-
- Feature sections: 2-column layout (text left, code right)
|
|
220
|
-
- Integration grid: responsive multi-column
|
|
221
|
-
- Footer: clean single-row
|
|
224
|
+
The captured bundle clusters spacing at 4, 6, 8, 12, 16, 24, and 32px. These are observed values, not a published Ollama spacing scale. Header actions use 6px 16px padding, the hero CTA uses 12px 32px, and the product input uses 10px 12px.
|
|
222
225
|
|
|
223
|
-
###
|
|
224
|
-
- **Emptiness as luxury**: The page is remarkably short and sparse — no feature section overstays its welcome. Each concept gets minimal but sufficient space.
|
|
225
|
-
- **Content density is low by design**: Where other AI companies pack feature after feature, Ollama presents three ideas (run models, use with apps, integrations) and stops.
|
|
226
|
-
- **The white space IS the brand**: Pure white space with zero decoration communicates "this tool gets out of your way."
|
|
226
|
+
### Product composition
|
|
227
227
|
|
|
228
|
-
|
|
229
|
-
-
|
|
230
|
-
-
|
|
228
|
+
- The homepage leads with an install command and a narrow set of entry points: Models, Docs, Pricing, Sign in, and Download.
|
|
229
|
+
- The cloud proposition follows the local starting point instead of displacing it.
|
|
230
|
+
- Pricing is presented as Free, Pro, Max, and an announced Team tier on the captured official pricing page.
|
|
231
|
+
- Documentation is a separate content surface with navigation, search, cards, and API/integration paths; its chrome should not dictate the public product-marketing layout.
|
|
231
232
|
|
|
232
|
-
|
|
233
|
+
### Radius boundary
|
|
233
234
|
|
|
234
|
-
|
|
235
|
+
`9999px` is directly observed on the product controls recorded in §4. The 12px and 16px radii in this update are confined to documentation chrome; they are not generalized to the product marketing surface.
|
|
235
236
|
|
|
236
|
-
|
|
237
|
-
|-------|-----------|-----|
|
|
238
|
-
| Flat (Level 0) | No shadow, no border | Page background, most content |
|
|
239
|
-
| Bordered (Level 1) | `1px solid #e5e5e5` | Cards, code blocks, buttons |
|
|
237
|
+
## 6. Depth & Elevation
|
|
240
238
|
|
|
241
|
-
|
|
239
|
+
The captured homepage and pricing controls in §4 have `box-shadow: none`. Separate product elements can only be described when directly measured; this reference does not turn the absence of shadow on the sampled controls into a universal product rule. Docs cards carry transparent ring values in the raw capture, not an elevated product-card token.
|
|
242
240
|
|
|
243
241
|
## 7. Do's and Don'ts
|
|
244
242
|
|
|
245
243
|
### Do
|
|
246
|
-
|
|
247
|
-
- Use
|
|
248
|
-
- Use
|
|
249
|
-
- Keep
|
|
250
|
-
-
|
|
251
|
-
-
|
|
252
|
-
- Keep content density low — each section should present one clear idea
|
|
253
|
-
- Use monospace for terminal commands and code — it's primary content, not decoration
|
|
254
|
-
- Keep all buttons at 10px 24px padding with pill shape — consistency is absolute
|
|
244
|
+
|
|
245
|
+
- Use `#262626` with white text for the observed dark product CTA treatment.
|
|
246
|
+
- Use full-pill geometry only for controls whose observed product provenance supports it.
|
|
247
|
+
- Keep body and navigation type on the system stack unless a loadable font is independently verified.
|
|
248
|
+
- Keep local use prominent when describing the current local-plus-cloud product story.
|
|
249
|
+
- Treat docs chrome as its own surface when borrowing patterns.
|
|
255
250
|
|
|
256
251
|
### Don't
|
|
257
|
-
|
|
258
|
-
-
|
|
259
|
-
-
|
|
260
|
-
-
|
|
261
|
-
-
|
|
262
|
-
-
|
|
263
|
-
- Don't overcomplicate the layout — two columns maximum, no complex grids
|
|
264
|
-
- Don't use borders heavier than 1px — containment is always the lightest possible touch
|
|
265
|
-
- Don't add hover animations or transitions — interactions should feel instant and direct
|
|
252
|
+
|
|
253
|
+
- Do not substitute a local or system font and label it `SF Pro Rounded`.
|
|
254
|
+
- Do not promote declared docs fonts to the product UI family.
|
|
255
|
+
- Do not generalize docs cards or their 12px/16px radii to marketing-product components.
|
|
256
|
+
- Do not specify hover, focus, pressed, disabled, or error visuals from this capture; interaction coverage is zero.
|
|
257
|
+
- Do not invent a published spacing, shadow, or color scale where only clustered computed values were collected.
|
|
266
258
|
|
|
267
259
|
## 8. Responsive Behavior
|
|
268
260
|
|
|
269
|
-
|
|
270
|
-
| Name | Width | Key Changes |
|
|
271
|
-
|------|-------|-------------|
|
|
272
|
-
| Mobile | <640px | Single column, stacked everything, hamburger nav |
|
|
273
|
-
| Small Tablet | 640–768px | Minor adjustments to spacing |
|
|
274
|
-
| Tablet | 768–850px | 2-column layouts begin |
|
|
275
|
-
| Desktop | 850–1024px | Standard layout, expanded features |
|
|
276
|
-
| Large Desktop | 1024–1280px | Maximum content width |
|
|
277
|
-
|
|
278
|
-
### Touch Targets
|
|
279
|
-
- All buttons are pill-shaped with generous padding (10px 24px)
|
|
280
|
-
- Navigation links at comfortable 16px size
|
|
281
|
-
- Minimum touch area easily exceeds 44x44px
|
|
282
|
-
|
|
283
|
-
### Collapsing Strategy
|
|
284
|
-
- **Navigation**: Collapses to hamburger menu on mobile
|
|
285
|
-
- **Feature sections**: 2-column → stacked single column
|
|
286
|
-
- **Hero text**: 48px → 36px → 30px progressive scaling
|
|
287
|
-
- **Integration grid**: Multi-column → 2-column → single column
|
|
288
|
-
- **Code blocks**: Horizontal scroll maintained
|
|
289
|
-
|
|
290
|
-
### Image Behavior
|
|
291
|
-
- Llama mascot scales proportionally
|
|
292
|
-
- Code blocks maintain monospace formatting
|
|
293
|
-
- Integration icons reflow to fewer columns
|
|
294
|
-
- No art direction changes
|
|
261
|
+
The supplied evidence is a 1440×900 desktop capture for each surface. It confirms the desktop component values in §4 but does not establish mobile breakpoints, collapsed navigation, touch targets, or responsive asset behavior. Those fields are intentionally absent rather than extrapolated.
|
|
295
262
|
|
|
296
263
|
## 9. Agent Prompt Guide
|
|
297
264
|
|
|
298
|
-
###
|
|
299
|
-
- Primary Text: "Pure Black (#000000)"
|
|
300
|
-
- Page Background: "Pure White (#ffffff)"
|
|
301
|
-
- Secondary Text: "Stone (#737373)"
|
|
302
|
-
- Button Background: "Light Gray (#e5e5e5)"
|
|
303
|
-
- Borders: "Light Gray (#e5e5e5)"
|
|
304
|
-
- Muted Text: "Silver (#a3a3a3)"
|
|
305
|
-
- Dark Text: "Near Black (#262626)"
|
|
306
|
-
- Subtle Surface: "Snow (#fafafa)"
|
|
307
|
-
|
|
308
|
-
### Example Component Prompts
|
|
309
|
-
- "Create a hero section on pure white (#ffffff) with an illustration centered above a headline at 48px SF Pro Rounded weight 500, line-height 1.0. Use Pure Black (#000000) text. Below, add a black pill-shaped CTA button (9999px radius, 10px 24px padding) and a gray pill button."
|
|
310
|
-
- "Design a code block with a 12px border-radius, 1px solid Light Gray (#e5e5e5) border on white background. Use ui-monospace at 16px for the terminal command. No shadow."
|
|
311
|
-
- "Build a tab bar with pill-shaped tabs (9999px radius). Active tab: Light Gray (#e5e5e5) background, Near Black (#262626) text. Inactive: transparent background, Stone (#737373) text."
|
|
312
|
-
- "Create an integration card grid. Each card is a bordered pill (9999px radius) or a 12px-radius card with 1px solid #e5e5e5 border. Icon + name inside. Grid of 4 columns on desktop."
|
|
313
|
-
- "Design a navigation bar: transparent background, no border. Ollama logo on the left, 3 text links (Pure Black, 16px, weight 400), pill search input in the center, 'Sign in' text link and black pill 'Download' button on the right."
|
|
314
|
-
|
|
315
|
-
### Iteration Guide
|
|
316
|
-
1. Focus on ONE component at a time
|
|
317
|
-
2. Keep all values grayscale — "Stone (#737373)" not "use a light color"
|
|
318
|
-
3. Always specify pill (9999px) or container (12px) radius — nothing in between
|
|
319
|
-
4. Shadows are always zero — never add them
|
|
320
|
-
5. Weight is always 400 or 500 — never bold
|
|
321
|
-
6. If something feels too decorated, remove it — less is always more for Ollama
|
|
265
|
+
### Safe product-marketing brief
|
|
322
266
|
|
|
323
|
-
|
|
267
|
+
> Create a sparse developer-tool landing section using a white canvas, `#000000` text, a `#262626` full-pill primary CTA with white text, and system sans body type. Keep the local workflow explicit. Do not claim or substitute SF Pro Rounded, and do not import documentation-site cards or declared docs fonts.
|
|
324
268
|
|
|
325
|
-
|
|
269
|
+
### Safe documentation brief
|
|
270
|
+
|
|
271
|
+
> Treat documentation as a separate surface. A captured docs search control uses a white 12px-radius shell and a docs link card uses a white 16px-radius, 1px-border treatment. Keep those values out of product-marketing tokens unless new product-surface evidence supports them.
|
|
272
|
+
|
|
273
|
+
## 10. Voice & Tone
|
|
326
274
|
|
|
327
|
-
|
|
328
|
-
|---|---|
|
|
329
|
-
| CTA | Verb. "Download", "Sign in", "Create account" |
|
|
330
|
-
| Marketing | Practical. "Run language models locally" recurring |
|
|
331
|
-
| Documentation | CLI-first; bash snippets dominant |
|
|
332
|
-
| Error | Specific. "Model not found locally. Pull with: ollama pull llama3" |
|
|
275
|
+
The official homepage and repository use concise, action-first language: installation commands, “Get started,” “Download,” and “Start local. Scale with cloud.” The July 2026 company post explains the larger idea in direct developer language—open models should be easy to build, run, and own.
|
|
333
276
|
|
|
334
|
-
|
|
335
|
-
|
|
277
|
+
| Do | Don't |
|
|
278
|
+
|----|-------|
|
|
279
|
+
| Lead with the concrete task or command. | Lead with abstract AI hype. |
|
|
280
|
+
| Explain local control and optional scale plainly. | Imply cloud use is required. |
|
|
281
|
+
| Name the developer workflow or integration. | Hide the next technical step behind marketing language. |
|
|
336
282
|
|
|
337
|
-
|
|
283
|
+
Verified voice samples: “The easiest way to build with open models,” “Start local. Scale with cloud.”, and “Your model. Your machine. Your data.”
|
|
338
284
|
|
|
339
285
|
## 11. Brand Narrative
|
|
340
286
|
|
|
341
|
-
Ollama
|
|
287
|
+
Ollama presents open models as something developers should be able to run on their own machine and integrate through a simple API. Its official repository and documentation make that practical: download the software, run a model, connect an integration, or use the API.
|
|
342
288
|
|
|
343
|
-
|
|
289
|
+
In the company’s July 2026 post, Jeff and Michael connect Ollama to their earlier work on Kitematic and Docker Desktop, then describe a return to making complex developer infrastructure easier to run. The same post frames the present product around ownership, affordability, and privacy, with cloud capacity offered when local hardware is not enough.
|
|
344
290
|
|
|
345
|
-
|
|
346
|
-
2. **Pill chrome (9999px).** *UI implication:* nav, badges, modals all pill on white.
|
|
347
|
-
3. **Weight 400 or 500, never bold.** *UI implication:* don't use weight 700+.
|
|
348
|
-
4. **Less is more — remove decoration.** *UI implication:* no ornament; if something feels decorative, cut it.
|
|
349
|
-
5. **OSS and Pro coexist.** *UI implication:* Pro/Max tiers visible but never blocking OSS UX.
|
|
291
|
+
That story makes the quiet, command-led public surface coherent: it lets a local workflow remain the primary mental model while acknowledging a growing cloud product.
|
|
350
292
|
|
|
351
|
-
##
|
|
293
|
+
## 12. Principles
|
|
352
294
|
|
|
353
|
-
|
|
295
|
+
1. **Open models should be practical to run.**
|
|
296
|
+
*UI implication:* make installation, model selection, and API entry points easy to scan.
|
|
297
|
+
2. **Ownership and privacy remain legible.**
|
|
298
|
+
*UI implication:* explain the local path plainly and avoid making cloud the only visible route.
|
|
299
|
+
3. **Scale is an extension, not a replacement.**
|
|
300
|
+
*UI implication:* distinguish local capability from optional cloud capacity in layout and copy.
|
|
301
|
+
4. **Developer actions come before persuasion.**
|
|
302
|
+
*UI implication:* use commands, integrations, and links as primary content.
|
|
354
303
|
|
|
355
|
-
|
|
304
|
+
## 13. Personas
|
|
356
305
|
|
|
357
|
-
|
|
306
|
+
These are product-surface archetypes inferred from official use cases, not research personas or synthetic satisfaction claims.
|
|
358
307
|
|
|
359
|
-
**
|
|
308
|
+
- **Local-model developer:** wants to install Ollama, run a model, and call it from an app or API without treating a remote service as the default.
|
|
309
|
+
- **Integration builder:** connects a coding agent, editor, or application to open models using the official integrations and libraries.
|
|
310
|
+
- **Cloud-scale team member:** starts with the local workflow and needs larger or parallel cloud capacity for some work.
|
|
360
311
|
|
|
361
312
|
## 14. States
|
|
362
313
|
|
|
363
|
-
|
|
364
|
-
|---|---|
|
|
365
|
-
| **Empty (no models pulled)** | "Pull your first model" CLI snippet |
|
|
366
|
-
| **Empty (no projects)** | "Try a model" with library link |
|
|
367
|
-
| **Loading (model pulling)** | Per-layer progress with bytes/sec |
|
|
368
|
-
| **Loading (inference)** | Per-token streaming visible |
|
|
369
|
-
| **Error (model not found)** | Specific. "Model not found. Pull with: ollama pull X" |
|
|
370
|
-
| **Error (memory)** | "Insufficient RAM. Try a smaller variant: ollama run llama3:8b" |
|
|
371
|
-
| **Success (pull)** | Confirmation + run command snippet |
|
|
372
|
-
| **Success (creation)** | Account confirmation + API key |
|
|
373
|
-
| **Skeleton (model list)** | Pill placeholders |
|
|
374
|
-
| **Disabled (free tier limit)** | Upgrade link |
|
|
375
|
-
| **Loading (long pull)** | Persistent progress with ETA |
|
|
314
|
+
No product interaction-state variants are included in this update. The supplied collector recorded `interactionCount: 0` and no observed hover, focus, pressed, disabled, error, dialog, toast, or tab state. A future capture can add only states with selector, surface, raw computed value, and interaction provenance.
|
|
376
315
|
|
|
377
316
|
## 15. Motion & Easing
|
|
378
317
|
|
|
379
|
-
|
|
380
|
-
|---|---|---|
|
|
381
|
-
| `motion-instant` | 0ms | Toggle |
|
|
382
|
-
| `motion-fast` | 150ms | Hover |
|
|
383
|
-
| `motion-standard` | 250ms | Modal |
|
|
384
|
-
|
|
385
|
-
Standard cubic-bezier; no bounce. `prefers-reduced-motion: reduce` removes hover transitions.
|
|
318
|
+
Some captured class strings declare color-transition utilities, but no interaction snapshot measured their resulting motion or state. No duration, easing, or motion token is asserted from this evidence.
|
|
386
319
|
|
|
387
320
|
---
|
|
321
|
+
**Verified:** 2026-07-13
|
|
322
|
+
**Tier 1 sources:** [Ollama homepage](https://ollama.com/) (marketing product surface; raw collector `home`), [Ollama pricing](https://ollama.com/pricing) (marketing product surface; raw collector `surface-2`), [Ollama docs](https://docs.ollama.com/) (documentation chrome only; raw collector `surface-3`), [Ollama’s official open-model narrative](https://ollama.com/blog/all-aboard-open-models), [official repository](https://github.com/ollama/ollama), [Apple SF font documentation](https://developer.apple.com/fonts/).
|
|
323
|
+
**Tier 2 sources:** [getdesign.md/ollama](https://getdesign.md/ollama) lists one community design; [Refero search](https://styles.refero.design/?q=Ollama) was attempted but did not return a fetchable result in this run.
|
|
324
|
+
**Conflicts unresolved:** none
|
|
388
325
|
|
|
389
|
-
|
|
390
|
-
**Tier 1 sources:** ollama.com home + /library (live DOM via playwright — all-pill 9999px chrome, **4-tier height system** {header 40 / hero 52 / Pro 38 / Max 36 / nav 28}, 2-weight discipline (400 default / 500 hero+pricing); Primary `#262626` Ollama Charcoal + Inverted `#fff` on dark hero; Outline `rgba(0,0,0,0.05)`).
|
|
391
|
-
**Tier 2 sources:** styles.refero.design / getdesign.md — no record.
|
|
392
|
-
**Tier 2 (Philosophy/founders):** Y Combinator (Ollama W21 batch), No Cap Blog (Michael Chiang), Tracxn, Grokipedia.
|
|
393
|
-
**Style ref:** `notion`. **Conflicts unresolved:** none. **Earlier addition:** pricing inverted-pill `#fff` 36-38px / 14px·500 + hero weight-500 distinction missed by prior pass.
|
|
326
|
+
Tier 2 supplied no conflicting measured values. SF Pro Rounded remains unresolved (computed-only, no FontFaceSet/source corroboration), rather than a Tier 2 conflict.
|