Gangnamunni Blog
Gangnamunni Blog
gangnamunni
Design System
Gangnamunni logo

Gangnamunni

강남언니's web surface is the rare medical platform that reads as warm rather than clinical. The page opens on pure white (#ffffff) with deep blue-gray text (#131517 — --cell-base-color-bluegray-900) and a single saturated orange (#d54300 / #FF540F accent) doing all the brand work. There is no "medical blue", no surgical green, no pastel reassurance pa

01

Color Palette

Brand

Accent

Neutrals

Semantic

02

Typography

Type Scale

Rendered in system-ui to clearly show scale & weight.

display48px · 600 · 1.25
Design at scale
32px32px · 600 · 1.25
Section heading
heading-lg24px · 600 · 1.4
Subheading
body16px · 400 · 1.5
Body text. The quick brown fox jumps over the lazy dog. Designed for readable line-height in long-form content.
small12px · 400 · 1.5
Supporting text
caption12px · 400 · 1.5
Caption · timestamp · 2026
label10px · 500 · 1.5
BADGE / LABEL

Fonts

Primary
Pretendard JP Variable
Brand-only
Not in the OMD font registry. Likely a brand-proprietary typeface — check the brand's own design site for source/availability.
Not publicly distributed.
Monospace
UI Monospace
Systemno install needed
CSS keyword — OS default mono (SF Mono / Consolas / etc.).
Not publicly distributed.
Monospace
SF Mono
Commercial
Apple's monospace. Free for Apple platforms.
Install via Apple Developer
Monospace
Menlo
Systemno install needed
macOS pre-installed monospace.
Not publicly distributed.
Monospace
Monaco
Systemno install needed
macOS pre-installed monospace.
Not publicly distributed.
Monospace
Consolas
Commercial
Microsoft system monospace (Windows).
Not publicly distributed.
Monospace
Liberation Mono
Open · OFL
Open-source metric-compatible alternative to Courier New.
Install via GitHub · liberationfonts
Monospace
Courier New
Commercial
Pre-installed on macOS/Windows.
Not publicly distributed.
Primary
PretendardVariable
Brand-only
Not in the OMD font registry. Likely a brand-proprietary typeface — check the brand's own design site for source/availability.
Not publicly distributed.
Primary
PretendardVariable Fallback
Brand-only
Not in the OMD font registry. Likely a brand-proprietary typeface — check the brand's own design site for source/availability.
Not publicly distributed.
03

Spacing & Shape

Spacing

PurposeValuePreview
Densitycomfortable
Base unit8px
Section gap16px
Card padding12px
Element gap8px

Border Radius

ElementValuePreview
inlineMicro2px
smallMicro2px
inlineSmall6px
statusSmall6px
cardsStandard12px
inputsStandard12px
defaultMedium16px
signMedium16px
searchMedium16px
primaryMedium16px
bottomLarge20px
largeLarge20px

Borders

ElementValuePreview
Border-Bottom0px solid #f5f5f5

Elevation

Shadow 1
Shadow 2
04

Guidelines

Do and Don't guidelines parsed from DESIGN.md.

