oh-my-design-cli 1.3.9 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/README.ja.md +8 -8
  2. package/README.ko.md +7 -7
  3. package/README.md +50 -16
  4. package/README.zh-TW.md +8 -8
  5. package/agents/omd-asset-curator.md +2 -7
  6. package/agents/omd-codex-image.md +49 -0
  7. package/agents/omd-designer-review.md +38 -0
  8. package/agents/omd-final-qa.md +40 -0
  9. package/agents/omd-kr-writer.md +35 -0
  10. package/agents/omd-locale-adapter.md +32 -0
  11. package/agents/omd-master.md +3 -13
  12. package/agents/omd-orchestrator.md +34 -0
  13. package/data/reference-audits/2026-05-14-kr10.md +72 -0
  14. package/data/reference-audits/2026-05-15-kr10.md +124 -0
  15. package/data/reference-fingerprints.json +253 -3
  16. package/data/research/2026-05-18-agent-landscape.md +69 -0
  17. package/data/research/2026-05-18-kr-style-presets.md +572 -0
  18. package/dist/bin/oh-my-design.js +6 -3
  19. package/dist/bin/oh-my-design.js.map +1 -1
  20. package/dist/{install-skills-MVXVXYAY.js → install-skills-IETT2TBJ.js} +91 -8
  21. package/dist/install-skills-IETT2TBJ.js.map +1 -0
  22. package/package.json +9 -3
  23. package/skills/omd-apply/SKILL.md +0 -1
  24. package/skills/omd-codex-image/SKILL.md +162 -0
  25. package/skills/omd-designer-review/SKILL.md +146 -0
  26. package/skills/omd-final-qa/SKILL.md +153 -0
  27. package/skills/omd-kr-writer/SKILL.md +229 -0
  28. package/skills/omd-locale-adapter/SKILL.md +124 -0
  29. package/skills/omd-orchestrator/SKILL.md +124 -0
  30. package/web/references/29cm/DESIGN.md +11 -2
  31. package/web/references/ably/DESIGN.md +12 -2
  32. package/web/references/airbnb/DESIGN.md +17 -2
  33. package/web/references/airtable/DESIGN.md +20 -0
  34. package/web/references/apple/DESIGN.md +17 -2
  35. package/web/references/baemin/DESIGN.md +11 -2
  36. package/web/references/banksalad/DESIGN.md +17 -2
  37. package/web/references/bmw/DESIGN.md +14 -0
  38. package/web/references/bunjang/DESIGN.md +308 -0
  39. package/web/references/cal/DESIGN.md +14 -0
  40. package/web/references/catchtable/DESIGN.md +262 -0
  41. package/web/references/channeltalk/DESIGN.md +374 -0
  42. package/web/references/classum/DESIGN.md +217 -0
  43. package/web/references/claude/DESIGN.md +11 -2
  44. package/web/references/clay/DESIGN.md +19 -0
  45. package/web/references/clickhouse/DESIGN.md +19 -0
  46. package/web/references/cohere/DESIGN.md +20 -0
  47. package/web/references/coinbase/DESIGN.md +14 -0
  48. package/web/references/composio/DESIGN.md +14 -0
  49. package/web/references/coupang/DESIGN.md +17 -2
  50. package/web/references/cursor/DESIGN.md +20 -0
  51. package/web/references/dabang/DESIGN.md +210 -0
  52. package/web/references/dcard/DESIGN.md +11 -2
  53. package/web/references/elevenlabs/DESIGN.md +20 -0
  54. package/web/references/expo/DESIGN.md +20 -0
  55. package/web/references/fastcampus/DESIGN.md +460 -0
  56. package/web/references/ferrari/DESIGN.md +14 -0
  57. package/web/references/figma/DESIGN.md +17 -2
  58. package/web/references/flex/DESIGN.md +309 -0
  59. package/web/references/framer/DESIGN.md +20 -0
  60. package/web/references/freee/DESIGN.md +16 -2
  61. package/web/references/gangnamunni/DESIGN.md +18 -2
  62. package/web/references/gmarket/DESIGN.md +464 -0
  63. package/web/references/hashicorp/DESIGN.md +19 -0
  64. package/web/references/ibm/DESIGN.md +20 -0
  65. package/web/references/inflearn/DESIGN.md +396 -0
  66. package/web/references/intercom/DESIGN.md +14 -0
  67. package/web/references/jumpit/DESIGN.md +366 -0
  68. package/web/references/kakao/DESIGN.md +14 -0
  69. package/web/references/kakaobank/DESIGN.md +17 -2
  70. package/web/references/kakaopay/DESIGN.md +17 -2
  71. package/web/references/karrot/DESIGN.md +16 -2
  72. package/web/references/kbank/DESIGN.md +195 -0
  73. package/web/references/kraken/DESIGN.md +14 -0
  74. package/web/references/krds/DESIGN.md +17 -2
  75. package/web/references/kream/DESIGN.md +382 -0
  76. package/web/references/kurly/DESIGN.md +11 -2
  77. package/web/references/lamborghini/DESIGN.md +14 -0
  78. package/web/references/line/DESIGN.md +17 -2
  79. package/web/references/linear.app/DESIGN.md +17 -2
  80. package/web/references/lovable/DESIGN.md +14 -0
  81. package/web/references/lunit/DESIGN.md +249 -0
  82. package/web/references/mercari/DESIGN.md +11 -2
  83. package/web/references/minimax/DESIGN.md +14 -0
  84. package/web/references/mintlify/DESIGN.md +14 -0
  85. package/web/references/miro/DESIGN.md +20 -0
  86. package/web/references/mistral.ai/DESIGN.md +20 -0
  87. package/web/references/mongodb/DESIGN.md +19 -0
  88. package/web/references/musinsa/DESIGN.md +11 -2
  89. package/web/references/naver/DESIGN.md +17 -2
  90. package/web/references/notion/DESIGN.md +11 -2
  91. package/web/references/nvidia/DESIGN.md +11 -2
  92. package/web/references/ohouse/DESIGN.md +11 -2
  93. package/web/references/oliveyoung/DESIGN.md +342 -0
  94. package/web/references/ollama/DESIGN.md +14 -0
  95. package/web/references/opencode.ai/DESIGN.md +20 -0
  96. package/web/references/pinkoi/DESIGN.md +11 -2
  97. package/web/references/pinterest/DESIGN.md +19 -0
  98. package/web/references/posthog/DESIGN.md +20 -0
  99. package/web/references/qanda/DESIGN.md +11 -2
  100. package/web/references/raycast/DESIGN.md +19 -0
  101. package/web/references/remember/DESIGN.md +17 -2
  102. package/web/references/renault/DESIGN.md +14 -0
  103. package/web/references/replicate/DESIGN.md +14 -0
  104. package/web/references/resend/DESIGN.md +20 -0
  105. package/web/references/revolut/DESIGN.md +14 -0
  106. package/web/references/ridi/DESIGN.md +11 -2
  107. package/web/references/runwayml/DESIGN.md +14 -0
  108. package/web/references/sanity/DESIGN.md +20 -0
  109. package/web/references/sentry/DESIGN.md +14 -0
  110. package/web/references/socar/DESIGN.md +17 -2
  111. package/web/references/spacex/DESIGN.md +11 -2
  112. package/web/references/spotify/DESIGN.md +14 -0
  113. package/web/references/stripe/DESIGN.md +11 -2
  114. package/web/references/supabase/DESIGN.md +20 -0
  115. package/web/references/superhuman/DESIGN.md +20 -0
  116. package/web/references/tesla/DESIGN.md +11 -2
  117. package/web/references/together.ai/DESIGN.md +20 -0
  118. package/web/references/toss/DESIGN.md +16 -2
  119. package/web/references/toss-securities/DESIGN.md +193 -0
  120. package/web/references/tving/DESIGN.md +259 -0
  121. package/web/references/uber/DESIGN.md +19 -0
  122. package/web/references/upbit/DESIGN.md +276 -0
  123. package/web/references/upstage/DESIGN.md +214 -0
  124. package/web/references/vercel/DESIGN.md +17 -2
  125. package/web/references/voltagent/DESIGN.md +14 -0
  126. package/web/references/wadiz/DESIGN.md +344 -0
  127. package/web/references/wanted/DESIGN.md +16 -2
  128. package/web/references/warp/DESIGN.md +14 -0
  129. package/web/references/webflow/DESIGN.md +14 -0
  130. package/web/references/wise/DESIGN.md +19 -0
  131. package/web/references/x.ai/DESIGN.md +14 -0
  132. package/web/references/yanolja/DESIGN.md +17 -2
  133. package/web/references/yeogiotte/DESIGN.md +18 -2
  134. package/web/references/zapier/DESIGN.md +20 -0
  135. package/web/references/zigbang/DESIGN.md +12 -2
  136. package/web/references/zigzag/DESIGN.md +17 -2
  137. package/agents/omd-3d-blender.md +0 -269
  138. package/dist/install-skills-MVXVXYAY.js.map +0 -1
