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,316 +8,295 @@ primary_color: "#ff7e36"
|
|
|
8
8
|
logo:
|
|
9
9
|
type: github
|
|
10
10
|
slug: daangn
|
|
11
|
-
verified: "2026-
|
|
11
|
+
verified: "2026-07-11"
|
|
12
12
|
omd: "0.1"
|
|
13
13
|
ds:
|
|
14
14
|
name: SEED Design
|
|
15
|
-
url: "https://seed-design.io"
|
|
15
|
+
url: "https://v2.seed-design.io"
|
|
16
16
|
type: system
|
|
17
17
|
description: Karrot (Daangn)'s open-source design system for marketplace apps.
|
|
18
|
+
verification_v2:
|
|
19
|
+
schema: 2
|
|
20
|
+
checked: "2026-07-11"
|
|
21
|
+
surfaces:
|
|
22
|
+
- { id: marketing-home, kind: marketing, url: "https://www.karrotmarket.com/", inspected: "2026-07-11" }
|
|
23
|
+
- { id: marketing-about, kind: marketing, url: "https://www.karrotmarket.com/about/", inspected: "2026-07-11" }
|
|
24
|
+
- { id: seed-system, kind: design-system, url: "https://v2.seed-design.io/", inspected: "2026-07-11" }
|
|
25
|
+
sources:
|
|
26
|
+
- { id: karrot-live, kind: product-surface, url: "https://www.karrotmarket.com/", captured: "2026-07-11" }
|
|
27
|
+
- { id: seed-source, kind: official-doc, url: "https://github.com/daangn/seed-design/blob/fb4459e90f84e049112395964319b163f980b821/packages/stylesheet/global.css", captured: "2026-07-11" }
|
|
28
|
+
- { id: seed-typography, kind: official-doc, url: "https://v2.seed-design.io/foundation/typography/", captured: "2026-07-11" }
|
|
29
|
+
- { id: seed-box-button, kind: official-doc, url: "https://v2.seed-design.io/component/box-button/usage/", captured: "2026-07-11" }
|
|
30
|
+
- { id: seed-text-field, kind: official-doc, url: "https://v2.seed-design.io/component/text-field/usage/", captured: "2026-07-11" }
|
|
31
|
+
- { id: seed-tabs, kind: official-doc, url: "https://v2.seed-design.io/component/tabs/usage/", captured: "2026-07-11" }
|
|
32
|
+
- { id: seed-snackbar, kind: official-doc, url: "https://v2.seed-design.io/component/snackbar/usage/", captured: "2026-07-11" }
|
|
33
|
+
claims:
|
|
34
|
+
"tokens.colors.primary": &seed_color { surface_id: seed-system, source_id: seed-source, method: official-source, captured: "2026-07-11" }
|
|
35
|
+
"tokens.colors.primary-hover": *seed_color
|
|
36
|
+
"tokens.colors.primary-pressed": *seed_color
|
|
37
|
+
"tokens.colors.canvas": *seed_color
|
|
38
|
+
"tokens.colors.background": *seed_color
|
|
39
|
+
"tokens.colors.surface": *seed_color
|
|
40
|
+
"tokens.colors.foreground": *seed_color
|
|
41
|
+
"tokens.colors.muted": *seed_color
|
|
42
|
+
"tokens.colors.on-primary": *seed_color
|
|
43
|
+
"tokens.colors.hairline": *seed_color
|
|
44
|
+
"tokens.colors.brand-tint": *seed_color
|
|
45
|
+
"tokens.colors.error": *seed_color
|
|
46
|
+
"tokens.colors.info": *seed_color
|
|
47
|
+
"tokens.colors.success": *seed_color
|
|
48
|
+
"tokens.colors.marketing": &karrot_live { surface_id: marketing-home, source_id: karrot-live, method: computed-style, captured: "2026-07-11" }
|
|
49
|
+
"tokens.typography.family.sans": *karrot_live
|
|
50
|
+
"tokens.typography.h1.size": &seed_type { surface_id: seed-system, source_id: seed-typography, method: official-doc, captured: "2026-07-11" }
|
|
51
|
+
"tokens.typography.h1.weight": *seed_type
|
|
52
|
+
"tokens.typography.h1.lineHeight": *seed_type
|
|
53
|
+
"tokens.typography.h2.size": *seed_type
|
|
54
|
+
"tokens.typography.h2.weight": *seed_type
|
|
55
|
+
"tokens.typography.h2.lineHeight": *seed_type
|
|
56
|
+
"tokens.typography.h3.size": *seed_type
|
|
57
|
+
"tokens.typography.h3.weight": *seed_type
|
|
58
|
+
"tokens.typography.h3.lineHeight": *seed_type
|
|
59
|
+
"tokens.typography.title.size": *seed_type
|
|
60
|
+
"tokens.typography.title.weight": *seed_type
|
|
61
|
+
"tokens.typography.title.lineHeight": *seed_type
|
|
62
|
+
"tokens.typography.body.size": *seed_type
|
|
63
|
+
"tokens.typography.body.weight": *seed_type
|
|
64
|
+
"tokens.typography.body.lineHeight": *seed_type
|
|
65
|
+
"tokens.typography.body-small.size": *seed_type
|
|
66
|
+
"tokens.typography.body-small.weight": *seed_type
|
|
67
|
+
"tokens.typography.body-small.lineHeight": *seed_type
|
|
68
|
+
"tokens.spacing.sm": *karrot_live
|
|
69
|
+
"tokens.spacing.md": *karrot_live
|
|
70
|
+
"tokens.spacing.lg": *karrot_live
|
|
71
|
+
"tokens.spacing.xl": *karrot_live
|
|
72
|
+
"tokens.spacing.section": *karrot_live
|
|
73
|
+
"tokens.rounded.sm": *karrot_live
|
|
74
|
+
"tokens.rounded.md": *karrot_live
|
|
75
|
+
"tokens.rounded.full": *karrot_live
|
|
76
|
+
"tokens.components.marketing-primary.type": *karrot_live
|
|
77
|
+
"tokens.components.marketing-primary.bg": *karrot_live
|
|
78
|
+
"tokens.components.marketing-primary.fg": *karrot_live
|
|
79
|
+
"tokens.components.marketing-primary.radius": *karrot_live
|
|
80
|
+
"tokens.components.marketing-primary.height": *karrot_live
|
|
81
|
+
"tokens.components.marketing-primary.padding": *karrot_live
|
|
82
|
+
"tokens.components.marketing-primary.font": *karrot_live
|
|
83
|
+
"tokens.components.marketing-primary.states": *karrot_live
|
|
84
|
+
"tokens.components.marketing-primary.use": *karrot_live
|
|
85
|
+
"tokens.components.box-button.type": &seed_box { surface_id: seed-system, source_id: seed-box-button, method: official-doc, captured: "2026-07-11" }
|
|
86
|
+
"tokens.components.box-button.states": *seed_box
|
|
87
|
+
"tokens.components.box-button.use": *seed_box
|
|
88
|
+
"tokens.components.text-field.type": &seed_field { surface_id: seed-system, source_id: seed-text-field, method: official-doc, captured: "2026-07-11" }
|
|
89
|
+
"tokens.components.text-field.states": *seed_field
|
|
90
|
+
"tokens.components.text-field.use": *seed_field
|
|
91
|
+
"tokens.components.tabs.type": &seed_tabs_claim { surface_id: seed-system, source_id: seed-tabs, method: official-doc, captured: "2026-07-11" }
|
|
92
|
+
"tokens.components.tabs.states": *seed_tabs_claim
|
|
93
|
+
"tokens.components.tabs.use": *seed_tabs_claim
|
|
94
|
+
"tokens.components.snackbar.type": &seed_snackbar_claim { surface_id: seed-system, source_id: seed-snackbar, method: official-doc, captured: "2026-07-11" }
|
|
95
|
+
"tokens.components.snackbar.states": *seed_snackbar_claim
|
|
96
|
+
"tokens.components.snackbar.use": *seed_snackbar_claim
|
|
97
|
+
conflicts: []
|
|
18
98
|
tokens:
|
|
19
|
-
source:
|
|
20
|
-
extracted: "2026-
|
|
99
|
+
source: reconciled
|
|
100
|
+
extracted: "2026-07-11"
|
|
21
101
|
colors:
|
|
22
|
-
primary: "#
|
|
23
|
-
primary-hover: "#
|
|
24
|
-
|
|
102
|
+
primary: "#ff6f0f"
|
|
103
|
+
primary-hover: "#ff9e66"
|
|
104
|
+
primary-pressed: "#ff9e66"
|
|
105
|
+
marketing: "#ff6600"
|
|
25
106
|
canvas: "#ffffff"
|
|
26
|
-
|
|
107
|
+
background: "#f2f3f6"
|
|
108
|
+
surface: "#f7f8fa"
|
|
109
|
+
foreground: "#212124"
|
|
27
110
|
muted: "#868b94"
|
|
28
111
|
on-primary: "#ffffff"
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
brand-tint: "#fff2ec"
|
|
35
|
-
error: "#fa342c"
|
|
36
|
-
info: "#217cf9"
|
|
37
|
-
success: "#079171"
|
|
38
|
-
warning: "#9b7821"
|
|
39
|
-
focus: "#5e98fe"
|
|
112
|
+
hairline: "#eaebee"
|
|
113
|
+
brand-tint: "#fff5f0"
|
|
114
|
+
error: "#fa2314"
|
|
115
|
+
info: "#009ceb"
|
|
116
|
+
success: "#1aa174"
|
|
40
117
|
typography:
|
|
41
|
-
family: { sans: "
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
body:
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
caption-small: { size: 11, weight: 400, lineHeight: 15, tracking: "0em", use: "Fine print, badges" }
|
|
51
|
-
spacing: { xs: 2, sm: 4, md: 8, base: 16, lg: 20, xl: 24, xxl: 32, section: 64 }
|
|
52
|
-
rounded: { sm: 8, md: 12, lg: 16, full: 9999 }
|
|
53
|
-
shadow:
|
|
54
|
-
s1: "0px 1px 4px rgba(0,0,0,0.08)"
|
|
55
|
-
s2: "0px 2px 10px rgba(0,0,0,0.10)"
|
|
56
|
-
s3: "0px 4px 16px rgba(0,0,0,0.12)"
|
|
118
|
+
family: { sans: "System" }
|
|
119
|
+
h1: { size: 48, weight: 700, lineHeight: "135%" }
|
|
120
|
+
h2: { size: 42, weight: 700, lineHeight: "135%" }
|
|
121
|
+
h3: { size: 34, weight: 700, lineHeight: "135%" }
|
|
122
|
+
title: { size: 24, weight: 700, lineHeight: "135%" }
|
|
123
|
+
body: { size: 16, weight: 400, lineHeight: "150%" }
|
|
124
|
+
body-small: { size: 14, weight: 400, lineHeight: "150%" }
|
|
125
|
+
spacing: { sm: 4, md: 8, lg: 12, xl: 16, section: 64 }
|
|
126
|
+
rounded: { sm: 6, md: 8, full: 9999 }
|
|
57
127
|
components_harvested: true
|
|
58
128
|
components:
|
|
59
|
-
|
|
60
|
-
button
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
chip: { type: badge, bg: "#f3f4f5", fg: "#1a1c20", radius: "9999px", height: "32px", padding: "0 12px", font: "13px / 500", active: "bg #1a1c20 fg #ffffff", use: "Filter chips, tags" }
|
|
65
|
-
input: { type: input, bg: "#f7f8f9", fg: "#1a1c20", border: "1px solid #dcdee3", radius: "8px", focus: "2px solid #5e98fe", states: "error border #fa342c", use: "Text input, placeholder #b0b3ba" }
|
|
66
|
-
tab-bottom: { type: tab, bg: "#ffffff", fg: "#868b94", border: "subtle top border", active: "Karrot Orange icon + label", use: "Bottom tab bar nav" }
|
|
129
|
+
marketing-primary: { type: button, bg: "#ff6600", fg: "#ffffff", radius: "9999px", height: "36px", padding: "4px 12px", font: "14px / 500", states: "default on two public surfaces; hover not captured", use: "Karrot marketing-site CTA" }
|
|
130
|
+
box-button: { type: button, states: "primary, primary-low, secondary, danger, disabled, hover, keyboard", use: "SEED action with five documented sizes" }
|
|
131
|
+
text-field: { type: input, states: "outlined, underlined, focused, disabled, readonly, required, invalid", use: "SEED single-line form field" }
|
|
132
|
+
tabs: { type: tab, states: "selected, disabled, focus", use: "SEED category switching with indicator" }
|
|
133
|
+
snackbar: { type: toast, states: "default, success, warning, action focus", use: "SEED transient action feedback" }
|
|
67
134
|
---
|
|
68
135
|
|
|
69
136
|
# Design System Inspiration of Karrot (당근)
|
|
70
137
|
|
|
71
138
|
## 1. Visual Theme & Atmosphere
|
|
72
139
|
|
|
73
|
-
Karrot
|
|
140
|
+
Karrot is a hyperlocal platform built around the idea that technology should make neighborhood relationships feel more human, not more anonymous. Its design keeps community content dominant through warm orange accents, calm neutrals, direct language, and light interface chrome. Two related but non-identical public surfaces express that identity: the current SEED v2 product system defines semantic Primary as carrot-500 (`#ff6f0f`), while the public Karrot marketing site renders its CTA orange as `#ff6600`. Keeping those values separate preserves both product-system truth and the recognizable warmth of the brand.
|
|
74
141
|
|
|
75
|
-
|
|
142
|
+
SEED is the canonical source for product-system colors, type roles, and component behavior. The public marketing pages are evidence for the web font stack and marketing CTA geometry only. Both use warm neutrals, direct hierarchy, and restrained ornament so neighborhood content remains dominant.
|
|
76
143
|
|
|
77
144
|
**Key Characteristics:**
|
|
78
|
-
-
|
|
79
|
-
- System
|
|
80
|
-
-
|
|
81
|
-
-
|
|
82
|
-
- Full dark mode via semantic token remapping (not simple inversion)
|
|
83
|
-
- 11-step gray scale (gray-00 through gray-1000) for nuanced depth
|
|
84
|
-
- Three-level shadow system with separate light/dark mode intensities
|
|
85
|
-
- Mobile-first at 375px baseline with `clamp()`-based accessibility font scaling
|
|
145
|
+
- SEED semantic Primary: `#ff6f0f`; current marketing CTA: `#ff6600`
|
|
146
|
+
- System-first web typography; `Pretendard Variable` is declared as a fallback but was not the computed first family in the inspected pages
|
|
147
|
+
- Official SEED semantic roles backed by the open-source `global.css`
|
|
148
|
+
- Components documented as behavior/state contracts, with marketing geometry kept surface-specific
|
|
86
149
|
|
|
87
150
|
## 2. Color Palette & Roles
|
|
88
151
|
|
|
89
|
-
###
|
|
90
|
-
- **
|
|
91
|
-
- **
|
|
92
|
-
- **
|
|
93
|
-
- **
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
- **
|
|
97
|
-
- **
|
|
98
|
-
- **
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
- **
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
- **
|
|
105
|
-
- **Focus Blue** (`#5e98fe`): `stroke-focus-ring`. Keyboard focus ring on interactive elements.
|
|
106
|
-
|
|
107
|
-
### Neutral Scale
|
|
108
|
-
- **Gray 100** (`#f7f8f9`): `bg-layer-fill`. Subtle background fill.
|
|
109
|
-
- **Gray 200** (`#f3f4f5`): `bg-layer-basement`, `bg-disabled`. Secondary surfaces.
|
|
110
|
-
- **Gray 400** (`#dcdee3`): `stroke-neutral-weak`. Standard borders, dividers.
|
|
111
|
-
- **Gray 600** (`#b0b3ba`): `fg-placeholder`. Placeholder text, muted icons.
|
|
112
|
-
- **Gray 700** (`#868b94`): `fg-neutral-subtle`. Captions, tertiary text.
|
|
113
|
-
- **Gray 800** (`#555d6d`): `fg-neutral-muted`. Secondary body text.
|
|
114
|
-
|
|
115
|
-
### Surface & Borders
|
|
116
|
-
- **Border Subtle** (`rgba(0,0,0,0.08)`): `stroke-neutral-subtle`. Soft card borders, barely-there separation.
|
|
117
|
-
- **Border Muted** (`rgba(0,0,0,0.12)`): `stroke-neutral-muted`. Moderate borders for definition.
|
|
118
|
-
- **Overlay** (`rgba(0,0,0,0.7)`): `bg-overlay`. Modal/sheet backdrop.
|
|
119
|
-
- **Overlay Muted** (`rgba(0,0,0,0.5)`): `bg-overlay-muted`. Bottom sheet scrims.
|
|
152
|
+
### SEED v2 product semantics
|
|
153
|
+
- **Primary** (`#ff6f0f`): `--seed-semantic-color-primary`, mapped to carrot-500.
|
|
154
|
+
- **Primary Hover / Pressed** (`#ff9e66`): current light-theme state mapping.
|
|
155
|
+
- **Canvas** (`#ffffff`): gray-00 and `paper-default`.
|
|
156
|
+
- **Background** (`#f2f3f6`): gray-100 and `paper-background`.
|
|
157
|
+
- **Surface** (`#f7f8fa`): gray-50 and `paper-contents`.
|
|
158
|
+
- **Foreground** (`#212124`): gray-900 and `ink-text`.
|
|
159
|
+
- **Muted** (`#868b94`): gray-600 and `ink-text-low`.
|
|
160
|
+
- **Hairline** (`#eaebee`): gray-200 and `divider-2`.
|
|
161
|
+
- **Brand Tint** (`#fff5f0`): carrot-50 and `paper-accent`.
|
|
162
|
+
- **Danger** (`#fa2314`): red-600.
|
|
163
|
+
- **Accent / Info** (`#009ceb`): blue-500.
|
|
164
|
+
- **Success** (`#1aa174`): green-500.
|
|
165
|
+
|
|
166
|
+
### Marketing web exception
|
|
167
|
+
- **Marketing CTA** (`#ff6600`): computed background on both inspected Karrot public pages. Do not label it carrot-500 or substitute it for SEED Primary.
|
|
120
168
|
|
|
121
169
|
## 3. Typography Rules
|
|
122
170
|
|
|
123
171
|
### Font Family
|
|
124
|
-
- **
|
|
125
|
-
- **
|
|
126
|
-
- **
|
|
172
|
+
- **Observed web UI**: `System`. The computed first family was `-apple-system` across 420 visible elements.
|
|
173
|
+
- **Declared fallback**: `Pretendard Variable` appeared in the stack and FontFace declarations but had no visible first-family usage in this capture.
|
|
174
|
+
- **Monospace**: no canonical UI monospace claim; do not invent one.
|
|
127
175
|
|
|
128
176
|
### Hierarchy
|
|
129
177
|
|
|
130
178
|
| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|
|
131
179
|
|------|------|------|--------|-------------|----------------|-------|
|
|
132
|
-
|
|
|
133
|
-
|
|
|
134
|
-
|
|
|
135
|
-
|
|
|
136
|
-
|
|
|
137
|
-
| Body | System | 14px
|
|
138
|
-
| Body Small | System | 13px (t3) | 400 | 18px | 0em | Secondary text, metadata |
|
|
139
|
-
| Caption | System | 12px (t2) | 400 | 16px | 0em | Timestamps, small labels |
|
|
140
|
-
| Caption Small | System | 11px (t1) | 400 | 15px | 0em | Fine print, badges |
|
|
180
|
+
| H1 | System | 48px | 700 | 135% | 0 | SEED semantic h1 |
|
|
181
|
+
| H2 | System | 42px | 700 | 135% | 0 | SEED semantic h2 |
|
|
182
|
+
| H3 | System | 34px | 700 | 135% | 0 | SEED semantic h3 |
|
|
183
|
+
| Title 1 Bold | System | 24px | 700 | 135% | 0 | Section or chapter title |
|
|
184
|
+
| Body L1 | System | 16px | 400 | 150% | -0.02em on web | Long-form body |
|
|
185
|
+
| Body L2 | System | 14px | 400 | 150% | -0.02em on web | Compact body |
|
|
141
186
|
|
|
142
187
|
### Principles
|
|
143
|
-
-
|
|
144
|
-
-
|
|
145
|
-
-
|
|
146
|
-
|
|
188
|
+
- Official SEED exposes regular and bold semantic weights; do not infer a broad custom weight scale.
|
|
189
|
+
- Web tracking differs by role: headings remain neutral while body roles use narrow tracking.
|
|
190
|
+
- The previous 26px maximum was an old snapshot and is no longer canonical.
|
|
191
|
+
|
|
192
|
+
| Evidence class | Karrot status |
|
|
193
|
+
|---|---|
|
|
194
|
+
| **Official product-use** | SEED v2 defines product typography roles around platform/system families rather than a branded display face |
|
|
195
|
+
| **Live surface-use** | `-apple-system` was the visible first family across the inspected Karrot marketing surfaces |
|
|
196
|
+
| **Official distributed asset** | SEED design tokens and components are published openly; no separate public Karrot typeface asset is asserted |
|
|
197
|
+
| **Declared-only** | Pretendard Variable appeared in public stacks and FontFace declarations without visible first-family use in this capture |
|
|
198
|
+
| **Unresolved** | Exact native-app runtime family resolution outside the published SEED semantic roles |
|
|
147
199
|
|
|
148
200
|
## 4. Component Stylings
|
|
149
201
|
|
|
150
|
-
###
|
|
202
|
+
### Marketing Web
|
|
151
203
|
|
|
152
|
-
**
|
|
153
|
-
- Background: `#ff6600`
|
|
204
|
+
**Primary CTA**
|
|
205
|
+
- Background: `#ff6600`
|
|
154
206
|
- Text: `#ffffff`
|
|
155
|
-
- Radius:
|
|
156
|
-
-
|
|
157
|
-
-
|
|
158
|
-
-
|
|
159
|
-
-
|
|
160
|
-
- Use:
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
-
|
|
166
|
-
- Use:
|
|
167
|
-
|
|
168
|
-
**
|
|
169
|
-
-
|
|
170
|
-
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
-
|
|
178
|
-
- Use:
|
|
179
|
-
|
|
180
|
-
### Cards & Containers
|
|
181
|
-
- Background: `#ffffff` (bg-layer-default)
|
|
182
|
-
- Border: 1px solid `rgba(0,0,0,0.08)` (stroke-neutral-subtle) or no border with shadow
|
|
183
|
-
- Radius: 8px (standard), 12px (featured), 16px (large cards)
|
|
184
|
-
- Shadow: `0px 2px 10px rgba(0,0,0,0.1)` (s2) for standard cards
|
|
185
|
-
|
|
186
|
-
### Chips & Tags
|
|
187
|
-
- Background: `#f3f4f5` (gray-200), Selected: `#1a1c20` (gray-1000) with white text
|
|
188
|
-
- Radius: 9999px (pill)
|
|
189
|
-
- Height: 32px, Padding: 0 12px, Font: 13px weight 500
|
|
190
|
-
|
|
191
|
-
### Inputs & Forms
|
|
192
|
-
- Background: `#f7f8f9` (gray-100)
|
|
193
|
-
- Border: 1px solid `#dcdee3` (gray-400)
|
|
194
|
-
- Radius: 8px
|
|
195
|
-
- Focus: 2px solid `#5e98fe` (blue-600) focus ring
|
|
196
|
-
- Text: `#1a1c20`, Placeholder: `#b0b3ba` (gray-600)
|
|
197
|
-
- Error border: `#fa342c` (red-700)
|
|
198
|
-
|
|
199
|
-
### Navigation
|
|
200
|
-
- Bottom tab bar: white background, subtle top border
|
|
201
|
-
- Active tab: Karrot Orange icon + label, Inactive: `#868b94` (gray-700)
|
|
202
|
-
- App bar: white, centered title (16px weight 700), optional back arrow
|
|
207
|
+
- Radius: 9999px
|
|
208
|
+
- Padding: 4px 12px
|
|
209
|
+
- Height: 36px
|
|
210
|
+
- Font: 14px / 500 / System
|
|
211
|
+
- States: default observed on two public surfaces; hover not captured
|
|
212
|
+
- Use: Header-level marketing action
|
|
213
|
+
|
|
214
|
+
### SEED Product Components
|
|
215
|
+
|
|
216
|
+
**Box Button**
|
|
217
|
+
- States: primary, primary-low, secondary, danger, disabled, hover, keyboard
|
|
218
|
+
- Use: Action component with xsmall through xlarge sizes; medium is the documented default
|
|
219
|
+
|
|
220
|
+
**Text Field**
|
|
221
|
+
- States: outlined, underlined, focused, disabled, readonly, required, invalid
|
|
222
|
+
- Use: Single-line form input with label, description, error message, and optional prefix/suffix
|
|
223
|
+
|
|
224
|
+
**Tabs**
|
|
225
|
+
- States: selected, disabled, focus
|
|
226
|
+
- Use: Hug or fill category navigation with a current-selection indicator
|
|
227
|
+
|
|
228
|
+
**Snackbar**
|
|
229
|
+
- States: default, success, warning, action focus
|
|
230
|
+
- Use: Brief action feedback with at most one related action
|
|
203
231
|
|
|
204
232
|
## 5. Layout Principles
|
|
205
233
|
|
|
206
234
|
### Spacing System
|
|
207
235
|
- Base unit: 4px
|
|
208
|
-
-
|
|
209
|
-
-
|
|
210
|
-
- Component default vertical: 12px (x3)
|
|
236
|
+
- Observed public-web clusters: 4px, 8px, 12px, 16px, and 64px
|
|
237
|
+
- Treat larger marketing gaps as surface composition, not universal product tokens
|
|
211
238
|
|
|
212
239
|
### Grid & Container
|
|
213
|
-
-
|
|
214
|
-
-
|
|
215
|
-
- Listing cards: full-width with 16px horizontal padding
|
|
216
|
-
- Card grid: 2-column on tablet, single column on mobile
|
|
240
|
+
- Marketing pages use responsive full-width sections and a centered content column.
|
|
241
|
+
- SEED components define their own layout constraints; for example, Box Button keeps a 16px mobile edge inset.
|
|
217
242
|
|
|
218
243
|
### Whitespace Philosophy
|
|
219
|
-
-
|
|
220
|
-
-
|
|
221
|
-
- **Grouped by proximity**: Related items use 4-8px gaps; distinct sections use 16-24px gaps.
|
|
244
|
+
- Keep content dominant and chrome quiet.
|
|
245
|
+
- Use the observed 4/8/12/16 rhythm locally; do not extrapolate undocumented marketplace grid rules from the marketing site.
|
|
222
246
|
|
|
223
247
|
### Border Radius Scale
|
|
224
|
-
-
|
|
225
|
-
-
|
|
226
|
-
-
|
|
227
|
-
-
|
|
228
|
-
- Sheet (20px): Bottom sheet top corners
|
|
229
|
-
- Dialog (24px): Modal dialogs
|
|
230
|
-
- Pill (9999px): Chips, avatars, xsmall buttons
|
|
248
|
+
- Small: 6px, observed on a public CTA.
|
|
249
|
+
- Medium: 8px, observed on a public CTA.
|
|
250
|
+
- Full: 9999px, dominant public-web button geometry.
|
|
251
|
+
- Component-specific radii from SEED must be taken from that component's current style page, not inferred from this marketing scale.
|
|
231
252
|
|
|
232
253
|
## 6. Depth & Elevation
|
|
233
254
|
|
|
234
|
-
|
|
235
|
-
|-------|-----------|-----|
|
|
236
|
-
| Flat (Level 0) | No shadow | Page background, inline elements |
|
|
237
|
-
| Subtle (s1) | `0px 1px 4px rgba(0,0,0,0.08)` | Slight lift, list item hover |
|
|
238
|
-
| Standard (s2) | `0px 2px 10px rgba(0,0,0,0.10)` | Cards, dropdowns, popovers |
|
|
239
|
-
| Prominent (s3) | `0px 4px 16px rgba(0,0,0,0.12)` | Floating action button, bottom sheets, modals |
|
|
240
|
-
|
|
241
|
-
**Shadow Philosophy**: Only three levels -- enough for clear layering without visual clutter. Shadows use pure black with varying opacity (no brand-tinted shadows), keeping the system neutral so the orange accent remains the sole source of warmth. In dark mode, opacities increase dramatically (s1: 0.50, s2: 0.68, s3: 0.80) to remain perceptible on dark surfaces.
|
|
255
|
+
The inspected public controls were flat and reported `box-shadow: none`. No universal shadow tokens are published in the canonical frontmatter until current component-style sources are captured claim by claim.
|
|
242
256
|
|
|
243
257
|
## 7. Do's and Don'ts
|
|
244
258
|
|
|
245
259
|
### Do
|
|
246
|
-
- Use
|
|
247
|
-
-
|
|
248
|
-
-
|
|
249
|
-
- Keep
|
|
250
|
-
- Use the system font stack -- Pretendard on web, system fonts on native
|
|
251
|
-
- Apply dark mode via semantic token remapping, not opacity tricks
|
|
252
|
-
- Maintain the 16px global gutter on all screen edges
|
|
260
|
+
- Use SEED Primary `#ff6f0f` for product-system work.
|
|
261
|
+
- Use the system font result unless a target product surface proves another first family.
|
|
262
|
+
- Follow each SEED component's documented states and accessibility behavior.
|
|
263
|
+
- Keep marketing `#ff6600` explicitly scoped to the observed public website.
|
|
253
264
|
|
|
254
265
|
### Don't
|
|
255
|
-
- Don't
|
|
256
|
-
- Don't
|
|
257
|
-
- Don't
|
|
258
|
-
- Don't
|
|
259
|
-
- Don't use pure black (`#000000`) for text -- use gray-1000 (`#1a1c20`) for warmth
|
|
260
|
-
- Don't mix palette tokens and semantic tokens in the same component
|
|
261
|
-
- Don't skip the `clamp()` wrapper on font sizes -- accessibility scaling is non-negotiable
|
|
266
|
+
- Don't relabel marketing `#ff6600` as SEED carrot-500.
|
|
267
|
+
- Don't treat a declared Pretendard face as proof of visible use.
|
|
268
|
+
- Don't reuse the retired 26px maximum; current SEED heading roles reach 48px.
|
|
269
|
+
- Don't invent marketplace cards, sheets, or native-app geometry from a marketing snapshot.
|
|
262
270
|
|
|
263
271
|
## 8. Responsive Behavior
|
|
264
272
|
|
|
265
|
-
###
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
| Desktop (Web) | >768px | Max-width 640px content, centered layout |
|
|
271
|
-
|
|
272
|
-
### Touch Targets
|
|
273
|
-
- Buttons: 52px (large), 40px (medium), 36px (small), 32px (xsmall)
|
|
274
|
-
- Tab bar items: 48px height with centered icon + label
|
|
275
|
-
- List items: minimum 56px row height
|
|
276
|
-
- Chips: 32px height minimum
|
|
277
|
-
|
|
278
|
-
### Collapsing Strategy
|
|
279
|
-
- Listing grid: 2-column → single column below 480px
|
|
280
|
-
- Bottom tab bar persists across all sizes
|
|
281
|
-
- Bottom CTA: sticky full-width button + safe area padding
|
|
282
|
-
- Image carousels: horizontal scroll with page indicators
|
|
283
|
-
|
|
284
|
-
### Image Behavior
|
|
285
|
-
- Listing thumbnails: 1:1 aspect ratio, 8px radius
|
|
286
|
-
- Profile avatars: circular (9999px), 36-48px diameter
|
|
287
|
-
- Full-width hero images: edge-to-edge, no radius
|
|
273
|
+
### Observed and documented behavior
|
|
274
|
+
- Public marketing controls render as compact 36px pills in the header and larger 40–48px CTAs deeper in the page.
|
|
275
|
+
- SEED Box Button documents five sizes and requires a 16px mobile edge inset.
|
|
276
|
+
- SEED Tabs supports `hug` and `fill`; fill is limited to five stable top-level items, while hug is recommended for six or more or variable categories.
|
|
277
|
+
- Text Field labels and descriptions may wrap; the input value itself remains one line and clips horizontally.
|
|
288
278
|
|
|
289
279
|
## 9. Agent Prompt Guide
|
|
290
280
|
|
|
291
281
|
### Quick Color Reference
|
|
292
|
-
- Primary
|
|
293
|
-
-
|
|
294
|
-
-
|
|
295
|
-
-
|
|
296
|
-
-
|
|
297
|
-
-
|
|
298
|
-
- Placeholder: Light Gray (`#b0b3ba`)
|
|
299
|
-
- Border: Soft Gray (`#dcdee3`)
|
|
300
|
-
- Disabled bg: Light Fill (`#f3f4f5`)
|
|
301
|
-
- Error: Red (`#fa342c`)
|
|
302
|
-
- Success: Green (`#079171`)
|
|
303
|
-
- Info: Blue (`#217cf9`)
|
|
304
|
-
- Focus ring: Blue (`#5e98fe`)
|
|
282
|
+
- Product Primary: `#ff6f0f`
|
|
283
|
+
- Product Hover / Pressed: `#ff9e66`
|
|
284
|
+
- Marketing CTA only: `#ff6600`
|
|
285
|
+
- Canvas: `#ffffff`; Background: `#f2f3f6`; Surface: `#f7f8fa`
|
|
286
|
+
- Foreground: `#212124`; Muted: `#868b94`; Hairline: `#eaebee`
|
|
287
|
+
- Danger: `#fa2314`; Accent: `#009ceb`; Success: `#1aa174`
|
|
305
288
|
|
|
306
289
|
### Example Component Prompts
|
|
307
|
-
- "
|
|
308
|
-
- "Build a
|
|
309
|
-
- "
|
|
310
|
-
- "Create a bottom sheet: white bg, 20px top-left/right radius, shadow 0px 4px 16px rgba(0,0,0,0.12). Handle: 36px wide, 4px height, #dcdee3, centered. Content: 16px h-padding."
|
|
311
|
-
- "Design a navigation bar: white bg, sticky top, 1px bottom border rgba(0,0,0,0.08). Centered title 16px weight 700, #1a1c20. Left: back arrow icon #1a1c20. Right: optional action icon. Height 56px."
|
|
290
|
+
- "Build a SEED primary action using semantic Primary `#ff6f0f`; use the Box Button's documented size and state contract rather than inventing geometry."
|
|
291
|
+
- "Build a Karrot marketing header CTA with observed `#ff6600`, white text, 14px/500 System type, 36px height, and full-pill radius."
|
|
292
|
+
- "Create a SEED text field with outlined and underlined variants, explicit label, error message, focused, readonly, required, invalid, and disabled states."
|
|
312
293
|
|
|
313
294
|
### Iteration Guide
|
|
314
|
-
1.
|
|
315
|
-
2.
|
|
316
|
-
3.
|
|
317
|
-
4.
|
|
318
|
-
5.
|
|
319
|
-
6. Mobile-first: design at 375px width, 16px gutter, then scale up
|
|
320
|
-
7. System font stack -- never embed a custom font for Karrot
|
|
295
|
+
1. Choose the target surface first: SEED product system or Karrot marketing web.
|
|
296
|
+
2. Keep `#ff6f0f` and `#ff6600` distinct.
|
|
297
|
+
3. Start with System typography; Pretendard remains a fallback until target-surface use is proved.
|
|
298
|
+
4. Use only the 4/8/12/16/64 spacing observations as canonical shared values.
|
|
299
|
+
5. Source component behavior from the current SEED page for that component.
|
|
321
300
|
|
|
322
301
|
---
|
|
323
302
|
|
|
@@ -369,15 +348,12 @@ What Karrot refuses: the anonymity of nationwide marketplaces (eBay, Coupang), t
|
|
|
369
348
|
|
|
370
349
|
## 13. Personas
|
|
371
350
|
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
**지우 (Jiwoo), 31, Seoul.** New mother in 망원동. Uses Karrot 3–4 times a week — mostly to sell outgrown baby gear and pick up a stroller from someone two blocks away. Expects the app to open on the local listings feed in <1s and remember her neighborhood without re-asking. Will walk 10 minutes for a good deal; won't drive 20.
|
|
351
|
+
These are official product and stakeholder contexts, not invented demographic personas.
|
|
375
352
|
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
**
|
|
379
|
-
|
|
380
|
-
**이선생님 (Mr. Lee), 58, Daegu.** Retired, primary Karrot user is his spouse who shares the account. Uses it for *동네생활* community posts ("who has a working lawnmower I can borrow") more than buying and selling. Trust in face-to-face transactions is his whole reason for tolerating an app at all.
|
|
353
|
+
- **A neighbor buying or selling nearby:** needs location, distance, conversation, and handoff expectations to stay visible without marketplace-style complexity.
|
|
354
|
+
- **A local resident sharing information or help:** needs plain community language and enough neighborhood context to judge relevance and trust.
|
|
355
|
+
- **A local business connecting with nearby customers:** needs technology translated into familiar, human communication rather than enterprise marketing language.
|
|
356
|
+
- **A person entering a new neighborhood:** needs recognizable local cues and low-pressure participation before the product asks for deeper commitment.
|
|
381
357
|
|
|
382
358
|
## 14. States
|
|
383
359
|
|
|
@@ -485,10 +461,10 @@ Interpretive claims (editorial, not documented Karrot statements):
|
|
|
485
461
|
|
|
486
462
|
---
|
|
487
463
|
|
|
488
|
-
**Verified:** 2026-
|
|
489
|
-
**Tier 1 sources:**
|
|
490
|
-
**Tier 2 sources:** styles.refero.design
|
|
464
|
+
**Verified:** 2026-07-11 (CAP0 evidence v1 + SEED v2 source reconciliation)
|
|
465
|
+
**Tier 1 sources:** https://www.karrotmarket.com/ (marketing live DOM); https://www.karrotmarket.com/about/ (second public surface); https://v2.seed-design.io/foundation/color/palette/ and https://v2.seed-design.io/foundation/typography/ (official SEED); https://github.com/daangn/seed-design/blob/fb4459e90f84e049112395964319b163f980b821/packages/stylesheet/global.css (official token source).
|
|
466
|
+
**Tier 2 sources:** https://getdesign.md/karrot and https://styles.refero.design/?q=Karrot were attempted; neither yielded an importable Karrot claim in this run.
|
|
491
467
|
**Tier 2 (Philosophy/founders):** Crunchbase (Karrot + Kim Jae-hyun + Kim Yong-hyun profiles), KED Global ($180M unicorn 2021), Korea Herald (Canada 2M), ZoomInfo (HQ Gangnam), KoreaTechDesk.
|
|
492
468
|
**Style ref:** `toss` (KR neighbor tone, retained).
|
|
493
|
-
**Conflicts unresolved:** none
|
|
494
|
-
|
|
469
|
+
**Conflicts unresolved:** none
|
|
470
|
+
**Resolved drift:** current SEED product Primary is `#ff6f0f`; current marketing-web CTA `#ff6600` is retained as a separate surface token. The prior 26px maximum and exact Pretendard/SF Mono claims were removed.
|