Design tokens (YAML front matter)
name: KakaoBank
colors:
primary: '#ffe300'
canvas: '#ffffff'
foreground: '#000000'
secondary: '#888888'
body: '#444444'
surface: '#f7f7f7'
divider: '#e6e6e6'
typography:
hero:
fontSize: 90px
fontWeight: 800
lineHeight: 1.3
letterSpacing: '-0.9px'
use: Current corporate home hero
display:
fontSize: 42px
fontWeight: 700
lineHeight: 1.24
letterSpacing: '-0.84px'
use: Current service page title
section:
fontSize: 32px
fontWeight: 700
lineHeight: 1.36
letterSpacing: '-0.64px'
use: Current public service section heading
card-title:
fontSize: 24px
fontWeight: 700
lineHeight: 1.44
letterSpacing: '-0.48px'
use: Current public service and brand-resource card heading
body:
fontSize: 16px
fontWeight: 400
lineHeight: 1.5
use: Current public body and list text
navigation:
fontSize: 14px
fontWeight: 600
lineHeight: 1.5
letterSpacing: '-0.14px'
use: Current top navigation
rounded:
action: 6px
section: 16px
full: 9999px
spacing:
xs: 8
sm: 12
md: 16
lg: 24
xl: 40
components:
top-navigation:
type: button
backgroundColor: transparent
textColor: '#000000'
rounded: 0px
padding: 0 20px
height: 62px
typography: 14px / 600
hover: 'fg #444444'
active: 'fg #444444'
pressed: 'fg #444444 (same as hover)'
focus: 'outline 2px solid #007bff, offset 2px (authored ring; fg and bg unchanged)'
states: hover, pressed and keyboard focus measured 2026-09-29 (real :hover, :active, and Tab to :focus-visible); the colour settles after a 0.4s ease-in-out transition, and the near-black values captured 2026-07-12 were early frames of it
use: Current corporate top navigation item
service-tab:
type: button
backgroundColor: transparent
textColor: '#000000'
border: '0 0 1px #e6e6e6'
rounded: 0px
padding: 16px 0
height: 62px
typography: 20px / 700 (label h5; the button's own font is 16px / 400)
hover: no change among the compared properties (measured 2026-09-29)
pressed: no change among the compared properties (measured 2026-09-29)
focus: 'outline 2px solid #007bff, offset 2px (authored ring)'
states: default captured 2026-07-12; hover, pressed and keyboard focus measured 2026-09-29; an accordion trigger (aria-expanded, no role=tab) whose expanded state was not opened
use: Current public service-category accordion trigger (저축 …)
black-action:
type: button
backgroundColor: '#000000'
textColor: '#ffffff'
rounded: 6px
padding: 9.5px 18px
height: 42px
typography: 15px / 600
hover: 'bg #444444'
pressed: 'bg #444444 (same as hover)'
focus: 'outline 2px solid #007bff, offset 2px (authored ring)'
states: default captured 2026-07-12; hover, pressed and keyboard focus measured 2026-09-29; the fill settles after a 0.35s ease transition
use: Current corporate high-emphasis action
resource-download:
type: button
backgroundColor: '#000000'
textColor: '#ffffff'
rounded: 6px
padding: 10px 16px 10px 20px
height: 43px
typography: 15px / 600 (label span; the anchor's own font is 16px / 400)
hover: 'bg #444444'
pressed: 'bg #444444 (same as hover)'
focus: 'outline 2px solid #007bff, offset 2px (authored ring)'
states: default captured 2026-07-12; hover, pressed and keyboard focus measured 2026-09-29
use: Current official brand-resource download action
brand-spec-row:
type: listItem
backgroundColor: transparent
textColor: '#000000'
border: '1px 0 0 #e6e6e6'
rounded: 0px
padding: 10px 0
typography: 16px / 400 / 24px
use: Current official brand specification row
link-row:
type: card
backgroundColor: '#f7f7f7'
textColor: '#000000'
rounded: 16px
padding: 22px 24px
height: 72px
typography: 16px / 600 (label h6; the anchor's own font is 16px / 400)
hover: 'fg #444444 (label); bg stays #f7f7f7'
pressed: 'fg #444444 (same as hover)'
focus: 'outline 2px solid #007bff, offset 2px (authored ring)'
states: default captured 2026-07-12 (six rows, 672px wide); hover, pressed and keyboard focus measured 2026-09-29 on 금융기술연구소; the change is instant (transition 0s)
use: Home related-service link row (금융기술연구소 …), opens in a new window
service-pill-tab:
type: tab
backgroundColor: transparent
textColor: '#222222'
rounded: 50px
padding: 10px 22px
height: 38px
typography: 16px / 600 / -0.16px tracking
hover: no change among the compared properties (measured 2026-09-29)
pressed: no change among the compared properties (measured 2026-09-29)
focus: 'outline 2px solid #007bff, offset 2px (authored ring)'
states: 'default captured 2026-07-12 (four unselected pills); the selected pill reads fg #ffffff on a transparent own background, its fill painted by another element that was not identified; hover, pressed and keyboard focus measured 2026-09-29 on 청소년'
use: Sticky in-page category pill on the service page (청소년 …)
brand-section-tab:
type: tab
backgroundColor: transparent
textColor: '#000000'
rounded: 30px
padding: 8px 17px
height: 40px
typography: 16px / 600 / -0.16px tracking
selected: 'bg #000000 fg #ffffff'
states: default and selected captured 2026-07-12; the 2026-09-29 survey reads the same four pills; no pointer-state sample
use: Brand-resource section pill (로고, 앱 아이콘, 색상, 미디어 패키지)
footer-link:
type: tab
backgroundColor: transparent
textColor: '#888888'
height: 16px
typography: 14px / 500
states: default captured 2026-07-12 (18 links on each captured page); no pointer-state sample
use: Footer related-service and channel link (카카오뱅크 AD, 금융기술연구소, 기술블로그, 인스타그램 …)
top-scroll-button:
type: button
backgroundColor: '#e6e6e6'
rounded: 50%
size: 52px x 52px
states: default captured 2026-07-12 on all three captured pages; no pointer-state sample
use: Floating back-to-top button (맨 위로 이동), icon only
fonts:
roles:
ui: Pretendard Variable
faces:
Pretendard Variable:
scripts:
- hangul
- latin
evidence:
- official-product-use
- live-surface-use
source:
licence: OFL-1.1
distribution: public
note: KakaoBank serves the public Pretendard v1.3.9 variable file unmodified.Design System Inspiration of KakaoBank (카카오뱅크)
Overview
Visual Theme & Atmosphere
KakaoBank is an internet bank that presents financial services as part of ordinary mobile life. Its public story spans deposits, savings, loans, investment, foreign exchange, cards, business banking, youth products, and newer AI-led service exploration. The corporate site expresses that breadth with unusually little banking ornament: a white canvas, black type, pale-gray sections, very large Korean headings, and only selective use of the protected KakaoBank Yellow. The result feels digitally accessible while retaining the clarity and restraint expected from a regulated financial institution.
That restraint is the distinctive system. The official brand resource defines KakaoBank Yellow as #FFE300, alongside black, white, and a narrow neutral palette, and warns against nearby substitute yellows. Yet the current public corporate surface is mostly monochrome. Yellow identifies KakaoBank; it is not proof that every banking CTA, card, success state, or app control uses yellow. The current product page organizes the catalog through large editorial sections and simple service tabs, while the brand-resource page explains the symbol, wordmark, and color system as protected identity assets.
Pretendard Variable carries all visible public UI and editorial roles. It loaded from KakaoBank’s own domain and appeared across 645 elements, from the 90px home hero to 14px navigation and 16px body text. Brand character comes from scale, disciplined yellow, and product imagery rather than a proprietary display face.
Key Characteristics:
- Official single-yellow identity:
#FFE300, not neighboring Kakao-family yellows - White and pale-gray corporate canvas with black-first typography
- Pretendard Variable loaded across every observed text role
- 90px/800 home hero and 42px/700 service-page title
- Flat public components with 0px navigation/tab geometry and 6px black actions
- Explicit separation between public corporate evidence and native banking-product UI
Primary tasks
- Compare everyday banking services across deposits, loans, and cards
- Browse the service catalog one category tab at a time
- Look into products for youth, business, or investment needs
- Find official company, ESG, or investor information about the bank
Brand Narrative
KakaoBank positions banking as a digital product embedded in everyday routines. The official symbol explains a bank centered on the individual, while the service catalog shows continuous expansion from basic accounts into youth, business, investment, global, and AI-related offerings. The visual identity balances Kakao-family recognition with the restraint expected of a bank: one unmistakable yellow, then a large field of neutral structure. This system allows the company to speak both as a consumer product and as a financial institution. Large Korean headings make service categories approachable; monochrome navigation and pale-gray sections keep attention on information rather than decoration. The protected wordmark and exact yellow establish ownership, but they do not dictate the geometry of native transfers, account cards, or compliance flows. Those product layers require their own evidence.
Principles
- Put the individual at the center. Organize information around the user’s task, not the bank’s internal structure.
- Use yellow with discipline. Exact brand recognition is stronger than broad decorative use.
- Make finance readable. Strong Korean typography and generous rhythm should reduce cognitive load.
- Do not confuse brand with product evidence. A CI guide cannot authorize native transfer controls.
Personas
First-party material establishes task contexts only:
- An individual comparing everyday banking services.
- A young user or guardian exploring KakaoBank mini.
- A business owner reviewing business banking options.
- A visitor seeking official company, ESG, investor, or brand information.
Project-specific names, ages, balances, credit profiles, income, risk tolerance, and success metrics are intentionally unspecified and must come from the product brief.
Colors
- KakaoBank Yellow (
#ffe300): official primary identity color and protected brand specification. - Canvas (
#ffffff) and foreground (#000000): dominant current public pairing. - Secondary (
#888888): repeated supporting navigation and footer text. - Body gray (
#444444): service and brand-resource explanatory text. - Section surface (
#f7f7f7): current quiet public section fill. - Divider (
#e6e6e6): public service and brand-spec boundaries.
Earlier #E02000, #0FBE6C, #FF9800, input, placeholder, and native state roles are not retained. The live public site exposed #007AFF on small web controls, but its semantic product role was not clear enough to promote.
The keyboard focus ring is a different blue, #007bff (rgb(0, 123, 255)), drawn as a 2px solid outline on every control probed on 2026-09-29 (§14). It is recorded in each component’s focus state, not as a palette role: it is neither KakaoBank Yellow nor part of the official brand resource.
Typography
Font evidence boundary
| Evidence class | Resolution |
|---|---|
| Official product-use | KakaoBank’s current public home, service, and brand-resource pages establish Pretendard Variable. |
| Live surface-use | Pretendard Variable loaded/high across 645 visible elements from KakaoBank’s first-party WOFF2. |
| Official distributed asset | The public webfont is first-party delivered; the KakaoBank wordmark remains a protected identity asset rather than a font. |
| Declared-only | swiper-icons was declared with zero visible text use. |
| Unresolved | Native iOS/Android banking flows and device-specific typography remain unresolved. |
| Role | Size | Weight | Line height | Tracking |
|---|---|---|---|---|
| Corporate hero | 90px | 800 | 117px | -0.9px |
| Service display | 42px | 700 | 52.08px | -0.84px |
| Section heading | 32px | 700 | 43.52px | -0.64px |
| Card heading | 24px | 700 | 34.56px | -0.48px |
| Body/list | 16px | 400 | 24px | normal |
| Top navigation | 14px | 600 | 21px | -0.14px |
Brand face, substitute, safe default
- Brand face: Pretendard Variable. Its author publishes it under the SIL Open Font License 1.1 (github.com/orioncactus/pretendard), and KakaoBank serves the public v1.3.9 variable file unmodified, so it can be installed as itself.
- Substitute: none needed; the brand face is installable.
- Safe default (not the brand face): none listed; install Pretendard Variable itself.
Layout
- Use large type and generous vertical rhythm to explain complex financial categories.
- Keep public navigation and tabs geometrically flat; hierarchy comes from placement and weight.
- Use
#f7f7f7for section-level grouping instead of elevated cards. - Apply KakaoBank Yellow at verified identity moments, not as ambient chrome.
- Keep official brand-resource layouts separate from banking-task layouts.
Responsive Behavior
The public routes preserve their typographic hierarchy and section grouping while content reflows. Exact mobile-app navigation, banking-task breakpoints, device safe areas, and native keyboard behavior remain unresolved.
Elevation & Depth
The promoted public system is shadow-free. Separation comes from white/pale-gray surfaces, #e6e6e6 rules, and typographic scale. No sheet, card, or focus shadow is promoted for native banking UI. On the public site, keyboard focus is an outline, not a shadow (§14).
Motion & Easing
No reusable duration or easing curve is promoted. Public interaction capture establishes state presence, not native banking motion behavior. Per-control transitions read on 2026-09-29: the top navigation link all 0.4s ease-in-out, the two black buttons all 0.35s ease, the service category pills all 0.5s ease; the link rows and the accordion trigger change instantly (0s). These are individual observations, not a duration scale.
Components
Current public components
Rest values come from the 2026-07-12 capture unless marked. Hover, pressed and keyboard focus come from a live probe on 2026-09-29 (real :hover, :active, and Tab to :focus-visible). Every control probed draws the same authored keyboard ring, outline: 2px solid #007bff with a 2px offset.
Top navigation
- Transparent / black, 0px radius, 62px height,
0 20px - Pretendard Variable 14px/600
- Hover and pressed: the text settles at
#444444after a 0.4sease-in-outcolour transition; pressed equals hover - Focus: outline 2px solid
#007bff, offset 2px; text and background unchanged - The July capture’s near-black hover, pressed and focus samples were early frames of that transition, not states (§14)
Service-category accordion trigger
- Transparent / black, 1px
#e6e6e6bottom rule - 0px radius, 62px height,
16px 0 - Label: a 20px/700 heading inside the button (measured 2026-09-29); the button’s own computed font is 16px/400
- A
buttonwitharia-expandedand norole=tab: it opens a category panel. It was typed as a tab until 2026-09-29; the token nameservice-tabis kept - Hover and pressed: no change among the compared properties (measured 2026-09-29)
- Focus: outline 2px solid
#007bff, offset 2px - The expanded state was not opened
Corporate black action
- Black / white, 6px radius, 42px height,
9.5px 18px - Pretendard Variable 15px/600
- Hover and pressed: the fill settles at
#444444after a 0.35s transition; pressed equals hover - Focus: outline 2px solid
#007bff, offset 2px
Brand-resource download
- Black / white, 6px radius, 43px height,
10px 16px 10px 20px - Label: 15px/600 (the visible span, measured 2026-09-29); the anchor’s own computed font is 16px/400
- Hover and pressed: the fill settles at
#444444; pressed equals hover - Focus: outline 2px solid
#007bff, offset 2px
Brand specification row
- Transparent / black, 1px
#e6e6e6top rule 10px 0, 16px/400/24px- Not interactive; not probed
Link rows, pills and page furniture (captured 2026-07-12; states measured 2026-09-29 where noted)
Link row
#f7f7f7fill, 16px radius,22px 24px, 72px tall; six rows, 672px wide, on the home page- Label:
#000000, a 16px/600 heading (measured 2026-09-29); the anchor’s own computed font is 16px/400 - Hover and pressed: the label turns
#444444; the fill stays#f7f7f7, with no lift or shadow - Focus: outline 2px solid
#007bff, offset 2px - Use: 금융기술연구소 and the other related-service rows; opens in a new window
Service category pill
- Transparent, text
#222222, 50px radius,10px 22px, 38px tall, 16px/600, -0.16px tracking - The selected pill reads text
#ffffffon a transparent background of its own; the black fill behind it is painted by another element that was not identified, so no selected fill is declared - Hover and pressed: no change among the compared properties (measured 2026-09-29)
- Focus: outline 2px solid
#007bff, offset 2px - Use: sticky in-page pills on the service page (청소년 …)
Brand section pill
- Transparent, text
#000000, 30px radius,8px 17px, 40px tall, 16px/600, -0.16px tracking - Selected: fill
#000000, text#ffffff - No pointer-state sample
- Use: brand-resource section pills (로고, 앱 아이콘, 색상, 미디어 패키지); the 2026-09-29 survey reads the same four
Footer link
- Text
#888888, 14px/500, 16px tall, no fill - No pointer-state sample
- Use: footer related-service and channel links (카카오뱅크 AD, 금융기술연구소, 기술블로그, 인스타그램 …), 18 on each captured page
Back-to-top button
#e6e6e6fill, 50% radius, 52px × 52px, icon only- No pointer-state sample
- Use: the floating 맨 위로 이동 button on all three captured pages
Yellow native CTAs, account cards, transfer inputs, status badges, notifications, bottom sheets, and app tabs are intentionally absent until a current inspectable native-product path establishes them.
States
A live probe on 2026-09-29 measured hover, pressed and keyboard focus on six controls across the home, service and brand-resource pages (real :hover, :active, and Tab to :focus-visible).
- Keyboard focus: all six draw the same authored ring,
outline: 2px solid #007bff, offset 2px, and nothing else changes.outline-styleissolid, not the browser’sauto. The value matches a common framework default, but the site’s stylesheet was not read, so the ring is recorded per component and not promoted to a token. - Hover and pressed: the top navigation text and the link-row label settle at
#444444; the two black buttons’ fill settles at#444444. Pressed equals hover on all four. - The accordion trigger and the service category pill: no change among the compared properties on hover or press (measured 2026-09-29).
Correction (2026-09-29): this section previously said the top navigation exposed focus, hover and pressed states, and the reference declared pressed #141414 and focus #131313 from the 2026-07-12 capture. The link has a 0.4s ease-in-out colour transition from #000000 to #444444. A frame sample during a live hover passes #141414 at 363 ms, and both July values lie on the grey line between rest and the settled colour (the July hover sample read #141414 as well). They were early transition frames, not states; the settled values are above.
One current service control exposed a disabled state in the July capture, but its semantic role was insufficient for promotion. Native loading, empty, transfer success, transfer failure, identity verification, and destructive states remain absent.
Do’s and Don’ts
Do
- Use exact
#FFE300when the role is an official KakaoBank identity role. - Preserve Pretendard Variable’s observed Korean-first metrics and tracking.
- Keep the corporate web surface restrained and largely monochrome.
- Distinguish official identity, public service marketing, and native banking evidence.
Don’t
- Do not substitute
#FEE500,#FAE100, or another Kakao-family yellow. - Do not infer a Yellow CTA or transfer component from a brand swatch.
- Do not fabricate app error, success, account, badge, or sheet components.
- Do not turn the public corporate site into a Kakao Friends-heavy app mockup.
Voice & Tone
KakaoBank’s public voice makes finance feel ordinary and useful. It favors direct Korean nouns and verbs, names the service category clearly, and explains benefits without institutional ceremony. Service descriptions should state who a product is for, what financial task it supports, and what the visitor can learn next. Corporate and brand material may be more declarative, while compliance or Help content must stay precise and unambiguous. Avoid playful copy where money movement, identity, or risk is involved. Do not invent rates, user counts, or performance claims.
Agent Prompt Guide
Build a restrained Korean financial information surface with a white canvas, black-first type, pale
#f7f7f7section fills, Pretendard Variable, very large bold headings, flat navigation, and 6px black public actions. Use#FFE300only for verified KakaoBank identity roles and omit unverified native banking components.
Governance
Known Gaps
- Contrast,
top-navigation. Text#000000on#00000000measures 1.00:1, below the WCAG AA 4.5:1 minimum for normal-size text. Recorded as measured, not adjusted. - Contrast,
service-tab. Text#000000on#00000000measures 1.00:1, below the WCAG AA 4.5:1 minimum for normal-size text. Recorded as measured, not adjusted. - Contrast,
brand-spec-row. Text#000000on#00000000measures 1.00:1, below the WCAG AA 4.5:1 minimum for normal-size text. Recorded as measured, not adjusted. - Contrast,
service-pill-tab. Text#222222on#00000000measures 1.32:1, below the WCAG AA 4.5:1 minimum for normal-size text. Recorded as measured, not adjusted. - Contrast,
brand-section-tab. Text#000000on#00000000measures 1.00:1, below the WCAG AA 4.5:1 minimum for normal-size text. Recorded as measured, not adjusted.