@@ -1,6 +1,21 @@
1
1
  ---
2
- omd: 0.1
3
- brand: Airbnb
2
+ id: airbnb
3
+ name: Airbnb
4
+ country: US
5
+ category: consumer-tech
6
+ homepage: "https://www.airbnb.com"
7
+ primary_color: "#ff5a5f"
8
+ logo:
9
+ type: simpleicons
10
+ slug: airbnb
11
+ verified: "2026-05-15"
12
+ omd: "0.1"
13
+ ds:
14
+ name: Airbnb Brand Hub
15
+ url: "https://brand.withairbnb.com"
16
+ type: brand
17
+ description: Airbnb's brand guidelines hub with logo, color, and visual identity rules.
18
+ og_image: "https://firebasestorage.googleapis.com/v0/b/standards-site-beta.appspot.com/o/documents%2Fa130cd31136%2F099b28f7432%2Fmeta%2Fstandards---project-thumbnail.png?alt=media&token=b1ee4a9a-cb2a-4dd9-ae43-01dd309d6f17"
4
19
  ---
5
20
 
6
21
  # Design System Inspiration of Airbnb
@@ -1,3 +1,23 @@
1
+ ---
2
+ id: airtable
3
+ name: Airtable
4
+ country: US
5
+ category: design-tools
6
+ homepage: "https://www.airtable.com"
7
+ primary_color: "#fcb400"
8
+ logo:
9
+ type: simpleicons
10
+ slug: airtable
11
+ verified: "2026-05-15"
12
+ omd: "0.1"
13
+ ds:
14
+ name: Airtable Trademark Guidelines
15
+ url: "https://www.airtable.com/company/trademark-guidelines"
16
+ type: brand
17
+ description: Airtable's trademark usage and brand guidelines.
18
+ og_image: "https://www.airtable.com/images/airtable-seo.jpg"
19
+ ---
20
+
1
21
  # Design System Inspiration of Airtable
