oh-my-design-cli 1.8.6 → 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 +2761 -85
- 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/airbridge/DESIGN.md +451 -0
- 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/bigin/DESIGN.md +454 -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/buzzvil/DESIGN.md +457 -0
- package/web/references/cafe24/DESIGN.md +472 -0
- 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/codeit/DESIGN.md +470 -0
- 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 +338 -0
- 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/elice/DESIGN.md +445 -0
- 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/furiosaai/DESIGN.md +450 -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/goorm/DESIGN.md +470 -0
- package/web/references/greencar/DESIGN.md +420 -0
- package/web/references/hackle/DESIGN.md +472 -0
- 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/hwahae/DESIGN.md +453 -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/kcd/DESIGN.md +432 -0
- 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/kyobobook/DESIGN.md +445 -0
- package/web/references/lablup/DESIGN.md +474 -0
- package/web/references/lamborghini/DESIGN.md +198 -360
- package/web/references/lemonbase/DESIGN.md +452 -0
- 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 +242 -0
- 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/moreh/DESIGN.md +437 -0
- 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/neosapience/DESIGN.md +441 -0
- package/web/references/nhn/DESIGN.md +169 -346
- package/web/references/nhncloud/DESIGN.md +185 -123
- package/web/references/nota/DESIGN.md +451 -0
- 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/portone/DESIGN.md +446 -0
- 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/queenit/DESIGN.md +432 -0
- package/web/references/quotabook/DESIGN.md +449 -0
- package/web/references/rebellions/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/returnzero/DESIGN.md +460 -0
- 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/saramin/DESIGN.md +465 -0
- 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/shiftee/DESIGN.md +468 -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/solapi/DESIGN.md +483 -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/supertone/DESIGN.md +413 -0
- 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/vuno/DESIGN.md +413 -0
- package/web/references/wanted/DESIGN.md +215 -487
- package/web/references/weverse/DESIGN.md +437 -0
- 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
|
@@ -4,59 +4,110 @@ name: Notion
|
|
|
4
4
|
country: US
|
|
5
5
|
category: productivity
|
|
6
6
|
homepage: "https://www.notion.so"
|
|
7
|
-
primary_color: "#
|
|
7
|
+
primary_color: "#0075de"
|
|
8
8
|
logo:
|
|
9
9
|
type: simpleicons
|
|
10
10
|
slug: notion
|
|
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://www.notion.com/ko", inspected: "2026-07-13" }
|
|
18
|
+
- { id: product, kind: public-product-marketing, url: "https://www.notion.com/ko/product", inspected: "2026-07-13" }
|
|
19
|
+
- { id: help, kind: documentation-chrome, url: "https://www.notion.com/ko/help", inspected: "2026-07-13" }
|
|
20
|
+
sources:
|
|
21
|
+
- { id: home-live, kind: product-surface, url: "https://www.notion.com/ko", captured: "2026-07-13" }
|
|
22
|
+
- { id: product-live, kind: product-surface, url: "https://www.notion.com/ko/product", captured: "2026-07-13" }
|
|
23
|
+
- { id: help-live, kind: product-surface, url: "https://www.notion.com/ko/help", captured: "2026-07-13" }
|
|
24
|
+
- { id: about, kind: official-doc, url: "https://www.notion.com/about", captured: "2026-07-13" }
|
|
25
|
+
- { id: careers, kind: official-doc, url: "https://www.notion.com/careers", captured: "2026-07-13" }
|
|
26
|
+
- { id: ai-story, kind: official-doc, url: "https://www.notion.com/blog/behind-the-scenes-notion-ai", captured: "2026-07-13" }
|
|
27
|
+
- { id: notioninter-assets, kind: brand-asset, url: "https://www.notion.com/front-static/fonts/NotionInter-Regular.woff2", captured: "2026-07-13" }
|
|
28
|
+
conflicts: []
|
|
29
|
+
claims:
|
|
30
|
+
"tokens.colors.primary": &marketing { surface_id: home, source_id: home-live, method: live-inspect, captured: "2026-07-13" }
|
|
31
|
+
"tokens.colors.canvas": *marketing
|
|
32
|
+
"tokens.colors.ink": *marketing
|
|
33
|
+
"tokens.colors.muted": *marketing
|
|
34
|
+
"tokens.colors.docs-layer": &docs { surface_id: help, source_id: help-live, method: live-inspect, captured: "2026-07-13" }
|
|
35
|
+
"tokens.colors.primary-hover": *marketing
|
|
36
|
+
"tokens.typography.family.sans": *marketing
|
|
37
|
+
"tokens.typography.hero.size": *marketing
|
|
38
|
+
"tokens.typography.hero.weight": *marketing
|
|
39
|
+
"tokens.typography.hero.lineHeight": *marketing
|
|
40
|
+
"tokens.typography.hero.tracking": *marketing
|
|
41
|
+
"tokens.typography.hero.use": *marketing
|
|
42
|
+
"tokens.typography.heading.size": *marketing
|
|
43
|
+
"tokens.typography.heading.weight": *marketing
|
|
44
|
+
"tokens.typography.heading.lineHeight": *marketing
|
|
45
|
+
"tokens.typography.heading.tracking": *marketing
|
|
46
|
+
"tokens.typography.heading.use": *marketing
|
|
47
|
+
"tokens.typography.body.size": *marketing
|
|
48
|
+
"tokens.typography.body.weight": *marketing
|
|
49
|
+
"tokens.typography.body.lineHeight": *marketing
|
|
50
|
+
"tokens.typography.body.use": *marketing
|
|
51
|
+
"tokens.typography.action.size": *marketing
|
|
52
|
+
"tokens.typography.action.weight": *marketing
|
|
53
|
+
"tokens.typography.action.lineHeight": *marketing
|
|
54
|
+
"tokens.typography.action.use": *marketing
|
|
55
|
+
"tokens.typography.label.size": *marketing
|
|
56
|
+
"tokens.typography.label.weight": *marketing
|
|
57
|
+
"tokens.typography.label.lineHeight": *marketing
|
|
58
|
+
"tokens.typography.label.use": *marketing
|
|
59
|
+
"tokens.spacing.xs": *marketing
|
|
60
|
+
"tokens.spacing.sm": *marketing
|
|
61
|
+
"tokens.spacing.md": *marketing
|
|
62
|
+
"tokens.spacing.lg": *marketing
|
|
63
|
+
"tokens.spacing.xl": *marketing
|
|
64
|
+
"tokens.rounded.control": *marketing
|
|
65
|
+
"tokens.rounded.card": *marketing
|
|
66
|
+
"tokens.rounded.docs-input": *docs
|
|
67
|
+
"tokens.rounded.pill": *marketing
|
|
68
|
+
"tokens.shadow.floating-action": *marketing
|
|
69
|
+
"tokens.components.marketing-primary-action.type": *marketing
|
|
70
|
+
"tokens.components.marketing-primary-action.bg": *marketing
|
|
71
|
+
"tokens.components.marketing-primary-action.fg": *marketing
|
|
72
|
+
"tokens.components.marketing-primary-action.radius": *marketing
|
|
73
|
+
"tokens.components.marketing-primary-action.padding": *marketing
|
|
74
|
+
"tokens.components.marketing-primary-action.height": *marketing
|
|
75
|
+
"tokens.components.marketing-primary-action.font": *marketing
|
|
76
|
+
"tokens.components.marketing-primary-action.states": *marketing
|
|
77
|
+
"tokens.components.marketing-primary-action.use": *marketing
|
|
78
|
+
"tokens.components.help-search.type": *docs
|
|
79
|
+
"tokens.components.help-search.fg": *docs
|
|
80
|
+
"tokens.components.help-search.border": *docs
|
|
81
|
+
"tokens.components.help-search.radius": *docs
|
|
82
|
+
"tokens.components.help-search.padding": *docs
|
|
83
|
+
"tokens.components.help-search.height": *docs
|
|
84
|
+
"tokens.components.help-search.font": *docs
|
|
85
|
+
"tokens.components.help-search.states": *docs
|
|
86
|
+
"tokens.components.help-search.use": *docs
|
|
13
87
|
tokens:
|
|
14
|
-
source:
|
|
15
|
-
extracted: "2026-
|
|
88
|
+
source: live-extract
|
|
89
|
+
extracted: "2026-07-13"
|
|
16
90
|
colors:
|
|
17
|
-
ink: "#000000"
|
|
18
|
-
canvas: "#ffffff"
|
|
19
91
|
primary: "#0075de"
|
|
20
|
-
primary-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
warm-gray-300: "#a39e98"
|
|
26
|
-
teal: "#2a9d99"
|
|
27
|
-
green: "#1aae39"
|
|
28
|
-
orange: "#dd5b00"
|
|
29
|
-
pink: "#ff64c8"
|
|
30
|
-
purple: "#391c57"
|
|
31
|
-
brown: "#523410"
|
|
32
|
-
link-light: "#62aef0"
|
|
33
|
-
focus: "#097fe8"
|
|
34
|
-
badge-bg: "#f2f9ff"
|
|
35
|
-
border: "#dddddd"
|
|
92
|
+
primary-hover: "#005bab"
|
|
93
|
+
canvas: "#ffffff"
|
|
94
|
+
ink: "#000000"
|
|
95
|
+
muted: "#615d59"
|
|
96
|
+
docs-layer: "#f9f9f8"
|
|
36
97
|
typography:
|
|
37
|
-
family: { sans: "NotionInter"
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
body: { size: 16, weight: 400, lineHeight: 1.5, use: "Standard reading text" }
|
|
46
|
-
nav-button: { size: 15, weight: 600, lineHeight: 1.33, use: "Navigation links, button text" }
|
|
47
|
-
caption: { size: 14, weight: 500, lineHeight: 1.43, use: "Metadata, secondary labels" }
|
|
48
|
-
badge: { size: 12, weight: 600, lineHeight: 1.33, tracking: 0.125, use: "Pill badges, tags, status" }
|
|
49
|
-
spacing: { sm: 8, base: 16 }
|
|
50
|
-
rounded: { sm: 4, md: 12, lg: 16, full: 9999 }
|
|
98
|
+
family: { sans: "NotionInter" }
|
|
99
|
+
hero: { size: 96, weight: 600, lineHeight: 100, tracking: -4.6, use: "Observed marketing h1 at the captured viewport" }
|
|
100
|
+
heading: { size: 54, weight: 700, lineHeight: 56, tracking: -1.875, use: "Observed public marketing/product h2" }
|
|
101
|
+
body: { size: 16, weight: 400, lineHeight: 24, use: "Observed navigation, cards, and Help chrome" }
|
|
102
|
+
action: { size: 16, weight: 500, lineHeight: 24, use: "Observed public marketing CTA" }
|
|
103
|
+
label: { size: 14, weight: 500, lineHeight: 20, use: "Observed menu trigger and Help dialog control" }
|
|
104
|
+
spacing: { xs: 4, sm: 8, md: 12, lg: 16, xl: 24 }
|
|
105
|
+
rounded: { docs-input: 5, control: 8, card: 12, pill: 9999 }
|
|
51
106
|
shadow:
|
|
52
|
-
|
|
107
|
+
floating-action: "rgba(0,0,0,0.01) 0px 0.175px 1.041px, rgba(0,0,0,0.02) 0px 0.8px 2.925px, rgba(0,0,0,0.027) 0px 2.025px 7.847px, rgba(0,0,0,0.04) 0px 4px 18px"
|
|
53
108
|
components:
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
button-ghost: { type: button, bg: "transparent", fg: "#000000", use: "Tertiary actions, inline links" }
|
|
57
|
-
badge: { type: badge, bg: "#f2f9ff", fg: "#097fe8", radius: 9999, padding: "4px 8px", font: "12px/600", use: "Status badges, feature labels, New tags" }
|
|
58
|
-
card: { type: card, bg: "#ffffff", radius: 12, use: "Standard content card, whisper border" }
|
|
59
|
-
input: { type: input, bg: "#ffffff", fg: "#000000", radius: 4, padding: "6px", use: "Forms, fields" }
|
|
109
|
+
marketing-primary-action: { type: button, bg: "#0075de", fg: "#ffffff", radius: 8, padding: "4px 14px", height: 36, font: "16px/500 NotionInter", states: "hover/pressed/focus captured on marketing; values remain selector-specific", use: "Global marketing CTA" }
|
|
110
|
+
help-search: { type: input, fg: "#000000", border: "1px solid rgba(0,0,0,0.08)", radius: 5, padding: "7px 10px 7px 30px", height: 36, font: "16px/400 NotionInter", states: "dialog-open focus style captured", use: "Help language-picker search field" }
|
|
60
111
|
components_harvested: true
|
|
61
112
|
---
|
|
62
113
|
|
|
@@ -64,494 +115,239 @@ tokens:
|
|
|
64
115
|
|
|
65
116
|
## 1. Visual Theme & Atmosphere
|
|
66
117
|
|
|
67
|
-
Notion
|
|
68
|
-
|
|
69
|
-
The custom NotionInter font (a modified Inter) is the backbone of the system. At display sizes (64px), it uses aggressive negative letter-spacing (-2.125px), creating headlines that feel compressed and precise. The weight range is broader than typical systems: 400 for body, 500 for UI elements, 600 for semi-bold labels, and 700 for display headings. OpenType features `"lnum"` (lining numerals) and `"locl"` (localized forms) are enabled on larger text, adding typographic sophistication that rewards close reading.
|
|
118
|
+
Notion is an all-in-one workspace for notes, docs, project work, knowledge, and AI-assisted workflows. Its public web expression makes a flexible “toolbox of software building blocks” feel legible rather than enterprise-heavy: white canvas, near-black type, modest 4–12px corners, and a restrained blue action color. The supplied July 2026 capture shows this language across Korean marketing, a public product-marketing route, and the Help-center shell. Notion’s own history frames the product as a response to fragmented work tools; its current careers page extends that idea to teams of people and AI agents. The most recognizable visual move is therefore reduction: sturdy typography and quiet borders let the page’s content, screenshots, and user-defined workspace structure carry the personality. [About Notion](https://www.notion.com/about) · [Careers](https://www.notion.com/careers)
|
|
70
119
|
|
|
71
|
-
|
|
120
|
+
The capture is deliberately narrower than an authenticated workspace or a complete internal system. Marketing and public-product promotion share the blue CTA and NotionInter family. The Help route adds its own documentation controls and muted `#f9f9f8` hover layer; it is documented as Help chrome rather than promoted as a universal workspace pattern.
|
|
72
121
|
|
|
73
|
-
**Key
|
|
74
|
-
-
|
|
75
|
-
-
|
|
76
|
-
-
|
|
77
|
-
-
|
|
78
|
-
-
|
|
79
|
-
- Notion Blue (`#0075de`) as the singular accent color for CTAs and interactive elements
|
|
80
|
-
- Pill badges (9999px radius) with tinted blue backgrounds for status indicators
|
|
81
|
-
- 8px base spacing unit with an organic, non-rigid scale
|
|
122
|
+
**Key characteristics:**
|
|
123
|
+
- White canvas with `rgba(0,0,0,0.95)` / `#000000` reading color
|
|
124
|
+
- `#0075de` public CTA, with darker selector-specific interaction states
|
|
125
|
+
- NotionInter loaded on all three captured public routes
|
|
126
|
+
- 4–8px controls, 12px marketing cards, and a pill-shaped language menu trigger
|
|
127
|
+
- Public components are flat or whisper-bordered; the observed circular action is the only captured soft-shadow control
|
|
82
128
|
|
|
83
129
|
## 2. Color Palette & Roles
|
|
84
130
|
|
|
85
|
-
###
|
|
86
|
-
- **
|
|
87
|
-
- **
|
|
88
|
-
- **
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
- **
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
- **
|
|
96
|
-
- **Warm Dark** (`#31302e`): Dark surface background, dark section text. Warmer than standard grays.
|
|
97
|
-
- **Warm Gray 500** (`#615d59`): Secondary text, descriptions, muted labels.
|
|
98
|
-
- **Warm Gray 300** (`#a39e98`): Placeholder text, disabled states, caption text.
|
|
99
|
-
|
|
100
|
-
### Semantic Accent Colors
|
|
101
|
-
- **Teal** (`#2a9d99`): Success states, positive indicators.
|
|
102
|
-
- **Green** (`#1aae39`): Confirmation, completion badges.
|
|
103
|
-
- **Orange** (`#dd5b00`): Warning states, attention indicators.
|
|
104
|
-
- **Pink** (`#ff64c8`): Decorative accent, feature highlights.
|
|
105
|
-
- **Purple** (`#391c57`): Premium features, deep accents.
|
|
106
|
-
- **Brown** (`#523410`): Earthy accent, warm feature sections.
|
|
107
|
-
|
|
108
|
-
### Interactive
|
|
109
|
-
- **Link Blue** (`#0075de`): Primary link color with underline-on-hover.
|
|
110
|
-
- **Link Light Blue** (`#62aef0`): Lighter link variant for dark backgrounds.
|
|
111
|
-
- **Focus Blue** (`#097fe8`): Focus ring on interactive elements.
|
|
112
|
-
- **Badge Blue Bg** (`#f2f9ff`): Pill badge background, tinted blue surface.
|
|
113
|
-
- **Badge Blue Text** (`#097fe8`): Pill badge text, darker blue for readability.
|
|
114
|
-
|
|
115
|
-
### Shadows & Depth
|
|
116
|
-
- **Card Shadow** (`rgba(0,0,0,0.04) 0px 4px 18px, rgba(0,0,0,0.027) 0px 2.025px 7.84688px, rgba(0,0,0,0.02) 0px 0.8px 2.925px, rgba(0,0,0,0.01) 0px 0.175px 1.04062px`): Multi-layer card elevation.
|
|
117
|
-
- **Deep Shadow** (`rgba(0,0,0,0.01) 0px 1px 3px, rgba(0,0,0,0.02) 0px 3px 7px, rgba(0,0,0,0.02) 0px 7px 15px, rgba(0,0,0,0.04) 0px 14px 28px, rgba(0,0,0,0.05) 0px 23px 52px`): Five-layer deep elevation for modals and featured content.
|
|
118
|
-
- **Whisper Border** (`1px solid rgba(0,0,0,0.1)`): Standard division border -- cards, dividers, sections.
|
|
131
|
+
### Observed public marketing and product palette
|
|
132
|
+
- **Primary action** (`#0075de`): observed on the global navigation CTA and hero CTA across the marketing and public product-marketing routes.
|
|
133
|
+
- **Primary interaction states** (`#005bab`, `#0073d9`, `#0071d6`): hover, pressed, and focus backgrounds on the captured CTA selectors; these are state evidence, not a general color ramp.
|
|
134
|
+
- **Canvas** (`#ffffff`): repeated white page, card, and menu-button surface.
|
|
135
|
+
- **Ink** (`#000000` / `rgba(0,0,0,0.95)`): observed primary text treatment.
|
|
136
|
+
- **Muted text** (`#615d59` and route-local `rgba(0,0,0,0.54)`): secondary copy/control treatment; neither is a substitute for primary ink.
|
|
137
|
+
- **Whisper border** (`rgba(0,0,0,0.1)`): observed on the white language-picker trigger and compact card.
|
|
138
|
+
|
|
139
|
+
### Documentation-chrome boundary
|
|
140
|
+
- **Help hover layer** (`#f9f9f8`): observed only on the Help toggle’s hover state.
|
|
141
|
+
- **Help focus treatment** (`rgba(35,131,226,0.57)` inset plus `rgba(35,131,226,0.35)` outer ring): observed only on the language-picker search input after its dialog opened.
|
|
119
142
|
|
|
120
143
|
## 3. Typography Rules
|
|
121
144
|
|
|
122
|
-
###
|
|
123
|
-
|
|
124
|
-
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
| Sub-heading Large | NotionInter | 40px (2.50rem) | 700 | 1.50 | normal | Card headings, feature sub-sections |
|
|
134
|
-
| Sub-heading | NotionInter | 26px (1.63rem) | 700 | 1.23 (tight) | -0.625px | Section sub-titles, content headers |
|
|
135
|
-
| Card Title | NotionInter | 22px (1.38rem) | 700 | 1.27 (tight) | -0.25px | Feature cards, list titles |
|
|
136
|
-
| Body Large | NotionInter | 20px (1.25rem) | 600 | 1.40 | -0.125px | Introductions, feature descriptions |
|
|
137
|
-
| Body | NotionInter | 16px (1.00rem) | 400 | 1.50 | normal | Standard reading text |
|
|
138
|
-
| Body Medium | NotionInter | 16px (1.00rem) | 500 | 1.50 | normal | Navigation, emphasized UI text |
|
|
139
|
-
| Body Semibold | NotionInter | 16px (1.00rem) | 600 | 1.50 | normal | Strong labels, active states |
|
|
140
|
-
| Body Bold | NotionInter | 16px (1.00rem) | 700 | 1.50 | normal | Headlines at body size |
|
|
141
|
-
| Nav / Button | NotionInter | 15px (0.94rem) | 600 | 1.33 | normal | Navigation links, button text |
|
|
142
|
-
| Caption | NotionInter | 14px (0.88rem) | 500 | 1.43 | normal | Metadata, secondary labels |
|
|
143
|
-
| Caption Light | NotionInter | 14px (0.88rem) | 400 | 1.43 | normal | Body captions, descriptions |
|
|
144
|
-
| Badge | NotionInter | 12px (0.75rem) | 600 | 1.33 | 0.125px | Pill badges, tags, status labels |
|
|
145
|
-
| Micro Label | NotionInter | 12px (0.75rem) | 400 | 1.33 | 0.125px | Small metadata, timestamps |
|
|
146
|
-
|
|
147
|
-
### Principles
|
|
148
|
-
- **Compression at scale**: NotionInter at display sizes uses -2.125px letter-spacing at 64px, progressively relaxing to -0.625px at 26px and normal at 16px. The compression creates density at headlines while maintaining readability at body sizes.
|
|
149
|
-
- **Four-weight system**: 400 (body/reading), 500 (UI/interactive), 600 (emphasis/navigation), 700 (headings/display). The broader weight range compared to most systems allows nuanced hierarchy.
|
|
150
|
-
- **Warm scaling**: Line height tightens as size increases -- 1.50 at body (16px), 1.23-1.27 at sub-headings, 1.00-1.04 at display. This creates denser, more impactful headlines.
|
|
151
|
-
- **Badge micro-tracking**: The 12px badge text uses positive letter-spacing (0.125px) -- the only positive tracking in the system, creating wider, more legible small text.
|
|
145
|
+
### Evidence classes
|
|
146
|
+
|
|
147
|
+
**Official product-use.** Notion describes its core product as an all-in-one workspace made from configurable building blocks and says its mission is to make software toolmaking ubiquitous. Those are product and brand facts; they do not by themselves specify a webfont. [About](https://www.notion.com/about) · [Notion AI story](https://www.notion.com/blog/behind-the-scenes-notion-ai)
|
|
148
|
+
|
|
149
|
+
**Live computed surface-use.** `NotionInter` is computed on visible marketing, public product-marketing, and Help-chrome elements. The supplied artifact reports it loaded/high for 906 elements with matching FontFaceSet/source evidence. Measured examples include a 96px/600/100px/-4.6px marketing h1, 54px/700/56px/-1.875px h2, 16px/400/24px reading text, and 16px/500/24px CTA text.
|
|
150
|
+
|
|
151
|
+
**Official distributed brand asset.** The capture finds Notion-controlled `NotionInter` `.woff` and `.woff2` files at `www.notion.com` URLs. They support browser delivery on these routes, but the research found no first-party public font-license or redistribution grant. Treat the files as service assets, not a font package to redistribute.
|
|
152
|
+
|
|
153
|
+
**Declared-only.** `iA Writer Mono`, `Lyon Text`, `Noto Sans Arabic`, `Noto Sans Hebrew`, and `Permanent Marker` have `@font-face` sources in the capture but no visible computed use. They remain declared assets, not UI-family tokens.
|
|
154
|
+
|
|
155
|
+
**System/unresolved.** `Inter`, `-apple-system`, `system-ui`, `Segoe UI`, Helvetica, Arial, and emoji faces appear as fallback members in the computed stack. No fallback is rendered or labeled as NotionInter. Authenticated workspace typography, local app typography, and a public NotionInter license remain unresolved.
|
|
152
156
|
|
|
153
157
|
## 4. Component Stylings
|
|
154
158
|
|
|
155
|
-
###
|
|
159
|
+
### Public marketing actions
|
|
156
160
|
|
|
157
|
-
**
|
|
158
|
-
- Background: `#0075de`
|
|
161
|
+
**Global CTA — default**
|
|
162
|
+
- Background: `#0075de`
|
|
159
163
|
- Text: `#ffffff`
|
|
160
|
-
-
|
|
161
|
-
- Radius:
|
|
162
|
-
-
|
|
163
|
-
-
|
|
164
|
-
-
|
|
165
|
-
-
|
|
166
|
-
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
-
|
|
172
|
-
-
|
|
173
|
-
-
|
|
174
|
-
-
|
|
175
|
-
-
|
|
176
|
-
|
|
177
|
-
|
|
164
|
+
- Border: 1px solid transparent
|
|
165
|
+
- Radius: 8px
|
|
166
|
+
- Padding: 4px 14px
|
|
167
|
+
- Height: 36px
|
|
168
|
+
- Font: 16px / 500 / NotionInter
|
|
169
|
+
- Use: `home::[data-omd-capture="9"]`, class `button_buttonVariantPrimary__mUFQZ globalNavigation_tryFreeCta__mNYk6`; also observed on the other two captured routes.
|
|
170
|
+
- Hover: `#005bab` at `home::[data-omd-capture="9"]::state-hover`.
|
|
171
|
+
- Pressed: state captured for this selector; only the raw state observation is retained in `.verification.md`.
|
|
172
|
+
- Focus: state captured for this selector; only the raw state observation is retained in `.verification.md`.
|
|
173
|
+
|
|
174
|
+
**Hero CTA — default**
|
|
175
|
+
- Background: `#0075de`
|
|
176
|
+
- Text: `#ffffff`
|
|
177
|
+
- Border: 1px solid transparent
|
|
178
|
+
- Radius: 8px
|
|
179
|
+
- Padding: 6px 15px
|
|
180
|
+
- Height: 38px
|
|
181
|
+
- Font: 16px / 500 / NotionInter
|
|
182
|
+
- Use: `home::[data-omd-capture="11"]`, class `HeroCTA_cta__hOE_c button_primary__k0`; public marketing and product-marketing only.
|
|
183
|
+
- Pressed: `#0073d9` at `home::[data-omd-capture="11"]::state-pressed`.
|
|
184
|
+
- Focus: `#0071d6` at `home::[data-omd-capture="11"]::state-focus`.
|
|
185
|
+
|
|
186
|
+
**Hero secondary action — observed focus state**
|
|
187
|
+
- Background: `#e6f3fe`
|
|
188
|
+
- Text: `#005bab`
|
|
189
|
+
- Border: 1px solid transparent
|
|
190
|
+
- Radius: 8px
|
|
191
|
+
- Padding: 6px 15px
|
|
192
|
+
- Height: 38px
|
|
193
|
+
- Font: 16px / 500 / NotionInter
|
|
194
|
+
- Use: `home::[data-omd-capture="12"]`, class `HeroCTA_cta__hOE_c button_secondary__`; a focus observation, not a universal secondary-button default.
|
|
195
|
+
- Focus: `#e7f3fe` background at the same selector’s focus capture.
|
|
196
|
+
|
|
197
|
+
### Marketing content structures
|
|
198
|
+
|
|
199
|
+
**Compact card — default**
|
|
200
|
+
- Background: `#ffffff`
|
|
201
|
+
- Text: `rgba(0,0,0,0.898)`
|
|
202
|
+
- Border: 1px solid `rgba(0,0,0,0.1)`
|
|
203
|
+
- Radius: 12px
|
|
204
|
+
- Padding: 24px
|
|
205
|
+
- Font: 16px / 400 / NotionInter
|
|
206
|
+
- Use: `home::div`, class `cardCompact_cardCompact__W2i4I`; observed on marketing and public product-marketing routes.
|
|
207
|
+
|
|
208
|
+
**Bento feature tab — selected and unselected**
|
|
178
209
|
- Background: transparent
|
|
179
|
-
-
|
|
180
|
-
-
|
|
181
|
-
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
- Radius: 9999px (full pill)
|
|
188
|
-
- Font: 12px weight 600
|
|
189
|
-
- Use: Status badges, feature labels, "New" tags
|
|
190
|
-
|
|
191
|
-
### Cards & Containers
|
|
210
|
+
- Radius: 8px
|
|
211
|
+
- Padding: 12px 16px
|
|
212
|
+
- Font: 16px / 400 / NotionInter
|
|
213
|
+
- Use: `home::[data-omd-capture="27"]` / `home::[data-omd-capture="28"]`, role `tab`; three tab interactions recorded on marketing and public product-marketing routes.
|
|
214
|
+
- Selected: `rgba(0,0,0,0.95)` text at `home::[data-omd-interaction-capture="tab-1-0"]`.
|
|
215
|
+
- Unselected: `rgba(0,0,0,0.54)` text at `home::[data-omd-capture="28"]`.
|
|
216
|
+
|
|
217
|
+
**Circular carousel action — default**
|
|
192
218
|
- Background: `#ffffff`
|
|
193
|
-
-
|
|
194
|
-
- Radius:
|
|
195
|
-
-
|
|
196
|
-
-
|
|
197
|
-
-
|
|
219
|
+
- Text: `rgba(0,0,0,0.95)`
|
|
220
|
+
- Radius: 9999px
|
|
221
|
+
- Height: 40px
|
|
222
|
+
- Font: 20px / 400 / NotionInter
|
|
223
|
+
- Shadow: `rgba(0,0,0,0.01) 0px 0.175px 1.041px, rgba(0,0,0,0.02) 0px 0.8px 2.925px, rgba(0,0,0,0.027) 0px 2.025px 7.847px, rgba(0,0,0,0.04) 0px 4px 18px`
|
|
224
|
+
- Use: `home::[data-omd-capture="31"]`, a marketing carousel arrow; do not generalize this elevation to cards or dialogs.
|
|
198
225
|
|
|
199
|
-
###
|
|
226
|
+
### Help documentation chrome
|
|
227
|
+
|
|
228
|
+
**Language picker trigger — dialog opener**
|
|
200
229
|
- Background: `#ffffff`
|
|
201
|
-
- Text: `rgba(0,0,0,0.
|
|
202
|
-
- Border:
|
|
203
|
-
-
|
|
204
|
-
-
|
|
205
|
-
-
|
|
206
|
-
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
- Clean horizontal nav on white, not sticky
|
|
210
|
-
- Brand logo left-aligned (33x34px icon + wordmark)
|
|
211
|
-
- Links: NotionInter 15px weight 500-600, near-black text
|
|
212
|
-
- Hover: color shift to `var(--color-link-primary-text-hover)`
|
|
213
|
-
- CTA: blue pill button ("Get Notion free") right-aligned
|
|
214
|
-
- Mobile: hamburger menu collapse
|
|
215
|
-
- Product dropdowns with multi-level categorized menus
|
|
216
|
-
|
|
217
|
-
### Image Treatment
|
|
218
|
-
- Product screenshots with `1px solid rgba(0,0,0,0.1)` border
|
|
219
|
-
- Top-rounded images: `12px 12px 0px 0px` radius
|
|
220
|
-
- Dashboard/workspace preview screenshots dominate feature sections
|
|
221
|
-
- Warm gradient backgrounds behind hero illustrations (decorative character illustrations)
|
|
222
|
-
|
|
223
|
-
### Distinctive Components
|
|
224
|
-
|
|
225
|
-
**Feature Cards with Illustrations**
|
|
226
|
-
- Large illustrative headers (The Great Wave, product UI screenshots)
|
|
227
|
-
- 12px radius card with whisper border
|
|
228
|
-
- Title at 22px weight 700, description at 16px weight 400
|
|
229
|
-
- Warm white (`#f6f5f4`) background variant for alternating sections
|
|
230
|
-
|
|
231
|
-
**Trust Bar / Logo Grid**
|
|
232
|
-
- Company logos (trusted teams section) in their brand colors
|
|
233
|
-
- Horizontal scroll or grid layout with team counts
|
|
234
|
-
- Metric display: large number + description pattern
|
|
235
|
-
|
|
236
|
-
**Metric Cards**
|
|
237
|
-
- Large number display (e.g., "$4,200 ROI")
|
|
238
|
-
- NotionInter 40px+ weight 700 for the metric
|
|
239
|
-
- Description below in warm gray body text
|
|
240
|
-
- Whisper-bordered card container
|
|
241
|
-
|
|
242
|
-
### Interactive States
|
|
243
|
-
|
|
244
|
-
Consolidated state behavior across all interactive components.
|
|
245
|
-
|
|
246
|
-
- **Default**: Standard appearance with whisper border (`1px solid rgba(0,0,0,0.1)`)
|
|
247
|
-
- **Hover**: Color shift on text, `scale(1.05)` transform on buttons, underline on links
|
|
248
|
-
- **Active / Pressed**: `scale(0.9)` transform, darker background variant (e.g. `#005bab` for Notion Blue)
|
|
249
|
-
- **Focus**: `2px solid` focus ring in Focus Blue (`#097fe8`) + shadow level 200 reinforcement; supported on all interactive elements via keyboard tab navigation
|
|
250
|
-
- **Disabled**: Warm gray (`#a39e98`) text, primary actions reduce to `rgba(0,117,222,0.3)`, ultra-thin border preserved
|
|
230
|
+
- Text: `rgba(0,0,0,0.95)`
|
|
231
|
+
- Border: 1px solid `rgba(0,0,0,0.1)`
|
|
232
|
+
- Radius: 9999px
|
|
233
|
+
- Padding: 8px 16px
|
|
234
|
+
- Height: 38px
|
|
235
|
+
- Font: 14px / 500 / NotionInter
|
|
236
|
+
- Use: `home::[data-omd-capture="60"]` and equivalent product/Help selectors; the collector opened a dialog on all three routes.
|
|
237
|
+
- Dialog-open: language-list targets were captured; no dialog container elevation is asserted because its representative style was transparent.
|
|
251
238
|
|
|
252
|
-
|
|
239
|
+
**Language-picker search — focused dialog field**
|
|
240
|
+
- Text: `rgba(0,0,0,0.95)`
|
|
241
|
+
- Border: 1px solid `rgba(0,0,0,0.08)`
|
|
242
|
+
- Radius: 5px
|
|
243
|
+
- Padding: 7px 10px 7px 30px
|
|
244
|
+
- Height: 36px
|
|
245
|
+
- Font: 16px / 400 / NotionInter
|
|
246
|
+
- Use: `home::[data-omd-interaction-capture="dialog-0-1"]`, class `input_input__PoidJ languagePicker_searchInput__Jrbry`.
|
|
247
|
+
- Focus: inset `rgba(35,131,226,0.57) 0px 0px 0px 1px` plus outer `rgba(35,131,226,0.35) 0px 0px 0px 2px` shadow.
|
|
248
|
+
|
|
249
|
+
**Help toggle — default and hover**
|
|
250
|
+
- Text: `rgba(0,0,0,0.54)`
|
|
251
|
+
- Padding: 6px 8px
|
|
252
|
+
- Height: 32px
|
|
253
|
+
- Font: 16px / 400 / NotionInter
|
|
254
|
+
- Use: `surface-3::[data-omd-capture="11"]`, class `toggleList_toggleButtonWrapper__79NEe`; Help documentation chrome only.
|
|
255
|
+
- Hover: `#f9f9f8` background and 4px radius at `surface-3::[data-omd-capture="11"]::state-hover`.
|
|
256
|
+
- Pressed: captured for the selector; no raw pressed value is promoted as a system token.
|
|
253
257
|
|
|
254
|
-
|
|
255
|
-
**
|
|
256
|
-
**Tier
|
|
257
|
-
**Tier 2
|
|
258
|
-
**
|
|
258
|
+
---
|
|
259
|
+
**Verified:** 2026-07-13
|
|
260
|
+
**Tier 1 sources:** [Korean marketing](https://www.notion.com/ko), [public product marketing](https://www.notion.com/ko/product), [Korean Help](https://www.notion.com/ko/help); supplied deterministic evidence artifact only.
|
|
261
|
+
**Tier 2 sources:** [getdesign Notion directory](https://getdesign.md/notion); Refero query attempted at `https://styles.refero.design/?q=Notion`, but the built-in web fetch returned an internal error and is not treated as an absence claim.
|
|
262
|
+
**Resolution note:** The prior `#455dd3` primary-CTA claim and unobserved generic controls were removed. Fresh three-route evidence measures `#0075de` on public CTAs and records selector-specific states separately.
|
|
263
|
+
**Conflicts unresolved:** none
|
|
259
264
|
|
|
260
265
|
## 5. Layout Principles
|
|
261
266
|
|
|
262
|
-
|
|
263
|
-
- Base unit: 8px
|
|
264
|
-
- Scale: 2px, 3px, 4px, 5px, 6px, 7px, 8px, 11px, 12px, 14px, 16px, 24px, 32px
|
|
265
|
-
- Non-rigid organic scale with fractional values (5.6px, 6.4px) for micro-adjustments
|
|
266
|
-
|
|
267
|
-
### Grid & Container
|
|
268
|
-
- Max content width: approximately 1200px
|
|
269
|
-
- Hero: centered single-column with generous top padding (80-120px)
|
|
270
|
-
- Feature sections: 2-3 column grids for cards
|
|
271
|
-
- Full-width warm white (`#f6f5f4`) section backgrounds for alternation
|
|
272
|
-
- Code/dashboard screenshots as contained with whisper border
|
|
273
|
-
|
|
274
|
-
### Whitespace Philosophy
|
|
275
|
-
- **Generous vertical rhythm**: 64-120px between major sections. Notion lets content breathe with vast vertical padding.
|
|
276
|
-
- **Warm alternation**: White sections alternate with warm white (`#f6f5f4`) sections, creating gentle visual rhythm without harsh color breaks.
|
|
277
|
-
- **Content-first density**: Body text blocks are compact (line-height 1.50) but surrounded by ample margin, creating islands of readable content in a sea of white space.
|
|
278
|
-
|
|
279
|
-
### Border Radius Scale
|
|
280
|
-
- Micro (4px): Buttons, inputs, functional interactive elements
|
|
281
|
-
- Subtle (5px): Links, list items, menu items
|
|
282
|
-
- Standard (8px): Small cards, containers, inline elements
|
|
283
|
-
- Comfortable (12px): Standard cards, feature containers, image tops
|
|
284
|
-
- Large (16px): Hero cards, featured content, promotional blocks
|
|
285
|
-
- Full Pill (9999px): Badges, pills, status indicators
|
|
286
|
-
- Circle (100%): Tab indicators, avatars
|
|
267
|
+
The supplied desktop capture exposes an 4, 8, 12, 16, and 24px rhythm across public marketing and Help controls. Marketing content combines wide bento cards with 12px corners and generous page-level whitespace; Help uses narrower, denser controls. No second viewport or authenticated workspace was inspected, so responsive grid columns, exact page gutters, and native-app layout are intentionally absent.
|
|
287
268
|
|
|
288
269
|
## 6. Depth & Elevation
|
|
289
270
|
|
|
290
|
-
|
|
291
|
-
|-------|-----------|-----|
|
|
292
|
-
| Flat (Level 0) | No shadow, no border | Page background, text blocks |
|
|
293
|
-
| Whisper (Level 1) | `1px solid rgba(0,0,0,0.1)` | Standard borders, card outlines, dividers |
|
|
294
|
-
| Soft Card (Level 2) | 4-layer shadow stack (max opacity 0.04) | Content cards, feature blocks |
|
|
295
|
-
| Deep Card (Level 3) | 5-layer shadow stack (max opacity 0.05, 52px blur) | Modals, featured panels, hero elements |
|
|
296
|
-
| Focus (Accessibility) | `2px solid var(--focus-color)` outline | Keyboard focus on all interactive elements |
|
|
297
|
-
|
|
298
|
-
**Shadow Philosophy**: Notion's shadow system uses multiple layers with extremely low individual opacity (0.01 to 0.05) that accumulate into soft, natural-looking elevation. The 4-layer card shadow spans from 1.04px to 18px blur, creating a gradient of depth rather than a single hard shadow. The 5-layer deep shadow extends to 52px blur at 0.05 opacity, producing ambient occlusion that feels like natural light rather than computer-generated depth. This layered approach makes elements feel embedded in the page rather than floating above it.
|
|
299
|
-
|
|
300
|
-
### Decorative Depth
|
|
301
|
-
- Hero section: decorative character illustrations (playful, hand-drawn style)
|
|
302
|
-
- Section alternation: white to warm white (`#f6f5f4`) background shifts
|
|
303
|
-
- No hard section borders -- separation comes from background color changes and spacing
|
|
271
|
+
The observed public surfaces are chiefly flat. The compact card uses a `1px rgba(0,0,0,0.1)` boundary with no shadow. One circular carousel control carries a four-layer low-opacity shadow; its measured stack is retained in §4. The Help dialog’s representative container is transparent and its elevation is therefore not asserted. No generic modal, popover, or toast elevation system is inferred from this packet.
|
|
304
272
|
|
|
305
273
|
## 7. Do's and Don'ts
|
|
306
274
|
|
|
307
|
-
###
|
|
308
|
-
|
|
309
|
-
-
|
|
310
|
-
-
|
|
311
|
-
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
-
|
|
315
|
-
-
|
|
316
|
-
-
|
|
317
|
-
-
|
|
318
|
-
- **DON'T** scatter blue across borders, dividers, or decorative elements — the brand uses blue surgically.
|
|
319
|
-
- **DO** enable OpenType `"lnum"` and `"locl"` features on larger text — they reward close reading.
|
|
320
|
-
- **DON'T** disable these features for Latin-only contexts — they're part of Notion's typographic refinement.
|
|
321
|
-
|
|
322
|
-
### Accessibility
|
|
323
|
-
|
|
324
|
-
- **DO** ensure visible focus indicators on every interactive element — `2px solid` outline in Focus Blue (`#097fe8`) plus shadow level 200 reinforcement. Tab navigation must work everywhere.
|
|
325
|
-
- **DO** maintain WCAG AA-or-better contrast ratios:
|
|
326
|
-
- Primary text (`rgba(0,0,0,0.95)`) on white: ~18:1 (exceeds WCAG AAA)
|
|
327
|
-
- Secondary text (`#615d59`) on white: ~5.5:1 (WCAG AA)
|
|
328
|
-
- Blue CTA (`#0075de`) on white: ~4.6:1 (WCAG AA for large text)
|
|
329
|
-
- Badge text (`#097fe8`) on badge background (`#f2f9ff`): ~4.5:1 (WCAG AA for large text)
|
|
330
|
-
- **DON'T** drop focus rings to "look cleaner" — they are mandatory across the system, not decoration.
|
|
331
|
-
- **DON'T** use Notion Blue at less than ~4.5:1 against any background — the brand color carries an accessibility floor.
|
|
275
|
+
### Do
|
|
276
|
+
- Use `#0075de` only where the captured public CTA pattern is appropriate, and preserve the observed 8px action corners.
|
|
277
|
+
- Keep NotionInter evidence-bound: use it only when it can be loaded from an authorized source in an implementation.
|
|
278
|
+
- Separate white marketing cards from Help-specific controls and focus treatment.
|
|
279
|
+
- Preserve tab, dialog, hover, pressed, and focus provenance rather than converting observed states into a generic component library.
|
|
280
|
+
|
|
281
|
+
### Don't
|
|
282
|
+
- Do not restore the earlier `#455dd3` primary CTA or treat `#005bab` as its universal default.
|
|
283
|
+
- Do not use declared-only iA Writer Mono, Lyon Text, Noto, or Permanent Marker as visible web typography.
|
|
284
|
+
- Do not claim an authenticated Notion workspace, native-app controls, dashboard states, or a complete design-system API from these public routes.
|
|
285
|
+
- Do not invent error, disabled, toast, menu, modal, or responsive variants beyond the raw observations described here.
|
|
332
286
|
|
|
333
287
|
## 8. Responsive Behavior
|
|
334
288
|
|
|
335
|
-
|
|
336
|
-
| Name | Width | Key Changes |
|
|
337
|
-
|------|-------|-------------|
|
|
338
|
-
| Mobile Small | <400px | Tight single column, minimal padding |
|
|
339
|
-
| Mobile | 400-600px | Standard mobile, stacked layout |
|
|
340
|
-
| Tablet Small | 600-768px | 2-column grids begin |
|
|
341
|
-
| Tablet | 768-1080px | Full card grids, expanded padding |
|
|
342
|
-
| Desktop Small | 1080-1200px | Standard desktop layout |
|
|
343
|
-
| Desktop | 1200-1440px | Full layout, maximum content width |
|
|
344
|
-
| Large Desktop | >1440px | Centered, generous margins |
|
|
345
|
-
|
|
346
|
-
### Touch Targets
|
|
347
|
-
- Buttons use comfortable padding (8px-16px vertical)
|
|
348
|
-
- Navigation links at 15px with adequate spacing
|
|
349
|
-
- Pill badges have 8px horizontal padding for tap targets
|
|
350
|
-
- Mobile menu toggle uses standard hamburger button
|
|
351
|
-
|
|
352
|
-
### Collapsing Strategy
|
|
353
|
-
- Hero: 64px display -> scales to 40px -> 26px on mobile, maintains proportional letter-spacing
|
|
354
|
-
- Navigation: horizontal links + blue CTA -> hamburger menu
|
|
355
|
-
- Feature cards: 3-column -> 2-column -> single column stacked
|
|
356
|
-
- Product screenshots: maintain aspect ratio with responsive images
|
|
357
|
-
- Trust bar logos: grid -> horizontal scroll on mobile
|
|
358
|
-
- Footer: multi-column -> stacked single column
|
|
359
|
-
- Section spacing: 80px+ -> 48px on mobile
|
|
360
|
-
|
|
361
|
-
### Image Behavior
|
|
362
|
-
- Workspace screenshots maintain whisper border at all sizes
|
|
363
|
-
- Hero illustrations scale proportionally
|
|
364
|
-
- Product screenshots use responsive images with consistent border radius
|
|
365
|
-
- Full-width warm white sections maintain edge-to-edge treatment
|
|
289
|
+
No viewport comparison was captured. The public controls in §4 were measured in the supplied capture only, so Notion-specific breakpoint values, mobile navigation transformation, and touch-target rules remain unverified. Implement responsive accessibility normally, but do not present it as a Notion measurement without a dedicated capture.
|
|
366
290
|
|
|
367
291
|
## 9. Agent Prompt Guide
|
|
368
292
|
|
|
369
|
-
### Quick
|
|
370
|
-
-
|
|
371
|
-
-
|
|
372
|
-
-
|
|
373
|
-
- Heading text: Near-Black (`rgba(0,0,0,0.95)`)
|
|
374
|
-
- Body text: Near-Black (`rgba(0,0,0,0.95)`)
|
|
375
|
-
- Secondary text: Warm Gray 500 (`#615d59`)
|
|
376
|
-
- Muted text: Warm Gray 300 (`#a39e98`)
|
|
377
|
-
- Border: `1px solid rgba(0,0,0,0.1)`
|
|
378
|
-
- Link: Notion Blue (`#0075de`)
|
|
379
|
-
- Focus ring: Focus Blue (`#097fe8`)
|
|
380
|
-
|
|
381
|
-
### Example Component Prompts
|
|
382
|
-
- "Create a hero section on white background. Headline at 64px NotionInter weight 700, line-height 1.00, letter-spacing -2.125px, color rgba(0,0,0,0.95). Subtitle at 20px weight 600, line-height 1.40, color #615d59. Blue CTA button (#0075de, 4px radius, 8px 16px padding, white text) and ghost button (transparent bg, near-black text, underline on hover)."
|
|
383
|
-
- "Design a card: white background, 1px solid rgba(0,0,0,0.1) border, 12px radius. Use shadow stack: rgba(0,0,0,0.04) 0px 4px 18px, rgba(0,0,0,0.027) 0px 2.025px 7.85px, rgba(0,0,0,0.02) 0px 0.8px 2.93px, rgba(0,0,0,0.01) 0px 0.175px 1.04px. Title at 22px NotionInter weight 700, letter-spacing -0.25px. Body at 16px weight 400, color #615d59."
|
|
384
|
-
- "Build a pill badge: #f2f9ff background, #097fe8 text, 9999px radius, 4px 8px padding, 12px NotionInter weight 600, letter-spacing 0.125px."
|
|
385
|
-
- "Create navigation: white header. NotionInter 15px weight 600 for links, near-black text. Blue pill CTA 'Get Notion free' right-aligned (#0075de bg, white text, 4px radius)."
|
|
386
|
-
- "Design an alternating section layout: white sections alternate with warm white (#f6f5f4) sections. Each section has 64-80px vertical padding, max-width 1200px centered. Section heading at 48px weight 700, line-height 1.00, letter-spacing -1.5px."
|
|
387
|
-
|
|
388
|
-
### Iteration Guide
|
|
389
|
-
1. Always use warm neutrals -- Notion's grays have yellow-brown undertones (#f6f5f4, #31302e, #615d59, #a39e98), never blue-gray
|
|
390
|
-
2. Letter-spacing scales with font size: -2.125px at 64px, -1.875px at 54px, -0.625px at 26px, normal at 16px
|
|
391
|
-
3. Four weights: 400 (read), 500 (interact), 600 (emphasize), 700 (announce)
|
|
392
|
-
4. Borders are whispers: 1px solid rgba(0,0,0,0.1) -- never heavier
|
|
393
|
-
5. Shadows use 4-5 layers with individual opacity never exceeding 0.05
|
|
394
|
-
6. The warm white (#f6f5f4) section background is essential for visual rhythm
|
|
395
|
-
7. Pill badges (9999px) for status/tags, 4px radius for buttons and inputs
|
|
396
|
-
8. Notion Blue (#0075de) is the only saturated color in core UI -- use it sparingly for CTAs and links
|
|
293
|
+
### Quick reference
|
|
294
|
+
- Public CTA: `#0075de` / white, 8px radius, 16px / 500 / 24px NotionInter; use 36px global-nav or 38px hero geometry only in the captured marketing contexts.
|
|
295
|
+
- Public card: white, 1px `rgba(0,0,0,0.1)` border, 12px radius, 24px padding, no shadow.
|
|
296
|
+
- Help search: transparent field, 5px radius, 7px 10px 7px 30px padding; its blue double-ring is a focused language-picker observation only.
|
|
397
297
|
|
|
398
|
-
|
|
298
|
+
### Implementation boundary
|
|
299
|
+
Use the public marketing, public product-marketing, and Help patterns as three related but separate surfaces. Do not make a NotionInter fallback appear to be the real font and do not fill missing authenticated-workspace components with generic substitutes.
|
|
399
300
|
|
|
400
301
|
## 10. Voice & Tone
|
|
401
302
|
|
|
402
|
-
Notion
|
|
303
|
+
Notion’s official voice pairs direct utility with an expansive “tools for thought” frame. Public CTA copy is concise and action-led (“Get Notion free”); the About page explains the product through the history of work tools and early computing; the current careers page speaks about teams of humans and AI agents with craft, judgment, and customer focus. [About](https://www.notion.com/about) · [Careers](https://www.notion.com/careers)
|
|
403
304
|
|
|
404
|
-
|
|
|
305
|
+
| Do | Don't |
|
|
405
306
|
|---|---|
|
|
406
|
-
|
|
|
407
|
-
|
|
|
408
|
-
|
|
|
409
|
-
| Empty states | Encouraging without being perky. Guide the first action, never congratulatory. |
|
|
410
|
-
| Docs / help | Neutral, thorough, respects reader's time. Screenshots are high-fidelity and unnarrated. |
|
|
411
|
-
| Careers / about | Lineage voice. References pioneers, craft, the LEGO-by-NYT metaphor. |
|
|
412
|
-
| Changelog / Release notes | Ship-proud but understated. Past tense, specific, unglamorous. |
|
|
413
|
-
| Blog / long-form | Essayistic. Ideas-first; screenshots illustrating ideas, not decorating them. |
|
|
307
|
+
| Name the job or next action plainly. | Promise undefined transformation or use hype as a substitute for an outcome. |
|
|
308
|
+
| Explain a complex capability through a concrete workflow. | Treat AI as a separate, magical product layer. |
|
|
309
|
+
| Be direct and kind when giving guidance. | Use synthetic congratulations, blame, or invented brand aphorisms. |
|
|
414
310
|
|
|
415
|
-
|
|
311
|
+
Official voice examples: “Get Notion free” (public CTA); “Solve your problems your way” (About); “Customer in every room” and “Why not today” (Careers values). These examples are source-bound, not a license to reproduce product copy wholesale.
|
|
416
312
|
|
|
417
313
|
## 11. Brand Narrative
|
|
418
314
|
|
|
419
|
-
Notion
|
|
315
|
+
Notion’s own About page locates the company in a critique of fragmented office tools: people stitch together email, chat, documents, and storage rather than shaping software around the work at hand. Its stated response is an all-in-one workspace composed from building blocks that can be adapted to a task list, roadmap, or design repository. The page explicitly connects this goal to computing pioneers who imagined computers amplifying imagination and augmenting intellect. [About](https://www.notion.com/about)
|
|
420
316
|
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
What Notion refuses: the rigid schemas of traditional productivity software (Jira-style workflows, SharePoint-style wikis), the cold-glass aesthetic of enterprise SaaS (blue-gray palettes, generic illustrations of laptops), and playful-at-the-expense-of-serious design (cartoon mascots, decorative emoji applied by the product itself). What it embraces: warm neutrals with yellow-brown undertones, NotionInter as a modified but restrained Inter, whisper-thin `1px solid rgba(0,0,0,0.1)` borders, and the user's own emoji choices as the primary source of color and personality on any given page.
|
|
317
|
+
That founding frame now includes AI. In Ivan Zhao’s official account of Notion AI, the company describes its mission as making software toolmaking ubiquitous and positions AI as a way for people to mold computers to their needs. Current careers copy describes Notion as helping teams of people and AI agents think and work together. These are current first-party framing statements, not evidence for a particular authenticated product UI. [Notion AI story](https://www.notion.com/blog/behind-the-scenes-notion-ai) · [Careers](https://www.notion.com/careers)
|
|
424
318
|
|
|
425
319
|
## 12. Principles
|
|
426
320
|
|
|
427
|
-
1. **
|
|
428
|
-
2. **
|
|
429
|
-
3. **
|
|
430
|
-
4. **
|
|
431
|
-
5. **
|
|
432
|
-
6. **LEGO, but by The New York Times.** The careers page's own phrase is the whole aesthetic guidance. Modular like Lego; composed with editorial taste. Never cartoonish; never sterile.
|
|
433
|
-
7. **Warmth is tone, not decoration.** The yellow-brown undertones in every gray (`#f6f5f4`, `#31302e`, `#615d59`) are the warmth. Illustrations and stickers are user-supplied; the product's own chrome provides warmth through color temperature alone.
|
|
434
|
-
8. **Notion Blue is the one color.** `#0075de` anchors CTAs and primary interactive moments. Everything else lives in the warm-neutral scale. Rainbow-accent design would betray the block-as-canvas philosophy.
|
|
435
|
-
9. **The user's emoji is the brand's color.** Page icons, cover images, emoji-as-bullet — these are first-class design surfaces, but they are *user-supplied*, not part of Notion's own voice. The product's own copy, buttons, and marketing do not emoji-spam.
|
|
321
|
+
1. **Software should be moldable.** Notion’s official mission is to make software toolmaking ubiquitous. *UI implication:* prefer composable structures and clear primitives over forced linear workflows.
|
|
322
|
+
2. **Customer outcomes are the point.** “Customer in every room” is a current careers value. *UI implication:* explain benefits in the user’s task language and make the next action concrete.
|
|
323
|
+
3. **Own the outcome.** Notion names agency and initiative as a current value. *UI implication:* give people understandable controls, consequences, and recovery paths rather than opaque automation.
|
|
324
|
+
4. **Move with judgment and urgency.** “Why not today” describes the company’s speed value. *UI implication:* keep routine actions short without removing necessary context or accessibility.
|
|
325
|
+
5. **Humans remain central to AI.** The official AI narrative describes AI as a companion that users can mold. *UI implication:* surface user intent, sources, and control rather than presenting autonomous output as unquestionable.
|
|
436
326
|
|
|
437
327
|
## 13. Personas
|
|
438
328
|
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
**Sophie Tremblay, 29, Montreal.** Operations manager at a 40-person B2B startup. Notion is her single workspace — company wiki, project tracker, personal second brain. Has ~60 pages arranged in a nested hierarchy she has built over three years. Notices immediately when a Notion release subtly shifts the line-height of body text because she reads in Notion for 5 hours a day. Would be horrified by any "redesign" that removed the warm neutral palette.
|
|
329
|
+
The following are product-role archetypes inferred from the first-party product categories and stated mission; they are not claims about research participants or user counts.
|
|
442
330
|
|
|
443
|
-
**
|
|
444
|
-
|
|
445
|
-
**
|
|
446
|
-
|
|
447
|
-
**Priscilla Mendes, 42, Lisbon.** Chief of Staff at a Series-C SaaS company. Runs her CEO's weekly meeting off a Notion database, an embedded calendar, and a toggled prep doc. Does not use Notion AI by default — prefers the empty canvas because it forces her to write the agenda, not delegate it. Would not use Notion if the product copy sounded like it was selling her productivity.
|
|
331
|
+
- **Individual organizer.** Uses configurable pages and blocks to make personal work legible. Needs an approachable starting point and room to adapt it.
|
|
332
|
+
- **Project or knowledge-team member.** Coordinates docs, projects, and shared information with others. Needs clear structure, findability, and trustworthy handoff.
|
|
333
|
+
- **Toolmaking operator.** Shapes a workspace around a team’s process rather than accepting a fixed workflow. Needs composability and understandable control.
|
|
334
|
+
- **AI-assisted collaborator.** Works alongside AI features or agents while retaining ownership of work. Needs explicit intent, review, and source-aware guidance.
|
|
448
335
|
|
|
449
336
|
## 14. States
|
|
450
337
|
|
|
451
|
-
|
|
452
|
-
|---|---|
|
|
453
|
-
| **Empty (new page)** | White canvas. Single placeholder string in warm gray (`#a39e98`) at body size: "Press `space` for AI, `/` for commands…". Blinking cursor in warm near-black. No illustration, no onboarding tour. The blank page is the welcome. |
|
|
454
|
-
| **Empty (database, no rows)** | Warm gray (`#615d59`) caption: "No items yet." One link ("Add a row") in Notion Blue. Database schema visible above, so the user can see what to add to. |
|
|
455
|
-
| **Empty (search, no results)** | Warm gray caption: "No results for `<query>`." Nothing else — Notion trusts users to rephrase or move on without illustration. |
|
|
456
|
-
| **Loading (page first paint)** | Warm neutral (`#f6f5f4`) skeleton blocks matching the block-level structure of the page. Ultra-thin border maintained on skeleton blocks. 1.5s shimmer in a lighter warm tone. |
|
|
457
|
-
| **Loading (block rendering, real-time)** | Individual block renders with a 180ms opacity fade from 0.6 → 1.0. Cursor position preserved. Never a spinner on an individual block. |
|
|
458
|
-
| **Error (sync failed)** | Top-right inline indicator — small warm-gray dot that transitions to a muted red when sync fails. Tooltip on hover: specific failure reason + retry action. Never a modal; Notion does not block the document. |
|
|
459
|
-
| **Error (form validation, database property)** | Field-level. 13px caption below the property in muted red (not bright). States what is invalid and what would be valid. |
|
|
460
|
-
| **Error (AI response failure)** | Inline under the AI action. One line of warm-gray text: "Couldn't complete that. Try again." + reason if known. Blameless, concise. |
|
|
461
|
-
| **Success (comment added)** | Comment appears inline with a 300ms fade. No toast, no celebratory emoji. The comment's presence is the confirmation. |
|
|
462
|
-
| **Success (page published to web)** | Toast at bottom-left with warm-gray background and near-black text: "Published to web." Link + copy-URL action inline. 5s auto-dismiss. |
|
|
463
|
-
| **Skeleton** | Warm neutral `#f6f5f4` blocks at exact block dimensions. Ultra-thin border preserved. Shimmer uses a lighter warm tone, never cool blue. |
|
|
464
|
-
| **Disabled** | Opacity on text and ultra-thin border together. Primary Notion Blue actions become `rgba(0,117,222,0.3)`. |
|
|
465
|
-
| **AI thinking (Notion AI)** | A small waveform / "thinking" indicator inline at the AI invocation point. Stays within the block flow — never floats over the document. |
|
|
466
|
-
|
|
467
|
-
## 15. Motion & Easing
|
|
338
|
+
Only the following states are evidenced in this packet. Empty, loading, error, success, skeleton, and disabled patterns were not captured and are deliberately not specified.
|
|
468
339
|
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
| Token | Value | Use |
|
|
340
|
+
| State | Observed surface | Evidence boundary |
|
|
472
341
|
|---|---|---|
|
|
473
|
-
|
|
|
474
|
-
|
|
|
475
|
-
|
|
|
476
|
-
|
|
|
477
|
-
|
|
478
|
-
|
|
342
|
+
| CTA hover | Marketing | `#005bab` on global CTA selector only. |
|
|
343
|
+
| CTA pressed | Marketing | `#0073d9` on hero CTA selector only. |
|
|
344
|
+
| CTA focus | Marketing | `#0071d6` on hero CTA selector only. |
|
|
345
|
+
| Secondary CTA focus | Marketing | `#e7f3fe` / `#005bab` pair only. |
|
|
346
|
+
| Tab selected | Marketing/product marketing | Selected and unselected tab targets recorded by three interactions. |
|
|
347
|
+
| Language dialog open | Marketing/product marketing/Help | Trigger opens dialog; no container elevation asserted. |
|
|
348
|
+
| Help input focus | Help chrome | Blue double-ring on language-picker search only. |
|
|
349
|
+
| Help toggle hover | Help chrome | `#f9f9f8`, 4px radius. |
|
|
479
350
|
|
|
480
|
-
|
|
481
|
-
|---|---|---|
|
|
482
|
-
| `ease-enter` | `cubic-bezier(0.2, 0.6, 0.25, 1)` | Arriving — popovers, sheets, toggle expand |
|
|
483
|
-
| `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Dismissals |
|
|
484
|
-
| `ease-standard` | `cubic-bezier(0.25, 0.1, 0.25, 1)` | Two-way transitions |
|
|
485
|
-
| `ease-gentle` | `cubic-bezier(0.2, 0.4, 0.2, 1)` | Block opacity fades, toggle-content reveals — slightly softer entry for in-document changes |
|
|
486
|
-
|
|
487
|
-
**Explicitly forbidden.** No spring, no bounce, no overshoot. Blocks never "pop" into view. A bouncing callout block would undermine the "document as medium" feeling that underwrites the whole product.
|
|
488
|
-
|
|
489
|
-
**Signature motions.**
|
|
490
|
-
|
|
491
|
-
1. **Block drag-handle reveal.** On hover over a block's left gutter, the drag handle (`⋮⋮` six-dot icon) fades in at `motion-fast` with `ease-gentle`. This is Notion's single most recognizable motion — the "handle that appears when you look at it" is the tactile proof that everything is a block.
|
|
492
|
-
2. **Toggle expand.** When a toggle block opens, its content expands over `motion-standard` with `ease-gentle`, height animating from 0 to natural. No scale, no fade — just height. The toggle's content feels physical, not theatrical.
|
|
493
|
-
3. **Slash menu reveal.** The `/` command menu appears at `motion-fast` with `ease-enter`. Keyboard-driven, so speed matters; 150ms is deliberately close to instant.
|
|
494
|
-
4. **Cursor-follow comments.** Live collaboration cursors update position at raw frame rate (no easing) — accurate position is more important than smooth motion when multiple people are typing simultaneously.
|
|
495
|
-
5. **Reduce motion.** Under `prefers-reduced-motion: reduce`, all `motion-*` tokens collapse to `motion-instant`. Toggle expansions become instantaneous. Drag handles appear immediately on hover. The document remains fully functional.
|
|
496
|
-
|
|
497
|
-
<!--
|
|
498
|
-
OmD v0.1 Sources — Philosophy Layer (sections 10–15)
|
|
499
|
-
|
|
500
|
-
Direct verification via WebFetch (2026-04-19):
|
|
501
|
-
- https://www.notion.com/ — confirms current marketing positioning and voice:
|
|
502
|
-
"The AI workspace that works for you." (current tagline)
|
|
503
|
-
"Meet the night shift."
|
|
504
|
-
"Keep work moving 24/7."
|
|
505
|
-
"More productivity. Fewer tools."
|
|
506
|
-
"Bring all your work together."
|
|
507
|
-
Confirms Notion's current AI-forward positioning and headline register
|
|
508
|
-
(terse, imperative, consolidation-framed).
|
|
509
|
-
- https://www.notion.com/about — confirms the lineage framing:
|
|
510
|
-
"break away from today's tools—and bring back some of the ideas of
|
|
511
|
-
those early pioneers"
|
|
512
|
-
"all-in-one workspace"
|
|
513
|
-
Alan Kay quote: "The best way to predict the future is to invent it."
|
|
514
|
-
Confirms "building blocks" metaphor ("dozens of building blocks") used
|
|
515
|
-
in the product positioning.
|
|
516
|
-
- https://www.notion.com/careers — confirms Notion's stated company values
|
|
517
|
-
(verbatim), used as direct source for §12 Principles #1–#4:
|
|
518
|
-
"We are drivers of our mission. We're driven by our commitment to
|
|
519
|
-
empower every person on the planet to use software exactly the way
|
|
520
|
-
they want."
|
|
521
|
-
"Be a pace setter."
|
|
522
|
-
"Be a truth seeker."
|
|
523
|
-
"Be kind and direct."
|
|
524
|
-
Also confirms the famous self-description verbatim:
|
|
525
|
-
"a set of Legos (if Legos were designed by The New York Times)"
|
|
526
|
-
And the pioneers framing:
|
|
527
|
-
"Early computing pioneers envisioned a future where machines on our
|
|
528
|
-
desks could amplify our imagination, extend our intellect, and help
|
|
529
|
-
us model information in ways never before seen."
|
|
530
|
-
|
|
531
|
-
Base DESIGN.md (sections 1–9) is the source for all token-level claims
|
|
532
|
-
(NotionInter typeface, warm neutral palette with yellow-brown undertones,
|
|
533
|
-
#0075de Notion Blue as the sole accent, `1px solid rgba(0,0,0,0.1)`
|
|
534
|
-
whisper borders, multi-layer shadow stacks with sub-0.05 opacity,
|
|
535
|
-
four-weight system 400/500/600/700).
|
|
536
|
-
|
|
537
|
-
Not independently verified via WebFetch — widely documented public facts used:
|
|
538
|
-
- Notion is headquartered in San Francisco.
|
|
539
|
-
- Notion was founded by Ivan Zhao (CEO) and Simon Last (CTO).
|
|
540
|
-
- The company had an earlier product iteration before the current Notion
|
|
541
|
-
was rebuilt (widely reported in founder interviews).
|
|
542
|
-
- "Tools for thought" as an intellectual lineage is associated with
|
|
543
|
-
Douglas Engelbart and Alan Kay; Notion's public positioning invokes
|
|
544
|
-
this tradition without always citing the phrase itself.
|
|
545
|
-
|
|
546
|
-
Personas (§13) are fictional archetypes informed by publicly observable
|
|
547
|
-
Notion user segments (operations managers, researchers, solo founders,
|
|
548
|
-
chief-of-staff roles). Names are illustrative; they do not refer to real
|
|
549
|
-
people.
|
|
550
|
-
|
|
551
|
-
Interpretive claims (e.g., "LEGO, but by The New York Times as the whole
|
|
552
|
-
aesthetic guidance", "user's emoji is the brand's color", "blocks are
|
|
553
|
-
slightly-smaller-than-invisible") are editorial readings connecting
|
|
554
|
-
Notion's stated positioning to the design system, not directly sourced
|
|
555
|
-
Notion statements.
|
|
556
|
-
-->
|
|
351
|
+
## 15. Motion & Easing
|
|
557
352
|
|
|
353
|
+
The supplied evidence records state snapshots but no duration, easing, transition-property, or animation timing values. Motion tokens are therefore unresolved. Do not manufacture a Notion motion scale from the visual state changes above.
|