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,375 +8,275 @@ primary_color: "#00c473"
|
|
|
8
8
|
logo:
|
|
9
9
|
type: favicon
|
|
10
10
|
slug: "https://www.google.com/s2/favicons?domain=www.jandi.com&sz=128"
|
|
11
|
-
verified: "2026-
|
|
11
|
+
verified: "2026-07-13"
|
|
12
12
|
added: "2026-06-09"
|
|
13
13
|
omd: "0.1"
|
|
14
|
+
verification_v2:
|
|
15
|
+
schema: 2
|
|
16
|
+
checked: "2026-07-13"
|
|
17
|
+
surfaces:
|
|
18
|
+
- { id: home, kind: marketing, url: "https://www.jandi.com/landing/kr", inspected: "2026-07-13" }
|
|
19
|
+
- { id: surface-2, kind: marketing, url: "https://www.jandi.com/landing/kr", inspected: "2026-07-13" }
|
|
20
|
+
- { id: surface-3, kind: marketing-feature, url: "https://www.jandi.com/landing/kr/features/collaboration", inspected: "2026-07-13" }
|
|
21
|
+
- { id: surface-4, kind: marketing-feature, url: "https://www.jandi.com/landing/kr/features/member", inspected: "2026-07-13" }
|
|
22
|
+
- { id: surface-5, kind: marketing-security, url: "https://www.jandi.com/landing/kr/security", inspected: "2026-07-13" }
|
|
23
|
+
- { id: surface-6, kind: marketing-ai, url: "https://www.jandi.com/landing/kr/jandi-ai", inspected: "2026-07-13" }
|
|
24
|
+
sources:
|
|
25
|
+
- { id: surface-home, kind: product-surface, url: "https://www.jandi.com/landing/kr", captured: "2026-07-13" }
|
|
26
|
+
- { id: surface-surface-2, kind: product-surface, url: "https://www.jandi.com/landing/kr", captured: "2026-07-13" }
|
|
27
|
+
- { id: surface-surface-3, kind: product-surface, url: "https://www.jandi.com/landing/kr/features/collaboration", captured: "2026-07-13" }
|
|
28
|
+
- { id: surface-surface-4, kind: product-surface, url: "https://www.jandi.com/landing/kr/features/member", captured: "2026-07-13" }
|
|
29
|
+
- { id: surface-surface-5, kind: product-surface, url: "https://www.jandi.com/landing/kr/security", captured: "2026-07-13" }
|
|
30
|
+
- { id: surface-surface-6, kind: product-surface, url: "https://www.jandi.com/landing/kr/jandi-ai", captured: "2026-07-13" }
|
|
31
|
+
- { id: company-context, kind: official-doc, url: "https://finalpick.jandi.com/landing/en/company", captured: "2026-07-13" }
|
|
32
|
+
- { id: project-context, kind: official-doc, url: "https://blog.jandi.com/ko/2026/06/08/pr-project-2-0/", captured: "2026-07-13" }
|
|
33
|
+
- { id: docs-chrome, kind: official-doc, url: "https://support.jandi.com/en/articles/Changing-themes-bf4edc58", captured: "2026-07-13" }
|
|
34
|
+
- { id: noto-license, kind: license, url: "https://notofonts.github.io/noto-docs/website/use/", captured: "2026-07-13" }
|
|
35
|
+
conflicts: []
|
|
36
|
+
claims:
|
|
37
|
+
"tokens.colors.primary": &home { surface_id: home, source_id: surface-home, method: computed-style, captured: "2026-07-13" }
|
|
38
|
+
"tokens.colors.canvas": *home
|
|
39
|
+
"tokens.colors.on-dark": *home
|
|
40
|
+
"tokens.colors.ink": *home
|
|
41
|
+
"tokens.colors.ink-muted": *home
|
|
42
|
+
"tokens.colors.muted": *home
|
|
43
|
+
"tokens.colors.action-ink": *home
|
|
44
|
+
"tokens.typography.family.ui": *home
|
|
45
|
+
"tokens.typography.hero.size": *home
|
|
46
|
+
"tokens.typography.hero.weight": *home
|
|
47
|
+
"tokens.typography.hero.lineHeight": *home
|
|
48
|
+
"tokens.typography.hero.use": *home
|
|
49
|
+
"tokens.typography.section.size": *home
|
|
50
|
+
"tokens.typography.section.weight": *home
|
|
51
|
+
"tokens.typography.section.lineHeight": *home
|
|
52
|
+
"tokens.typography.section.use": *home
|
|
53
|
+
"tokens.typography.nav-action.size": *home
|
|
54
|
+
"tokens.typography.nav-action.weight": *home
|
|
55
|
+
"tokens.typography.nav-action.lineHeight": *home
|
|
56
|
+
"tokens.typography.nav-action.use": *home
|
|
57
|
+
"tokens.spacing.nav-action-y": *home
|
|
58
|
+
"tokens.spacing.nav-action-x": *home
|
|
59
|
+
"tokens.spacing.landing-action-y": *home
|
|
60
|
+
"tokens.spacing.landing-action-x": *home
|
|
61
|
+
"tokens.rounded.action": *home
|
|
62
|
+
"tokens.rounded.floating-nav": &collaboration { surface_id: surface-3, source_id: surface-surface-3, method: computed-style, captured: "2026-07-13" }
|
|
63
|
+
"tokens.rounded.security-card": &security { surface_id: surface-5, source_id: surface-surface-5, method: computed-style, captured: "2026-07-13" }
|
|
64
|
+
"tokens.components.security-environment-card.type": *security
|
|
65
|
+
"tokens.components.security-environment-card.bg": *security
|
|
66
|
+
"tokens.components.security-environment-card.radius": *security
|
|
67
|
+
"tokens.components.security-environment-card.padding": *security
|
|
68
|
+
"tokens.components.security-environment-card.use": *security
|
|
69
|
+
"tokens.components.ai-environment-card.type": &ai { surface_id: surface-6, source_id: surface-surface-6, method: computed-style, captured: "2026-07-13" }
|
|
70
|
+
"tokens.components.ai-environment-card.bg": *ai
|
|
71
|
+
"tokens.components.ai-environment-card.radius": *ai
|
|
72
|
+
"tokens.components.ai-environment-card.padding": *ai
|
|
73
|
+
"tokens.components.ai-environment-card.use": *ai
|
|
14
74
|
tokens:
|
|
15
|
-
source:
|
|
16
|
-
extracted: "2026-
|
|
17
|
-
components_harvested: true
|
|
75
|
+
source: reconciled
|
|
76
|
+
extracted: "2026-07-13"
|
|
18
77
|
colors:
|
|
19
78
|
primary: "#00c473"
|
|
20
|
-
primary-border: "#00c473"
|
|
21
|
-
ink-dark: "#333333"
|
|
22
|
-
ink-deepest: "#041911"
|
|
23
|
-
heading: "#000000"
|
|
24
79
|
canvas: "#ffffff"
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
on-primary: "#ffffff"
|
|
80
|
+
on-dark: "#ffffff"
|
|
81
|
+
ink: "#000000"
|
|
82
|
+
ink-muted: "#333333"
|
|
83
|
+
muted: "#a2a2a2"
|
|
84
|
+
action-ink: "#041911"
|
|
31
85
|
typography:
|
|
32
|
-
family: {
|
|
33
|
-
|
|
34
|
-
section:
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
nav: { size: 14, weight: 400, lineHeight: 1.43, use: "Navigation links" }
|
|
39
|
-
caption: { size: 14, weight: 400, lineHeight: 1.43, use: "Muted descriptions, metadata" }
|
|
40
|
-
eyebrow: { size: 13, weight: 700, lineHeight: 1.54, use: "Green eyebrow labels above headings" }
|
|
41
|
-
spacing: { xs: 4, sm: 7, md: 14, base: 16, lg: 30, xl: 36, xxl: 48, section: 64 }
|
|
42
|
-
rounded: { sm: 4, md: 6, lg: 16, full: 9999 }
|
|
43
|
-
shadow:
|
|
44
|
-
card: "rgba(0,0,0,0.08) 0px 2px 16px 3px"
|
|
86
|
+
family: { ui: "Noto Sans" }
|
|
87
|
+
hero: { size: 56, weight: 700, lineHeight: 1.43, use: "Public landing headline" }
|
|
88
|
+
section: { size: 42, weight: 700, lineHeight: 1.43, use: "Public landing feature heading" }
|
|
89
|
+
nav-action: { size: 14, weight: 500, lineHeight: 1.43, use: "Public global navigation action" }
|
|
90
|
+
spacing: { nav-action-y: 7, nav-action-x: 14, landing-action-y: 12, landing-action-x: 30 }
|
|
91
|
+
rounded: { action: 6, floating-nav: 10, security-card: 16 }
|
|
45
92
|
components:
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
eyebrow-label: { type: badge, fg: "#00c473", radius: "4px", padding: "8px 16px", font: "13px / 700", use: "Green eyebrow above section headings" }
|
|
50
|
-
nav-link: { type: tab, fg: "#000000", font: "14px / 400", use: "Top-nav menu item", active: "green #00c473 text on hover/active" }
|
|
51
|
-
card: { type: card, bg: "#ffffff", radius: "16px", use: "Feature card, shadow rgba(0,0,0,0.08) 0px 2px 16px 3px" }
|
|
52
|
-
card-tint: { type: card, bg: "#eaf6fc", radius: "16px", use: "Tinted feature card on soft canvas" }
|
|
53
|
-
input-text: { type: input, fg: "#333333", radius: "6px", font: "15px / 400", use: "Form field, placeholder #a2a2a2" }
|
|
54
|
-
footer-link: { type: listItem, fg: "#a2a2a2", font: "14px / 400", use: "Footer nav link on #181818 background" }
|
|
93
|
+
security-environment-card: { type: card, bg: "#ffffff", radius: "16px", padding: "40px 32px 54px", use: "Static security environment card; surface-5::li.Security_securityEnvironmentList__3CRP0" }
|
|
94
|
+
ai-environment-card: { type: card, bg: "#ffffff", radius: "16px", padding: "40px 32px 54px", use: "Static AI environment card; surface-6::li.JandiAi_aiEnvironmentList__2ng2t" }
|
|
95
|
+
components_harvested: true
|
|
55
96
|
---
|
|
56
97
|
|
|
57
|
-
#
|
|
58
|
-
|
|
59
|
-
## 1. Visual Theme & Atmosphere
|
|
60
|
-
|
|
61
|
-
JANDI (잔디) is the Korean business-collaboration messenger built by TossLab, and its website carries the calm, trustworthy confidence of a productivity tool that lives in offices all day. The page opens on a clean white canvas (`#ffffff`) — occasionally cooling into a near-white `#fafafc` — with pure black headings (`#000000`) and a single, decisive signature: JANDI Green (`#00c473`). That green is the brand's whole personality compressed into one hue. The name "잔디" literally means "grass/lawn", and the fresh, growth-coded green reads exactly that way: alive, approachable, optimistic, and unmistakably not the corporate-blue of legacy enterprise software. Everything else in the palette is deliberately quiet so the green can do the talking.
|
|
98
|
+
# JANDI — Design Reference
|
|
62
99
|
|
|
63
|
-
|
|
100
|
+
> **A Korean collaboration platform whose public expression is direct, green-led, and operational.**
|
|
64
101
|
|
|
65
|
-
|
|
102
|
+
## 1. Visual Theme & Atmosphere
|
|
66
103
|
|
|
67
|
-
|
|
68
|
-
- JANDI Green (`#00c473`) as the single decisive brand and CTA color — fresh, growth-coded, anti-corporate-blue
|
|
69
|
-
- Noto Sans everywhere; weight 700 for headlines, 400 for body — friendly Korean-web legibility
|
|
70
|
-
- Pure black (`#000000`) headings on white (`#ffffff`) / near-white (`#fafafc`) canvas
|
|
71
|
-
- Soft gray supporting text (`#a2a2a2` body, `#c2c2c2` subheads) so green stays the only accent
|
|
72
|
-
- One restrained card shadow (`rgba(0,0,0,0.08) 0px 2px 16px 3px`) — calm, flat-leaning depth
|
|
73
|
-
- Generous 16px card radius, tighter 6px control radius — comfortable but not playful
|
|
74
|
-
- Green eyebrow labels (13px / 700) as wayfinding sprigs above section headings
|
|
75
|
-
- Deep near-black ink (`#041911`, `#333333`) for high-contrast text on light pill buttons
|
|
104
|
+
JANDI (잔디) is Toss Lab’s Korean business-collaboration service, introduced in 2015 and now presented by the company as an enterprise platform that connects work communication, AI-assisted collaboration, and project management. Its public marketing does not imitate an internal dashboard: it uses a white field, black Korean type hierarchy, and a consistent green conversion action to make a broad B2B offer immediately legible. The captured landing, collaboration, member-management, security, and AI pages keep that visual language coherent while giving each subject its own explanatory cards and calls to action.
|
|
76
105
|
|
|
77
|
-
|
|
106
|
+
The product is evolving beyond messaging. Toss Lab’s June 2026 Project 2.0 announcement describes project management integrated with the messenger, including a contributor-centred work view and a manager dashboard. That is first-party product context, not authorization to treat the public-marketing measurements below as an authenticated-product design system. The values in this reference remain scoped to the six supplied marketing capture records, which represent five distinct URLs.
|
|
78
107
|
|
|
79
|
-
|
|
80
|
-
- **JANDI Green** (`#00c473`): Primary brand color, login CTA background, eyebrow labels, link/hover accent. A bright, slightly emerald growth-green that anchors the whole system.
|
|
81
|
-
- **Pure White** (`#ffffff`): Page background, card surfaces, signup/inquiry button fills on dark hero, on-green text.
|
|
82
|
-
- **Black** (`#000000`): Primary heading color, nav text. JANDI uses true black for headings rather than a tinted near-black.
|
|
108
|
+
## 2. Layout & Grid
|
|
83
109
|
|
|
84
|
-
|
|
85
|
-
- **
|
|
86
|
-
- **
|
|
87
|
-
- **
|
|
110
|
+
- **Landing hierarchy:** `home` records a 56px/700/80px hero and 42px/700/60px feature headings. These are desktop public-marketing samples, not a responsive type contract.
|
|
111
|
+
- **Feature-page hierarchy:** the collaboration, member, security, and AI routes record 56px/700/66px page headings; their observed secondary headings vary by page (40px or 32px).
|
|
112
|
+
- **Action spacing:** the repeated global green action uses 7px 14px internal padding. The white landing action uses 12px 30px. These are individual component measurements, not a general spacing scale.
|
|
113
|
+
- **Boundary:** the supplied evidence establishes neither a page container maximum nor a breakpoint, logged-in application shell, or universal grid.
|
|
88
114
|
|
|
89
|
-
|
|
90
|
-
- **Canvas** (`#ffffff`): Default surface.
|
|
91
|
-
- **Canvas Soft** (`#fafafc`): Cool near-white section background for alternating bands.
|
|
92
|
-
- **Tint Blue** (`#eaf6fc`): Light blue-tinted card/illustration surface for feature blocks.
|
|
115
|
+
## 3. Color & Typography
|
|
93
116
|
|
|
94
|
-
###
|
|
95
|
-
- **Body Gray** (`#a2a2a2`): Secondary descriptions, captions, footer links.
|
|
96
|
-
- **Subhead Gray** (`#c2c2c2`): Muted sub-headings and supporting titles.
|
|
97
|
-
- **Heading Black** (`#000000`): Primary headings and strong labels.
|
|
98
|
-
- **On-Primary** (`#ffffff`): Text on green CTA fills.
|
|
117
|
+
### Color tokens
|
|
99
118
|
|
|
100
|
-
|
|
119
|
+
- `#00c473` — observed fill and border of the global public navigation action on all six capture records.
|
|
120
|
+
- `#ffffff` — observed public canvas, on-green text, white landing action, and the scoped security/AI environment-card surface.
|
|
121
|
+
- `#000000` — observed body and heading ink on the public pages.
|
|
122
|
+
- `#333333` — observed supporting text on public feature, security, and AI content.
|
|
123
|
+
- `#a2a2a2` — observed muted public text and static accordion-button presentation.
|
|
124
|
+
- `#041911` — observed text on the white landing and pill-link actions.
|
|
101
125
|
|
|
102
|
-
|
|
103
|
-
- **Primary**: `Noto Sans`, with system sans fallback. Used for 100% of text — headings, body, UI, footer.
|
|
104
|
-
- **Weights**: 400 (body / nav / captions), 500 (buttons), 700 (headings / eyebrows / sub-section titles).
|
|
126
|
+
These are public-surface roles only. Neither the documentation centre nor the announced authenticated project experience contributes a semantic application palette.
|
|
105
127
|
|
|
106
|
-
###
|
|
128
|
+
### Typography evidence classes
|
|
107
129
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
| Body | Noto Sans | 16px | 400 | 1.00 | Standard reading text |
|
|
114
|
-
| Button | Noto Sans | 15px | 500 | 1.33 | Primary / secondary button labels |
|
|
115
|
-
| Nav Link | Noto Sans | 14px | 400 | 1.43 | Top-nav menu items |
|
|
116
|
-
| Caption | Noto Sans | 14px | 400 | 1.43 | Muted descriptions, metadata, footer links |
|
|
117
|
-
| Eyebrow | Noto Sans | 13px | 700 | 1.54 | Green eyebrow labels above headings |
|
|
130
|
+
- **Live computed public-web use:** visible text across all six supplied records resolves to `"Noto Sans", sans-serif`. The supplied FontFaceSet record classifies `Noto Sans` as loaded/high confidence, with 676 observed uses across headings, body, buttons, cards, list items, and text. Seven JANDI-CDN OTF URLs corroborate that computed family. The machine UI-family token therefore names only `Noto Sans`.
|
|
131
|
+
- **Official font and licence context:** Noto’s official documentation describes Noto fonts as licensed under the SIL Open Font License. This explains the font’s licence boundary; it does not independently establish a JANDI product-font claim.
|
|
132
|
+
- **Declared-only assets:** `icomoon` and `swiper-icons` have `@font-face` declarations but zero observed visible uses. They remain declared icon-font assets, not JANDI text families or available specimens.
|
|
133
|
+
- **Measured public hierarchy:** `home` supplies the 56px/700/80px hero and 42px/700/60px feature samples; the feature routes supply 56px/700/66px page-heading samples. These are observed public treatments, not a full product type scale.
|
|
134
|
+
- **Documentation chrome:** the support centre is a separate first-party documentation domain. Its theme article is recorded for domain classification only and supplies no visual token or component claim.
|
|
118
135
|
|
|
119
|
-
|
|
120
|
-
- **Bold-warm, not light-luxe**: JANDI commits to weight 700 for all headlines. Where foundry-driven sites whisper at weight 300, JANDI speaks clearly at 700 — friendly authority for a tool used by entire companies.
|
|
121
|
-
- **One typeface, three weights**: Noto Sans at 400 / 500 / 700 covers the whole site. No serif, no display face, no monospace.
|
|
122
|
-
- **Relaxed line-height**: Headlines run at ~1.43 line-height (80px on 56px, 60px on 42px), generous spacing tuned for Korean + Latin mixed text legibility.
|
|
123
|
-
- **Green eyebrows for wayfinding**: The 13px / 700 green eyebrow label is JANDI's signature small-type move — a colored orienting sprig above each section heading.
|
|
124
|
-
- **Gray descends, never competes**: Supporting copy steps down into `#a2a2a2` and `#c2c2c2` so the green accent and black headings own the contrast.
|
|
136
|
+
## 4. Components
|
|
125
137
|
|
|
126
|
-
|
|
138
|
+
All entries below retain the supplied surface and selector provenance. They are static computed-style observations, not a reusable authenticated-product library. The bundle records zero interaction events, interaction kinds, and observed states; no hover, pressed, focus, disabled, error, dialog, menu, or responsive variant is documented.
|
|
127
139
|
|
|
128
|
-
###
|
|
140
|
+
### Global navigation action
|
|
129
141
|
|
|
130
|
-
**
|
|
142
|
+
**Primary default**
|
|
131
143
|
- Background: `#00c473`
|
|
132
144
|
- Text: `#ffffff`
|
|
133
|
-
- Padding: 7px 14px
|
|
134
|
-
- Radius: 6px
|
|
135
145
|
- Border: `1px solid #00c473`
|
|
136
|
-
-
|
|
137
|
-
-
|
|
146
|
+
- Radius: `6px`
|
|
147
|
+
- Padding: `7px 14px`
|
|
148
|
+
- Font: `14px / 500 / Noto Sans`
|
|
149
|
+
- Use: repeated public global navigation action; evidence `home::[data-omd-capture="10"]` and the corresponding selector on `surface-2` through `surface-6`.
|
|
138
150
|
|
|
139
|
-
|
|
140
|
-
- Background: `#333333`
|
|
141
|
-
- Text: `#ffffff`
|
|
142
|
-
- Padding: 5px 14px
|
|
143
|
-
- Radius: 6px
|
|
144
|
-
- Font: 15px Noto Sans weight 500
|
|
145
|
-
- Use: Secondary action ("더 알아보기")
|
|
151
|
+
### Landing action
|
|
146
152
|
|
|
147
|
-
**
|
|
153
|
+
**White default**
|
|
148
154
|
- Background: `#ffffff`
|
|
149
155
|
- Text: `#041911`
|
|
150
|
-
-
|
|
151
|
-
-
|
|
152
|
-
- Font: 15px Noto Sans
|
|
153
|
-
- Use:
|
|
156
|
+
- Radius: `6px`
|
|
157
|
+
- Padding: `12px 30px`
|
|
158
|
+
- Font: `15px / 500 / Noto Sans`
|
|
159
|
+
- Use: static white landing action on the duplicated landing records; evidence `home::[data-omd-capture="19"]` and `surface-2::[data-omd-capture="19"]`.
|
|
154
160
|
|
|
155
|
-
###
|
|
156
|
-
- Background: `#ffffff` (standard) or `#eaf6fc` (tinted feature block)
|
|
157
|
-
- Radius: 16px
|
|
158
|
-
- Shadow: `rgba(0,0,0,0.08) 0px 2px 16px 3px`
|
|
159
|
-
- Sit on `#fafafc` soft-canvas bands for gentle separation
|
|
161
|
+
### Feature floating navigation
|
|
160
162
|
|
|
161
|
-
|
|
162
|
-
-
|
|
163
|
+
**Static default**
|
|
164
|
+
- Text: `#000000`
|
|
165
|
+
- Radius: `10px`
|
|
166
|
+
- Padding: `12px`
|
|
167
|
+
- Font: `16px / 400 / Noto Sans`
|
|
168
|
+
- Use: static `role="button"` floating feature-navigation item; evidence `surface-3::[data-omd-capture="11"]` (`Collaboration_icon1__cFiWm`) and `surface-4::[data-omd-capture="11"]` (`Member_icon1__MIU61`).
|
|
163
169
|
|
|
164
|
-
###
|
|
165
|
-
- Radius: 6px
|
|
166
|
-
- Text: `#333333`
|
|
167
|
-
- Placeholder: `#a2a2a2`
|
|
168
|
-
- Comfortable touch padding consistent with button scale
|
|
170
|
+
### Security environment card
|
|
169
171
|
|
|
170
|
-
|
|
171
|
-
-
|
|
172
|
-
-
|
|
173
|
-
-
|
|
174
|
-
-
|
|
172
|
+
**Static default**
|
|
173
|
+
- Background: `#ffffff`
|
|
174
|
+
- Text: `#000000`
|
|
175
|
+
- Radius: `16px`
|
|
176
|
+
- Padding: `40px 32px 54px`
|
|
177
|
+
- Font: `16px / 400 / Noto Sans`
|
|
178
|
+
- Use: static security-environment card; evidence `surface-5::li.Security_securityEnvironmentList__3CRP0`.
|
|
175
179
|
|
|
176
|
-
###
|
|
177
|
-
- Background: `#181818` dark band
|
|
178
|
-
- Links: `#a2a2a2`, 14px Noto Sans weight 400
|
|
180
|
+
### AI environment card
|
|
179
181
|
|
|
180
|
-
**
|
|
181
|
-
|
|
182
|
+
**Static default**
|
|
183
|
+
- Background: `#ffffff`
|
|
184
|
+
- Text: `#000000`
|
|
185
|
+
- Radius: `16px`
|
|
186
|
+
- Padding: `40px 32px 54px`
|
|
187
|
+
- Font: `16px / 400 / Noto Sans`
|
|
188
|
+
- Use: static AI-environment card; evidence `surface-6::li.JandiAi_aiEnvironmentList__2ng2t`.
|
|
182
189
|
|
|
183
|
-
|
|
190
|
+
---
|
|
184
191
|
|
|
185
|
-
|
|
186
|
-
-
|
|
187
|
-
-
|
|
188
|
-
|
|
192
|
+
**Verified:** 2026-07-13
|
|
193
|
+
**Tier 1 sources:** `https://www.jandi.com/landing/kr`, `https://www.jandi.com/landing/kr/features/collaboration`, `https://www.jandi.com/landing/kr/features/member`, `https://www.jandi.com/landing/kr/security`, and `https://www.jandi.com/landing/kr/jandi-ai` (public marketing); `https://finalpick.jandi.com/landing/en/company` and `https://blog.jandi.com/ko/2026/06/08/pr-project-2-0/` (first-party context); `https://support.jandi.com/en/articles/Changing-themes-bf4edc58` (documentation-domain classification only); `https://notofonts.github.io/noto-docs/website/use/` (Noto licence boundary only)
|
|
194
|
+
**Tier 2 sources:** `https://getdesign.md/jandi` (attempted; built-in-web open returned an internal error/no usable JANDI record), `https://styles.refero.design/?q=jandi` (attempted; built-in-web open returned an internal error/no usable JANDI record), built-in web search for both catalogs (no usable JANDI design record returned)
|
|
195
|
+
**Conflicts unresolved:** none
|
|
189
196
|
|
|
190
|
-
|
|
191
|
-
- Centered single-column hero with bold headline and a white pill CTA
|
|
192
|
-
- Feature sections use multi-column card grids on white / soft-canvas bands
|
|
193
|
-
- Tinted (`#eaf6fc`) illustration blocks break up the feature flow
|
|
194
|
-
- Nav container padded 0 36px horizontal, full-width sticky header
|
|
197
|
+
The previous legacy material asserted a `/ko/pricing` surface, pricing-card variants, interaction states, generic inputs, and a universal card-shadow system. None occurs in the supplied 2026-07-13 evidence, so those claims are removed rather than substituted.
|
|
195
198
|
|
|
196
|
-
|
|
197
|
-
- **Calm and scannable**: JANDI uses generous whitespace and large bold headings so a whole company — not just designers — can scan the page instantly.
|
|
198
|
-
- **Alternating bands**: White and `#fafafc` sections create gentle rhythm without color noise.
|
|
199
|
-
- **Green as punctuation**: The only saturated color is the green; it appears as small eyebrows and CTAs, never as large fills, keeping the page airy.
|
|
199
|
+
## 5. Iconography
|
|
200
200
|
|
|
201
|
-
|
|
202
|
-
- Small (4px): Eyebrow labels
|
|
203
|
-
- Control (6px): Buttons, inputs
|
|
204
|
-
- Card (16px): Feature cards, illustration blocks
|
|
201
|
+
The capture has declared-only `icomoon` and `swiper-icons` font assets but no visible-use match, named icon catalogue, sizing rule, or product-icon evidence. No icon token is promoted.
|
|
205
202
|
|
|
206
|
-
## 6.
|
|
203
|
+
## 6. Imagery & Illustration
|
|
207
204
|
|
|
208
|
-
|
|
209
|
-
|-------|-----------|-----|
|
|
210
|
-
| Flat (Level 0) | No shadow | Page background, bands, inline text |
|
|
211
|
-
| Card (Level 1) | `rgba(0,0,0,0.08) 0px 2px 16px 3px` | Feature cards, floating panels |
|
|
205
|
+
The public marketing pages use product imagery and explanatory cards, but the supplied DOM/style evidence does not establish an image ratio, crop rule, overlay system, or reusable screenshot frame. Do not derive an illustration system from those visuals.
|
|
212
206
|
|
|
213
|
-
|
|
207
|
+
## 7. Motion
|
|
214
208
|
|
|
215
|
-
|
|
209
|
+
No duration, easing, transition, hover result, or other motion behavior was recorded. Motion is intentionally undocumented.
|
|
216
210
|
|
|
217
|
-
|
|
218
|
-
- Use JANDI Green (`#00c473`) as the single accent — CTAs, eyebrows, hover states
|
|
219
|
-
- Set all type in Noto Sans; weight 700 for headlines, 400 for body, 500 for buttons
|
|
220
|
-
- Use pure black (`#000000`) headings on white (`#ffffff`) / soft-white (`#fafafc`)
|
|
221
|
-
- Step supporting text down into grays (`#a2a2a2`, `#c2c2c2`) so green stays the accent
|
|
222
|
-
- Use the green eyebrow label (13px / 700) above section headings for wayfinding
|
|
223
|
-
- Use 16px radius on cards, 6px on buttons and inputs
|
|
224
|
-
- Apply the one soft card shadow (`rgba(0,0,0,0.08) 0px 2px 16px 3px`) for elevation
|
|
225
|
-
- Use white pill buttons (`#ffffff` bg, `#041911` text) on green / dark hero backgrounds
|
|
211
|
+
## 8. Accessibility
|
|
226
212
|
|
|
227
|
-
|
|
228
|
-
-
|
|
229
|
-
-
|
|
230
|
-
- Don't use light heading weights — JANDI headlines are bold (700), confident and friendly
|
|
231
|
-
- Don't stack multi-layer or colored shadows — one soft gray shadow only
|
|
232
|
-
- Don't use pill / fully-round buttons — controls stay at 6px radius
|
|
233
|
-
- Don't let supporting text compete with headings — keep it gray and recessive
|
|
234
|
-
- Don't mix multiple typefaces — Noto Sans carries the entire system
|
|
235
|
-
- Don't fill large areas with green — keep it to CTAs, eyebrows, and small accents
|
|
236
|
-
|
|
237
|
-
## 8. Responsive Behavior
|
|
238
|
-
|
|
239
|
-
### Breakpoints
|
|
240
|
-
| Name | Width | Key Changes |
|
|
241
|
-
|------|-------|-------------|
|
|
242
|
-
| Mobile | <640px | Single column, reduced heading sizes, stacked cards, hamburger nav |
|
|
243
|
-
| Tablet | 640-1024px | 2-column card grids, moderate padding |
|
|
244
|
-
| Desktop | 1024-1280px | Full layout, multi-column feature grids |
|
|
245
|
-
| Large Desktop | >1280px | Centered content with generous margins |
|
|
246
|
-
|
|
247
|
-
### Touch Targets
|
|
248
|
-
- Buttons use comfortable padding (7-12px vertical, 14-30px horizontal)
|
|
249
|
-
- Nav links at 14px with adequate spacing
|
|
250
|
-
- Green login CTA sized for thumb tapping
|
|
251
|
-
|
|
252
|
-
### Collapsing Strategy
|
|
253
|
-
- Hero: 56px display compresses toward ~32-40px on mobile, weight 700 maintained
|
|
254
|
-
- Navigation: horizontal links + green CTA collapse to hamburger toggle
|
|
255
|
-
- Feature cards: multi-column to 2-column to single stacked
|
|
256
|
-
- Soft-canvas bands maintain full-width treatment, reduce internal padding
|
|
257
|
-
- Section spacing compresses on smaller viewports while preserving band rhythm
|
|
258
|
-
|
|
259
|
-
### Image Behavior
|
|
260
|
-
- Tinted (`#eaf6fc`) illustration blocks maintain 16px radius across sizes
|
|
261
|
-
- Card shadows persist at all viewport widths
|
|
262
|
-
- Product screenshots scale within their card containers
|
|
263
|
-
|
|
264
|
-
## 9. Agent Prompt Guide
|
|
265
|
-
|
|
266
|
-
### Quick Color Reference
|
|
267
|
-
- Primary CTA: JANDI Green (`#00c473`)
|
|
268
|
-
- CTA text: White (`#ffffff`)
|
|
269
|
-
- Background: White (`#ffffff`) / Soft (`#fafafc`)
|
|
270
|
-
- Heading text: Black (`#000000`)
|
|
271
|
-
- Body text: Gray (`#a2a2a2`)
|
|
272
|
-
- Subhead text: Light Gray (`#c2c2c2`)
|
|
273
|
-
- Tinted surface: Light Blue (`#eaf6fc`)
|
|
274
|
-
- Dark button: Ink (`#333333`)
|
|
275
|
-
- Hero pill text: Deepest Ink (`#041911`)
|
|
276
|
-
- Footer: Footer Black (`#181818`)
|
|
277
|
-
|
|
278
|
-
### Example Component Prompts
|
|
279
|
-
- "Create a hero on a green/dark imagery background. Headline at 56px Noto Sans weight 700, line-height 80px, white text. White pill CTA (#ffffff bg, #041911 text, 6px radius, 12px 30px padding, 15px weight 500) labeled '회원가입'."
|
|
280
|
-
- "Design a feature card: white background, 16px radius, shadow rgba(0,0,0,0.08) 0px 2px 16px 3px. Green eyebrow label above (13px Noto Sans weight 700, #00c473). Title at 24px weight 700 black, body at 14px weight 400 #a2a2a2."
|
|
281
|
-
- "Build a top nav: white sticky header, JANDI logo left, links in Noto Sans 14px weight 400 #000000 (green #00c473 on hover), green login button right (#00c473 bg, white text, 6px radius, 7px 14px padding)."
|
|
282
|
-
- "Create a tinted feature block: #eaf6fc background, 16px radius, on a #fafafc soft-canvas band. Bold 42px weight 700 black section heading with a green eyebrow above."
|
|
283
|
-
|
|
284
|
-
### Iteration Guide
|
|
285
|
-
1. Green (`#00c473`) is the only accent — apply it sparingly to CTAs, eyebrows, hovers
|
|
286
|
-
2. Noto Sans weight 700 for headings, 400 for body, 500 for buttons — no other faces
|
|
287
|
-
3. Headings are pure black (`#000000`); supporting text is gray (`#a2a2a2` / `#c2c2c2`)
|
|
288
|
-
4. Cards: 16px radius + the single soft shadow; buttons / inputs: 6px radius
|
|
289
|
-
5. Alternate white and `#fafafc` bands for section rhythm; use `#eaf6fc` for tinted blocks
|
|
290
|
-
6. On green/dark hero, use white pill buttons with `#041911` text for contrast
|
|
291
|
-
7. Keep depth flat — one shadow only, no colored or stacked shadows
|
|
213
|
+
- The repeated primary public action pairs `#ffffff` text with `#00c473`; the white landing action pairs `#041911` with `#ffffff`.
|
|
214
|
+
- The collector did not record focus-visible, keyboard, disabled, form-error, or screen-reader behavior. An implementation should add an accessible focus indicator rather than infer one from static borders or radii.
|
|
215
|
+
- `Noto Sans` is backed by computed family, FontFaceSet, and JANDI-CDN source evidence. Declared-only icon fonts must not be substituted for it.
|
|
292
216
|
|
|
293
|
-
|
|
217
|
+
## 9. Content & Voice
|
|
218
|
+
|
|
219
|
+
JANDI’s first-party company and product material frames the service as practical collaboration infrastructure: messages, projects, work visibility, and AI-assisted work support. The public voice is correspondingly concise, explanatory, and operational. That observation does not authorize invented authenticated-product microcopy.
|
|
294
220
|
|
|
295
221
|
## 10. Voice & Tone
|
|
296
222
|
|
|
297
|
-
|
|
223
|
+
**Voice adjectives:** practical · clear · collaboration-oriented
|
|
298
224
|
|
|
299
|
-
|
|
|
225
|
+
| Do | Don't |
|
|
300
226
|
|---|---|
|
|
301
|
-
|
|
|
302
|
-
|
|
|
303
|
-
|
|
|
304
|
-
| Customer stories | Trust-building, evidence-led. Real companies, real outcomes. |
|
|
305
|
-
| Pricing / inquiry | Clear, helpful, B2B-appropriate. Invites contact, never pushy. |
|
|
306
|
-
|
|
307
|
-
**Forbidden register.** Over-hyped superlatives, fear-based urgency, jargon-for-its-own-sake. JANDI sells calm productivity, not disruption.
|
|
227
|
+
| State the work problem before describing a capability. | Promise transformation without explaining the collaboration task. |
|
|
228
|
+
| Connect messaging, project work, and visibility in plain language. | Treat public marketing tone as a specification for every authenticated UI state. |
|
|
229
|
+
| Keep feature and inquiry language direct. | Infer urgency, error, or success copy that was not observed. |
|
|
308
230
|
|
|
309
231
|
## 11. Brand Narrative
|
|
310
232
|
|
|
311
|
-
|
|
233
|
+
Toss Lab’s official company history dates the JANDI launch to 2015. The service is presented as a collaboration platform for business communication and, in its current direction, AI-assisted and project-based work.
|
|
312
234
|
|
|
313
|
-
|
|
235
|
+
In June 2026, Toss Lab announced JANDI Project 2.0, a project-management experience integrated with messaging and redesigned around visibility for both individual contributors and team managers. This reference keeps that product evolution separate from the measured public-marketing styles.
|
|
314
236
|
|
|
315
237
|
## 12. Principles
|
|
316
238
|
|
|
317
|
-
1. **
|
|
318
|
-
2. **
|
|
319
|
-
3. **
|
|
320
|
-
4. **
|
|
321
|
-
5. **Growth as metaphor.** The "lawn" name and green color encode the brand's belief that good tools help teams grow together.
|
|
239
|
+
1. **Use green as the public action signal.** The capture supports `#00c473` on the repeated global public navigation action, not a universal product semantic system.
|
|
240
|
+
2. **Let large Korean headlines carry marketing hierarchy.** The measured 56px, 42px, 40px, and 32px treatments belong to the captured public pages only.
|
|
241
|
+
3. **Keep explanatory cards scoped to their feature surface.** The observed security and AI environment cards are static marketing cards, not generic product-card variants.
|
|
242
|
+
4. **Keep evidence domains separate.** Marketing, documentation chrome, font licensing, corporate context, and the unobserved authenticated application have different evidentiary roles.
|
|
322
243
|
|
|
323
244
|
## 13. Personas
|
|
324
245
|
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
**Ji-woo Kang, 34, Seoul.** Operations manager at a 60-person Korean manufacturing company. Chose JANDI because the whole team — including older staff uncomfortable with foreign tools — could pick it up in a day. Values the Korean-language support and the calm, uncluttered interface.
|
|
246
|
+
First-party material describes the service in terms of teams and collaboration work, and the Project 2.0 release specifically distinguishes individual contributors from team managers. Those are the only stakeholder groups retained here:
|
|
328
247
|
|
|
329
|
-
|
|
248
|
+
- **Individual contributors:** view their assigned work and weekly workload in the announced project experience.
|
|
249
|
+
- **Team managers:** use the announced dashboard to see project progress and member work status.
|
|
250
|
+
- **Teams:** use messaging and project work as connected collaboration contexts.
|
|
330
251
|
|
|
331
|
-
|
|
252
|
+
No named or demographic personas are invented.
|
|
332
253
|
|
|
333
254
|
## 14. States
|
|
334
255
|
|
|
335
|
-
|
|
336
|
-
|---|---|
|
|
337
|
-
| **Empty** | White canvas, single plain-Korean line in black (`#000000`) at 16px Noto Sans, one green (`#00c473`) CTA. Honest, calm, no clutter. |
|
|
338
|
-
| **Loading** | Soft skeleton blocks in light gray at final dimensions; gentle shimmer. No spinner spectacle. |
|
|
339
|
-
| **Error** | Inline message in plain Korean explaining what happened and the next step. Calm tone, no alarm. |
|
|
340
|
-
| **Success** | Brief green (`#00c473`) confirmation, sentence-case past tense. No exclamation, no emoji. |
|
|
341
|
-
| **Disabled** | Reduced opacity on surface and text together; green actions fade rather than switch to gray, preserving brand read. |
|
|
256
|
+
No empty, loading, error, success, disabled, focus, or validation states were captured. The component appearances in §4 are static public-page observations, not behavioral state specifications.
|
|
342
257
|
|
|
343
258
|
## 15. Motion & Easing
|
|
344
259
|
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
| Token | Value | Use |
|
|
348
|
-
|---|---|---|
|
|
349
|
-
| `motion-fast` | 120ms | Hover, focus, button press |
|
|
350
|
-
| `motion-standard` | 200ms | Dropdowns, card reveals, section transitions |
|
|
351
|
-
| `motion-slow` | 320ms | Page-level transitions, hero reveals |
|
|
260
|
+
No motion token, easing curve, duration, or reduced-motion behavior was captured. Preserve this boundary rather than inventing a motion system.
|
|
352
261
|
|
|
353
|
-
|
|
262
|
+
## 16. Do's and Don'ts
|
|
354
263
|
|
|
355
|
-
|
|
356
|
-
|---|---|---|
|
|
357
|
-
| `ease-standard` | `cubic-bezier(0.25, 0.1, 0.25, 1)` | Two-way transitions |
|
|
358
|
-
| `ease-enter` | `cubic-bezier(0.2, 0.6, 0.25, 1)` | Arriving panels, dropdowns |
|
|
264
|
+
### Do
|
|
359
265
|
|
|
360
|
-
|
|
266
|
+
- Use the loaded `Noto Sans` family only for the captured public-surface type reference.
|
|
267
|
+
- Scope `#00c473` to the observed repeated public action.
|
|
268
|
+
- Keep each documented card tied to its security or AI marketing surface and selector.
|
|
269
|
+
- Preserve selector and surface provenance when using the components in §4.
|
|
361
270
|
|
|
362
|
-
|
|
363
|
-
2. **Green CTA hover.** Login / inquiry buttons shift hue subtly on hover at `motion-fast`. No scale jump, no overshoot.
|
|
364
|
-
3. **Section reveal.** Feature bands fade up softly on scroll with `motion-standard / ease-enter`, matching the calm, trustworthy register.
|
|
365
|
-
4. **Reduce motion.** Under `prefers-reduced-motion: reduce`, transitions collapse to instant. The product stays fully functional; calm clarity is the priority over delight.
|
|
271
|
+
### Don't
|
|
366
272
|
|
|
367
|
-
|
|
368
|
-
|
|
273
|
+
- Present declared-only `icomoon` or `swiper-icons` as a JANDI UI text family.
|
|
274
|
+
- Generalize public-marketing measurements into an authenticated product-app system.
|
|
275
|
+
- Invent hover, pressed, focus, disabled, error, menu, dialog, or responsive variants.
|
|
276
|
+
- Reintroduce the legacy inferred pricing cards, input rules, or universal shadow system.
|
|
369
277
|
|
|
370
|
-
|
|
371
|
-
Harvested: JANDI Green #00c473 (rgb 0,196,115) login CTA bg + eyebrow + border; #333333 dark
|
|
372
|
-
secondary button; #041911 deepest ink on white hero pills; #000000 headings; #ffffff / #fafafc
|
|
373
|
-
canvas; #eaf6fc tinted card; #a2a2a2 body gray; #c2c2c2 subhead gray; #181818 footer; Noto Sans
|
|
374
|
-
700 headlines (56px hero / 42px section / 24px sub) and 400 body; card shadow
|
|
375
|
-
rgba(0,0,0,0.08) 0px 2px 16px 3px; 16px card radius / 6px control radius.
|
|
278
|
+
---
|
|
376
279
|
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
Interpretive claims (green-as-growth, calm-over-spectacle) are editorial readings connecting
|
|
381
|
-
JANDI's stated positioning to its observed design system.
|
|
382
|
-
-->
|
|
280
|
+
**Verified:** 2026-07-13
|
|
281
|
+
**Pipeline:** omd:add-reference UPDATE (supplied-evidence 3-tier reconcile)
|
|
282
|
+
**Catalog position:** KR · productivity · collaboration platform
|