2
22
 
3
23
  ## 1. Visual Theme & Atmosphere
@@ -1,6 +1,21 @@
1
1
  ---
2
- omd: 0.1
3
- brand: Apple
2
+ id: apple
3
+ name: Apple
4
+ country: US
5
+ category: consumer-tech
6
+ homepage: "https://www.apple.com"
7
+ primary_color: "#000000"
8
+ logo:
9
+ type: simpleicons
10
+ slug: apple
11
+ verified: "2026-05-15"
12
+ omd: "0.1"
13
+ ds:
14
+ name: Human Interface Guidelines
15
+ url: "https://developer.apple.com/design/human-interface-guidelines"
16
+ type: system
17
+ description: Apple's official design guidelines for iOS, macOS, watchOS, and visionOS.
18
+ og_image: "https://docs.developer.apple.com/tutorials/developer-og.jpg"
4
19
  ---
5
20
 
6
21
  # Design System Inspiration of Apple
@@ -1,6 +1,15 @@
1
1
  ---
2
- omd: 0.1
3
- brand: Baemin
2
+ id: baemin
3
+ name: Baemin
4
+ country: KR
5
+ category: consumer-tech
6
+ homepage: "https://www.baemin.com"
7
+ primary_color: "#2ac1bc"
8
+ logo:
9
+ type: favicon
10
+ slug: "https://www.baemin.com/favicon.ico"
11
+ verified: "2026-05-15"
12
+ omd: "0.1"
4
13
  ---
5
14
 
6
15
  # Design System Inspiration of Baemin (배달의민족)
@@ -1,6 +1,21 @@
1
1
  ---
2
- omd: 0.1
3
- brand: Banksalad
2
+ id: banksalad
3
+ name: Banksalad
4
+ country: KR
5
+ category: fintech
6
+ homepage: "https://www.banksalad.com"
7
+ primary_color: "#04c584"
8
+ logo:
9
+ type: favicon
10
+ slug: "https://www.google.com/s2/favicons?domain=banksalad.com&sz=256"
11
+ verified: "2026-05-15"
12
+ omd: "0.1"
13
+ ds:
14
+ name: Banksalad GitHub
15
+ url: "https://github.com/banksalad"
16
+ type: brand
17
+ description: Banksalad's public GitHub org including styleguide repos and BPL (Banksalad Product Library) reference material.
18
+ og_image: "https://avatars.githubusercontent.com/u/71009899?s=280&v=4"
4
19
  ---
5
20
 
6
21
  # Design System Inspiration of Banksalad
@@ -1,3 +1,17 @@
1
+ ---
2
+ id: bmw
3
+ name: BMW
4
+ country: DE
5
+ category: automotive
6
+ homepage: "https://www.bmw.com"
7
+ primary_color: "#0066b1"
8
+ logo:
9
+ type: simpleicons
10
+ slug: bmw
11
+ verified: "2026-05-15"
12
+ omd: "0.1"
13
+ ---
14
+
1
15
  # Design System Inspiration of BMW
2
16
 
3
17
  ## 1. Visual Theme & Atmosphere
