Banksalad GitHub
Banksalad GitHub
banksalad
Design System
Banksalad logo

Banksalad

Banksalad (뱅크샐러드) is the design language of a trustworthy financial advisor that runs on data, not optimism. Where Toss flattens money into one cheerful gesture and KakaoPay wraps it in Kakao yellow, Banksalad insists that more information, clearly presented, is the actual brand promise. The home page opens on a white canvas (#ffffff/#fbfbfb) with

01

Color Palette

Brand

Accent

Neutrals

Semantic

02

Typography

Type Scale

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

display48px · 700 · 1.25
Design at scale
32px32px · 700 · 1.25
Section heading
heading-lg24px · 700 · 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
Apple System
Systemno install needed
macOS/iOS default — uses SF Pro automatically.
Not publicly distributed.
Primary
Apple System (Blink)
Systemno install needed
Chrome alias for Apple system font on macOS.
Not publicly distributed.
Primary
System UI
Systemno install needed
Generic OS-default font keyword.
Not publicly distributed.
Primary
Segoe UI
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
Roboto
Open · Apache 2.0
Install via Google Fonts
Primary
Apple SD Gothic Neo
Systemno install needed
Apple system font for Korean.
Not publicly distributed.
Primary
Noto Sans KR
Open · OFL
Install via Google Fonts
Primary
Malgun Gothic
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.
Display
BM JUA
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
Densitycompact
Base unit4px
Section gap40px
Card padding20px
Element gap12px

Border Radius

ElementValuePreview
buttons2px
inputs2px
cards2px
dialogs2px
badges2px

Elevation

Shadow 1
Shadow 2
Shadow 3
Shadow 4
Shadow 5
04

Guidelines

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

Do

  • Use #04c584 for every interactive moment — CTAs, links, focus accents, "your data point" on charts
  • Use #10df99 for hover (it's brighter than #04c584 — Banksalad lightens on interaction)
  • Use #f3fdfa mint tint on input focus background — the only branded surface tint in the system
  • Keep border-radius at 2px for buttons, inputs, cards, badges — the system's geometric signature
  • Use Pretendard with the full Korean fallback stack; 700 as default weight for headings and CTAs
  • Use #2b2b2b/#434444 warm near-blacks for type instead of #000000
  • Use the teal-slate family (#34464b/#5c818a/#1c6c73/#a7c7cf) for chart series — cooler than brand green by design
  • Use #04c584 only for "your value" on a chart — never as a generic data fill
  • Right-align financial amounts in tables; use 700 weight for amounts even at 14px
  • Use comma-separated won amounts with the currency unit in 500 weight (12,400,000원)

Don't

  • n't use Toss's 12px+ rounded corners — Banksalad is 2px; 8px is the soft-marketing exception
  • n't use Kakao yellow, KakaoPay yellow, or any warm accent for primary interaction — green is the sole interactive hue
  • n't use BM JUA inside the app — Jua is for marketing-landing display moments only
  • n't use weight 400 for body — Banksalad's body weight is 500
  • n't apply colored shadows (blue, green, branded) — shadows are always neutral black
  • n't pad financial cards generously like Toss — Banksalad packs density; data is the aesthetic
05

Components

Buttons

Primary CTA (Salad Green)
Background`#04c584`
Text`#ffffff`
Bordernone
Radius2px
Padding12px 24px
Font16px / 700 / Pretendard
Hoverbackground `#10df99` (lightens — opposite of convention)
Height42px (line-height-driven)
Use: Primary CTA on data tables, recommendation rows, transactional flows ("내 카드 추천 받기", "신청하기")
Primary CTA — Large Display
Background`#04c584`
Text`#ffffff`
Bordernone
Radius2px
Padding16px 32px
Font18px / 700 / Pretendard
Hover`#10df99`
Height56px
Letter-spacing-1px
Use: Hero CTA on landing surfaces ("앱 다운로드", "지금 시작하기")
Primary CTA — Hover-Inverted (Retry)
Background`#10df99` (default lighter)
Text`#ffffff`
Bordernone
Radius2px
Padding10px 20px
Font14px / 500 / Pretendard
Hoverbackground `#04c584` (darkens — the one place Banksalad uses the darken pattern)
Use: Secondary retry / "다시 시도" actions where the resting state is a softer mint
Ghost / Outlined
Background`#ffffff`
Text`#04c584`
Border1px solid `#04c584`
Radius2px
Padding12px 24px
Font16px / 700 / Pretendard
Hoverbackground `#f3fdfa` (mint tint)
Use: Secondary actions paired with a Primary CTA
Neutral / Cancel
Background`#f5f5f5`
Text`#434444`
Bordernone
Radius2px
Padding12px 24px
Font16px / 700 / Pretendard
Hoverbackground `#e1e1e1`
Use: Cancel / "취소" / dismiss actions
Disabled
Background`#e1e1e1`
Text`#acacac`
Bordernone
Radius2px
Font16px / 700 / Pretendard
Use: Disabled state (form incomplete, retry cooling down)
Link Button (Inline Text Link)
Backgroundtransparent
Text`#04c584`
Bordernone
Padding0
Font14px / 500 / Pretendard
Hovertext-decoration: underline
Use: Inline links within content ("자세히 보기"), table-row jump links

Cards & Containers

Data Card (Default)
Data Card (Default)
Background`#ffffff`
Border1px solid `#e1e1e1` (some surfaces use no border + shadow only)
Radius2px
Padding20px 24px
Shadow`0 2px 5px rgba(0, 0, 0, 0.12)`
Use: Recommendation rows, transaction cards, account summary blocks
Card — Soft Variant
Card — Soft Variant
Background`#fbfbfb`
Bordernone
Radius8px
Padding24px
Shadow`0 2px 8px rgba(0, 0, 0, 0.1)`
Use: Marketing/landing feature cards (the rare 8px-radius case)
Card — Highlight (Selected)
Card — Highlight (Selected)
Background`#f3fdfa`
Border1px solid `#10df99`
Radius2px
Padding20px 24px
Use: Selected state in product comparison lists (cards/loans), recommended-pick highlight

Inputs & Forms

Text Input (Default)
Background`#ffffff`
Text`#999999` (placeholder) / `#434444` (filled)
Border1px solid `#e1e1e1`
Radius2px
Padding0 16px
Font16px / 500 / Pretendard
Height48px
Text Input — Focus
Background`#f3fdfa`
Text`#434444`
Border1px solid `#10df99`
Radius2px
Use: Active typing state — the mint tint is the only branded background fill in the system
Text Input — Error
Background`#ffffff`
Text`#434444`
Border1px solid `#fe493d`
Radius2px
Error message below12px / 500 / `#fe493d`
Use: Validation failure state
Amount Input (Financial)
Background`#ffffff`
Text`#2b2b2b`
Border2px solid `#f5f5f5`
Radius2px
Padding0 16px
Font22px / 700 / Pretendard (right-aligned)
Height56px
Use: Specialized input for entering won amounts — heavier border (2px), bigger type, right-aligned, 700 weight; treats money input as a heading not a form field

Badges & Tags

Status
Status Pill (Brand)
Background`#f3fdfa`
Text`#04c584`
Bordernone
Radius41px (rare pill — used only on tag chips, not buttons)
Padding4px 10px
Font12px / 500 / Pretendard
Use: Filter chips ("연회비 없음", "주유 할인") on card-recommendation pages
Status
Status Badge (Warning)
Background`#ffffff`
Text`#f56200`
Border1px solid `#fd8700`
Radius2px
Padding2px 8px
Font12px / 700 / Pretendard
Use: Rate-warning, expiry, attention-needed indicators
Status
Status Badge (Negative)
Background`#ffffff`
Text`#fe493d`
Border1px solid `#fe493d`
Radius2px
Padding2px 8px
Font12px / 700 / Pretendard
Use: Overdue, declined, blocking-issue indicators