oh-my-design-cli 1.3.9 → 1.5.1
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.
- package/README.ja.md +8 -8
- package/README.ko.md +7 -7
- package/README.md +50 -16
- package/README.zh-TW.md +8 -8
- package/agents/omd-asset-curator.md +2 -7
- package/agents/omd-codex-image.md +49 -0
- package/agents/omd-designer-review.md +38 -0
- package/agents/omd-final-qa.md +40 -0
- package/agents/omd-kr-writer.md +35 -0
- package/agents/omd-locale-adapter.md +32 -0
- package/agents/omd-master.md +3 -13
- package/agents/omd-orchestrator.md +34 -0
- package/data/reference-audits/2026-05-14-kr10.md +72 -0
- package/data/reference-audits/2026-05-15-kr10.md +124 -0
- package/data/reference-fingerprints.json +1409 -254
- package/data/research/2026-05-18-agent-landscape.md +69 -0
- package/data/research/2026-05-18-kr-style-presets.md +572 -0
- package/dist/bin/oh-my-design.js +6 -3
- package/dist/bin/oh-my-design.js.map +1 -1
- package/dist/{install-skills-MVXVXYAY.js → install-skills-IETT2TBJ.js} +91 -8
- package/dist/install-skills-IETT2TBJ.js.map +1 -0
- package/package.json +7 -1
- package/skills/omd-apply/SKILL.md +0 -1
- package/skills/omd-codex-image/SKILL.md +162 -0
- package/skills/omd-designer-review/SKILL.md +146 -0
- package/skills/omd-final-qa/SKILL.md +153 -0
- package/skills/omd-kr-writer/SKILL.md +229 -0
- package/skills/omd-locale-adapter/SKILL.md +124 -0
- package/skills/omd-orchestrator/SKILL.md +124 -0
- package/web/references/17live/DESIGN.md +424 -0
- package/web/references/29cm/DESIGN.md +11 -2
- package/web/references/ably/DESIGN.md +12 -2
- package/web/references/airbnb/DESIGN.md +17 -2
- package/web/references/airtable/DESIGN.md +20 -0
- package/web/references/alipay/DESIGN.md +456 -0
- package/web/references/appier/DESIGN.md +420 -0
- package/web/references/apple/DESIGN.md +17 -2
- package/web/references/baemin/DESIGN.md +11 -2
- package/web/references/banksalad/DESIGN.md +17 -2
- package/web/references/bilibili/DESIGN.md +426 -0
- package/web/references/bmw/DESIGN.md +14 -0
- package/web/references/bunjang/DESIGN.md +308 -0
- package/web/references/cal/DESIGN.md +14 -0
- package/web/references/catchtable/DESIGN.md +262 -0
- package/web/references/channeltalk/DESIGN.md +374 -0
- package/web/references/class101/DESIGN.md +433 -0
- package/web/references/classum/DESIGN.md +217 -0
- package/web/references/claude/DESIGN.md +11 -2
- package/web/references/clay/DESIGN.md +19 -0
- package/web/references/clickhouse/DESIGN.md +19 -0
- package/web/references/cohere/DESIGN.md +20 -0
- package/web/references/coinbase/DESIGN.md +14 -0
- package/web/references/composio/DESIGN.md +14 -0
- package/web/references/cookpad/DESIGN.md +357 -0
- package/web/references/coupang/DESIGN.md +17 -2
- package/web/references/cursor/DESIGN.md +20 -0
- package/web/references/dabang/DESIGN.md +210 -0
- package/web/references/dcard/DESIGN.md +11 -2
- package/web/references/dji/DESIGN.md +416 -0
- package/web/references/elevenlabs/DESIGN.md +20 -0
- package/web/references/expo/DESIGN.md +20 -0
- package/web/references/fastcampus/DESIGN.md +460 -0
- package/web/references/ferrari/DESIGN.md +14 -0
- package/web/references/figma/DESIGN.md +17 -2
- package/web/references/flex/DESIGN.md +309 -0
- package/web/references/framer/DESIGN.md +20 -0
- package/web/references/freee/DESIGN.md +16 -2
- package/web/references/gangnamunni/DESIGN.md +18 -2
- package/web/references/gmarket/DESIGN.md +464 -0
- package/web/references/gogoro/DESIGN.md +403 -0
- package/web/references/hashicorp/DESIGN.md +19 -0
- package/web/references/ibm/DESIGN.md +20 -0
- package/web/references/ichef/DESIGN.md +411 -0
- package/web/references/inflearn/DESIGN.md +396 -0
- package/web/references/intercom/DESIGN.md +14 -0
- package/web/references/jumpit/DESIGN.md +366 -0
- package/web/references/kakao/DESIGN.md +14 -0
- package/web/references/kakaobank/DESIGN.md +17 -2
- package/web/references/kakaopay/DESIGN.md +17 -2
- package/web/references/kakaot/DESIGN.md +454 -0
- package/web/references/karrot/DESIGN.md +16 -2
- package/web/references/kbank/DESIGN.md +195 -0
- package/web/references/kkday/DESIGN.md +423 -0
- package/web/references/kraken/DESIGN.md +14 -0
- package/web/references/krds/DESIGN.md +17 -2
- package/web/references/kream/DESIGN.md +382 -0
- package/web/references/kurly/DESIGN.md +11 -2
- package/web/references/lamborghini/DESIGN.md +14 -0
- package/web/references/line/DESIGN.md +17 -2
- package/web/references/linear.app/DESIGN.md +17 -2
- package/web/references/lovable/DESIGN.md +14 -0
- package/web/references/lunit/DESIGN.md +249 -0
- package/web/references/meituan/DESIGN.md +424 -0
- package/web/references/mercari/DESIGN.md +11 -2
- package/web/references/millie/DESIGN.md +533 -0
- package/web/references/minimax/DESIGN.md +14 -0
- package/web/references/mintlify/DESIGN.md +14 -0
- package/web/references/miro/DESIGN.md +20 -0
- package/web/references/mistral.ai/DESIGN.md +20 -0
- package/web/references/money-forward/DESIGN.md +401 -0
- package/web/references/mongodb/DESIGN.md +19 -0
- package/web/references/musinsa/DESIGN.md +11 -2
- package/web/references/myrealtrip/DESIGN.md +445 -0
- package/web/references/naver/DESIGN.md +17 -2
- package/web/references/naverwebtoon/DESIGN.md +429 -0
- package/web/references/note/DESIGN.md +318 -0
- package/web/references/notion/DESIGN.md +11 -2
- package/web/references/nvidia/DESIGN.md +11 -2
- package/web/references/ohouse/DESIGN.md +11 -2
- package/web/references/oliveyoung/DESIGN.md +342 -0
- package/web/references/ollama/DESIGN.md +14 -0
- package/web/references/opencode.ai/DESIGN.md +20 -0
- package/web/references/pinkoi/DESIGN.md +11 -2
- package/web/references/pinterest/DESIGN.md +19 -0
- package/web/references/posthog/DESIGN.md +20 -0
- package/web/references/publy/DESIGN.md +511 -0
- package/web/references/qanda/DESIGN.md +11 -2
- package/web/references/raycast/DESIGN.md +19 -0
- package/web/references/remember/DESIGN.md +17 -2
- package/web/references/renault/DESIGN.md +14 -0
- package/web/references/replicate/DESIGN.md +14 -0
- package/web/references/resend/DESIGN.md +20 -0
- package/web/references/revolut/DESIGN.md +14 -0
- package/web/references/ridi/DESIGN.md +11 -2
- package/web/references/runwayml/DESIGN.md +14 -0
- package/web/references/sanity/DESIGN.md +20 -0
- package/web/references/sentry/DESIGN.md +14 -0
- package/web/references/smarthr/DESIGN.md +404 -0
- package/web/references/smartnews/DESIGN.md +331 -0
- package/web/references/socar/DESIGN.md +17 -2
- package/web/references/spacex/DESIGN.md +11 -2
- package/web/references/spoon/DESIGN.md +446 -0
- package/web/references/spotify/DESIGN.md +14 -0
- package/web/references/stripe/DESIGN.md +11 -2
- package/web/references/supabase/DESIGN.md +20 -0
- package/web/references/superhuman/DESIGN.md +20 -0
- package/web/references/tada/DESIGN.md +528 -0
- package/web/references/tesla/DESIGN.md +11 -2
- package/web/references/together.ai/DESIGN.md +20 -0
- package/web/references/toss/DESIGN.md +16 -2
- package/web/references/toss-securities/DESIGN.md +193 -0
- package/web/references/tossbank/DESIGN.md +519 -0
- package/web/references/triple/DESIGN.md +434 -0
- package/web/references/tumblbug/DESIGN.md +530 -0
- package/web/references/tving/DESIGN.md +259 -0
- package/web/references/uber/DESIGN.md +19 -0
- package/web/references/upbit/DESIGN.md +276 -0
- package/web/references/upstage/DESIGN.md +214 -0
- package/web/references/vercel/DESIGN.md +17 -2
- package/web/references/voltagent/DESIGN.md +14 -0
- package/web/references/wadiz/DESIGN.md +344 -0
- package/web/references/wanted/DESIGN.md +16 -2
- package/web/references/warp/DESIGN.md +14 -0
- package/web/references/watcha/DESIGN.md +425 -0
- package/web/references/wavve/DESIGN.md +438 -0
- package/web/references/wconcept/DESIGN.md +511 -0
- package/web/references/webflow/DESIGN.md +14 -0
- package/web/references/wise/DESIGN.md +19 -0
- package/web/references/x.ai/DESIGN.md +14 -0
- package/web/references/xiaohongshu/DESIGN.md +423 -0
- package/web/references/yanolja/DESIGN.md +17 -2
- package/web/references/yeogiotte/DESIGN.md +18 -2
- package/web/references/yogiyo/DESIGN.md +465 -0
- package/web/references/zapier/DESIGN.md +20 -0
- package/web/references/zigbang/DESIGN.md +12 -2
- package/web/references/zigzag/DESIGN.md +17 -2
- package/agents/omd-3d-blender.md +0 -269
- package/dist/install-skills-MVXVXYAY.js.map +0 -1
|
@@ -0,0 +1,519 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: tossbank
|
|
3
|
+
name: Toss Bank
|
|
4
|
+
country: KR
|
|
5
|
+
category: fintech
|
|
6
|
+
homepage: "https://www.tossbank.com"
|
|
7
|
+
primary_color: "#0064FF"
|
|
8
|
+
logo:
|
|
9
|
+
type: favicon
|
|
10
|
+
slug: "https://www.google.com/s2/favicons?domain=tossbank.com&sz=128"
|
|
11
|
+
verified: "2026-05-27"
|
|
12
|
+
omd: "0.1"
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Design System Inspiration of Toss Bank (토스뱅크)
|
|
16
|
+
|
|
17
|
+
## 1. Visual Theme & Atmosphere
|
|
18
|
+
|
|
19
|
+
Toss Bank is the licensed internet-only bank inside the Toss universe — the moment the calm, blue-accented Toss design language stops being a money-transfer convenience and becomes an actual chartered bank holding your deposits. Where the parent Toss app feels like a friend who happens to handle money, Toss Bank carries a slightly heavier responsibility: this is a *bank*, regulated, FSS-supervised, holding real balances and issuing real cards. The design resolves that tension by doubling down on the same calm-confident minimalism rather than reaching for institutional gravitas. The canvas is clean white (`#ffffff`), headings are a warm near-black charcoal (`#191f28`), and a single confident blue does all the interactive work. The atmosphere is "trustworthy because it's clear, not because it's stern."
|
|
20
|
+
|
|
21
|
+
The brand color is the official Toss blue `#0064FF` (Pantone 2175 C) — the same cerulean that anchors the entire Viva Republica family. On marketing and brand surfaces it appears as that saturated `#0064FF`; in the running product UI, interactive elements lean on the slightly softer, more legible `#3182f6` (blue500) inherited from the shared Toss design language. This brand-vs-UI blue split is deliberate and load-bearing: `#0064FF` is the logo and the promise, `#3182f6` is the tappable surface. The optimism of the color is the entire thesis — money at a bank can feel light, not bureaucratic.
|
|
22
|
+
|
|
23
|
+
Typography is **Toss Product Sans**, the custom typeface developed with Sandoll and Leedotype for financial contexts, where numerals and Latin characters are optically balanced against Korean hangul and financial symbols (`%`, comma separators, `±`) are tuned for small-size legibility. Toss Bank leans hard on tabular (fixed-width) numerals — a bank is, at its core, a column of numbers, and those numbers must never jitter.
|
|
24
|
+
|
|
25
|
+
**Key Characteristics:**
|
|
26
|
+
- Toss brand blue `#0064FF` (Pantone 2175 C) for logo/marketing; UI blue `#3182f6` for interactive surfaces
|
|
27
|
+
- Clean white canvas (`#ffffff`) with warm charcoal text (`#191f28`) — trust through clarity, not weight
|
|
28
|
+
- Toss Product Sans with Korean-Latin optical balancing and tabular numerals for balances and rates
|
|
29
|
+
- Minimal, single-layer black shadows — visual noise reads as a credibility tax in banking
|
|
30
|
+
- "이자 every day" product story: interest accruing daily is a recurring hero motif
|
|
31
|
+
- 375px mobile-first baseline; spacious summary screens, dense detail screens
|
|
32
|
+
- Blue is interaction, never decoration — illustrations and ornaments stay neutral
|
|
33
|
+
|
|
34
|
+
## 2. Color Palette & Roles
|
|
35
|
+
|
|
36
|
+
Toss Bank reuses the shared Toss design-language palette. Brand-tier `#0064FF` is verified from the official Toss brand resource center (brand.toss.im, Pantone 2175 C); UI-tier blues follow the documented Toss Product/TDS scale.
|
|
37
|
+
|
|
38
|
+
### Brand (Logo / Marketing)
|
|
39
|
+
- **Toss Brand Blue** (`#0064FF`): Pantone 2175 C. Logo lockup, marketing hero blocks, app icon. The promise color.
|
|
40
|
+
- **Brand Gray** (`#202632`): Secondary brand color (Pantone 433 C). Corporate, legal, and footer contexts.
|
|
41
|
+
|
|
42
|
+
### Primary (UI Interactive)
|
|
43
|
+
- **Toss Blue** (`#3182f6`): `blue500`. Primary interactive color — CTAs, links, active states, selection. The workhorse of every tappable element in-product.
|
|
44
|
+
- **Blue Hover** (`#2272eb`): `blue600`. Hover / pressed state for blue500 elements.
|
|
45
|
+
- **Blue Light** (`#e8f3ff`): `blue50`. Informational backgrounds, subtle blue-tinted surfaces, "이자 받기" highlight blocks.
|
|
46
|
+
|
|
47
|
+
### Surfaces
|
|
48
|
+
- **Pure White** (`#ffffff`): Page background, card surfaces.
|
|
49
|
+
- **Grey 50** (`#f9fafb`): Lightest gray surface, section backgrounds.
|
|
50
|
+
- **Grey 100** (`#f2f4f6`): Secondary background, card fills, disabled surfaces, skeleton blocks.
|
|
51
|
+
|
|
52
|
+
### Text
|
|
53
|
+
- **Dark Charcoal** (`#191f28`): `grey900`. Primary headings, balances, strongest text. Warm near-black.
|
|
54
|
+
- **Grey 800** (`#333d4b`): Strong labels, navigation text.
|
|
55
|
+
- **Grey 700** (`#4e5968`): Emphasized body text, sub-headings.
|
|
56
|
+
- **Grey 600** (`#6b7684`): Body text, descriptions, metadata.
|
|
57
|
+
- **Grey 500** (`#8b95a1`): Caption text, secondary labels.
|
|
58
|
+
- **Grey 400** (`#b0b8c1`): Placeholder text, disabled icon fills.
|
|
59
|
+
|
|
60
|
+
### Borders
|
|
61
|
+
- **Border Default** (`#e5e8eb`): grey200. Standard card borders, dividers, input outlines.
|
|
62
|
+
- **Border Strong** (`#d1d6db`): grey300. Emphasized borders, active input outlines.
|
|
63
|
+
|
|
64
|
+
### Semantic
|
|
65
|
+
- **Error Red** (`#f04452`): `red500`. Errors, destructive actions, negative balance/expense indicators.
|
|
66
|
+
- **Success Green** (`#03b26c`): `green500`. Positive indicators, interest earned, confirmations.
|
|
67
|
+
- **Warning Orange** (`#fe9800`): `orange500`. Pending states, attention-needed.
|
|
68
|
+
- **Caution Yellow** (`#ffc342`): `yellow500`. Soft warnings, highlight moments.
|
|
69
|
+
|
|
70
|
+
## 3. Typography Rules
|
|
71
|
+
|
|
72
|
+
### Font Family
|
|
73
|
+
- **Primary**: `"Toss Product Sans", "Tossface", "SF Pro KR", "SF Pro Display", -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", Roboto, "Noto Sans KR", sans-serif`
|
|
74
|
+
- **Monospace**: `"SF Mono", SFMono-Regular, Menlo, Consolas, monospace`
|
|
75
|
+
- **Emoji**: `Tossface` — Toss's custom emoji font, decorative only, never on balance-handling screens
|
|
76
|
+
|
|
77
|
+
### Hierarchy
|
|
78
|
+
|
|
79
|
+
| Role | Font | Size | Weight | Line Height | Notes |
|
|
80
|
+
|------|------|------|--------|-------------|-------|
|
|
81
|
+
| Display Hero | Toss Product Sans | 30px | 700 | 40px (1.33) | Onboarding, hero moments |
|
|
82
|
+
| Display Large | Toss Product Sans | 26px | 700 | 36px (1.38) | Section headers, key metrics |
|
|
83
|
+
| Heading Large | Toss Product Sans | 22px | 700 | 30px (1.36) | Feature titles, modal headers |
|
|
84
|
+
| Heading | Toss Product Sans | 20px | 600 | 28px (1.40) | Card headings, sub-sections |
|
|
85
|
+
| Subtitle | Toss Product Sans | 16px | 600 | 24px (1.50) | List headers, nav titles |
|
|
86
|
+
| Body Large | Toss Product Sans | 16px | 400 | 24px (1.50) | Descriptions, explanations |
|
|
87
|
+
| Body | Toss Product Sans | 14px | 400 | 22px (1.57) | Standard reading text |
|
|
88
|
+
| Caption | Toss Product Sans | 12px | 400 | 18px (1.50) | Timestamps, fine print, rate disclaimers |
|
|
89
|
+
| Balance Display | Toss Product Sans | 30px+ | 700 | tight | Account balance — tabular numerals |
|
|
90
|
+
|
|
91
|
+
### Principles
|
|
92
|
+
- **Three weights from eight**: ships 300–950, UI uses 400 (body), 600 (emphasis), 700 (balances + headings).
|
|
93
|
+
- **Tabular numerals for money**: balances, interest rates, transaction amounts all use fixed-width digits so columns never shift.
|
|
94
|
+
- **Korean-Latin optical balance**: hangul and Latin/numerals independently weighted so mixed text reads harmoniously.
|
|
95
|
+
- **Rate legibility**: `%` and decimal points (interest is sold in 0.1% increments) get enhanced small-size clarity.
|
|
96
|
+
|
|
97
|
+
## 4. Component Stylings
|
|
98
|
+
|
|
99
|
+
### Buttons
|
|
100
|
+
|
|
101
|
+
Toss Bank reuses the TDS `<Button>` system — variant × color × size, default `xlarge` (56px). Geometry follows the shared Toss Product Sans / TDS Mobile scale.
|
|
102
|
+
|
|
103
|
+
**Fill / Primary**
|
|
104
|
+
- Background: `#3182f6`
|
|
105
|
+
- Text: `#ffffff`
|
|
106
|
+
- Border: none
|
|
107
|
+
- Radius: 16px
|
|
108
|
+
- Padding: 0 20px
|
|
109
|
+
- Font: 17px / 600 / Toss Product Sans
|
|
110
|
+
- Pressed: dim overlay via `--button-pressed-opacity`
|
|
111
|
+
- Disabled: bg opacity scaled by `--button-disabled-opacity-color`
|
|
112
|
+
- Use: Primary CTA (계좌 만들기, 이자 받기, 송금하기) — 56px tall
|
|
113
|
+
|
|
114
|
+
**Fill / Dark**
|
|
115
|
+
- Background: `#4e5968`
|
|
116
|
+
- Text: `#ffffff`
|
|
117
|
+
- Border: none
|
|
118
|
+
- Radius: 16px
|
|
119
|
+
- Padding: 0 20px
|
|
120
|
+
- Font: 17px / 600 / Toss Product Sans
|
|
121
|
+
- Use: Strong neutral action (설정 저장, 본인인증 진행)
|
|
122
|
+
|
|
123
|
+
**Fill / Danger**
|
|
124
|
+
- Background: `#f04452`
|
|
125
|
+
- Text: `#ffffff`
|
|
126
|
+
- Border: none
|
|
127
|
+
- Radius: 16px
|
|
128
|
+
- Padding: 0 20px
|
|
129
|
+
- Font: 17px / 600 / Toss Product Sans
|
|
130
|
+
- Use: Destructive confirmation (계좌 해지, 카드 분실신고)
|
|
131
|
+
|
|
132
|
+
**Weak / Primary**
|
|
133
|
+
- Background: `rgba(100, 168, 255, 0.15)`
|
|
134
|
+
- Text: `#2272eb`
|
|
135
|
+
- Border: none
|
|
136
|
+
- Radius: 16px
|
|
137
|
+
- Padding: 0 20px
|
|
138
|
+
- Font: 17px / 600 / Toss Product Sans
|
|
139
|
+
- Use: Secondary action paired with Fill / Primary on the same screen
|
|
140
|
+
|
|
141
|
+
**Weak / Dark**
|
|
142
|
+
- Background: `rgba(2, 32, 71, 0.05)`
|
|
143
|
+
- Text: `#4e5968`
|
|
144
|
+
- Border: none
|
|
145
|
+
- Radius: 16px
|
|
146
|
+
- Padding: 0 20px
|
|
147
|
+
- Font: 17px / 600 / Toss Product Sans
|
|
148
|
+
- Use: Cancel / neutral secondary (취소, 닫기, 나중에 하기)
|
|
149
|
+
|
|
150
|
+
Size scale (height · font · radius): `small` 32px · 13px/600 · 8px; `medium` 38px · 15px/600 · 10px; `large` 48px · 17px/600 · 14px; `xlarge` (default) 56px · 17px/600 · 16px. Display modes: `inline`, `block`, `full`.
|
|
151
|
+
|
|
152
|
+
### Inputs
|
|
153
|
+
|
|
154
|
+
Toss Bank reuses TDS `<TextField>` (`box` default, plus `line` / `big` / `hero`). `SecureKeypad` (randomised-position PIN) and `SplitTextField` (OTP / 인증번호) are first-class for the banking flows.
|
|
155
|
+
|
|
156
|
+
**Box (default)**
|
|
157
|
+
- Background: `rgba(0, 23, 51, 0.02)`
|
|
158
|
+
- Text: `#333d4b`
|
|
159
|
+
- Border: 1px solid `rgba(2, 32, 71, 0.05)`
|
|
160
|
+
- Radius: 14px
|
|
161
|
+
- Padding: 14px 16px
|
|
162
|
+
- Font: 17px / 400 / Toss Product Sans
|
|
163
|
+
- Placeholder: `#b0b8c1`
|
|
164
|
+
- Focus: border `#3182f6`
|
|
165
|
+
- Use: Standard form input — account name, memo
|
|
166
|
+
|
|
167
|
+
**Hero (amount entry)**
|
|
168
|
+
- Background: transparent
|
|
169
|
+
- Text: `#333d4b`
|
|
170
|
+
- Border: 1px solid `#e5e8eb` (bottom only)
|
|
171
|
+
- Radius: 0px
|
|
172
|
+
- Padding: 0px 0px 4px
|
|
173
|
+
- Font: 30px / 600 / Toss Product Sans
|
|
174
|
+
- Use: Large transfer/deposit amount entry — tabular numerals
|
|
175
|
+
|
|
176
|
+
**Error**
|
|
177
|
+
- Background: `rgba(0, 23, 51, 0.02)`
|
|
178
|
+
- Text: `#333d4b`
|
|
179
|
+
- Border: 1px solid `#f04452`
|
|
180
|
+
- Radius: 14px
|
|
181
|
+
- Padding: 14px 16px
|
|
182
|
+
- Font: 17px / 400 / Toss Product Sans
|
|
183
|
+
- Use: `hasError` state — paired with inline help in `#f04452`
|
|
184
|
+
|
|
185
|
+
### Cards
|
|
186
|
+
|
|
187
|
+
**Account / Balance Card**
|
|
188
|
+
- Background: `#ffffff`
|
|
189
|
+
- Border: none
|
|
190
|
+
- Radius: 16px
|
|
191
|
+
- Padding: 24px
|
|
192
|
+
- Shadow: `0px 2px 8px rgba(0,0,0,0.08)`
|
|
193
|
+
- Use: The hero surface — account name, balance (30px/700, tabular), "이자 매일 받기" affordance
|
|
194
|
+
|
|
195
|
+
**Standard Card**
|
|
196
|
+
- Background: `#ffffff`
|
|
197
|
+
- Border: none
|
|
198
|
+
- Radius: 12px
|
|
199
|
+
- Padding: 20px
|
|
200
|
+
- Shadow: `0px 2px 8px rgba(0,0,0,0.08)`
|
|
201
|
+
- Use: Transaction summary, product cards
|
|
202
|
+
|
|
203
|
+
**Compact (list row)**
|
|
204
|
+
- Background: `#ffffff`
|
|
205
|
+
- Border: 1px solid `#e5e8eb`
|
|
206
|
+
- Radius: 8px
|
|
207
|
+
- Padding: 12px
|
|
208
|
+
- Shadow: none
|
|
209
|
+
- Use: Transaction list rows where a soft 1px edge replaces shadow
|
|
210
|
+
|
|
211
|
+
### Badges
|
|
212
|
+
|
|
213
|
+
**Fill / Blue**
|
|
214
|
+
- Background: `#3182f6`
|
|
215
|
+
- Text: `#ffffff`
|
|
216
|
+
- Border: none
|
|
217
|
+
- Radius: 12px
|
|
218
|
+
- Padding: 3px 7px
|
|
219
|
+
- Font: 13px / 700 / Toss Product Sans
|
|
220
|
+
- Use: Status emphasis ("NEW", "한도 상향")
|
|
221
|
+
|
|
222
|
+
**Weak / Green**
|
|
223
|
+
- Background: `rgba(34, 197, 94, 0.15)`
|
|
224
|
+
- Text: `#16a34a`
|
|
225
|
+
- Border: none
|
|
226
|
+
- Radius: 12px
|
|
227
|
+
- Padding: 3px 7px
|
|
228
|
+
- Font: 13px / 700 / Toss Product Sans
|
|
229
|
+
- Use: Interest-earned / completed state (입금 완료)
|
|
230
|
+
|
|
231
|
+
**Weak / Elephant**
|
|
232
|
+
- Background: `rgba(2, 32, 71, 0.05)`
|
|
233
|
+
- Text: `#4e5968`
|
|
234
|
+
- Border: none
|
|
235
|
+
- Radius: 12px
|
|
236
|
+
- Padding: 3px 7px
|
|
237
|
+
- Font: 13px / 700 / Toss Product Sans
|
|
238
|
+
- Use: Neutral metadata badge (적금, 입출금)
|
|
239
|
+
|
|
240
|
+
### Tabs
|
|
241
|
+
|
|
242
|
+
**Bottom Tab (Active)**
|
|
243
|
+
- Background: `#ffffff`
|
|
244
|
+
- Text: `#191f28`
|
|
245
|
+
- Border: 1px solid `#e5e8eb` (top border only)
|
|
246
|
+
- Active: `#3182f6` icon + label
|
|
247
|
+
- Font: 11px / 500 / Toss Product Sans
|
|
248
|
+
- Use: Bottom navigation — fixed white, no shadow
|
|
249
|
+
|
|
250
|
+
**Segmented**
|
|
251
|
+
- Background: `#f2f4f6`
|
|
252
|
+
- Text: `#8b95a1`
|
|
253
|
+
- Border: none
|
|
254
|
+
- Radius: 12px
|
|
255
|
+
- Padding: 8px 16px
|
|
256
|
+
- Active: `#ffffff` bg + `#191f28` text + `0px 2px 4px rgba(0,0,0,0.06)` shadow
|
|
257
|
+
- Font: 14px / 600 / Toss Product Sans
|
|
258
|
+
- Use: 입금/출금 내역 switching, 월/주 전환
|
|
259
|
+
|
|
260
|
+
### Toasts
|
|
261
|
+
|
|
262
|
+
**Default**
|
|
263
|
+
- Background: `#191f28`
|
|
264
|
+
- Text: `#ffffff`
|
|
265
|
+
- Border: none
|
|
266
|
+
- Radius: 8px
|
|
267
|
+
- Padding: 12px 16px
|
|
268
|
+
- Shadow: `0px 4px 12px rgba(0,0,0,0.12)`
|
|
269
|
+
- Font: 14px / 500 / Toss Product Sans
|
|
270
|
+
- Use: Transient feedback ("복사되었어요"). Money-moved success is a dedicated screen, never a toast.
|
|
271
|
+
|
|
272
|
+
### Dialogs
|
|
273
|
+
|
|
274
|
+
**Bottom Sheet**
|
|
275
|
+
- Background: `#ffffff`
|
|
276
|
+
- Text: `#191f28`
|
|
277
|
+
- Border: none
|
|
278
|
+
- Radius: 16px (top corners only)
|
|
279
|
+
- Padding: 24px 20px
|
|
280
|
+
- Shadow: `0px -4px 12px rgba(0,0,0,0.08)`
|
|
281
|
+
- Use: Selection, picker, secondary form (account picker, 송금 확인)
|
|
282
|
+
|
|
283
|
+
### Toggles
|
|
284
|
+
|
|
285
|
+
**Default**
|
|
286
|
+
- Background: `#3182f6` (on) / `#d1d6db` (off)
|
|
287
|
+
- Border: none
|
|
288
|
+
- Radius: 9999px
|
|
289
|
+
- Thumb: `#ffffff` 18px circle, `0px 1px 2px rgba(0,0,0,0.1)` shadow
|
|
290
|
+
- Use: 매일 이자 받기 자동화, 알림 설정
|
|
291
|
+
|
|
292
|
+
---
|
|
293
|
+
|
|
294
|
+
**Verified:** 2026-05-27
|
|
295
|
+
**Tier 1 sources:** tossbank.com (live WebFetch — confirmed clean white canvas, minimal text-link CTAs `자세히 보기`, benefit-driven Korean copy `이자 2배 쌓여요`, "Forbes 국내 은행 1위" positioning); brand.toss.im (Toss brand resource center — `#0064FF` Pantone 2175 C confirmed). Component geometry inherited from the documented TDS Mobile / Toss Product Sans design language (shared across the Viva Republica family).
|
|
296
|
+
**Tier 2 sources:** getdesign.md/tossbank — not checked. styles.refero.design — not checked.
|
|
297
|
+
**Conflicts unresolved:** Brand blue `#0064FF` (logo/marketing, verified) vs. UI blue `#3182f6` (in-product interactive, inherited from shared Toss design language) — treated as distinct surfaces per Toss brand-vs-UI-blue precedent.
|
|
298
|
+
|
|
299
|
+
## 5. Layout Principles
|
|
300
|
+
|
|
301
|
+
### Spacing System
|
|
302
|
+
- Base unit: 8px
|
|
303
|
+
- Common values: 4, 8, 12, 16, 20, 24, 32, 40, 48
|
|
304
|
+
- Horizontal padding: 20px (slightly wider than typical 16px)
|
|
305
|
+
- Financial data grids: tighter 4px internal spacing
|
|
306
|
+
|
|
307
|
+
### Grid & Container
|
|
308
|
+
- Design baseline: 375px mobile width
|
|
309
|
+
- Content: full-width with 20px horizontal padding
|
|
310
|
+
- Single-column, mobile-first — no explicit multi-column grid
|
|
311
|
+
- Transaction lists: full-width rows, amounts right-aligned
|
|
312
|
+
|
|
313
|
+
### Whitespace Philosophy
|
|
314
|
+
- **Breathing room for money.** A balance at 30px with 32px margins communicates security through spaciousness.
|
|
315
|
+
- **Progressive density.** Summary screens are spacious; detail / transaction screens are dense.
|
|
316
|
+
- **Grouped by function.** Deposit / transfer / card actions separated by 24px+; related data within a group uses 8–12px gaps.
|
|
317
|
+
|
|
318
|
+
### Border Radius Scale
|
|
319
|
+
- Compact (8px): inputs, small buttons, compact cards
|
|
320
|
+
- Comfortable (12px): standard cards, dialog corners
|
|
321
|
+
- Large (16px): account cards, buttons, bottom-sheet top corners
|
|
322
|
+
- Pill (9999px): toggles, chips
|
|
323
|
+
|
|
324
|
+
## 6. Depth & Elevation
|
|
325
|
+
|
|
326
|
+
| Level | Treatment | Use |
|
|
327
|
+
|-------|-----------|-----|
|
|
328
|
+
| Flat (0) | No shadow | Page background, inline elements |
|
|
329
|
+
| Subtle (1) | `0px 1px 3px rgba(0,0,0,0.06)` | List item separation |
|
|
330
|
+
| Standard (2) | `0px 2px 8px rgba(0,0,0,0.08)` | Cards, account/balance panels |
|
|
331
|
+
| Elevated (3) | `0px 4px 12px rgba(0,0,0,0.12)` | Dropdowns, floating buttons |
|
|
332
|
+
| Modal (4) | `0px 8px 24px rgba(0,0,0,0.16)` | Bottom sheets, dialogs |
|
|
333
|
+
|
|
334
|
+
**Shadow philosophy.** Single-layer, pure black, low opacity. No colored shadows. In a chartered bank's UI, visual noise undermines trust — elevation is communicated through subtle opacity, not drama. Restraint *is* the brand statement.
|
|
335
|
+
|
|
336
|
+
## 7. Do's and Don'ts
|
|
337
|
+
|
|
338
|
+
### Do
|
|
339
|
+
- Use UI blue `#3182f6` for every interactive element; reserve `#0064FF` for logo/marketing
|
|
340
|
+
- Use tabular numerals for all balances, rates, and transaction amounts
|
|
341
|
+
- Use 700 weight for balances and headings, 400 for body, 600 for emphasis
|
|
342
|
+
- Show interest earned / income in green (`#03b26c`), expenses in red (`#f04452`)
|
|
343
|
+
- Use blue50 (`#e8f3ff`) for "이자 받기" and informational highlight blocks
|
|
344
|
+
- Keep money-moved confirmation as a dedicated screen, never a toast
|
|
345
|
+
|
|
346
|
+
### Don't
|
|
347
|
+
- Don't confuse brand blue `#0064FF` with UI blue `#3182f6`
|
|
348
|
+
- Don't use heavy or colored shadows — depth comes from layering, not drama
|
|
349
|
+
- Don't use bold (700) for body text — reserved for headings and amounts
|
|
350
|
+
- Don't approximate money (`약 120만원`) on primary surfaces — exact numerals only
|
|
351
|
+
- Don't decorate financial data displays — clarity is the aesthetic
|
|
352
|
+
- Don't introduce a second saturated accent hue; blue is the sole interactive color
|
|
353
|
+
|
|
354
|
+
## 8. Responsive Behavior
|
|
355
|
+
|
|
356
|
+
### Breakpoints
|
|
357
|
+
| Name | Width | Key Changes |
|
|
358
|
+
|------|-------|-------------|
|
|
359
|
+
| Mobile (Primary) | <480px | Full fidelity, 375px baseline |
|
|
360
|
+
| Tablet | 480–768px | Expanded cards, optional side margins |
|
|
361
|
+
| Desktop (Web) | >768px | Centered column, max-width ~480px for mobile-web parity |
|
|
362
|
+
|
|
363
|
+
### Touch Targets
|
|
364
|
+
- Buttons: xlarge ~56px, large ~48px, medium ~38px
|
|
365
|
+
- List rows: minimum 52px height for financial actions
|
|
366
|
+
- SecureKeypad: large 56–64px targets
|
|
367
|
+
|
|
368
|
+
### Collapsing Strategy
|
|
369
|
+
- Desktop web mirrors mobile in a centered column
|
|
370
|
+
- Bottom sheet → centered modal on larger screens
|
|
371
|
+
- Sticky bottom CTA bar with safe-area insets
|
|
372
|
+
|
|
373
|
+
### Image Behavior
|
|
374
|
+
- Card art / product imagery: consistent sizing within context
|
|
375
|
+
- Charts (interest history): full-width, responsive, aspect-ratio preserved
|
|
376
|
+
|
|
377
|
+
## 9. Agent Prompt Guide
|
|
378
|
+
|
|
379
|
+
### Quick Color Reference
|
|
380
|
+
- Primary CTA: UI Blue `#3182f6` (hover `#2272eb`)
|
|
381
|
+
- Brand / logo only: `#0064FF`
|
|
382
|
+
- Background: White `#ffffff`; surface `#f2f4f6`
|
|
383
|
+
- Heading: Charcoal `#191f28`; body `#6b7684`; caption `#8b95a1`
|
|
384
|
+
- Placeholder: `#b0b8c1`; border `#e5e8eb`
|
|
385
|
+
- Success/interest: Green `#03b26c`; error/expense: Red `#f04452`
|
|
386
|
+
|
|
387
|
+
### Example Component Prompts
|
|
388
|
+
- "Create a Toss Bank account card: white bg, 16px radius, 24px padding, shadow 0px 2px 8px rgba(0,0,0,0.08). Account name 14px/400 #8b95a1, balance 30px/700 #191f28 tabular numerals + '원' 20px/400. A blue50 (#e8f3ff) pill below reading '이자 받기' in #2272eb."
|
|
389
|
+
- "Build a send-money button: #3182f6 bg, white 17px/600 text, 56px tall, 16px radius, full-width. Pressed: dim overlay. Disabled: opacity drop."
|
|
390
|
+
- "Design a transaction row: full-width, 16px h-padding, 52px min-height. Left: 32px circle icon + counterparty (14px/600 #191f28) + category (12px/400 #8b95a1). Right: amount 14px/600, #f04452 expense / #03b26c income, tabular."
|
|
391
|
+
- "Create a SecureKeypad-style PIN entry: randomised digit grid, 6 dots above, each key 56px, 14px digit #191f28."
|
|
392
|
+
|
|
393
|
+
### Iteration Guide
|
|
394
|
+
1. Full Toss Product Sans stack with Korean fallbacks
|
|
395
|
+
2. Interactive = `#3182f6`; brand `#0064FF` is logo/marketing only
|
|
396
|
+
3. Money = 700 weight, tabular numerals, right-aligned in lists
|
|
397
|
+
4. Radius: 8px inputs, 12px cards, 16px account cards/sheets, pill toggles
|
|
398
|
+
5. Single-layer pure-black shadows, no tints
|
|
399
|
+
6. Mobile-first 375px, 20px h-padding
|
|
400
|
+
|
|
401
|
+
---
|
|
402
|
+
|
|
403
|
+
## 10. Voice & Tone
|
|
404
|
+
|
|
405
|
+
Toss Bank speaks like Toss — calm, unhurried, zero jargon — but with one extra ounce of fiduciary care, because it actually holds your deposits. The default register is soft-polite `해요체` (`이자가 매일 쌓여요`, `계좌가 만들어졌어요`), the friendly-but-respectful Korean ending, never the cold `~습니다` corporate voice except in regulated disclosure. Korean is the unquestioned primary voice; English appears only in product names. Sentences end in periods; buttons do not. No emoji on money-handling screens.
|
|
406
|
+
|
|
407
|
+
| Context | Tone |
|
|
408
|
+
|---|---|
|
|
409
|
+
| CTAs | Imperative short Korean verb (`계좌 만들기`, `이자 받기`, `송금하기`, `확인`). |
|
|
410
|
+
| Success toasts | Past-tense single sentence, soft ending (`송금이 완료되었어요`). No emoji. |
|
|
411
|
+
| Interest moments | Warm, concrete (`오늘 이자 23원이 쌓였어요`). Exact numerals, never rounded. |
|
|
412
|
+
| Error messages | Specific + blameless + actionable. Never `문제가 발생했습니다`. |
|
|
413
|
+
| Onboarding | Second-person, one idea per screen, no bullet lists. |
|
|
414
|
+
| Balances | Bare numerals with comma separators + 원. `1,240,000원`, never `₩1.24M`. |
|
|
415
|
+
| Legal / disclosure | Formal `합니다` register — the single exception. FSS-required rate and risk copy. |
|
|
416
|
+
|
|
417
|
+
**Forbidden phrases.** `불편을 드려 죄송합니다`, `Oops`, `죄송하지만`, `약 ~원` (approximation on money), rounded currency (`약 120만원`) on primary surfaces, English-first strings on Korean surfaces.
|
|
418
|
+
|
|
419
|
+
**Voice samples.**
|
|
420
|
+
- `이자 2배 쌓여요` — benefit-led product copy. <!-- verified: tossbank.com via WebFetch 2026-05-27 -->
|
|
421
|
+
- `포브스 선정 국내 은행 1위` — trust/credential positioning. <!-- verified: tossbank.com via WebFetch 2026-05-27 -->
|
|
422
|
+
- `오늘 이자 23원이 쌓였어요` — illustrative daily-interest moment. <!-- illustrative: follows Toss Bank's documented daily-interest product; not verified verbatim -->
|
|
423
|
+
- `계좌가 만들어졌어요` — illustrative account-created confirmation. <!-- illustrative: not verified as live copy -->
|
|
424
|
+
|
|
425
|
+
## 11. Brand Narrative
|
|
426
|
+
|
|
427
|
+
Toss Bank (토스뱅크) is the internet-only bank of **Viva Republica** (비바리퍼블리카), the company behind Toss, founded by **Lee Seung-gun (이승건)**. It received its banking license and launched in **October 2021** as Korea's third internet-only bank, after Kakao Bank and K Bank. Where the Toss app had spent years making money *move* easily, Toss Bank set out to make a chartered bank *feel* easy — challenging the legacy KB / Shinhan / Woori / Hana incumbents not on rates alone but on the entire experience of holding an account.
|
|
428
|
+
|
|
429
|
+
The signature product story is **daily interest** — `이자 매일 받기` — where interest accrues and can be claimed each day rather than at term's end. It is a financial-product feature, but it's also a design thesis: it turns a passive, invisible bank balance into something you check, tap, and feel good about every morning. The blue `#0064FF` optimism carries straight through: a bank does not have to feel like filing taxes.
|
|
430
|
+
|
|
431
|
+
What Toss Bank refuses: the institutional-indigo seriousness of legacy banking (Active-X plug-ins, 12-digit account numbers, forms that look like government paperwork), and equally the cartoonish playfulness of some consumer fintech. It occupies the same narrow middle as Toss — calm but optimistic, regulated but light. Every ornamental move costs clarity, and clarity is the trust.
|
|
432
|
+
|
|
433
|
+
## 12. Principles
|
|
434
|
+
|
|
435
|
+
1. **Clarity is the trust signal.** A bank earns confidence by being legible, not stern. *UI implication:* white canvas, single-layer shadows, one interactive hue. If a screen looks "serious" through visual weight, simplify it instead.
|
|
436
|
+
2. **Numbers are typography.** Balances, rates, and amounts use 700 weight and tabular numerals with display-heading care. *UI implication:* never let a balance jitter between values or inherit body weight; right-align amounts in lists.
|
|
437
|
+
3. **Blue is interaction, not decoration.** UI `#3182f6` appears only where the user can tap. *UI implication:* illustrations, borders, and headers stay neutral; brand `#0064FF` is logo/marketing only.
|
|
438
|
+
4. **Exactness over approximation.** Money is never `약` (about). *UI implication:* show exact won amounts with comma separators; rounding is forbidden on primary surfaces.
|
|
439
|
+
5. **One action per screen.** Two primary buttons means two screens. *UI implication:* secondary actions are fine; two primaries are never.
|
|
440
|
+
6. **Daily delight, regulated honesty.** The daily-interest warmth lives beside FSS-required disclosure in formal `합니다`. *UI implication:* keep the two registers visually separate — warm `해요체` for product, formal for legal.
|
|
441
|
+
|
|
442
|
+
## 13. Personas
|
|
443
|
+
|
|
444
|
+
*Personas are fictional archetypes informed by publicly described Korean internet-bank user segments, not individual people.*
|
|
445
|
+
|
|
446
|
+
**현우 (Hyun-woo), 31, Seoul.** Product designer at a startup. Moved his salary account to Toss Bank for the daily interest and checks the `이자 받기` tap each morning like a tiny game. Expects the balance to paint in under 1s and the app to never make him feel like he's at a bank counter.
|
|
447
|
+
|
|
448
|
+
**김여사 (Mrs. Kim), 58, Daejeon.** Runs a small flower shop. Her son set up Toss Bank for her. Uses it to receive customer transfers and pay suppliers. Trusts it because the numbers are big, clear, and exact — and because it never shows her anything that looks like a confusing form.
|
|
449
|
+
|
|
450
|
+
**서연 (Seo-yeon), 24, Gwangju.** First job, first real savings. Opened her account entirely on her phone in minutes. Treats the daily-interest screen as a habit and tells friends "it actually feels good to check your bank app," which she'd never say about a legacy bank.
|
|
451
|
+
|
|
452
|
+
## 14. States
|
|
453
|
+
|
|
454
|
+
| State | Treatment |
|
|
455
|
+
|---|---|
|
|
456
|
+
| **Empty (no transactions)** | Single `grey700` line explaining why (`아직 거래내역이 없어요`) + one secondary action (blue50 bg, blue500 text). Never an illustration, never `데이터가 없습니다`. |
|
|
457
|
+
| **Empty (filter cleared)** | Single `grey500` caption (`조건에 맞는 내역이 없어요`). No button. |
|
|
458
|
+
| **Loading (first paint)** | Skeleton blocks at `#f2f4f6` matching final layout. Balances render as `--`, never as skeleton blocks. |
|
|
459
|
+
| **Loading (refresh)** | Top pull-down spinner in blue500. No overlay; previous values stay visible. |
|
|
460
|
+
| **Error (inline field)** | `#f04452` 2px border + red500 13px error text below. One actionable sentence (`계좌번호를 다시 확인해주세요`). |
|
|
461
|
+
| **Error (toast)** | `#191f28` bg, white 14px/400, 3s auto-dismiss, one sentence, bottom 20px inset. |
|
|
462
|
+
| **Error (screen-blocking)** | Server outage only. White screen, centered `grey900` 16px/600 line + retry in blue500. No illustration. |
|
|
463
|
+
| **Success (money moved)** | Dedicated screen, not a toast. `#03b26c` checkmark top-center, exact amount 30px/700, recipient + timestamp, single `확인`. |
|
|
464
|
+
| **Success (interest claimed)** | Brief blue50 flash behind the balance + `오늘 이자 N원이 쌓였어요` toast. |
|
|
465
|
+
| **Skeleton** | `#f2f4f6` blocks at exact final dimensions, ~1.2s shimmer with 8% white highlight, component-radius rounding. Never on balances (show `--`). |
|
|
466
|
+
| **Disabled** | Button opacity drops per `--button-disabled-opacity-color`; input borders stay `grey200` so geometry is stable. |
|
|
467
|
+
|
|
468
|
+
## 15. Motion & Easing
|
|
469
|
+
|
|
470
|
+
Toss Bank's motion is calm and precise — money should never appear to flicker or bounce.
|
|
471
|
+
|
|
472
|
+
**Durations:**
|
|
473
|
+
|
|
474
|
+
| Token | Value | Use |
|
|
475
|
+
|---|---|---|
|
|
476
|
+
| `motion-instant` | 0ms | Toggle flips, checkbox states |
|
|
477
|
+
| `motion-fast` | 150ms | Hover, focus, button press overlay |
|
|
478
|
+
| `motion-standard` | 250ms | Default — sheet open, card expand, tab switch |
|
|
479
|
+
| `motion-slow` | 400ms | Emphasized — success checkmark, onboarding advance |
|
|
480
|
+
| `motion-page` | 350ms | Full-screen route transitions |
|
|
481
|
+
|
|
482
|
+
**Easings:**
|
|
483
|
+
|
|
484
|
+
| Token | Curve | Use |
|
|
485
|
+
|---|---|---|
|
|
486
|
+
| `ease-enter` | `cubic-bezier(0.0, 0.0, 0.2, 1)` | Sheets, toasts, screen pushes appearing |
|
|
487
|
+
| `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Dismissals, pops |
|
|
488
|
+
| `ease-standard` | `cubic-bezier(0.4, 0.0, 0.2, 1)` | Two-way transitions |
|
|
489
|
+
| `ease-spring` | `cubic-bezier(0.34, 1.56, 0.64, 1)` | Reserved — money-moved / interest-claimed checkmark only |
|
|
490
|
+
|
|
491
|
+
**Signature motions.**
|
|
492
|
+
1. **Balance update.** The old number slides up 20px and fades (`motion-fast / ease-exit`); the new number slides in from below (`motion-standard / ease-enter`). Never cross-fade money — flicker reads as a bug.
|
|
493
|
+
2. **Daily-interest claim.** Tapping `이자 받기` triggers a brief blue50 flash behind the balance and a small spring-eased number tick-up — the one routine place a touch of delight is licensed.
|
|
494
|
+
3. **Success checkmark.** Money-moved confirmation draws the checkmark over `motion-slow` with `ease-spring`. The only standard spring outside interest.
|
|
495
|
+
4. **Reduce motion.** Under `prefers-reduced-motion: reduce`, all tokens collapse to instant; cross-fades replace slides. No exceptions.
|
|
496
|
+
|
|
497
|
+
<!--
|
|
498
|
+
OmD v0.1 Sources — Philosophy Layer (sections 10–15)
|
|
499
|
+
|
|
500
|
+
Tier 1 (UI tokens, §1–9): tossbank.com live WebFetch 2026-05-27 (clean white
|
|
501
|
+
canvas, minimal text-link CTAs, benefit Korean copy `이자 2배 쌓여요`, Forbes
|
|
502
|
+
top-bank positioning). Brand blue `#0064FF` Pantone 2175 C confirmed via
|
|
503
|
+
brand.toss.im. Component geometry inherited from the shared documented TDS
|
|
504
|
+
Mobile / Toss Product Sans design language used across the Viva Republica
|
|
505
|
+
family; not independently re-inspected on tossbank.com surfaces.
|
|
506
|
+
|
|
507
|
+
Tier 2 (founding/narrative): Toss Bank launched Oct 2021 as Korea's third
|
|
508
|
+
internet-only bank under Viva Republica (이승건). Daily-interest (`이자 매일
|
|
509
|
+
받기`) is its signature documented product. Legacy-bank context (KB/Shinhan/
|
|
510
|
+
Woori/Hana) is general industry knowledge.
|
|
511
|
+
|
|
512
|
+
Voice samples: `이자 2배 쌓여요`, `포브스 선정 국내 은행 1위` verified live.
|
|
513
|
+
`오늘 이자 23원이 쌓였어요`, `계좌가 만들어졌어요`, `송금이 완료되었어요`
|
|
514
|
+
are ILLUSTRATIVE patterns following Toss Bank's `해요체` register and daily-
|
|
515
|
+
interest product; not confirmed verbatim.
|
|
516
|
+
|
|
517
|
+
Personas (§13) are fictional archetypes. Any resemblance to specific users is
|
|
518
|
+
unintended.
|
|
519
|
+
-->
|