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 "거래 정확하게 끝내자."
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.
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.
Key Characteristics:
#d80c18) as a scarcity asset — exclusively reserved for the single highest-intent CTA on a surface (e.g. "앱 다운로드", "번개장터 앱으로 시작하기")안전결제 escrow chip, 감정완료 luxury-auth chip, 내폰시세 price-verified chip)m.bunjang.co.kr is the canonical web surface; desktop is a courtesyAll colors below were extracted from production :root CSS custom properties (getComputedStyle(document.documentElement)) on 2026-05-14. Token names preserve Bunjang's own naming.
#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).#ffffff) — --color-white. Page background, card surface, primary CTA text color.#191919) — --color-gray-900. Primary text. Used on body, all headings, prices.The gray ladder is unusually granular — 11 stops. This is the spine of Bunjang's depth system.
--color-gray-900 #191919 — primary text--color-gray-800 #333333 — strong secondary text--color-gray-700 #4c4c4c — secondary button text--color-gray-600 #666666 — product card title, footer text--color-gray-500 #7f7f7f — tertiary text--color-gray-400 #8c8c8c — icon-only buttons, banner-close ×--color-gray-300 #999999 — meta / timestamp / "19시간 전"--color-gray-200 #b2b2b2 — disabled-ish placeholder text--color-gray-150 #cccccc — strong dividers--color-gray-100 #e5e5e5 — secondary button border, light dividers--color-gray-70 #f0f0f0 — subtle row hover / pressed bg--color-gray-50 #f6f6f6 — footer surface, image placeholder bg (also aliased as --color-gray)--color-gray-10 #fafafa — barely-tinted section divider--color-red-{50: #fdf3f3, 100: #fbe7e8, 400: #f5c2c5, 500: #d80c18} — error / destructive / primary share the 500--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)--color-blue-{50: #ebf5ff, 100: #d9ebff, 400: #b3d7ff, 500: #027aff} — informational link / verified info (e.g. 내폰시세 price-check confirmed)--color-yellow-{50: #fffbed, 100: #fff6db, 400: #ffeaa6, 500: #ffc200} — warning / highlightThese two ladders don't appear in generic DS palettes — they map to Bunjang's escrow + luxury-authentication services.
--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."--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."--color-brand-kakao #fae100 + --color-brand-kakao-2 #3c1e1e (KakaoTalk yellow + dark text)--color-brand-naver #03cf5d--color-brand-facebook #1877f2 (+ gradient variant #00B2FF → #006AFF)--color-brand-twitter #1da1f2--color-brand-line #00b900--color-brand-band #21c531--color-brand-apple #000000These are NOT brand-extension colors — they are partner-correct fills for federated login buttons only. Never reuse them in Bunjang chrome.
One family. Three weights. No exceptions.
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.| Size | Weight | Role | Color |
|---|---|---|---|
| 20px | 700 | Section title ("오늘의 추천 아이템") | gray-900 |
| 18px | 700 | Subsection title / large emphasis | gray-900 |
| 16px | 400 | Default body, CTA label | gray-900 / white-on-red |
| 16px | 700 | Price | gray-900 |
| 15px | 500 | Search input value + placeholder | gray-900 |
| 14px | 500 | Product card title | gray-600 (#666) |
| 13px | 700 | Compact emphasized chip | varies |
| 12px | 500 | Meta / timestamp / region | gray-300 (#999) |
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.
Letter-spacing is normal everywhere. Hangul stems are never tightened.
https://static.bunjang.co.kr/web/ui/logo-icon.svg.path[fill] attribute (not CSS) — fill #191919 for foreground, #8c8c8c for muted (close ×, secondary nav).--color-red-500).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).4px — small chip / banner CTA (XS variant: "앱 다운로드")6px — primary CTA, secondary CTA, thumbnail container (--radiusVar__1j9duj80: 6px)20px — soft large chip999px — circular icon button, pill counter chip, heart button hit area--bun-ui-radius-pill: 999pxBunjang does not expose a numeric spacing scale via CSS variable. Observed padding patterns:
12px 20px (medium), 8px 12px (XS), 16px 20px (XL/full-width)20px 132px 40px desktop, tighter on mobileThere is no box-shadow on any sampled element. Depth comes from:
#e5e5e5 border (secondary buttons, dividers)#f6f6f6 background tint (footer surface, image placeholders)rgba(0,0,0,0.3) semi-transparent bubble for overlay chips (carousel counter "1 / 10")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.
--layout-width-xsmall: 480px / --layout-width-small: 640px / --layout-width-large: 1240px / --layout-width-full: 100vw--drawer-width: 480px (used for category drawer, filter sheet)--bun-ui-sat, --bun-ui-sab, --bun-ui-sal, --bun-ui-sar (top/bottom/left/right inset variables; populate at runtime on iPhone)Bunjang ships explicit named z-index tokens — a sign of an internal DS that's gone through stacking-context disputes:
--z-index-sticky: 100--z-index-footer: 100--z-index-header: 200--z-index-widget: 500--z-index-drawer-dim: 900--z-index-drawer: 1000--z-index-popup-dim: 1100--z-index-popup: 1200--z-index-snackbar: 1500Snackbar (transient toast) sits on top of everything — confirms Bunjang's preference for transient, non-blocking feedback over modal interruption.
_button_1cw4e_1)Three variants × four sizes observed in class names: _variant-{normal|primary|…} × _size-{XS|M|XL} × _full.
| variant | bg | text | border | radius | size XS pad | size M pad | size XL pad |
|---|---|---|---|---|---|---|---|
| primary | #d80c18 | #ffffff | none | 4-6px | 8 12 | — | 16 20 |
| normal (secondary) | #ffffff | #4c4c4c | 1px solid #e5e5e5 | 6px | — | 12 20 | — |
_input_au7f1_17)#191919_container_15rjm_1)┌─────────────────┐ ← Thumbnail
│ │ aspect-ratio: 81 / 100
│ [img] ♡│ border-radius: 6px
│ │ bg #f6f6f6 (placeholder)
│ │ heart absolute top-right, 40×40 hit
└─────────────────┘ SVG fill=none stroke=#fff + 10% black inner glow
600,000원 ← Price: 16px / 700 / #191919
맥북에어 m1 2020... ← Title: 14px / 500 / #666 (1-2 lines)
19시간 전 · 강남 · 찜2 ← Meta: 12px / 500 / #999
Card variants add a single small chip (4-6px radius) above the title row:
안전결제 — --color-safe-* ladder, indigo감정완료 — --color-care-* ladder, warm amber내폰시세 — --color-blue-* ladder, info blueBunjang'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.
Observed patterns:
Voice principles when you write Bunjang-tier copy:
#d80c18) marks one action per surface. Red is a finite resource; spending it on everything makes it worth nothing.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.
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.
Use this reference for:
Do NOT use this reference for:
Verified: 2026-05-14 Verifier: omd:add-reference live capture URL: https://m.bunjang.co.kr/
:9222 (websocket, suppress_origin=True to bypass --remote-allow-origins block):root via getComputedStyle(document.documentElement)assets/_reference/.live-inspect-proof.jsonassets/_reference/logo-icon.svgAttempted lookups (all 2026-05-14):
https://design.bunjang.co.kr/ → DNS no-resolve (000)https://bun-ui.bunjang.co.kr/ → DNS no-resolve (000)https://tech.bunjang.co.kr/ → DNS no-resolve (000)https://brand.bunjang.co.kr/ → DNS no-resolve (000)https://company.bunjang.co.kr/ → DNS no-resolve (000)https://blog.bunjang.co.kr/ → DNS no-resolve (000)https://medium.com/bunjang-tech/ → 404https://github.com/bunjang → 200 but org has no public repos / members / packageshttps://www.npmjs.com/package/@bunjang/bun-ui → 403 (package does not exist on public npm)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.
https://getdesign.md/bunjang → "No designs found for 'bunjang'"https://styles.refero.design/?q=bunjang → no entryConsistent with the KR-10 systemic finding (2026-05-13 audit): English-tooling-oriented DS directories have weak Korean coverage.
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.
assets/_reference/ for verification of capture fidelity only — not for downstream use in derivative productsBunjang 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
Brand
Accent
Neutrals
Semantic
Type Scale
Rendered in system-ui to clearly show scale & weight.
Fonts
Spacing
| Purpose | Value | Preview |
|---|---|---|
| Density | compact | |
| Base unit | 4px | |
| Section gap | 32px | |
| Card padding | 16px | |
| Element gap | 12px |
Border Radius
| Element | Value | Preview |
|---|---|---|
| buttons | 22px | |
| inputs | 22px | |
| cards | 16px | |
| dialogs | 16px | |
| badges | 8px |
Elevation
spec/components-schema.md.