oh-my-design-cli 1.8.6 → 1.9.0
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/.claude/hooks/lib/preferences-parser.cjs +1 -0
- package/.claude/hooks/lib/preferences-writer.cjs +1 -0
- package/.claude/hooks/post-edit-watch.cjs +1 -0
- package/.claude/hooks/session-end-foldin.cjs +1 -0
- package/.claude/hooks/session-state-loader.cjs +1 -0
- package/.claude/hooks/skill-activation.cjs +1 -0
- package/.claude/settings.json +10 -1
- package/.github/assets/logo-bg.png +0 -0
- package/AGENTS.md +20 -1
- package/CHANGELOG.md +482 -0
- package/MIGRATION.md +103 -0
- package/README.ja.md +56 -19
- package/README.ko.md +47 -30
- package/README.md +48 -30
- package/README.zh-TW.md +59 -22
- package/agents/AGENT.md +8 -7
- package/agents/omd-codex-image.md +1 -1
- package/agents/omd-critic.md +6 -7
- package/agents/omd-designer-review.md +1 -1
- package/agents/omd-final-qa.md +1 -1
- package/agents/omd-humanizer.md +38 -0
- package/agents/omd-kr-writer.md +3 -4
- package/agents/omd-locale-adapter.md +12 -16
- package/agents/omd-master.md +24 -19
- package/agents/omd-microcopy.md +1 -1
- package/agents/omd-orchestrator.md +7 -8
- package/agents/omd-slop-auditor.md +31 -0
- package/agents/omd-ux-researcher.md +1 -1
- package/data/reference-fingerprints.json +2761 -85
- package/dist/bin/oh-my-design.js +16 -8
- package/dist/bin/oh-my-design.js.map +1 -1
- package/dist/chunk-UJIHCEYF.js +99 -0
- package/dist/chunk-UJIHCEYF.js.map +1 -0
- package/dist/doctor-LDWSFM3I.js +763 -0
- package/dist/doctor-LDWSFM3I.js.map +1 -0
- package/dist/install-skills-ZZFNJ2II.js +1120 -0
- package/dist/install-skills-ZZFNJ2II.js.map +1 -0
- package/docs/CLI_QUICKSTART.md +157 -0
- package/package.json +25 -4
- package/scripts/postinstall.cjs +5 -4
- package/skills/claude-design/SKILL.md +38 -14
- package/skills/claude-design/references/claude-design-flow.md +11 -11
- package/skills/claude-design/references/codebase-analysis.md +5 -4
- package/skills/omd-final-qa/SKILL.md +1 -1
- package/skills/omd-harness/SKILL.md +51 -50
- package/skills/omd-humanize/SKILL.md +116 -0
- package/skills/omd-humanize/agents/openai.yaml +4 -0
- package/skills/omd-humanize/references/locale-playbooks.md +102 -0
- package/skills/omd-humanize/references/sources.md +11 -0
- package/skills/omd-init/SKILL.md +18 -12
- package/skills/omd-locale-adapter/SKILL.md +58 -91
- package/skills/omd-orchestrator/SKILL.md +11 -5
- package/skills/omd-reference-capture/SKILL.md +80 -26
- package/skills/omd-reference-capture/scripts/PLAYWRIGHT-LICENSE.txt +202 -0
- package/skills/omd-reference-capture/scripts/PLAYWRIGHT-NOTICE.txt +5 -0
- package/skills/omd-reference-capture/scripts/THIRD_PARTY_NOTICES.md +3 -0
- package/skills/omd-reference-capture/scripts/capture-reference-evidence.mjs +159906 -0
- package/skills/omd-slop-audit/SKILL.md +110 -0
- package/skills/omd-slop-audit/agents/openai.yaml +4 -0
- package/skills/omd-slop-audit/references/pattern-catalog.md +96 -0
- package/skills/omd-slop-audit/references/sources.md +24 -0
- package/web/references/104/DESIGN.md +354 -0
- package/web/references/11st/DESIGN.md +197 -316
- package/web/references/29cm/DESIGN.md +297 -393
- package/web/references/42dot/DESIGN.md +390 -0
- package/web/references/8percent/DESIGN.md +438 -0
- package/web/references/ably/DESIGN.md +267 -572
- package/web/references/acer/DESIGN.md +329 -0
- package/web/references/airbnb/DESIGN.md +219 -557
- package/web/references/airbridge/DESIGN.md +451 -0
- package/web/references/alipay/DESIGN.md +179 -420
- package/web/references/apple/DESIGN.md +224 -498
- package/web/references/asleep/DESIGN.md +402 -0
- package/web/references/au/DESIGN.md +334 -0
- package/web/references/autopedia/DESIGN.md +382 -0
- package/web/references/aws-cloudscape/DESIGN.md +241 -0
- package/web/references/baemin/DESIGN.md +332 -491
- package/web/references/banksalad/DESIGN.md +269 -180
- package/web/references/barogo/DESIGN.md +416 -0
- package/web/references/beusable/DESIGN.md +464 -0
- package/web/references/bigin/DESIGN.md +454 -0
- package/web/references/bilibili/DESIGN.md +206 -374
- package/web/references/bmw/DESIGN.md +162 -276
- package/web/references/brandi/DESIGN.md +184 -325
- package/web/references/buzzvil/DESIGN.md +457 -0
- package/web/references/cafe24/DESIGN.md +472 -0
- package/web/references/catchtable/DESIGN.md +219 -264
- package/web/references/cgv/DESIGN.md +317 -0
- package/web/references/channeltalk/DESIGN.md +210 -336
- package/web/references/china-airlines/DESIGN.md +291 -0
- package/web/references/cjonstyle/DESIGN.md +453 -0
- package/web/references/class101/DESIGN.md +168 -387
- package/web/references/classum/DESIGN.md +228 -203
- package/web/references/claude/DESIGN.md +242 -479
- package/web/references/clay/DESIGN.md +179 -377
- package/web/references/clickhouse/DESIGN.md +254 -343
- package/web/references/codeit/DESIGN.md +470 -0
- package/web/references/cohere/DESIGN.md +214 -324
- package/web/references/coinone/DESIGN.md +199 -179
- package/web/references/corca/DESIGN.md +414 -0
- package/web/references/coupang/DESIGN.md +205 -475
- package/web/references/cursor/DESIGN.md +240 -381
- package/web/references/dabang/DESIGN.md +248 -213
- package/web/references/dable/DESIGN.md +431 -0
- package/web/references/datarize/DESIGN.md +338 -0
- package/web/references/dealicious/DESIGN.md +402 -0
- package/web/references/drdiary/DESIGN.md +404 -0
- package/web/references/elastic/DESIGN.md +238 -0
- package/web/references/elevenlabs/DESIGN.md +183 -321
- package/web/references/elice/DESIGN.md +445 -0
- package/web/references/eslite/DESIGN.md +257 -0
- package/web/references/evaair/DESIGN.md +338 -0
- package/web/references/expo/DESIGN.md +238 -331
- package/web/references/familymart-tw/DESIGN.md +254 -0
- package/web/references/ferrari/DESIGN.md +160 -377
- package/web/references/figma/DESIGN.md +197 -451
- package/web/references/fitpet/DESIGN.md +445 -0
- package/web/references/flex/DESIGN.md +170 -253
- package/web/references/framer/DESIGN.md +197 -340
- package/web/references/freee/DESIGN.md +211 -533
- package/web/references/friendliai/DESIGN.md +431 -0
- package/web/references/frip/DESIGN.md +440 -0
- package/web/references/furiosaai/DESIGN.md +450 -0
- package/web/references/gangnamunni/DESIGN.md +154 -591
- package/web/references/gaudiolab/DESIGN.md +414 -0
- package/web/references/google/DESIGN.md +290 -398
- package/web/references/goorm/DESIGN.md +470 -0
- package/web/references/greencar/DESIGN.md +420 -0
- package/web/references/hackle/DESIGN.md +472 -0
- package/web/references/hashicorp/DESIGN.md +273 -318
- package/web/references/heydealer/DESIGN.md +429 -0
- package/web/references/humanscape/DESIGN.md +433 -0
- package/web/references/hwahae/DESIGN.md +453 -0
- package/web/references/hyundai/DESIGN.md +158 -368
- package/web/references/hyundaicard/DESIGN.md +171 -121
- package/web/references/ibm/DESIGN.md +227 -378
- package/web/references/idus/DESIGN.md +450 -0
- package/web/references/igaworks/DESIGN.md +437 -0
- package/web/references/inflearn/DESIGN.md +221 -366
- package/web/references/intuit/DESIGN.md +244 -0
- package/web/references/jandi/DESIGN.md +191 -291
- package/web/references/jobplanet/DESIGN.md +415 -0
- package/web/references/kakao/DESIGN.md +287 -475
- package/web/references/kakaobank/DESIGN.md +220 -521
- package/web/references/kakaogames/DESIGN.md +220 -0
- package/web/references/kakaopay/DESIGN.md +207 -526
- package/web/references/karrot/DESIGN.md +227 -251
- package/web/references/kb-kookmin/DESIGN.md +308 -0
- package/web/references/kbank/DESIGN.md +220 -175
- package/web/references/kcd/DESIGN.md +432 -0
- package/web/references/kmong/DESIGN.md +281 -356
- package/web/references/krds/DESIGN.md +245 -19
- package/web/references/kream/DESIGN.md +224 -359
- package/web/references/kurly/DESIGN.md +211 -533
- package/web/references/kyobobook/DESIGN.md +445 -0
- package/web/references/lablup/DESIGN.md +474 -0
- package/web/references/lamborghini/DESIGN.md +198 -360
- package/web/references/lemonbase/DESIGN.md +452 -0
- package/web/references/lguplus/DESIGN.md +259 -0
- package/web/references/likelion/DESIGN.md +283 -0
- package/web/references/line/DESIGN.md +396 -355
- package/web/references/linear.app/DESIGN.md +209 -562
- package/web/references/lotteon/DESIGN.md +386 -0
- package/web/references/lovable/DESIGN.md +255 -349
- package/web/references/makinarocks/DESIGN.md +242 -0
- package/web/references/maum-ai/DESIGN.md +423 -0
- package/web/references/medibloc/DESIGN.md +425 -0
- package/web/references/megabox/DESIGN.md +232 -0
- package/web/references/mercari/DESIGN.md +217 -434
- package/web/references/microsoft/DESIGN.md +234 -388
- package/web/references/mildang/DESIGN.md +411 -0
- package/web/references/millie/DESIGN.md +183 -504
- package/web/references/minimax/DESIGN.md +264 -322
- package/web/references/miricanvas/DESIGN.md +182 -355
- package/web/references/miro/DESIGN.md +234 -232
- package/web/references/mistral.ai/DESIGN.md +231 -314
- package/web/references/mixi/DESIGN.md +234 -0
- package/web/references/moin/DESIGN.md +445 -0
- package/web/references/mongodb/DESIGN.md +219 -316
- package/web/references/moreh/DESIGN.md +437 -0
- package/web/references/musinsa/DESIGN.md +184 -510
- package/web/references/mynavi/DESIGN.md +242 -0
- package/web/references/myrealtrip/DESIGN.md +169 -406
- package/web/references/naver/DESIGN.md +328 -499
- package/web/references/naverwebtoon/DESIGN.md +172 -395
- package/web/references/neosapience/DESIGN.md +441 -0
- package/web/references/nhn/DESIGN.md +169 -346
- package/web/references/nhncloud/DESIGN.md +185 -123
- package/web/references/nota/DESIGN.md +451 -0
- package/web/references/notion/DESIGN.md +271 -475
- package/web/references/nrise/DESIGN.md +417 -0
- package/web/references/ohouse/DESIGN.md +210 -549
- package/web/references/oliveyoung/DESIGN.md +217 -326
- package/web/references/ollama/DESIGN.md +241 -308
- package/web/references/onestore/DESIGN.md +248 -0
- package/web/references/palantir/DESIGN.md +256 -0
- package/web/references/panasonic/DESIGN.md +276 -0
- package/web/references/patternfly/DESIGN.md +259 -0
- package/web/references/payhere/DESIGN.md +438 -0
- package/web/references/pega/DESIGN.md +262 -0
- package/web/references/peoplefund/DESIGN.md +431 -0
- package/web/references/petfriends/DESIGN.md +428 -0
- package/web/references/pinkfong/DESIGN.md +199 -367
- package/web/references/pinterest/DESIGN.md +258 -308
- package/web/references/portone/DESIGN.md +446 -0
- package/web/references/poya/DESIGN.md +286 -0
- package/web/references/pozalabs/DESIGN.md +438 -0
- package/web/references/protopie/DESIGN.md +419 -0
- package/web/references/qraft/DESIGN.md +448 -0
- package/web/references/queenit/DESIGN.md +432 -0
- package/web/references/quotabook/DESIGN.md +449 -0
- package/web/references/rebellions/DESIGN.md +449 -0
- package/web/references/recruit/DESIGN.md +247 -0
- package/web/references/remember/DESIGN.md +202 -396
- package/web/references/resend/DESIGN.md +274 -348
- package/web/references/returnzero/DESIGN.md +460 -0
- package/web/references/sakura-internet/DESIGN.md +269 -0
- package/web/references/samsung/DESIGN.md +157 -359
- package/web/references/sandoll/DESIGN.md +445 -0
- package/web/references/sanity/DESIGN.md +241 -375
- package/web/references/saramin/DESIGN.md +465 -0
- package/web/references/scatterlab/DESIGN.md +412 -0
- package/web/references/selectstar/DESIGN.md +439 -0
- package/web/references/servicenow/DESIGN.md +289 -0
- package/web/references/shiftee/DESIGN.md +468 -0
- package/web/references/shinhanbank/DESIGN.md +161 -341
- package/web/references/shinhancard/DESIGN.md +208 -319
- package/web/references/sionic/DESIGN.md +454 -0
- package/web/references/sktelecom/DESIGN.md +310 -0
- package/web/references/socar/DESIGN.md +125 -32
- package/web/references/softbank/DESIGN.md +231 -0
- package/web/references/solapi/DESIGN.md +483 -0
- package/web/references/sony/DESIGN.md +234 -0
- package/web/references/soop/DESIGN.md +261 -0
- package/web/references/spacex/DESIGN.md +184 -323
- package/web/references/spotify/DESIGN.md +253 -394
- package/web/references/squeezebits/DESIGN.md +441 -0
- package/web/references/stayfolio/DESIGN.md +422 -0
- package/web/references/stripe/DESIGN.md +212 -491
- package/web/references/supabase/DESIGN.md +244 -316
- package/web/references/supertone/DESIGN.md +413 -0
- package/web/references/tabling/DESIGN.md +415 -0
- package/web/references/taishinbank/DESIGN.md +243 -0
- package/web/references/teamlab/DESIGN.md +240 -0
- package/web/references/teamsparta/DESIGN.md +472 -0
- package/web/references/tellingme/DESIGN.md +392 -0
- package/web/references/tesla/DESIGN.md +244 -427
- package/web/references/thsr/DESIGN.md +284 -0
- package/web/references/thumbtack/DESIGN.md +302 -0
- package/web/references/together.ai/DESIGN.md +257 -304
- package/web/references/toss/DESIGN.md +251 -593
- package/web/references/toss-securities/DESIGN.md +255 -178
- package/web/references/tossbank/DESIGN.md +195 -491
- package/web/references/toyota/DESIGN.md +238 -0
- package/web/references/tving/DESIGN.md +197 -245
- package/web/references/typed/DESIGN.md +413 -0
- package/web/references/uber/DESIGN.md +256 -333
- package/web/references/udn/DESIGN.md +250 -0
- package/web/references/upbit/DESIGN.md +145 -256
- package/web/references/upstage/DESIGN.md +211 -204
- package/web/references/uswds/DESIGN.md +287 -0
- package/web/references/vercel/DESIGN.md +236 -440
- package/web/references/vuno/DESIGN.md +413 -0
- package/web/references/wanted/DESIGN.md +215 -487
- package/web/references/weverse/DESIGN.md +437 -0
- package/web/references/wise/DESIGN.md +223 -231
- package/web/references/wisetracker/DESIGN.md +462 -0
- package/web/references/wooribank/DESIGN.md +245 -0
- package/web/references/yanolja/DESIGN.md +250 -419
- package/web/references/yeogiotte/DESIGN.md +235 -418
- package/web/references/zapier/DESIGN.md +256 -377
- package/web/references/zendesk/DESIGN.md +288 -0
- package/web/references/zigzag/DESIGN.md +200 -621
- package/dist/install-skills-7UUDOLG2.js +0 -734
- package/dist/install-skills-7UUDOLG2.js.map +0 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: tossbank
|
|
3
3
|
name: Toss Bank
|
|
4
|
+
display_name_kr: 토스뱅크
|
|
4
5
|
country: KR
|
|
5
6
|
category: fintech
|
|
6
7
|
homepage: "https://www.tossbank.com"
|
|
@@ -8,569 +9,272 @@ primary_color: "#0064FF"
|
|
|
8
9
|
logo:
|
|
9
10
|
type: favicon
|
|
10
11
|
slug: "https://www.google.com/s2/favicons?domain=tossbank.com&sz=128"
|
|
11
|
-
verified: "2026-
|
|
12
|
+
verified: "2026-07-13"
|
|
12
13
|
omd: "0.1"
|
|
14
|
+
ds:
|
|
15
|
+
name: Toss Brand Resource Center
|
|
16
|
+
url: "https://brand.toss.im/"
|
|
17
|
+
type: brand
|
|
18
|
+
description: Official Toss group mark and color guidance; it is not a Toss Bank product-UI token source.
|
|
19
|
+
verification_v2:
|
|
20
|
+
schema: 2
|
|
21
|
+
checked: "2026-07-13"
|
|
22
|
+
surfaces:
|
|
23
|
+
- { id: home, kind: marketing, url: "https://www.tossbank.com/", inspected: "2026-07-12" }
|
|
24
|
+
- { id: product-disclosure, kind: documentation, url: "https://www.tossbank.com/customer/product-disclosure", inspected: "2026-07-12" }
|
|
25
|
+
- { id: protected-products, kind: documentation, url: "https://www.tossbank.com/customer/protected-products", inspected: "2026-07-12" }
|
|
26
|
+
- { id: brand-assets, kind: brand-assets, url: "https://brand.toss.im/", inspected: "2026-07-13" }
|
|
27
|
+
sources:
|
|
28
|
+
- { id: home-live, kind: product-surface, url: "https://www.tossbank.com/", captured: "2026-07-12" }
|
|
29
|
+
- { id: disclosure-live, kind: product-surface, url: "https://www.tossbank.com/customer/product-disclosure", captured: "2026-07-12" }
|
|
30
|
+
- { id: protected-live, kind: product-surface, url: "https://www.tossbank.com/customer/protected-products", captured: "2026-07-12" }
|
|
31
|
+
- { id: brand-resource, kind: brand-asset, url: "https://brand.toss.im/", captured: "2026-07-13" }
|
|
32
|
+
- { id: tps-history, kind: official-doc, url: "https://toss.im/tossfeed/article/beginning-of-tps", captured: "2026-07-13" }
|
|
33
|
+
- { id: tds-design-tool, kind: official-doc, url: "https://developers-apps-in-toss.toss.im/design/prepare/design.html", captured: "2026-07-13" }
|
|
34
|
+
- { id: bank-story, kind: official-doc, url: "https://www.tossbank.com/ten-million", captured: "2026-07-13" }
|
|
35
|
+
conflicts: []
|
|
36
|
+
claims:
|
|
37
|
+
"tokens.colors.brand": &brand { surface_id: brand-assets, source_id: brand-resource, method: official-doc, captured: "2026-07-13" }
|
|
38
|
+
"tokens.colors.brand-gray": *brand
|
|
39
|
+
"tokens.colors.primary": &live { surface_id: home, source_id: home-live, method: live-inspect, captured: "2026-07-12" }
|
|
40
|
+
"tokens.colors.canvas": &docs { surface_id: protected-products, source_id: protected-live, method: live-inspect, captured: "2026-07-12" }
|
|
41
|
+
"tokens.colors.foreground": *live
|
|
42
|
+
"tokens.colors.foreground-strong": *docs
|
|
43
|
+
"tokens.colors.foreground-secondary": *docs
|
|
44
|
+
"tokens.colors.muted": *live
|
|
45
|
+
"tokens.colors.hairline": *live
|
|
46
|
+
"tokens.colors.border": *live
|
|
47
|
+
"tokens.colors.surface-muted": *docs
|
|
48
|
+
"tokens.typography.family.sans": *live
|
|
49
|
+
"tokens.typography.marketing-title.size": *live
|
|
50
|
+
"tokens.typography.marketing-title.weight": *live
|
|
51
|
+
"tokens.typography.marketing-title.lineHeight": *live
|
|
52
|
+
"tokens.typography.marketing-title.use": *live
|
|
53
|
+
"tokens.typography.navigation.size": *live
|
|
54
|
+
"tokens.typography.navigation.weight": *live
|
|
55
|
+
"tokens.typography.navigation.lineHeight": *live
|
|
56
|
+
"tokens.typography.navigation.use": *live
|
|
57
|
+
"tokens.typography.docs-body.size": *docs
|
|
58
|
+
"tokens.typography.docs-body.weight": *docs
|
|
59
|
+
"tokens.typography.docs-body.lineHeight": *docs
|
|
60
|
+
"tokens.typography.docs-body.use": *docs
|
|
61
|
+
"tokens.typography.docs-utility.size": *docs
|
|
62
|
+
"tokens.typography.docs-utility.weight": *docs
|
|
63
|
+
"tokens.typography.docs-utility.lineHeight": *docs
|
|
64
|
+
"tokens.typography.docs-utility.use": *docs
|
|
65
|
+
"tokens.spacing.xs": *live
|
|
66
|
+
"tokens.spacing.sm": *live
|
|
67
|
+
"tokens.spacing.md": *live
|
|
68
|
+
"tokens.spacing.lg": *live
|
|
69
|
+
"tokens.spacing.xl": *live
|
|
70
|
+
"tokens.rounded.none": *live
|
|
71
|
+
"tokens.rounded.compact": *live
|
|
72
|
+
"tokens.rounded.pill": *docs
|
|
73
|
+
"tokens.shadow.none": *live
|
|
74
|
+
"tokens.components.docs-outline-button.type": *docs
|
|
75
|
+
"tokens.components.docs-outline-button.fg": *docs
|
|
76
|
+
"tokens.components.docs-outline-button.radius": *docs
|
|
77
|
+
"tokens.components.docs-outline-button.padding": *docs
|
|
78
|
+
"tokens.components.docs-outline-button.font": *docs
|
|
79
|
+
"tokens.components.docs-outline-button.states": *docs
|
|
80
|
+
"tokens.components.docs-outline-button.use": *docs
|
|
81
|
+
"tokens.components.docs-tab.type": *docs
|
|
82
|
+
"tokens.components.docs-tab.fg": *docs
|
|
83
|
+
"tokens.components.docs-tab.padding": *docs
|
|
84
|
+
"tokens.components.docs-tab.font": *docs
|
|
85
|
+
"tokens.components.docs-tab.states": *docs
|
|
86
|
+
"tokens.components.docs-tab.use": *docs
|
|
13
87
|
tokens:
|
|
14
|
-
source:
|
|
15
|
-
extracted: "2026-
|
|
88
|
+
source: reconciled
|
|
89
|
+
extracted: "2026-07-12"
|
|
16
90
|
colors:
|
|
17
|
-
primary: "#3182f6"
|
|
18
|
-
primary-hover: "#2272eb"
|
|
19
|
-
primary-light: "#e8f3ff"
|
|
20
91
|
brand: "#0064ff"
|
|
21
92
|
brand-gray: "#202632"
|
|
93
|
+
primary: "#3182f6"
|
|
22
94
|
canvas: "#ffffff"
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
muted: "#
|
|
30
|
-
placeholder: "#b0b8c1"
|
|
31
|
-
border: "#e5e8eb"
|
|
32
|
-
border-strong: "#d1d6db"
|
|
33
|
-
on-primary: "#ffffff"
|
|
34
|
-
error: "#f04452"
|
|
35
|
-
success: "#03b26c"
|
|
36
|
-
warning: "#fe9800"
|
|
37
|
-
caution: "#ffc342"
|
|
95
|
+
foreground: "#212529"
|
|
96
|
+
foreground-strong: "#191f28"
|
|
97
|
+
foreground-secondary: "#4e5968"
|
|
98
|
+
muted: "#6b7684"
|
|
99
|
+
hairline: "#e5e8eb"
|
|
100
|
+
border: "#d1d6db"
|
|
101
|
+
surface-muted: "#f2f4f6"
|
|
38
102
|
typography:
|
|
39
|
-
family: { sans: "Toss Product Sans"
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
caption: { size: 12, weight: 400, lineHeight: 1.50, use: "Timestamps, fine print, rate disclaimers" }
|
|
48
|
-
spacing: { xs: 4, sm: 8, md: 12, base: 16, lg: 24, xl: 32, xxl: 48 }
|
|
49
|
-
rounded: { sm: 8, md: 12, lg: 16, full: 9999 }
|
|
50
|
-
shadow:
|
|
51
|
-
standard: "0px 2px 8px rgba(0,0,0,0.08)"
|
|
52
|
-
elevated: "0px 4px 12px rgba(0,0,0,0.12)"
|
|
53
|
-
sheet: "0px -4px 12px rgba(0,0,0,0.08)"
|
|
103
|
+
family: { sans: "Toss Product Sans" }
|
|
104
|
+
marketing-title: { size: 48, weight: 700, lineHeight: 1.3, use: "One observed marketing-home heading; not an app display scale." }
|
|
105
|
+
navigation: { size: 15, weight: 500, lineHeight: 1.5, use: "Observed public-site navigation control text." }
|
|
106
|
+
docs-body: { size: 16, weight: 400, lineHeight: 1.5, use: "Observed product-disclosure and protected-products content text." }
|
|
107
|
+
docs-utility: { size: 11, weight: 600, lineHeight: 1.6, use: "Observed compact documentation control text." }
|
|
108
|
+
spacing: { xs: 4, sm: 8, md: 12, lg: 16, xl: 32 }
|
|
109
|
+
rounded: { none: 0, compact: 20, pill: 40 }
|
|
110
|
+
shadow: { none: "none" }
|
|
54
111
|
components_harvested: true
|
|
55
112
|
components:
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
button-fill-danger: { type: button, bg: "#f04452", fg: "#ffffff", radius: 16, padding: "0 20px", font: "17/600", use: "Destructive confirmation" }
|
|
59
|
-
input-box: { type: input, fg: "#333d4b", radius: 14, padding: "14px 16px", font: "17/400", use: "Standard form input" }
|
|
60
|
-
input-error: { type: input, fg: "#333d4b", radius: 14, padding: "14px 16px", font: "17/400", use: "hasError state, 1px border #f04452" }
|
|
61
|
-
card-account: { type: card, bg: "#ffffff", radius: 16, padding: "24px", use: "Account/balance hero card" }
|
|
62
|
-
card-standard: { type: card, bg: "#ffffff", radius: 12, padding: "20px", use: "Transaction summary, product cards" }
|
|
63
|
-
card-compact: { type: listItem, bg: "#ffffff", radius: 8, padding: "12px", use: "Transaction list row, 1px border #e5e8eb" }
|
|
64
|
-
badge-blue: { type: badge, bg: "#3182f6", fg: "#ffffff", radius: 12, padding: "3px 7px", font: "13/700", use: "Status emphasis NEW" }
|
|
65
|
-
badge-elephant: { type: badge, fg: "#4e5968", radius: 12, padding: "3px 7px", font: "13/700", use: "Neutral metadata badge" }
|
|
66
|
-
toast: { type: toast, bg: "#191f28", fg: "#ffffff", radius: 8, padding: "12px 16px", font: "14/500", use: "Transient feedback" }
|
|
67
|
-
sheet: { type: dialog, bg: "#ffffff", fg: "#191f28", radius: 16, padding: "24px 20px", use: "Bottom sheet, top corners only" }
|
|
68
|
-
segmented: { type: tab, bg: "#f2f4f6", fg: "#8b95a1", radius: 12, padding: "8px 16px", font: "14/600", use: "Segmented switch", active: "bg #ffffff, text #191f28" }
|
|
69
|
-
toggle: { type: toggle, bg: "#3182f6", radius: 9999, use: "On #3182f6 / off #d1d6db, white 18px thumb" }
|
|
113
|
+
docs-outline-button: { type: button, fg: "#4e5968", radius: 40, padding: "4px 10px", font: "11/600 Toss Product Sans", states: "Collector labels focus/hover/pressed on the documented control; interactionCount is 0, so no state value is specified.", use: "Observed default documentation-chrome button on the two customer-information routes only." }
|
|
114
|
+
docs-tab: { type: tab, fg: "#212529", padding: "9px 14px", font: "16/400 Toss Product Sans", states: "Selected only (aria-selected=true); no other tab state was captured.", use: "Observed selected documentation tab at product-disclosure only." }
|
|
70
115
|
---
|
|
71
116
|
|
|
72
117
|
# Design System Inspiration of Toss Bank (토스뱅크)
|
|
73
118
|
|
|
74
119
|
## 1. Visual Theme & Atmosphere
|
|
75
120
|
|
|
76
|
-
Toss Bank is
|
|
121
|
+
Toss Bank is a Korean bank whose public site presents banking products, customer information, and a campaign asking people to describe banking experiences worth changing. The public home uses short, benefit-led Korean headlines for accounts, savings, loans, foreign exchange, cards, and always-available support; the campaign’s central line is “은행을 바꾸는 은행.” That combination gives the public-facing work a direct, conversational register rather than the ceremonial tone associated with conventional bank marketing. The live capture nevertheless contains three different source domains: the home is a marketing surface, while product disclosure and protected-products are documentation chrome. They share a loaded typeface and familiar blue/gray values, but neither route is evidence for the authenticated Toss Bank app or for financial-flow components. [Toss Bank home](https://www.tossbank.com/) · [campaign](https://www.tossbank.com/ten-million)
|
|
77
122
|
|
|
78
|
-
The
|
|
79
|
-
|
|
80
|
-
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.
|
|
123
|
+
The group’s official resource center identifies Toss Blue `#0064FF` and Toss Gray `#202632`, and includes a Toss Bank affiliate logo. Those are brand-asset facts. The supplied live capture separately shows `#3182f6` in public-site text and borders; it is retained as an observed public-surface value, not silently equated with the official logo color. The resulting reference is intentionally narrow: clear typography, sparse borders, and public information controls are verified; account, transfer, card, status, and authenticated-app patterns are not.
|
|
81
124
|
|
|
82
125
|
**Key Characteristics:**
|
|
83
|
-
- Toss brand blue `#0064FF` (Pantone 2175 C) for logo/marketing; UI blue `#3182f6` for interactive surfaces
|
|
84
|
-
- Clean white canvas (`#ffffff`) with warm charcoal text (`#191f28`) — trust through clarity, not weight
|
|
85
|
-
- Toss Product Sans with Korean-Latin optical balancing and tabular numerals for balances and rates
|
|
86
|
-
- Minimal, single-layer black shadows — visual noise reads as a credibility tax in banking
|
|
87
|
-
- "이자 every day" product story: interest accruing daily is a recurring hero motif
|
|
88
|
-
- 375px mobile-first baseline; spacious summary screens, dense detail screens
|
|
89
|
-
- Blue is interaction, never decoration — illustrations and ornaments stay neutral
|
|
90
126
|
|
|
91
|
-
|
|
127
|
+
- Official Toss brand blue `#0064FF` and gray `#202632` for group identity assets
|
|
128
|
+
- Loaded Toss Product Sans across the captured public home and customer-information routes
|
|
129
|
+
- `#3182f6` observed in public-site control text/borders, alongside neutral documentation colors
|
|
130
|
+
- Marketing, documentation chrome, and unobserved authenticated banking flows kept separate
|
|
131
|
+
- Only selector-backed public controls are described; app-style cards, forms, and transaction states are omitted
|
|
92
132
|
|
|
93
|
-
|
|
133
|
+
## 2. Color Palette & Roles
|
|
94
134
|
|
|
95
|
-
###
|
|
96
|
-
- **Toss Brand Blue** (`#0064FF`): Pantone 2175 C. Logo lockup, marketing hero blocks, app icon. The promise color.
|
|
97
|
-
- **Brand Gray** (`#202632`): Secondary brand color (Pantone 433 C). Corporate, legal, and footer contexts.
|
|
135
|
+
### Official brand assets
|
|
98
136
|
|
|
99
|
-
|
|
100
|
-
- **Toss
|
|
101
|
-
- **Blue Hover** (`#2272eb`): `blue600`. Hover / pressed state for blue500 elements.
|
|
102
|
-
- **Blue Light** (`#e8f3ff`): `blue50`. Informational backgrounds, subtle blue-tinted surfaces, "이자 받기" highlight blocks.
|
|
137
|
+
- **Toss Blue** (`#0064ff`): official Toss brand color, specified by the group resource center for brand use.
|
|
138
|
+
- **Toss Gray** (`#202632`): official Toss brand gray, also specified by the group resource center.
|
|
103
139
|
|
|
104
|
-
###
|
|
105
|
-
- **Pure White** (`#ffffff`): Page background, card surfaces.
|
|
106
|
-
- **Grey 50** (`#f9fafb`): Lightest gray surface, section backgrounds.
|
|
107
|
-
- **Grey 100** (`#f2f4f6`): Secondary background, card fills, disabled surfaces, skeleton blocks.
|
|
140
|
+
### Observed public surfaces
|
|
108
141
|
|
|
109
|
-
|
|
110
|
-
- **
|
|
111
|
-
- **
|
|
112
|
-
- **
|
|
113
|
-
- **
|
|
114
|
-
- **
|
|
115
|
-
- **
|
|
142
|
+
- **Public control blue** (`#3182f6`): repeated public-site text and border value on all three captured routes.
|
|
143
|
+
- **Canvas** (`#ffffff`): observed documentation-route background.
|
|
144
|
+
- **Foreground** (`#212529`): repeated public text value across the capture.
|
|
145
|
+
- **Strong foreground** (`#191f28`): observed on both documentation routes.
|
|
146
|
+
- **Secondary foreground** (`#4e5968`) and **muted text** (`#6b7684`): observed documentation and public-site text values.
|
|
147
|
+
- **Border** (`#d1d6db`) and **hairline** (`#e5e8eb`): observed public-route border values.
|
|
148
|
+
- **Muted surface** (`#f2f4f6`): observed background on the protected-products route.
|
|
116
149
|
|
|
117
|
-
###
|
|
118
|
-
- **Border Default** (`#e5e8eb`): grey200. Standard card borders, dividers, input outlines.
|
|
119
|
-
- **Border Strong** (`#d1d6db`): grey300. Emphasized borders, active input outlines.
|
|
150
|
+
### Boundary
|
|
120
151
|
|
|
121
|
-
|
|
122
|
-
- **Error Red** (`#f04452`): `red500`. Errors, destructive actions, negative balance/expense indicators.
|
|
123
|
-
- **Success Green** (`#03b26c`): `green500`. Positive indicators, interest earned, confirmations.
|
|
124
|
-
- **Warning Orange** (`#fe9800`): `orange500`. Pending states, attention-needed.
|
|
125
|
-
- **Caution Yellow** (`#ffc342`): `yellow500`. Soft warnings, highlight moments.
|
|
152
|
+
No captured evidence establishes semantic success/error colors, a universal CTA fill, or a Toss Bank app color system. Brand-asset colors are not promoted to product controls, and the observed public control blue is not presented as a replacement for the official brand color.
|
|
126
153
|
|
|
127
154
|
## 3. Typography Rules
|
|
128
155
|
|
|
129
|
-
###
|
|
130
|
-
|
|
131
|
-
- **
|
|
132
|
-
- **
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
|
139
|
-
|
|
140
|
-
|
|
|
141
|
-
|
|
|
142
|
-
|
|
|
143
|
-
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
| Balance Display | Toss Product Sans | 30px+ | 700 | tight | Account balance — tabular numerals |
|
|
147
|
-
|
|
148
|
-
### Principles
|
|
149
|
-
- **Three weights from eight**: ships 300–950, UI uses 400 (body), 600 (emphasis), 700 (balances + headings).
|
|
150
|
-
- **Tabular numerals for money**: balances, interest rates, transaction amounts all use fixed-width digits so columns never shift.
|
|
151
|
-
- **Korean-Latin optical balance**: hangul and Latin/numerals independently weighted so mixed text reads harmoniously.
|
|
152
|
-
- **Rate legibility**: `%` and decimal points (interest is sold in 0.1% increments) get enhanced small-size clarity.
|
|
156
|
+
### Evidence classes
|
|
157
|
+
|
|
158
|
+
- **Live computed surface-use:** **Toss Product Sans** is the computed family on 672 captured elements across the home and both customer-information routes. The collector reports a matching loaded FontFaceSet entry with 1,536 static.toss.im font-source URLs, so it is the verified public-web family for this reference.
|
|
159
|
+
- **Official product-use and history:** Toss says it developed Toss Product Sans as a product typeface for financial, mobile, and digital contexts, initially with Sandoll and later with Leedotype. This explains the typeface’s financial-context intent but does not establish unobserved Toss Bank app sizes or components. [Official typeface history](https://toss.im/tossfeed/article/beginning-of-tps)
|
|
160
|
+
- **Official distributed asset / license boundary:** Apps in Toss documentation says the Figma kit uses SF Pro because Toss Product Sans is difficult to distribute as a separate asset, while Toss apps apply Toss Product Sans automatically. The reviewed material does not grant an independent font-file license for this reference. [TDS design-tool guidance](https://developers-apps-in-toss.toss.im/design/prepare/design.html)
|
|
161
|
+
- **Declared/system families:** Tossface, SF Pro, Apple SD Gothic Neo, Roboto, Noto Sans, and emoji families occur in the computed fallback declaration. They have no loaded-font match in the supplied evidence and are not promoted to Toss Bank UI tokens.
|
|
162
|
+
|
|
163
|
+
### Observed hierarchy
|
|
164
|
+
|
|
165
|
+
| Role | Size | Weight | Line height | Source boundary |
|
|
166
|
+
|------|------|--------|-------------|-----------------|
|
|
167
|
+
| Marketing title | 48px | 700 | 62.4px | One home marketing heading |
|
|
168
|
+
| Public navigation | 15px | 500 | 22.5px | Home navigation controls |
|
|
169
|
+
| Documentation body | 16px | 400 | 24px | Product-disclosure and protected-products routes |
|
|
170
|
+
| Documentation utility | 11px | 600 | 17.6px | Compact documentation control |
|
|
171
|
+
|
|
172
|
+
Do not substitute SF Pro, Pretendard, Inter, or a system font and label it Toss Product Sans. Conversely, the non-loadable fallback declaration remains useful compatibility context but is not treated as a product font source.
|
|
153
173
|
|
|
154
174
|
## 4. Component Stylings
|
|
155
175
|
|
|
156
|
-
###
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
-
|
|
162
|
-
-
|
|
163
|
-
-
|
|
164
|
-
-
|
|
165
|
-
|
|
166
|
-
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
-
|
|
173
|
-
-
|
|
174
|
-
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
-
|
|
178
|
-
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
- Border: none
|
|
184
|
-
- Radius: 16px
|
|
185
|
-
- Padding: 0 20px
|
|
186
|
-
- Font: 17px / 600 / Toss Product Sans
|
|
187
|
-
- Use: Destructive confirmation (계좌 해지, 카드 분실신고)
|
|
188
|
-
|
|
189
|
-
**Weak / Primary**
|
|
190
|
-
- Background: `rgba(100, 168, 255, 0.15)`
|
|
191
|
-
- Text: `#2272eb`
|
|
192
|
-
- Border: none
|
|
193
|
-
- Radius: 16px
|
|
194
|
-
- Padding: 0 20px
|
|
195
|
-
- Font: 17px / 600 / Toss Product Sans
|
|
196
|
-
- Use: Secondary action paired with Fill / Primary on the same screen
|
|
197
|
-
|
|
198
|
-
**Weak / Dark**
|
|
199
|
-
- Background: `rgba(2, 32, 71, 0.05)`
|
|
200
|
-
- Text: `#4e5968`
|
|
201
|
-
- Border: none
|
|
202
|
-
- Radius: 16px
|
|
203
|
-
- Padding: 0 20px
|
|
204
|
-
- Font: 17px / 600 / Toss Product Sans
|
|
205
|
-
- Use: Cancel / neutral secondary (취소, 닫기, 나중에 하기)
|
|
206
|
-
|
|
207
|
-
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`.
|
|
208
|
-
|
|
209
|
-
### Inputs
|
|
210
|
-
|
|
211
|
-
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.
|
|
212
|
-
|
|
213
|
-
**Box (default)**
|
|
214
|
-
- Background: `rgba(0, 23, 51, 0.02)`
|
|
215
|
-
- Text: `#333d4b`
|
|
216
|
-
- Border: 1px solid `rgba(2, 32, 71, 0.05)`
|
|
217
|
-
- Radius: 14px
|
|
218
|
-
- Padding: 14px 16px
|
|
219
|
-
- Font: 17px / 400 / Toss Product Sans
|
|
220
|
-
- Placeholder: `#b0b8c1`
|
|
221
|
-
- Focus: border `#3182f6`
|
|
222
|
-
- Use: Standard form input — account name, memo
|
|
223
|
-
|
|
224
|
-
**Hero (amount entry)**
|
|
225
|
-
- Background: transparent
|
|
226
|
-
- Text: `#333d4b`
|
|
227
|
-
- Border: 1px solid `#e5e8eb` (bottom only)
|
|
228
|
-
- Radius: 0px
|
|
229
|
-
- Padding: 0px 0px 4px
|
|
230
|
-
- Font: 30px / 600 / Toss Product Sans
|
|
231
|
-
- Use: Large transfer/deposit amount entry — tabular numerals
|
|
232
|
-
|
|
233
|
-
**Error**
|
|
234
|
-
- Background: `rgba(0, 23, 51, 0.02)`
|
|
235
|
-
- Text: `#333d4b`
|
|
236
|
-
- Border: 1px solid `#f04452`
|
|
237
|
-
- Radius: 14px
|
|
238
|
-
- Padding: 14px 16px
|
|
239
|
-
- Font: 17px / 400 / Toss Product Sans
|
|
240
|
-
- Use: `hasError` state — paired with inline help in `#f04452`
|
|
241
|
-
|
|
242
|
-
### Cards
|
|
243
|
-
|
|
244
|
-
**Account / Balance Card**
|
|
245
|
-
- Background: `#ffffff`
|
|
246
|
-
- Border: none
|
|
247
|
-
- Radius: 16px
|
|
248
|
-
- Padding: 24px
|
|
249
|
-
- Shadow: `0px 2px 8px rgba(0,0,0,0.08)`
|
|
250
|
-
- Use: The hero surface — account name, balance (30px/700, tabular), "이자 매일 받기" affordance
|
|
251
|
-
|
|
252
|
-
**Standard Card**
|
|
253
|
-
- Background: `#ffffff`
|
|
254
|
-
- Border: none
|
|
255
|
-
- Radius: 12px
|
|
256
|
-
- Padding: 20px
|
|
257
|
-
- Shadow: `0px 2px 8px rgba(0,0,0,0.08)`
|
|
258
|
-
- Use: Transaction summary, product cards
|
|
259
|
-
|
|
260
|
-
**Compact (list row)**
|
|
261
|
-
- Background: `#ffffff`
|
|
262
|
-
- Border: 1px solid `#e5e8eb`
|
|
263
|
-
- Radius: 8px
|
|
264
|
-
- Padding: 12px
|
|
265
|
-
- Shadow: none
|
|
266
|
-
- Use: Transaction list rows where a soft 1px edge replaces shadow
|
|
267
|
-
|
|
268
|
-
### Badges
|
|
269
|
-
|
|
270
|
-
**Fill / Blue**
|
|
271
|
-
- Background: `#3182f6`
|
|
272
|
-
- Text: `#ffffff`
|
|
273
|
-
- Border: none
|
|
274
|
-
- Radius: 12px
|
|
275
|
-
- Padding: 3px 7px
|
|
276
|
-
- Font: 13px / 700 / Toss Product Sans
|
|
277
|
-
- Use: Status emphasis ("NEW", "한도 상향")
|
|
278
|
-
|
|
279
|
-
**Weak / Green**
|
|
280
|
-
- Background: `rgba(34, 197, 94, 0.15)`
|
|
281
|
-
- Text: `#16a34a`
|
|
282
|
-
- Border: none
|
|
283
|
-
- Radius: 12px
|
|
284
|
-
- Padding: 3px 7px
|
|
285
|
-
- Font: 13px / 700 / Toss Product Sans
|
|
286
|
-
- Use: Interest-earned / completed state (입금 완료)
|
|
287
|
-
|
|
288
|
-
**Weak / Elephant**
|
|
289
|
-
- Background: `rgba(2, 32, 71, 0.05)`
|
|
290
|
-
- Text: `#4e5968`
|
|
291
|
-
- Border: none
|
|
292
|
-
- Radius: 12px
|
|
293
|
-
- Padding: 3px 7px
|
|
294
|
-
- Font: 13px / 700 / Toss Product Sans
|
|
295
|
-
- Use: Neutral metadata badge (적금, 입출금)
|
|
296
|
-
|
|
297
|
-
### Tabs
|
|
298
|
-
|
|
299
|
-
**Bottom Tab (Active)**
|
|
300
|
-
- Background: `#ffffff`
|
|
301
|
-
- Text: `#191f28`
|
|
302
|
-
- Border: 1px solid `#e5e8eb` (top border only)
|
|
303
|
-
- Active: `#3182f6` icon + label
|
|
304
|
-
- Font: 11px / 500 / Toss Product Sans
|
|
305
|
-
- Use: Bottom navigation — fixed white, no shadow
|
|
306
|
-
|
|
307
|
-
**Segmented**
|
|
308
|
-
- Background: `#f2f4f6`
|
|
309
|
-
- Text: `#8b95a1`
|
|
310
|
-
- Border: none
|
|
311
|
-
- Radius: 12px
|
|
312
|
-
- Padding: 8px 16px
|
|
313
|
-
- Active: `#ffffff` bg + `#191f28` text + `0px 2px 4px rgba(0,0,0,0.06)` shadow
|
|
314
|
-
- Font: 14px / 600 / Toss Product Sans
|
|
315
|
-
- Use: 입금/출금 내역 switching, 월/주 전환
|
|
316
|
-
|
|
317
|
-
### Toasts
|
|
318
|
-
|
|
319
|
-
**Default**
|
|
320
|
-
- Background: `#191f28`
|
|
321
|
-
- Text: `#ffffff`
|
|
322
|
-
- Border: none
|
|
323
|
-
- Radius: 8px
|
|
324
|
-
- Padding: 12px 16px
|
|
325
|
-
- Shadow: `0px 4px 12px rgba(0,0,0,0.12)`
|
|
326
|
-
- Font: 14px / 500 / Toss Product Sans
|
|
327
|
-
- Use: Transient feedback ("복사되었어요"). Money-moved success is a dedicated screen, never a toast.
|
|
328
|
-
|
|
329
|
-
### Dialogs
|
|
330
|
-
|
|
331
|
-
**Bottom Sheet**
|
|
332
|
-
- Background: `#ffffff`
|
|
333
|
-
- Text: `#191f28`
|
|
334
|
-
- Border: none
|
|
335
|
-
- Radius: 16px (top corners only)
|
|
336
|
-
- Padding: 24px 20px
|
|
337
|
-
- Shadow: `0px -4px 12px rgba(0,0,0,0.08)`
|
|
338
|
-
- Use: Selection, picker, secondary form (account picker, 송금 확인)
|
|
339
|
-
|
|
340
|
-
### Toggles
|
|
341
|
-
|
|
342
|
-
**Default**
|
|
343
|
-
- Background: `#3182f6` (on) / `#d1d6db` (off)
|
|
344
|
-
- Border: none
|
|
345
|
-
- Radius: 9999px
|
|
346
|
-
- Thumb: `#ffffff` 18px circle, `0px 1px 2px rgba(0,0,0,0.1)` shadow
|
|
347
|
-
- Use: 매일 이자 받기 자동화, 알림 설정
|
|
176
|
+
### Public marketing home
|
|
177
|
+
|
|
178
|
+
**Pill action — observed default**
|
|
179
|
+
- Background: #fdfdfe
|
|
180
|
+
- Text: #212529
|
|
181
|
+
- Radius: 100px
|
|
182
|
+
- Padding: 18px 32px
|
|
183
|
+
- Font: 16px / 400 / Toss Product Sans
|
|
184
|
+
- Use: `home::[data-omd-capture="28"]`, a single public-home action with a 63px rendered height. It is marketing evidence only.
|
|
185
|
+
|
|
186
|
+
### Customer-information documentation chrome
|
|
187
|
+
|
|
188
|
+
**Outline button — observed default**
|
|
189
|
+
- Text: #4e5968
|
|
190
|
+
- Border: 1px solid #4e5968
|
|
191
|
+
- Radius: 40px
|
|
192
|
+
- Padding: 4px 10px
|
|
193
|
+
- Font: 11px / 600 / Toss Product Sans
|
|
194
|
+
- Use: `surface-2::[data-omd-capture="10"]`, also repeated on `surface-3`; 28px rendered height.
|
|
195
|
+
|
|
196
|
+
**Documentation tab — observed selected**
|
|
197
|
+
- Text: #212529
|
|
198
|
+
- Padding: 9px 14px
|
|
199
|
+
- Font: 16px / 400 / Toss Product Sans
|
|
200
|
+
- Use: `surface-2::[data-omd-capture="29"]`, `role="tab"` and `aria-selected="true"`; 40px rendered height.
|
|
201
|
+
|
|
202
|
+
The raw artifact labels some public buttons with focus/hover/pressed state markers but contains no interaction snapshots (`interactionCount: 0`). No state styling is therefore specified. No authenticated-app button, account card, input, badge, toast, sheet, toggle, error, success, or mobile navigation variant had selector and surface provenance in this update.
|
|
348
203
|
|
|
349
204
|
---
|
|
205
|
+
**Verified:** 2026-07-13
|
|
206
|
+
**Tier 1 sources:** https://www.tossbank.com/; https://www.tossbank.com/customer/product-disclosure; https://www.tossbank.com/customer/protected-products; https://brand.toss.im/; https://toss.im/tossfeed/article/beginning-of-tps; https://developers-apps-in-toss.toss.im/design/prepare/design.html; https://www.tossbank.com/ten-million
|
|
207
|
+
**Tier 2 sources:** https://getdesign.md/tossbank (attempted; no usable record returned); https://styles.refero.design/?q=tossbank (attempted; no usable record returned)
|
|
208
|
+
**Conflicts unresolved:** none
|
|
350
209
|
|
|
351
|
-
|
|
352
|
-
**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).
|
|
353
|
-
**Tier 2 sources:** getdesign.md/tossbank — not checked. styles.refero.design — not checked.
|
|
354
|
-
**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.
|
|
210
|
+
The previous reference inferred a mobile-bank application system from shared TDS patterns. This update retains only source-backed public values and components, while preserving separately confirmed Toss brand and typeface context.
|
|
355
211
|
|
|
356
212
|
## 5. Layout Principles
|
|
357
213
|
|
|
358
|
-
|
|
359
|
-
- Base unit: 8px
|
|
360
|
-
- Common values: 4, 8, 12, 16, 20, 24, 32, 40, 48
|
|
361
|
-
- Horizontal padding: 20px (slightly wider than typical 16px)
|
|
362
|
-
- Financial data grids: tighter 4px internal spacing
|
|
363
|
-
|
|
364
|
-
### Grid & Container
|
|
365
|
-
- Design baseline: 375px mobile width
|
|
366
|
-
- Content: full-width with 20px horizontal padding
|
|
367
|
-
- Single-column, mobile-first — no explicit multi-column grid
|
|
368
|
-
- Transaction lists: full-width rows, amounts right-aligned
|
|
369
|
-
|
|
370
|
-
### Whitespace Philosophy
|
|
371
|
-
- **Breathing room for money.** A balance at 30px with 32px margins communicates security through spaciousness.
|
|
372
|
-
- **Progressive density.** Summary screens are spacious; detail / transaction screens are dense.
|
|
373
|
-
- **Grouped by function.** Deposit / transfer / card actions separated by 24px+; related data within a group uses 8–12px gaps.
|
|
374
|
-
|
|
375
|
-
### Border Radius Scale
|
|
376
|
-
- Compact (8px): inputs, small buttons, compact cards
|
|
377
|
-
- Comfortable (12px): standard cards, dialog corners
|
|
378
|
-
- Large (16px): account cards, buttons, bottom-sheet top corners
|
|
379
|
-
- Pill (9999px): toggles, chips
|
|
214
|
+
The supplied desktop capture exposes public marketing and documentation layouts, not an authenticated banking-screen grid. Observed spacing values cluster at 4, 8, 12, 16, and 32px; documentation controls use compact padding while the home pill action uses 18px 32px. A 375px baseline, transaction alignment rules, safe-area behavior, and an app layout grid were not captured and are omitted.
|
|
380
215
|
|
|
381
216
|
## 6. Depth & Elevation
|
|
382
217
|
|
|
383
|
-
|
|
384
|
-
|-------|-----------|-----|
|
|
385
|
-
| Flat (0) | No shadow | Page background, inline elements |
|
|
386
|
-
| Subtle (1) | `0px 1px 3px rgba(0,0,0,0.06)` | List item separation |
|
|
387
|
-
| Standard (2) | `0px 2px 8px rgba(0,0,0,0.08)` | Cards, account/balance panels |
|
|
388
|
-
| Elevated (3) | `0px 4px 12px rgba(0,0,0,0.12)` | Dropdowns, floating buttons |
|
|
389
|
-
| Modal (4) | `0px 8px 24px rgba(0,0,0,0.16)` | Bottom sheets, dialogs |
|
|
390
|
-
|
|
391
|
-
**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.
|
|
218
|
+
The representative public controls have `box-shadow: none`. No evidence in this run supports a card, sheet, modal, floating-action, or elevation scale. Use flat public-surface controls only where their documented source domain applies; do not infer banking-product depth rules.
|
|
392
219
|
|
|
393
220
|
## 7. Do's and Don'ts
|
|
394
221
|
|
|
395
222
|
### Do
|
|
396
|
-
- Use UI blue `#3182f6` for every interactive element; reserve `#0064FF` for logo/marketing
|
|
397
|
-
- Use tabular numerals for all balances, rates, and transaction amounts
|
|
398
|
-
- Use 700 weight for balances and headings, 400 for body, 600 for emphasis
|
|
399
|
-
- Show interest earned / income in green (`#03b26c`), expenses in red (`#f04452`)
|
|
400
|
-
- Use blue50 (`#e8f3ff`) for "이자 받기" and informational highlight blocks
|
|
401
|
-
- Keep money-moved confirmation as a dedicated screen, never a toast
|
|
402
223
|
|
|
403
|
-
|
|
404
|
-
-
|
|
405
|
-
-
|
|
406
|
-
-
|
|
407
|
-
- Don't approximate money (`약 120만원`) on primary surfaces — exact numerals only
|
|
408
|
-
- Don't decorate financial data displays — clarity is the aesthetic
|
|
409
|
-
- Don't introduce a second saturated accent hue; blue is the sole interactive color
|
|
224
|
+
- Keep official brand assets (`#0064ff`, `#202632`) distinct from live public-interface observations.
|
|
225
|
+
- Use Toss Product Sans only when the deployment can load the verified family or is explicitly within its official platform boundary.
|
|
226
|
+
- Preserve the marketing-home and customer-information source domains on documented controls.
|
|
227
|
+
- Treat the selected documentation tab as a selected documentation state, not a general app tab pattern.
|
|
410
228
|
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
### Breakpoints
|
|
414
|
-
| Name | Width | Key Changes |
|
|
415
|
-
|------|-------|-------------|
|
|
416
|
-
| Mobile (Primary) | <480px | Full fidelity, 375px baseline |
|
|
417
|
-
| Tablet | 480–768px | Expanded cards, optional side margins |
|
|
418
|
-
| Desktop (Web) | >768px | Centered column, max-width ~480px for mobile-web parity |
|
|
229
|
+
### Don't
|
|
419
230
|
|
|
420
|
-
|
|
421
|
-
-
|
|
422
|
-
-
|
|
423
|
-
-
|
|
231
|
+
- Do not turn the observed `#3182f6` text/border value into a universal filled banking CTA.
|
|
232
|
+
- Do not reuse the public pill action as a transfer, account-opening, or confirmation component.
|
|
233
|
+
- Do not invent hover, pressed, focus, error, disabled, success, or responsive variants from this artifact.
|
|
234
|
+
- Do not substitute a system font and call it Toss Product Sans.
|
|
424
235
|
|
|
425
|
-
|
|
426
|
-
- Desktop web mirrors mobile in a centered column
|
|
427
|
-
- Bottom sheet → centered modal on larger screens
|
|
428
|
-
- Sticky bottom CTA bar with safe-area insets
|
|
236
|
+
## 8. Responsive Behavior
|
|
429
237
|
|
|
430
|
-
|
|
431
|
-
- Card art / product imagery: consistent sizing within context
|
|
432
|
-
- Charts (interest history): full-width, responsive, aspect-ratio preserved
|
|
238
|
+
Only a 1440×900 collector viewport was supplied. No mobile viewport, breakpoint, responsive layout change, touch-target policy, or safe-area behavior was observed. Re-verification needs public mobile captures before this reference can describe responsive rules.
|
|
433
239
|
|
|
434
240
|
## 9. Agent Prompt Guide
|
|
435
241
|
|
|
436
|
-
|
|
437
|
-
- Primary CTA: UI Blue `#3182f6` (hover `#2272eb`)
|
|
438
|
-
- Brand / logo only: `#0064FF`
|
|
439
|
-
- Background: White `#ffffff`; surface `#f2f4f6`
|
|
440
|
-
- Heading: Charcoal `#191f28`; body `#6b7684`; caption `#8b95a1`
|
|
441
|
-
- Placeholder: `#b0b8c1`; border `#e5e8eb`
|
|
442
|
-
- Success/interest: Green `#03b26c`; error/expense: Red `#f04452`
|
|
443
|
-
|
|
444
|
-
### Example Component Prompts
|
|
445
|
-
- "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."
|
|
446
|
-
- "Build a send-money button: #3182f6 bg, white 17px/600 text, 56px tall, 16px radius, full-width. Pressed: dim overlay. Disabled: opacity drop."
|
|
447
|
-
- "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."
|
|
448
|
-
- "Create a SecureKeypad-style PIN entry: randomised digit grid, 6 dots above, each key 56px, 14px digit #191f28."
|
|
449
|
-
|
|
450
|
-
### Iteration Guide
|
|
451
|
-
1. Full Toss Product Sans stack with Korean fallbacks
|
|
452
|
-
2. Interactive = `#3182f6`; brand `#0064FF` is logo/marketing only
|
|
453
|
-
3. Money = 700 weight, tabular numerals, right-aligned in lists
|
|
454
|
-
4. Radius: 8px inputs, 12px cards, 16px account cards/sheets, pill toggles
|
|
455
|
-
5. Single-layer pure-black shadows, no tints
|
|
456
|
-
6. Mobile-first 375px, 20px h-padding
|
|
457
|
-
|
|
458
|
-
---
|
|
242
|
+
For a public Toss Bank marketing or customer-information concept, use the verified source boundary: official group blue `#0064ff` for brand context; observed public control blue `#3182f6` only as a text/border observation; neutral text and hairlines; and Toss Product Sans only when it can actually load. Do not generate an account dashboard, money transfer flow, banking status state, or universal TDS component from this reference—the current evidence does not establish them.
|
|
459
243
|
|
|
460
244
|
## 10. Voice & Tone
|
|
461
245
|
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
| Context | Tone |
|
|
465
|
-
|---|---|
|
|
466
|
-
| CTAs | Imperative short Korean verb (`계좌 만들기`, `이자 받기`, `송금하기`, `확인`). |
|
|
467
|
-
| Success toasts | Past-tense single sentence, soft ending (`송금이 완료되었어요`). No emoji. |
|
|
468
|
-
| Interest moments | Warm, concrete (`오늘 이자 23원이 쌓였어요`). Exact numerals, never rounded. |
|
|
469
|
-
| Error messages | Specific + blameless + actionable. Never `문제가 발생했습니다`. |
|
|
470
|
-
| Onboarding | Second-person, one idea per screen, no bullet lists. |
|
|
471
|
-
| Balances | Bare numerals with comma separators + 원. `1,240,000원`, never `₩1.24M`. |
|
|
472
|
-
| Legal / disclosure | Formal `합니다` register — the single exception. FSS-required rate and risk copy. |
|
|
246
|
+
The official home uses concise, benefit-led Korean phrasing such as “하루만 넣어도 이자가 쌓이는” and “쉽고 간편하게 시작해요.” The campaign directly asks for “바꾸고 싶은 불편한 은행 경험,” then says the bank will use those opinions to make a better bank. This supports a clear, constructive public voice; legal and disclosure wording remains a separate regulated content domain. [Home](https://www.tossbank.com/) · [campaign](https://www.tossbank.com/ten-million)
|
|
473
247
|
|
|
474
|
-
|
|
248
|
+
| Context | Observed direction |
|
|
249
|
+
|---------|--------------------|
|
|
250
|
+
| Product marketing | Short benefit plus a plain-language explanation |
|
|
251
|
+
| Participation campaign | Ask directly for a concrete inconvenient experience |
|
|
252
|
+
| Documentation | Keep product information distinct from promotional claims |
|
|
475
253
|
|
|
476
|
-
|
|
477
|
-
- `이자 2배 쌓여요` — benefit-led product copy. <!-- verified: tossbank.com via WebFetch 2026-05-27 -->
|
|
478
|
-
- `포브스 선정 국내 은행 1위` — trust/credential positioning. <!-- verified: tossbank.com via WebFetch 2026-05-27 -->
|
|
479
|
-
- `오늘 이자 23원이 쌓였어요` — illustrative daily-interest moment. <!-- illustrative: follows Toss Bank's documented daily-interest product; not verified verbatim -->
|
|
480
|
-
- `계좌가 만들어졌어요` — illustrative account-created confirmation. <!-- illustrative: not verified as live copy -->
|
|
254
|
+
Voice samples are quoted/paraphrased from the cited public pages, not a specification for unobserved in-app copy.
|
|
481
255
|
|
|
482
256
|
## 11. Brand Narrative
|
|
483
257
|
|
|
484
|
-
Toss Bank
|
|
258
|
+
Toss Bank frames itself publicly as a bank that changes banking: its home lists everyday bank products and services, while its campaign says it is still changing banks and invites people to name the experiences they want improved. The bank’s site also identifies a 24-hour customer center, placing accessibility of assistance alongside its product navigation. [Toss Bank home](https://www.tossbank.com/) · [campaign](https://www.tossbank.com/ten-million)
|
|
485
259
|
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
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.
|
|
260
|
+
Within the wider Toss identity, the official resource center supplies the group’s blue and gray brand assets and an affiliate-logo listing for Toss Bank. This is the right evidence for group identity and logo treatment, not for app-screen behavior or financial-product UI tokens. [Brand Resource Center](https://brand.toss.im/)
|
|
489
261
|
|
|
490
262
|
## 12. Principles
|
|
491
263
|
|
|
492
|
-
1. **
|
|
493
|
-
2. **
|
|
494
|
-
3. **
|
|
495
|
-
4. **Exactness over approximation.** Money is never `약` (about). *UI implication:* show exact won amounts with comma separators; rounding is forbidden on primary surfaces.
|
|
496
|
-
5. **One action per screen.** Two primary buttons means two screens. *UI implication:* secondary actions are fine; two primaries are never.
|
|
497
|
-
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.
|
|
264
|
+
1. **Make the promised outcome easy to scan.** The home groups products by account, savings, loans, foreign exchange, cards, and help. *UI implication:* public information should use clear categorization before decorative treatment.
|
|
265
|
+
2. **Ask for a concrete banking problem.** The campaign explicitly requests an inconvenient bank experience. *UI implication:* feedback prompts should ask for one specific experience and clearly say how the response will be used.
|
|
266
|
+
3. **Separate brand assets from product evidence.** Official group color rules and live public CSS answer different questions. *UI implication:* never convert a logo color or shared design-kit convention into an unobserved banking-flow token.
|
|
498
267
|
|
|
499
268
|
## 13. Personas
|
|
500
269
|
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
**현우 (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.
|
|
504
|
-
|
|
505
|
-
**김여사 (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.
|
|
270
|
+
The public campaign names customers with roles including self-employed people, office workers, university students, and families. These are examples presented by Toss Bank, not a validated user-research segmentation model. [Campaign](https://www.tossbank.com/ten-million)
|
|
506
271
|
|
|
507
|
-
|
|
272
|
+
**Public-source audience cues:** people managing everyday accounts, people considering loans or foreign exchange, card users, and people who want to report a frustrating banking experience. No invented personal profiles are included because the current evidence does not support them.
|
|
508
273
|
|
|
509
274
|
## 14. States
|
|
510
275
|
|
|
511
|
-
|
|
512
|
-
|---|---|
|
|
513
|
-
| **Empty (no transactions)** | Single `grey700` line explaining why (`아직 거래내역이 없어요`) + one secondary action (blue50 bg, blue500 text). Never an illustration, never `데이터가 없습니다`. |
|
|
514
|
-
| **Empty (filter cleared)** | Single `grey500` caption (`조건에 맞는 내역이 없어요`). No button. |
|
|
515
|
-
| **Loading (first paint)** | Skeleton blocks at `#f2f4f6` matching final layout. Balances render as `--`, never as skeleton blocks. |
|
|
516
|
-
| **Loading (refresh)** | Top pull-down spinner in blue500. No overlay; previous values stay visible. |
|
|
517
|
-
| **Error (inline field)** | `#f04452` 2px border + red500 13px error text below. One actionable sentence (`계좌번호를 다시 확인해주세요`). |
|
|
518
|
-
| **Error (toast)** | `#191f28` bg, white 14px/400, 3s auto-dismiss, one sentence, bottom 20px inset. |
|
|
519
|
-
| **Error (screen-blocking)** | Server outage only. White screen, centered `grey900` 16px/600 line + retry in blue500. No illustration. |
|
|
520
|
-
| **Success (money moved)** | Dedicated screen, not a toast. `#03b26c` checkmark top-center, exact amount 30px/700, recipient + timestamp, single `확인`. |
|
|
521
|
-
| **Success (interest claimed)** | Brief blue50 flash behind the balance + `오늘 이자 N원이 쌓였어요` toast. |
|
|
522
|
-
| **Skeleton** | `#f2f4f6` blocks at exact final dimensions, ~1.2s shimmer with 8% white highlight, component-radius rounding. Never on balances (show `--`). |
|
|
523
|
-
| **Disabled** | Button opacity drops per `--button-disabled-opacity-color`; input borders stay `grey200` so geometry is stable. |
|
|
276
|
+
The supplied artifact records one selected documentation tab (`aria-selected="true"`). It contains no captured interaction snapshots and no selector-backed empty, loading, error, success, disabled, toast, or skeleton state. Those state specifications are intentionally absent rather than inferred from generic banking conventions.
|
|
524
277
|
|
|
525
278
|
## 15. Motion & Easing
|
|
526
279
|
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
**Durations:**
|
|
530
|
-
|
|
531
|
-
| Token | Value | Use |
|
|
532
|
-
|---|---|---|
|
|
533
|
-
| `motion-instant` | 0ms | Toggle flips, checkbox states |
|
|
534
|
-
| `motion-fast` | 150ms | Hover, focus, button press overlay |
|
|
535
|
-
| `motion-standard` | 250ms | Default — sheet open, card expand, tab switch |
|
|
536
|
-
| `motion-slow` | 400ms | Emphasized — success checkmark, onboarding advance |
|
|
537
|
-
| `motion-page` | 350ms | Full-screen route transitions |
|
|
538
|
-
|
|
539
|
-
**Easings:**
|
|
540
|
-
|
|
541
|
-
| Token | Curve | Use |
|
|
542
|
-
|---|---|---|
|
|
543
|
-
| `ease-enter` | `cubic-bezier(0.0, 0.0, 0.2, 1)` | Sheets, toasts, screen pushes appearing |
|
|
544
|
-
| `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Dismissals, pops |
|
|
545
|
-
| `ease-standard` | `cubic-bezier(0.4, 0.0, 0.2, 1)` | Two-way transitions |
|
|
546
|
-
| `ease-spring` | `cubic-bezier(0.34, 1.56, 0.64, 1)` | Reserved — money-moved / interest-claimed checkmark only |
|
|
547
|
-
|
|
548
|
-
**Signature motions.**
|
|
549
|
-
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.
|
|
550
|
-
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.
|
|
551
|
-
3. **Success checkmark.** Money-moved confirmation draws the checkmark over `motion-slow` with `ease-spring`. The only standard spring outside interest.
|
|
552
|
-
4. **Reduce motion.** Under `prefers-reduced-motion: reduce`, all tokens collapse to instant; cross-fades replace slides. No exceptions.
|
|
553
|
-
|
|
554
|
-
<!--
|
|
555
|
-
OmD v0.1 Sources — Philosophy Layer (sections 10–15)
|
|
556
|
-
|
|
557
|
-
Tier 1 (UI tokens, §1–9): tossbank.com live WebFetch 2026-05-27 (clean white
|
|
558
|
-
canvas, minimal text-link CTAs, benefit Korean copy `이자 2배 쌓여요`, Forbes
|
|
559
|
-
top-bank positioning). Brand blue `#0064FF` Pantone 2175 C confirmed via
|
|
560
|
-
brand.toss.im. Component geometry inherited from the shared documented TDS
|
|
561
|
-
Mobile / Toss Product Sans design language used across the Viva Republica
|
|
562
|
-
family; not independently re-inspected on tossbank.com surfaces.
|
|
563
|
-
|
|
564
|
-
Tier 2 (founding/narrative): Toss Bank launched Oct 2021 as Korea's third
|
|
565
|
-
internet-only bank under Viva Republica (이승건). Daily-interest (`이자 매일
|
|
566
|
-
받기`) is its signature documented product. Legacy-bank context (KB/Shinhan/
|
|
567
|
-
Woori/Hana) is general industry knowledge.
|
|
568
|
-
|
|
569
|
-
Voice samples: `이자 2배 쌓여요`, `포브스 선정 국내 은행 1위` verified live.
|
|
570
|
-
`오늘 이자 23원이 쌓였어요`, `계좌가 만들어졌어요`, `송금이 완료되었어요`
|
|
571
|
-
are ILLUSTRATIVE patterns following Toss Bank's `해요체` register and daily-
|
|
572
|
-
interest product; not confirmed verbatim.
|
|
573
|
-
|
|
574
|
-
Personas (§13) are fictional archetypes. Any resemblance to specific users is
|
|
575
|
-
unintended.
|
|
576
|
-
-->
|
|
280
|
+
No transition duration, easing curve, reduced-motion behavior, or animated state was captured on the supplied routes. Motion tokens are intentionally absent.
|