@@ -0,0 +1,308 @@
1
+ ---
2
+ id: bunjang
3
+ name: Bunjang
4
+ display_name_kr: 번개장터
5
+ country: KR
6
+ category: ecommerce
7
+ homepage: "https://m.bunjang.co.kr"
8
+ primary_color: "#d80c18"
9
+ logo:
10
+ type: favicon
11
+ slug: "https://www.google.com/s2/favicons?domain=bunjang.co.kr&sz=256"
12
+ verified: "2026-05-14"
13
+ omd: "0.1"
14
+ ---
15
+
16
+ # Design System Inspiration of Bunjang (번개장터)
17
+
18
+ ## 1. Visual Theme & Atmosphere
19
+
20
+ Bunjang is what happens when Korea's first generation of mobile flea-market sellers — high-school sneakerheads, K-pop merch traders, used-iPhone flippers — grow up and demand an interface that respects their hustle. The home screen is a near-monochrome canvas: pure white (`#ffffff`) underneath, near-black text (`#191919`), and a single accent — **Bunjang Red** (`#d80c18`) — used so sparingly that when it appears, it lands. There is no gradient sweep, no shadow ladder, no marketing flourish. Depth is signaled by 1px gray-100 (`#e5e5e5`) borders and the occasional gray-50 (`#f6f6f6`) tint behind the footer or as a placeholder for an image that hasn't loaded yet. The aesthetic is **trader-tool sober** — adjacent to Karrot's warm-orange neighborliness, but Bunjang is less "친근한 동네 이웃" and more "거래 정확하게 끝내자."
21
+
22
+ The atomic unit is the **portrait product card** — a 81:100 vertical thumbnail (the brand has formalized this with `--bun-ui-aspect-ratio-vertical: 81 / 100`), price in 16px/700, title in 14px/500 gray-600, a single meta row in 12px/500 gray-300 ("19시간 전 · 지역 · 찜 N"), and a top-right heart button outlined against the photo with a 10% inner glow so it stays legible no matter what photo the seller uploaded. Cards stack 2-up on mobile, 4-up on desktop, and they go on, and on, and on — because Bunjang's defining promise is that *the next listing you scroll to could be exactly the thing you've been searching for at the price you've been waiting for.*
23
+
24
+ Pretendard Variable carries 100% of UI text. There is no display face, no custom logotype anywhere outside the rounded-square app icon. The brand voice rides entirely on Pretendard's weight axis — 400 for body, 500 for secondary, 700 for price. The "Bun UI" internal design system (private; CSS custom-property prefix `--bun-ui-*` visible in production) provides the radius, aspect-ratio, z-index, and safe-area tokens; the rest is `--color-*` semantic ladders.
25
+
26
+ **Key Characteristics:**
27
+ - **Bunjang Red** (`#d80c18`) as a *scarcity asset* — exclusively reserved for the single highest-intent CTA on a surface (e.g. "앱 다운로드", "번개장터 앱으로 시작하기")
28
+ - 81:100 portrait thumbnail as the canonical product photo (phones, sneakers, K-pop goods photograph taller than they are wide)
29
+ - Pretendard Variable as the only typeface — three weights (400/500/700), no italics
30
+ - No box-shadow anywhere in sampled production code — depth is borders + tints, not elevation
31
+ - Two-tier card economics: basic card vs. service-tagged card (`안전결제` escrow chip, `감정완료` luxury-auth chip, `내폰시세` price-verified chip)
32
+ - Mobile-first at 390px baseline — `m.bunjang.co.kr` is the canonical web surface; desktop is a courtesy
33
+ - Korean text dominates; the system stack handles incidental Latin (prices use Hindu-Arabic numerals + "원" suffix)
34
+ - Bottom of the home page is always an app-install rail — web is a discovery funnel, the app is the trade venue
35
+
36
+ ## 2. Color Palette & Roles
37
+
38
+ All colors below were extracted from production `:root` CSS custom properties (`getComputedStyle(document.documentElement)`) on 2026-05-14. Token names preserve Bunjang's own naming.
39
+
40
+ ### Primary
41
+ - **Bunjang Red** (`#d80c18`) — `--color-primary` / `--color-red-500`. The single brand accent. Used on `_variant-primary` buttons only. Pressed-state would darken toward `#c00b15` (interpolated; not directly observed in computed styles since no hover state was captured).
42
+ - **Pure White** (`#ffffff`) — `--color-white`. Page background, card surface, primary CTA text color.
43
+ - **Gray-900** (`#191919`) — `--color-gray-900`. Primary text. Used on body, all headings, prices.
44
+
45
+ ### Neutral Scale
46
+ The gray ladder is unusually granular — 11 stops. This is the spine of Bunjang's depth system.
47
+ - `--color-gray-900` `#191919` — primary text
48
+ - `--color-gray-800` `#333333` — strong secondary text
49
+ - `--color-gray-700` `#4c4c4c` — secondary button text
50
+ - `--color-gray-600` `#666666` — product card title, footer text
51
+ - `--color-gray-500` `#7f7f7f` — tertiary text
52
+ - `--color-gray-400` `#8c8c8c` — icon-only buttons, banner-close ×
53
+ - `--color-gray-300` `#999999` — meta / timestamp / "19시간 전"
54
+ - `--color-gray-200` `#b2b2b2` — disabled-ish placeholder text
55
+ - `--color-gray-150` `#cccccc` — strong dividers
56
+ - `--color-gray-100` `#e5e5e5` — secondary button border, light dividers
57
+ - `--color-gray-70` `#f0f0f0` — subtle row hover / pressed bg
58
+ - `--color-gray-50` `#f6f6f6` — footer surface, image placeholder bg (also aliased as `--color-gray`)
59
+ - `--color-gray-10` `#fafafa` — barely-tinted section divider
60
+
61
+ ### Semantic Tiers (4-stop ladders)
62
+ - **Red** — `--color-red-{50: #fdf3f3, 100: #fbe7e8, 400: #f5c2c5, 500: #d80c18}` — error / destructive / primary share the 500
63
+ - **Green** — `--color-green-{50: #edf9f7, 100: #dbf2ee, 400: #a6dfd5, 500: #00a587}` — success / available / verified-OK (note: a teal-leaning green, not a Korean-marketplace stoplight green)
64
+ - **Blue** — `--color-blue-{50: #ebf5ff, 100: #d9ebff, 400: #b3d7ff, 500: #027aff}` — informational link / verified info (e.g. `내폰시세` price-check confirmed)
65
+ - **Yellow** — `--color-yellow-{50: #fffbed, 100: #fff6db, 400: #ffeaa6, 500: #ffc200}` — warning / highlight
66
+
67
+ ### Specialty Tiers (Bunjang's distinctive contribution)
68
+ These two ladders don't appear in generic DS palettes — they map to Bunjang's escrow + luxury-authentication services.
69
+ - **Care** — `--color-care-{50: #FDF4E2, 100: #F8ECD3, 300: #F6E5C3, 500: #FFE1A6}` — warm amber / cream, used on the `감정완료` (authentication-complete) badge family for luxury items (watches, bags, K-pop signed goods). It's the color of "this thing is worth careful handling."
70
+ - **Safe** — `--color-safe-{50: #EFF2FE, 100: #E1E7FE, 300: #7775E3, 400: #6458E2, 500: #5558A8}` — a cool indigo / blue-violet ladder used on `안전결제` (escrow) chips. Distinct from informational blue — it specifically signals "Bunjang holds the money until both parties confirm."
71
+
72
+ ### Partner Brand Colors (social login only)
73
+ - `--color-brand-kakao` `#fae100` + `--color-brand-kakao-2` `#3c1e1e` (KakaoTalk yellow + dark text)
74
+ - `--color-brand-naver` `#03cf5d`
75
+ - `--color-brand-facebook` `#1877f2` (+ gradient variant `#00B2FF → #006AFF`)
76
+ - `--color-brand-twitter` `#1da1f2`
77
+ - `--color-brand-line` `#00b900`
78
+ - `--color-brand-band` `#21c531`
79
+ - `--color-brand-apple` `#000000`
80
+
81
+ These are NOT brand-extension colors — they are partner-correct fills for federated login buttons only. Never reuse them in Bunjang chrome.
82
+
83
+ ## 3. Typography
84
+
85
+ One family. Three weights. No exceptions.
86
+
87
+ - **Family:** Pretendard Variable, fallback `sans-serif`. Self-hosted from a Bunjang CDN. Verified across 211/211 sampled DOM nodes — there is no second typeface anywhere in the production tree.
88
+ - **Weights:** 400 (regular), 500 (medium), 700 (bold). No 600 stop observed; the visual hierarchy jumps directly from 500 to 700, which is why prices feel as urgent as they do — they're not just "a little heavier," they're *significantly* heavier.
89
+
90
+ ### Observed scale (mobile)
91
+ | Size | Weight | Role | Color |
92
+ |---|---|---|---|
93
+ | 20px | 700 | Section title ("오늘의 추천 아이템") | gray-900 |
94
+ | 18px | 700 | Subsection title / large emphasis | gray-900 |
95
+ | 16px | 400 | Default body, CTA label | gray-900 / white-on-red |
96
+ | 16px | 700 | **Price** | gray-900 |
97
+ | 15px | 500 | Search input value + placeholder | gray-900 |
98
+ | 14px | 500 | Product card title | gray-600 (`#666`) |
99
+ | 13px | 700 | Compact emphasized chip | varies |
100
+ | 12px | 500 | Meta / timestamp / region | gray-300 (`#999`) |
101
+
102
+ Line-height is `normal` (browser default) for almost every node — Bunjang relies on padding and explicit gap, not line-height, for vertical rhythm. The single exception observed: the search input forces `line-height: 18px` to align caret height across browsers.
103
+
104
+ Letter-spacing is `normal` everywhere. Hangul stems are never tightened.
105
+
106
+ ## 4. Iconography & Imagery
107
+
108
+ - **Logo:** A 100×100 rounded-square app icon (radius 22px) with a stylized lightning-bolt mark inside a gradient field. The web wordmark sits next to it in Pretendard 700. The logo icon SVG is served from `https://static.bunjang.co.kr/web/ui/logo-icon.svg`.
109
+ - **System icons:** Inline SVG, 20×20 default, fill via `path[fill]` attribute (not CSS) — fill `#191919` for foreground, `#8c8c8c` for muted (close ×, secondary nav).
110
+ - **Heart (찜) button:** outlined SVG with a 10% black-fill inner shape underneath, so the white outline reads against any thumbnail. Tapped state: solid red fill (`--color-red-500`).
111
+ - **Product thumbnails:** `loading="lazy"`, served from `media.bunjang.co.kr` with a `?crop=` parameter (e.g. `media.bunjang.co.kr/product/{id}_1_{ts}_w1200.jpg?crop=0`). Aspect ratio forced to 81/100 via inline `--aspectRatioVar__1nf1jaf0: var(--bun-ui-aspect-ratio-vertical)`.
112
+ - **Photo aesthetic:** seller-uploaded, unedited, often well-lit-but-amateur. The platform does not impose a photography style — Bunjang's identity comes from *containing* heterogeneous photos consistently, not from prescribing what they look like.
113
+ - **No illustrations** observed in the home-page surface. No mascot. No empty-state cartoons in sampled nodes.
114
+
115
+ ## 5. Spacing, Radius & Elevation
116
+
117
+ ### Radius
118
+ - `4px` — small chip / banner CTA (XS variant: "앱 다운로드")
119
+ - `6px` — primary CTA, secondary CTA, thumbnail container (`--radiusVar__1j9duj80: 6px`)
120
+ - `20px` — soft large chip
121
+ - `999px` — circular icon button, pill counter chip, heart button hit area
122
+ - Token: `--bun-ui-radius-pill: 999px`
123
+
124
+ ### Spacing
125
+ Bunjang does not expose a numeric spacing scale via CSS variable. Observed padding patterns:
126
+ - CTA button padding: `12px 20px` (medium), `8px 12px` (XS), `16px 20px` (XL/full-width)
127
+ - Footer padding: `20px 132px 40px` desktop, tighter on mobile
128
+ - Section vertical rhythm: ~24-32px between sections
129
+ - Card grid gap: ~12-16px
130
+
131
+ ### Elevation
132
+ **There is no box-shadow on any sampled element.** Depth comes from:
133
+ 1. A 1px solid `#e5e5e5` border (secondary buttons, dividers)
134
+ 2. A `#f6f6f6` background tint (footer surface, image placeholders)
135
+ 3. A 10% black inner-fill on overlay icons (heart button against bright thumbnails)
136
+ 4. A `rgba(0,0,0,0.3)` semi-transparent bubble for overlay chips (carousel counter "1 / 10")
137
+
138
+ This is a deliberate choice. Bunjang treats every surface as a *transparent ledger* — you can see what's there, you can see how it's edged, but nothing floats. The product is the photograph; the chrome shouldn't compete for elevation.
139
+
140
+ ## 6. Layout & Grid
141
+
142
+ - Page max-width tokens: `--layout-width-xsmall: 480px` / `--layout-width-small: 640px` / `--layout-width-large: 1240px` / `--layout-width-full: 100vw`
143
+ - Canonical viewport: **390px mobile** (m.bunjang.co.kr is mobile-first; desktop centers content within 1240px with generous side gutters)
144
+ - Drawer width: `--drawer-width: 480px` (used for category drawer, filter sheet)
145
+ - Product grid: 2-col mobile / 4-col desktop, card gap ~12-16px
146
+ - iOS safe-area: `--bun-ui-sat`, `--bun-ui-sab`, `--bun-ui-sal`, `--bun-ui-sar` (top/bottom/left/right inset variables; populate at runtime on iPhone)
147
+
148
+ ## 7. z-index Tokens
149
+
150
+ Bunjang ships explicit named z-index tokens — a sign of an internal DS that's gone through stacking-context disputes:
151
+ - `--z-index-sticky: 100`
152
+ - `--z-index-footer: 100`
153
+ - `--z-index-header: 200`
154
+ - `--z-index-widget: 500`
155
+ - `--z-index-drawer-dim: 900`
156
+ - `--z-index-drawer: 1000`
157
+ - `--z-index-popup-dim: 1100`
158
+ - `--z-index-popup: 1200`
159
+ - `--z-index-snackbar: 1500`
160
+
161
+ Snackbar (transient toast) sits on top of everything — confirms Bunjang's preference for transient, non-blocking feedback over modal interruption.
162
+
163
+ ## 8. Components — atomic anatomy
164
+
165
+ ### Button (Bun UI `_button_1cw4e_1`)
166
+ Three variants × four sizes observed in class names: `_variant-{normal|primary|…}` × `_size-{XS|M|XL}` × `_full`.
167
+
168
+ | variant | bg | text | border | radius | size XS pad | size M pad | size XL pad |
169
+ |---|---|---|---|---|---|---|---|
170
+ | primary | `#d80c18` | `#ffffff` | none | 4-6px | `8 12` | — | `16 20` |
171
+ | normal (secondary) | `#ffffff` | `#4c4c4c` | `1px solid #e5e5e5` | 6px | — | `12 20` | — |
172
+
173
+ ### Search input (Bun UI `_input_au7f1_17`)
174
+ - Pretendard Variable, 15px / 500 / `#191919`
175
+ - Line-height: 18px (explicit override for caret alignment)
176
+ - Transparent background — the rounded pill container behind it carries the visual chrome
177
+ - Placeholder: "검색" (or contextual)
178
+
179
+ ### Product Card (Bun UI `_container_15rjm_1`)
180
+ ```
181
+ ┌─────────────────┐ ← Thumbnail
182
+ │ │ aspect-ratio: 81 / 100
183
+ │ [img] ♡│ border-radius: 6px
184
+ │ │ bg #f6f6f6 (placeholder)
185
+ │ │ heart absolute top-right, 40×40 hit
186
+ └─────────────────┘ SVG fill=none stroke=#fff + 10% black inner glow
187
+ 600,000원 ← Price: 16px / 700 / #191919
188
+ 맥북에어 m1 2020... ← Title: 14px / 500 / #666 (1-2 lines)
189
+ 19시간 전 · 강남 · 찜2 ← Meta: 12px / 500 / #999
190
+ ```
191
+
192
+ Card variants add a single small chip (4-6px radius) above the title row:
193
+ - `안전결제` — `--color-safe-*` ladder, indigo
194
+ - `감정완료` — `--color-care-*` ladder, warm amber
195
+ - `내폰시세` — `--color-blue-*` ladder, info blue
196
+
197
+ ### Header
198
+ - Hamburger (left) — 20×20 icon button
199
+ - Logo wordmark (clickable, /)
200
+ - Search input (center, flex-grow)
201
+ - Right cluster: notification bell, wishlist heart, login button or avatar
202
+ - Sticky at z-index 200
203
+
204
+ ### App-Download Top Banner
205
+ - Sticky above header at z-index 100 (footer/sticky tier)
206
+ - Logo icon 32×32 + body copy + primary CTA chip + close ×
207
+ - Dismissible (close × on right)
208
+
209
+ ## 9. Microcopy & Voice (analysis-only — do not transplant phrases verbatim)
210
+
211
+ Bunjang's voice on the home surface is **direct, fast, lower-case-energy even when written in Korean.** Sentences default to plain `~해요/세요` register without exclamation marks. The brand does NOT shout.
212
+
213
+ Observed patterns:
214
+ - CTAs use verbs over nouns: "앱 다운로드" not "앱 다운로드 페이지로"
215
+ - App-install nudges acknowledge the user's autonomy: the banner copy frames the app as a *better* path, not the only path
216
+ - Product cards never editorialize the listing — no "🔥 인기!" "마지막 1개!" — the only emphasis comes from typography weight on the price
217
+ - Time stamps are conversational ("19시간 전") not absolute ("2026-05-13 22:14")
218
+ - Region is abbreviated to the smallest disambiguating unit ("강남" not "서울특별시 강남구")
219
+
220
+ **Voice principles when you write Bunjang-tier copy:**
221
+ 1. **Verb-first, present-tense.** Push the next action; don't describe the current state.
222
+ 2. **No urgency manufacturing.** Bunjang trusts that scarcity is already real — there are 6 million listings and the user knows it.
223
+ 3. **Specificity over enthusiasm.** "오늘 19시간 전 등록" beats "방금 막!"
224
+ 4. **The price is the headline.** Never write a marketing line above a price; let the price be loud and let the title be quiet.
225
+ 5. **Respect the trader.** Both buyer and seller are users — never copy that flatters one side at the other's expense.
226
+
227
+ ## 10. Patterns & Anti-Patterns
228
+
229
+ ### Patterns this DS encodes
230
+ - **Restraint of red.** A single hex (`#d80c18`) marks one action per surface. Red is a finite resource; spending it on everything makes it worth nothing.
231
+ - **Portrait product photography.** 81:100 is non-negotiable — designers crop, not photographers re-shoot.
232
+ - **Borders, not shadows.** Every depth signal is a 1px gray-100 line or a gray-50 fill.
233
+ - **Typography as hierarchy.** No need for color emphasis on the price when 16px/700 vs. 14px/500 already does the work.
234
+ - **Service tiers are colorways.** Safe = indigo; Care = warm amber; Verified = info blue. Each chip teaches the user the brand's product taxonomy without copy.
235
+
236
+ ### Anti-patterns to refuse
237
+ - ❌ Red used for secondary or tertiary actions (drains the primary).
238
+ - ❌ Square or square-ish thumbnails on product cards (breaks the 81:100 vertical convention and makes phones / sneakers look stunted).
239
+ - ❌ Box-shadow on cards or buttons (introduces an elevation language the rest of the system rejects).
240
+ - ❌ Mixing Noto Sans KR, Apple SD Gothic Neo, or a display face — Pretendard Variable is the contract.
241
+ - ❌ Heart icon without the 10% black inner glow — it disappears on bright photos.
242
+ - ❌ Manufactured urgency copy ("마지막 1개!", "지금 바로!"). The platform's depth IS the urgency.
243
+ - ❌ Modal interruptions where a snackbar would do (z-index 1500 is meant for non-blocking confirmation, not consent gates).
244
+
245
+ ## 11. Brand Voice Summary
246
+
247
+ If Karrot is your warm neighbor who'll meet you at the playground after work, Bunjang is the high-volume trader at the next desk who already has the link, the price, and the timestamp — and who will absolutely close the deal before lunch. Both serve the same market; they serve it from completely different temperaments.
248
+
249
+ Bunjang's interface earns trust by being *unsentimental about its job*. White canvas, monochrome type, one red button. The promise is not warmth — it's **velocity and price discovery**. Six million listings, sort by lowest, scroll until you find it. The internal DS (`bun-ui`) is the rails; the marketplace is the freight.
250
+
251
+ ## 12. When to draw inspiration from Bunjang
252
+
253
+ Use this reference for:
254
+ - C2C / P2P marketplaces where listing volume is the value proposition
255
+ - Surfaces where the user's primary mode is **scanning many similar items** (resale, classifieds, vertical commerce)
256
+ - Brands that need to feel **trustworthy without being formal** — escrow / payments / verification services that prove credibility through small color-coded chips rather than long copy
257
+ - Mobile-first Korean (or East-Asian) audiences who expect Pretendard-grade type rendering and won't accept laggy infinite scroll
258
+ - Products where **one CTA per surface** is the right discipline (vs. dashboards with five competing primaries)
259
+
260
+ Do NOT use this reference for:
261
+ - Premium / luxury brands where shadows, gradients, and curated photography are the value
262
+ - Editorial commerce where the photo deserves a 4:5 or 1:1 art-directed frame
263
+ - B2B SaaS where information density and table-rendering trump scrollable feeds
264
+
265
+ ---
266
+
267
+ ## Verification footer
268
+
269
+ **Verified:** 2026-05-14
270
+ **Verifier:** omd:add-reference live capture
271
+ **URL:** https://m.bunjang.co.kr/
272
+
273
+ ### Tier 1 — Live inspection (PASS)
274
+ - Chrome DevTools Protocol over `:9222` (websocket, `suppress_origin=True` to bypass `--remote-allow-origins` block)
275
+ - Two viewport captures: desktop 1280×713 dpr=2 + mobile-emulated 390×844 dpr=3 (iPhone UA)
276
+ - 73 CSS custom properties extracted from `:root` via `getComputedStyle(document.documentElement)`
277
+ - 211 DOM nodes sampled across header / nav / cards / buttons / footer / price / heart / meta
278
+ - 9 raw_samples preserved in `assets/_reference/.live-inspect-proof.json`
279
+ - Logo SVG archived in `assets/_reference/logo-icon.svg`
280
+
281
+ ### Tier 1 — Official published DS (NEGATIVE — documented)
282
+ Attempted lookups (all 2026-05-14):
283
+ - `https://design.bunjang.co.kr/` → DNS no-resolve (000)
284
+ - `https://bun-ui.bunjang.co.kr/` → DNS no-resolve (000)
285
+ - `https://tech.bunjang.co.kr/` → DNS no-resolve (000)
286
+ - `https://brand.bunjang.co.kr/` → DNS no-resolve (000)
287
+ - `https://company.bunjang.co.kr/` → DNS no-resolve (000)
288
+ - `https://blog.bunjang.co.kr/` → DNS no-resolve (000)
289
+ - `https://medium.com/bunjang-tech/` → 404
290
+ - `https://github.com/bunjang` → 200 but **org has no public repos / members / packages**
291
+ - `https://www.npmjs.com/package/@bunjang/bun-ui` → 403 (package does not exist on public npm)
292
+
293
+ **Conclusion:** Bunjang operates a real, mature internal design system branded **"Bun UI"** (proven by `--bun-ui-*` CSS-variable prefix, vanilla-extract class-name patterns `Box__7nn0kn17`, `Flex__wsrgth3`, `Typography_typography__1wr8iu13`, and explicit z-index/radius/aspect-ratio token families). However, as of the verification date there is **no public Storybook, no public npm package, no published documentation site, and no public GitHub presence**. The DS exists; the public artifacts do not.
294
+
295
+ ### Tier 2 — 3rd-party indexes (NEGATIVE)
296
+ - `https://getdesign.md/bunjang` → "No designs found for 'bunjang'"
297
+ - `https://styles.refero.design/?q=bunjang` → no entry
298
+
299
+ Consistent with the KR-10 systemic finding (2026-05-13 audit): English-tooling-oriented DS directories have weak Korean coverage.
300
+
301
+ ### Tier 3 — Reconciliation
302
+ This DESIGN.md reconciles Tier 1 live capture as the sole authoritative source. Token names, hex values, type scale, radius scale, z-index scale, aspect-ratio tokens, and semantic palette ladders are all taken verbatim from production CSS custom properties. Component anatomy and microcopy patterns are observed from rendered DOM and live text, then re-described in our own analytical voice — **no taglines or copy are transplanted verbatim**. Brand red, gray ladder, and Bun UI primitives are documented as a *reference* for downstream design work, not for re-use of brand assets.
303
+
304
+ ### IP / asset guardrails
305
+ - Logo SVG is archived in `assets/_reference/` for verification of capture fidelity only — **not for downstream use** in derivative products
306
+ - No taglines, no marketing copy, no product-listing text is reproduced verbatim
307
+ - Brand color names ("Bunjang Red"), service-feature names ("안전결제", "감정완료", "내폰시세") are used descriptively for accurate documentation — they are not appropriated as product names
308
+ - Voice analysis in §9 describes patterns observed in production; the practical guidance is original interpretation
@@ -1,3 +1,17 @@
1
+ ---
2
+ id: cal
3
+ name: Cal.com
4
+ country: US
5
+ category: productivity
6
+ homepage: "https://cal.com"
7
+ primary_color: "#111827"
8
+ logo:
9
+ type: simpleicons
10
+ slug: caldotcom
11
+ verified: "2026-05-15"
12
+ omd: "0.1"
13
+ ---
14
+
1
15
  # Design System Inspiration of Cal.com
2
16
 
3
17
  ## 1. Visual Theme & Atmosphere