Do

  • Use #d54300 (or raw #FF540F for time-sensitive flags) as the sole brand accent — orange is the entire brand identity
  • Use bluegray for neutrals — never warm gray, never pure black on text
  • Default to 1px #d8dfe6 borders on cards instead of drop shadows
  • Use 700 weight for prices and quantitative data; let the numeric weight do the visual highlighting
  • Use orange-50 (#fef6f4) as a tint surface for event/promo cards — keeps the brand orange visible without an overwhelming CTA-orange wash
  • Pretendard JP Variable across all locales — the system is multilingual-by-design
  • Use the 16px (radius-400) chrome radius for buttons and sign-in CTAs — confirmed by live header inspection
  • Use bluegray-900 (#131517) for headings — not #000

Don't

  • n't introduce a second hue as a brand color — orange is singular
  • n't use pink as a primary CTA fill (the trending-pink token exists but is reserved for chips, never CTA)
  • n't apply drop shadows to resting cards — elevation = border + tint
  • n't pick a display-light weight (300) for headlines — the brand is in the 400-700 register
  • n't use pure black (#000000) for headings — always #131517 bluegray-900 (live-observed black-on-rich-media images is an exception)
  • n't substitute pure gray for the bluegray neutrals — the cool undertone is intentional
  • n't add tracking experiments on Korean text — letterspacing-none is the default
  • n't replace category icons with stock photography — the home is icon-grid-driven
05

Components

Buttons

Primary Brand
Background`#d54300`
Text`#ffffff`
Bordernone
Radius16px (`--cell-base-radius-400`)
Padding12px 20px (`spacing-300` vertical / `spacing-500` horizontal)
Font16px / 600 / Pretendard JP Variable
HoverBackground `#ab350c` (`orange-600`)
ActiveBackground `#93250a` (`orange-700`)
DisabledBackground `#fbb8a4` (`orange-200`)
Use: Primary CTA — "병원 예약하기", "후기 작성하기", "이벤트 보기"
Primary Brand (raw accent variant)
Background`#FF540F`
Text`#ffffff`
Border1px solid `#FF540F`
Radius16px
Padding12px 20px
Font16px / 600 / Pretendard JP Variable
Use: Hot-deal CTA, time-limited promo — raw Tailwind utility variant of the brand color, slightly more saturated than the semantic `#d54300`.
Outline / Secondary
Background`#ffffff`
Text`#131517` (bluegray-900)
Border1px solid `#d8dfe6` (bluegray-200)
Radius16px (32px → pill when small)
Padding6px 14px (sign-in size) → 10px 16px (default) → 12px 20px (large)
Font14-16px / 400-500 / Pretendard JP Variable
HoverBackground `#f7f9fa` (bluegray-50)
DisabledText `#8694a2`, border `#e4e8ec`
Use: "로그인/가입" header CTA (32px tall, 16px radius — observed live), filter pills, neutral secondary action.
Ghost / Tertiary
Backgroundtransparent
Text`#3a444d` (bluegray-700)
Bordernone
Radius16px
Padding6px 12px
Font14px / 500 / Pretendard JP Variable
HoverBackground `rgba(216,223,230,0.4)`
Use: Tab strip, in-card secondary action, "더보기".
Brand Subtle (tinted)
Background`#fef6f4` (orange-50)
Text`#d54300` (orange-500)
Border1px solid `#feeee9` (orange-100) — optional
Radius16px
Padding8px 14px
Font14px / 600 / Pretendard JP Variable
Use: Secondary-yet-brand CTA — "관심 병원에 추가", "쿠폰 받기".
Danger
Background`#d73f39` (red-500)
Text`#ffffff`
Bordernone
Radius16px
Padding10px 16px
Font14px / 600 / Pretendard JP Variable
HoverBackground `#b02b27` (red-600)
Use: Destructive action — "예약 취소", "후기 삭제".
Icon Button
Backgroundtransparent
Bordernone
Radius9999px (`radius-full`)
HoverBackground `#eff2f5` (bluegray-100)
Hit target40px × 40px (8px padding around 24px icon)
Use: Bookmark, share, dismiss.

Inputs & Forms

Text Input — Default
Background`#ffffff`
Text`#131517`
Border1px solid `#d8dfe6` (bluegray-200)
Radius12px (`radius-300`)
Padding12px 16px
Font16px / 400 / Pretendard JP Variable
FocusBorder `#d54300` (orange-500), focus ring `2px` outset of `radius-300`
DisabledBackground `#f7f9fa`, text `#8694a2`, border `#e4e8ec`
Placeholder`#8694a2` (bluegray-400)
Height48px
ErrorBorder `#d73f39`, ring `red-500`
Use: Standard form field — sign-in, review form, hospital review search.
Search Input — Hero
Background`#eff2f5` (bluegray-100) or `#ffffff` with border
Text`#131517`
Bordernone (pill) or 1px `#d8dfe6`
Radius9999px (`radius-full`)
Padding14px 20px (left icon 44px wide)
Font16px / 500 / Pretendard JP Variable
Placeholder`#697683` (bluegray-500) — "병원, 시술, 의사 검색"
Height52px
Use: Hero search bar above category nav.

Cards & Containers

Doctor / Clinic Card
Doctor / Clinic Card
Background`#ffffff`
Border1px solid `#d8dfe6` (bluegray-200) — or none on grid layouts where the bluegray-50 page bg provides separation
Radius12px (`radius-300`)
Padding16px
Shadow**none by default** — elevation is conveyed by border + bluegray-50 page wash
HoverBackground tint `#f7f9fa`, no shadow change
Title16-18px / 700 / `#131517`
Meta row13px / 400 / `#697683` — "강남구 · 0.4km · 후기 7,300건"
Price row14px / 700 / `#131517` with strikethrough on `--list-price` in `#8694a2`
Use: Hospital list cards, doctor cards, treatment cards.
Review / Article Card (gap-2 column flex)
Review / Article Card (gap-2 column flex)
Backgroundtransparent (image-led)
Bordernone
Radius12px on the image, no container border
Padding0 (image touches container edges, text below)
Title16px / 400 / `#000000` (live-observed as `rgb(0,0,0)` — slightly heavier than the semantic bluegray-900 on rich-media surfaces)
Height observed330px (image + title + meta)
Use: 칼럼/community article grid.
Event / Promo Card (orange-tinted)
Event / Promo Card (orange-tinted)
Background`#fef6f4` (orange-50)
Border1px solid `#feeee9` (orange-100)
Radius12px
Padding16px
Heading accent`#d54300` or `#FF540F` flag tag (top-left)
Use: 핫딜 / 이벤트 / 한정 promo block.

Badges, Tags & Pills

HOT
Brand Badge ("HOT", "특가")
Background`#FF540F`
Text`#ffffff`
Bordernone
Radius4px (`radius-100`)
Padding2px 6px
Font11-12px / 700 / Pretendard JP Variable
Use: Time-sensitive flags overlaid on event cards.
인증 병원
Success Badge ("인증 병원")
Background`#e8f6ec` (green-100)
Text`#1a8656` (green-500)
Border1px solid `#aed2ba` (green-200) — optional
Radius9999px
Padding2px 8px
Font12px / 600 / Pretendard JP Variable
Use: Verification, success indicators.
의료광고 사전심의
Info Badge ("의료광고 사전심의")
Background`#ebf2ff` (blue-100)
Text`#1b59bd` (blue-600)
Bordernone
Radius4px
Padding2px 6px
Font11px / 600 / Pretendard JP Variable
Use: Regulatory / certification labels.
Neutral
Neutral Pill (category)
Background`#ffffff`
Text`#131517`
Border1px solid `#d8dfe6`
Radius9999px
Padding6px 12px
Font13-14px / 500 / Pretendard JP Variable
SelectedBackground `#fef6f4` (orange-50), text `#d54300`, border `#fa8563`
Use: Category filter strip — "보톡스", "필러", "리프팅", "지방성형".