coderef

Toss Securities (토스증권)

Toss Securities positions itself as an investment platform for both beginners and experienced investors: the company says its mission is to empower everyone with investing, combining access to global markets, investment information, social…
DownloadRaw
tossinvest.comVisit ↗
View full
tossinvest.comVisit site ↗
Toss Securities (토스증권) website, full page

Palette

At a glance

Theme
light
Typefaces
System
Sections
9
Length
3,965 words

Add it to your project

Then prompt your agent

Design System · Toss Securities (토스증권)

Light and dark previews, tokens and a ready-to-use package, generated from this DESIGN.md. No AI involved: the same file always produces the same output.

Generating design system…

DESIGN.md

DownloadRaw
Design tokens (YAML front matter)
name: Toss Securities
colors:
  primary: '#3182f6'
  canvas: '#ffffff'
  foreground: '#1a1f29'
  body: '#4e5968'
  on-primary: '#ffffff'
  dialog-canvas: '#fbfcfd'
typography:
  compact:
    fontSize: 13px
    fontWeight: 600
    lineHeight: 20px
    use: Public WTS compact menu-trigger text
  body:
    fontSize: 16px
    fontWeight: 400
    lineHeight: 23.2px
    use: Public WTS body, tab, menu, and dialog copy
  marketing-heading:
    fontSize: 18px
    fontWeight: 700
    lineHeight: 28.8px
    use: Investment-product marketing H1
rounded:
  compact-control: 7px
  primary: 8px
  menu: 12px
  dialog: 16px
  marketing-pill: 100px
spacing:
  xs: 4
  sm: 8
  md: 12
  lg: 14
  xl: 16
components:
  wts-primary-entry:
    type: button
    backgroundColor: '#3182f6'
    textColor: '#ffffff'
    rounded: 8px
    padding: 6px 12px
    height: 32px
    typography: 14px / 600 / 16px
    states: default, focus, and pressed observed; colors and geometry remained the same in the retained samples (the dump records no opacity, outline, or transform; the focus frame followed a mouse press and is not a keyboard focus-visible measurement)
    use: Public WTS compact primary link-action
    pressed: 'bg #2272eb, shadow none (:hover + :active)'
    focus: outline rgba(0, 12, 30, 0.8) solid 2px on :focus-visible
  investment-primary:
    type: button
    backgroundColor: '#3182f6'
    textColor: '#ffffff'
    rounded: 100px
    padding: 11px 14px
    height: 40px
    typography: 15px / 600 / 18px
    states: 'default observed; the capture holds no hover, pressed, or focus sample for this element (corrected 2026-09-29: those state names belong to the same-class secondary pill)'
    use: Investment-products marketing primary action
  wts-selection-dialog:
    type: dialog
    backgroundColor: '#fbfcfd'
    textColor: '#4e5968'
    rounded: 16px
    size: 640px x 600px
    typography: 16px / 400 / 23.2px
    states: dialog-open observed
    use: Public WTS selection dialog container
  wts-tab:
    type: tab
    backgroundColor: transparent
    textColor: rgba(18, 31, 51, 0.47)
    rounded: 0px
    padding: 0px
    height: 36px
    typography: 16px / 400 / 18.4px
    selected: fg rgba(26, 31, 41, 0.89)
    hover: fg rgba(22, 31, 46, 0.61)
    pressed: fg rgba(22, 31, 46, 0.61)
    states: unselected rest, selected, hover, and pressed sampled; focus not sampled
    use: Public WTS tab
  wts-segmented-radio:
    type: toggle
    backgroundColor: transparent
    textColor: rgba(18, 31, 51, 0.47)
    rounded: 5px
    padding: 0px
    height: 24px
    typography: 16px / 400 / 18.4px
    checked: fg rgba(26, 31, 41, 0.89)
    hover: bg rgba(13, 25, 74, 0.02)
    pressed: bg rgba(7, 25, 76, 0.04)
    states: unchecked rest, checked, hover, and pressed sampled; focus not sampled
    use: Public WTS segmented radio option (role=radio)
  wts-content-card-link:
    type: card
    backgroundColor: transparent
    textColor: '#4e5968'
    rounded: 12px
    padding: 4px
    size: 248px x 176px
    typography: 16px / 400 / 23.2px
    hover: bg rgba(13, 25, 74, 0.02)
    pressed: bg rgba(7, 25, 76, 0.04)
    states: rest, hover, and pressed sampled; focus not sampled
    use: Public WTS content card link
  wts-nav-link:
    type: tab
    backgroundColor: transparent
    textColor: rgba(22, 31, 46, 0.61)
    rounded: 9px
    padding: 8px 12px
    height: 36px
    typography: 14px / 600 / 20px
    states: rest sampled; the hover, pressed, and focus frames caught a colour transition in progress (alpha 0.61 to 0.63-0.67, different per link), so no state value is declared
    use: Public WTS top navigation link
  wts-menu-trigger:
    type: button
    backgroundColor: rgba(7, 25, 76, 0.04)
    textColor: rgba(26, 31, 41, 0.89)
    rounded: 7px
    padding: 4px 8px
    height: 28px
    typography: 13px / 600 / 20px
    shadow: rgba(0, 23, 51, 0.02) 0px 0px 0px 0.5px inset
    states: rest sampled; expanded and menu-open observed through the captured menu interaction; no pointer-state sample
    use: Public WTS compact menu trigger
  wts-expanded-menu:
    type: card
    backgroundColor: '#ffffff'
    textColor: '#4e5968'
    rounded: 12px
    size: 160px x 204px
    typography: 16px / 400 / 23.2px
    shadow: rgb(212, 217, 225) 0px 0px 0px 0.5px inset, 0 16px 24px -2px rgba(0,0,0,0.06), 0 8px 56px rgba(0,0,0,0.1)
    states: expanded and menu-open observed
    use: Public WTS expanded menu container
  wts-dialog-input:
    type: input
    backgroundColor: transparent
    textColor: rgba(0, 12, 30, 0.8)
    rounded: 0px
    padding: 0px
    height: 17px
    typography: 15px / 600 / 17.25px
    states: observed only inside the opened selection dialog; no pointer-state sample
    use: Text field inside the public WTS selection dialog; its visible frame belongs to a wrapper the capture did not sample
  investment-nav-link:
    type: tab
    backgroundColor: transparent
    textColor: rgba(253, 253, 255, 0.75)
    rounded: 0px
    padding: 0px 8px
    height: 14px
    typography: 14px / 600 / 14px
    hover: 'fg #3182f6'
    pressed: 'fg #3182f6'
    states: rest, hover, and pressed sampled on nine header controls; focus not sampled
    use: Investment-products header navigation link
  investment-secondary:
    type: button
    backgroundColor: rgba(2, 32, 71, 0.05)
    textColor: rgba(3, 18, 40, 0.7)
    rounded: 100px
    padding: 11px 14px
    height: 40px
    typography: 15px / 600 / 18px
    states: rest sampled; the hover, pressed, and focus frames differ only by transition-frame deltas (fill alpha 0.05 to 0.055, fractional inset-shadow width), so no state value is declared
    use: Investment-products secondary pill
fonts:
  roles:
    sans: Toss Product Sans

Design System Inspiration of Toss Securities (토스증권)

Overview

Visual Theme & Atmosphere

Toss Securities positions itself as an investment platform for both beginners and experienced investors: the company says its mission is to empower everyone with investing, combining access to global markets, investment information, social participation, and expanding channels such as WTS. Its public web language turns that broad promise into a familiar Toss hierarchy—white canvas, dense dark-neutral reading text, a precise blue action color, and a single Korean-first product face—rather than turning the marketing site into a simulation of a trading terminal. The result is an inviting, information-led public entry point for a regulated investment product.

The supplied 2026-07-13 capture establishes three separate public domains. www.tossinvest.com is a public WTS surface with controls, tabs, a menu, and a dialog; home.tossinvest.com/en/corporate-info is corporate context; and home.tossinvest.com/en/investment-products is a marketing explanation of stocks, ETFs, options, and bonds. They share #3182f6, #ffffff, #1a1f29, #4e5968, and Toss Product Sans, but their component geometry is not automatically interchangeable. The compact 32px WTS action and the 40px marketing pill are recorded separately.

No authenticated account, native app, order-entry flow, or documentation UI was captured in this packet. The former dark-canvas, red/blue market-semantic, token-tree, and two-radius claims are therefore removed rather than carried forward from a legacy snapshot.

Key Characteristics:

  • Light public-web canvas: #ffffff, #1a1f29, and #4e5968
  • Shared Toss blue #3182f6 for observed primary actions and links
  • Loaded Toss Product Sans on the public WTS and investment-marketing surfaces
  • Compact WTS controls at 7–8px corners; expanded menu and dialog containers at 12px and 16px
  • A 100px-radius marketing pill is a marketing-specific component, not a universal product radius
  • Public WTS menu and dialog were interaction-expanded; focus, hover, and pressed states are preserved only where observed
  • Measured pointer states are quiet: WTS tabs deepen their text alpha on hover, segmented radios and content cards take a 2% then 4% navy wash, and the investment-products header links turn Toss blue #3182f6

Primary tasks

  • Choose among domestic and overseas stocks, ETFs, options, and bonds
  • Trade through the public web trading surface in a browser
  • Read investment information and take part in the community

Iconography & Imagery

The public WTS capture shows compact control and text-led UI; the expanded menu and dialog establish interaction containers but not a reusable icon family. The investment-products page uses product imagery and explanatory marketing content. No proprietary chart, illustration, or native-app icon system is promoted from this evidence.

Brand Narrative

Toss Securities is a Korean securities company building an investment platform around the mission “To Empower Everyone with Investing.” Its official company page describes an aim to offer better investing experiences and access to opportunities in global capital markets.

The current public company narrative expands that scope from stock trading toward an inclusive platform for beginners and experts, with investment content, a social community, broader investment products, and WTS access. Its investment-products page makes the portfolio breadth concrete through domestic and overseas stocks, ETFs, U.S. stock options, and overseas bonds.

The company page also records current international expansion milestones, including a U.S. broker-dealer license in 2025. This is company context, not a claim about any uninspected product interface.

Principles

  1. Opportunity should be broadly reachable. The stated mission is to empower everyone with investing. UI implication: explain product choices and next actions without presuming expert knowledge.
  2. Global-market access should feel connected. The company describes global products and WTS as access channels. UI implication: make market, product, and account context explicit rather than relying on implicit navigation.
  3. Technology should make investing easier. The official narrative connects technology and AI with better decisions. UI implication: present information as decision support, not as a promise of outcomes.

Personas

These are official audience-scope archetypes, not user-research findings or synthetic satisfaction scores.

  • Beginning investor: the company explicitly names beginners among the people its inclusive platform should serve. Use plain explanations and visible product context.
  • Experienced investor: the same platform is intended to include experts. Keep high-information paths available without representing unobserved native or authenticated UI as canonical.
  • Cross-market investor: the official product range includes domestic and overseas investments. Make product and market boundaries explicit.

Colors

  • Primary action (#3182f6): observed on the public WTS compact primary action and the investment-products marketing CTA.
  • Canvas (#ffffff): observed public WTS and marketing page canvas.
  • Foreground (#1a1f29): observed compact WTS foreground.
  • Supporting text (#4e5968): observed WTS menu, dialog, and cross-surface supporting text.
  • On primary (#ffffff): observed text on #3182f6 actions.
  • Dialog canvas (#fbfcfd): observed public WTS dialog container.

The packet does not establish a public positive/negative market-color system, dark trading canvas, error color, or success color. Those values are intentionally absent rather than inferred from the Toss parent brand or a previous snapshot. Hover and pressed treatments were measured as translucent navy washes and text-alpha steps (§4, §14), not as new opaque palette colors; the one opaque state color is #3182f6 on the investment-products header links.

Typography

Font evidence boundary

Evidence class Resolution
Official product-use Toss’s first-party design conference describes Toss Product Sans as a typeface developed for financial numbers and symbols across mobile, desktop, and offline contexts.
Live computed surface-use Toss Product Sans is the computed first family on the supplied public WTS and investment-marketing capture: loaded/high, 419 visible uses, backed by matching FontFaceSet records and dated static.toss.im/tps/20260223/ sources. It is the canonical public-web UI family.
Official distributed brand asset Tossface is a separate Toss-designed emoji font distributed through the official toss/tossface repository in TTF, OTF, WOFF, and WOFF2 formats.
Declared-only Tossface has @font-face sources in this capture but zero visible first-family uses. It remains contextual asset information, not tokens.typography.family.sans.
System / unresolved The computed fallback stack includes platform and Korean system faces. No fallback is promoted as a Toss Securities type token, and native-app typography was not inspected.

Observed hierarchy

Role Size Weight Line height Surface
Compact menu trigger 13px 600 20px Public WTS
Body, tab, menu, dialog 16px 400 23.2px Public WTS
Investment-products H1 18px 700 28.8px Marketing
Marketing primary action 15px 600 18px Marketing

Layout

Layout & Spacing

The observed public WTS uses compact 4px, 8px, 12px, and 16px spacing clusters; the investment-marketing CTA contributes a 14px horizontal inset. Treat this as a small observed set, not as a complete spacing scale. WTS has square-edged tabs, 7–8px compact controls, a 12px menu, and a 16px dialog; the marketing pill’s 100px radius belongs only to that action.

Elevation & Depth

Values kept in prose

Measured values the DESIGN.md token grammar cannot carry, kept verbatim:

  • shadow.menu: 0 16px 24px -2px rgba(0,0,0,0.06), 0 8px 56px rgba(0,0,0,0.1)
  • shadow.dialog: 0 12px 28px -4px rgba(0,0,0,0.12), 0 8px 56px -4px rgba(0,0,0,0.1)

Motion & Easing

No duration, easing, or transition token was measured in the supplied evidence. The captured hover, focus, pressed, menu, and dialog snapshots establish state presence only; they do not authorize a motion scale. Several state frames were caught mid-transition (fractional inset-shadow widths, text alpha that differs link to link), which shows that transitions exist but not their duration or easing. Keep any future motion specification separate until first-party computed transition evidence is available.

Components

Public WTS compact primary entry

Default / focus / pressed

  • Background: #3182f6
  • Text: #ffffff
  • Radius: 8px
  • Padding: 6px 12px
  • Height: 32px
  • Font: 14px / 600 / 16px Toss Product Sans
  • Focus: observed; retained color and geometry remained unchanged. The frame followed a mouse press, so it is not a keyboard :focus-visible measurement.
  • Pressed: observed; retained color and geometry remained unchanged (only an alpha-0 inset-shadow width moved, 1px to 0.98px; the style dump records no opacity, outline, or transform)
  • Use: public WTS compact link-action at home::[data-omd-capture="6"]

Investment-products marketing primary

Default

  • Background: #3182f6
  • Text: #ffffff
  • Radius: 100px
  • Padding: 11px 14px
  • Height: 40px
  • Font: 15px / 600 / 18px Toss Product Sans
  • States: default only. The capture holds no hover, pressed, or focus sample for surface-3::[data-omd-capture="11"]; the state samples on this page belong to the same-class (css-f411df) secondary pill described below. Corrected 2026-09-29; the July text had attributed them to this action.
  • Use: investment-products marketing action at surface-3::[data-omd-capture="11"]

Public WTS expanded menu

Menu-open

  • Background: #ffffff
  • Text: #4e5968
  • Radius: 12px
  • Size: 160px x 204px
  • Shadow: 0 16px 24px -2px rgba(0,0,0,0.06), 0 8px 56px rgba(0,0,0,0.1)
  • Hairline: the computed box-shadow also opens with rgb(212, 217, 225) 0px 0px 0px 0.5px inset, which the shadow token leaves out
  • Font: 16px / 400 / 23.2px Toss Product Sans
  • States: expanded and menu-open observed
  • Use: public WTS menu container at home::[data-omd-interaction-capture="menu-0-0"]

Public WTS selection dialog

Dialog-open

  • Background: #fbfcfd
  • Text: #4e5968
  • Radius: 16px
  • Size: 640px x 600px
  • Shadow: 0 12px 28px -4px rgba(0,0,0,0.12), 0 8px 56px -4px rgba(0,0,0,0.1)
  • Font: 16px / 400 / 23.2px Toss Product Sans
  • States: dialog-open observed
  • Use: public WTS dialog container at home::[data-omd-interaction-capture="dialog-1-0"]

Public WTS tab

Unselected / selected / hover / pressed

  • Background: transparent
  • Text: rgba(18, 31, 51, 0.47) unselected; rgba(26, 31, 41, 0.89) selected
  • Radius: 0px
  • Padding: 0px
  • Height: 36px
  • Font: 16px / 400 / 18.4px Toss Product Sans
  • Hover: text rgba(22, 31, 46, 0.61)
  • Pressed: text rgba(22, 31, 46, 0.61)
  • Use: public WTS tabs (role=tab) at home::[data-omd-capture="13"] and home::[data-omd-capture="14"]; selected sample home::[data-omd-capture="12"]

Public WTS segmented radio

Unchecked / checked / hover / pressed

  • Background: transparent
  • Text: rgba(18, 31, 51, 0.47) unchecked; rgba(26, 31, 41, 0.89) checked
  • Radius: 5px
  • Padding: 0px
  • Height: 24px
  • Font: 16px / 400 / 18.4px Toss Product Sans
  • Hover: fill rgba(13, 25, 74, 0.02)
  • Pressed: fill rgba(7, 25, 76, 0.04)
  • Use: role=radio options at home::[data-omd-capture="18"], "19", "22", and "23", which all record the same values; checked sample home::[data-omd-capture="17"]

Public WTS content card link

Rest / hover / pressed

  • Background: transparent
  • Text: #4e5968
  • Radius: 12px
  • Padding: 4px
  • Size: 248px x 176px
  • Font: 16px / 400 / 23.2px Toss Product Sans
  • Hover: fill rgba(13, 25, 74, 0.02)
  • Pressed: fill rgba(7, 25, 76, 0.04), the same wash the compact menu trigger carries at rest
  • Use: content card link at home::[data-omd-capture="11"]

Public WTS top navigation link

Rest

  • Background: transparent
  • Text: rgba(22, 31, 46, 0.61)
  • Radius: 9px
  • Padding: 8px 12px
  • Height: 36px
  • Font: 14px / 600 / 20px Toss Product Sans
  • States: hover, pressed, and focus frames were sampled but caught the colour transition in progress (text alpha between 0.627 and 0.667, different per link), so no state value is declared
  • Use: top navigation links at home::[data-omd-capture="2"], "3", and "4"

Public WTS compact menu trigger

Rest / expanded

  • Background: rgba(7, 25, 76, 0.04)
  • Text: rgba(26, 31, 41, 0.89)
  • Radius: 7px
  • Padding: 4px 8px
  • Height: 28px
  • Font: 13px / 600 / 20px Toss Product Sans
  • Shadow: rgba(0, 23, 51, 0.02) 0px 0px 0px 0.5px inset
  • States: the captured menu interaction expanded it (expanded, menu-open); no pointer-state frame was sampled for it
  • Use: menu trigger at home::[data-omd-capture="27"], which opened the expanded menu above

Public WTS dialog text field

Dialog-open

  • Background: transparent
  • Text: rgba(0, 12, 30, 0.8)
  • Radius: 0px
  • Padding: 0px
  • Height: 17px
  • Font: 15px / 600 / 17.25px Toss Product Sans
  • States: observed only inside the opened selection dialog; no pointer-state frame
  • Use: text field at home::[data-omd-interaction-capture="dialog-1-2"]. The input element itself is borderless; its visible frame belongs to a wrapper the capture did not sample, so no field border or fill is claimed.

Investment-products header navigation link

Rest / hover / pressed

  • Background: transparent
  • Text: rgba(253, 253, 255, 0.75)
  • Radius: 0px
  • Padding: 0px 8px
  • Height: 14px
  • Font: 14px / 600 / 14px Toss Product Sans
  • Hover: text #3182f6
  • Pressed: text #3182f6
  • Use: eight header links, surface-3::[data-omd-capture="1"] through "8", and the header button "9" record the same rest and state values. The light text implies a dark backdrop, but the backdrop’s own fill was not part of the sampled elements and is not claimed.

Investment-products secondary pill

Rest

  • Background: rgba(2, 32, 71, 0.05)
  • Text: rgba(3, 18, 40, 0.7)
  • Radius: 100px
  • Padding: 11px 14px
  • Height: 40px
  • Font: 15px / 600 / 18px Toss Product Sans
  • States: hover, pressed, and focus frames were sampled but differ only by transition-frame deltas (fill alpha 0.05 to 0.055, inset-shadow width 1px to 0.90–0.98px), so no state value is declared
  • Use: secondary pill at surface-3::[data-omd-capture="13"], sharing the css-f411df class and 40px geometry with the blue primary

Only selectors, surfaces, and states present in the supplied raw collector evidence are described here. The capture did not establish native-order, toast, error, disabled, or checkout variants; the content card link is the only card-like control sampled. Focus frames exist for some controls, but the collector pressed the mouse before calling .focus(), so no focus value in this reference is a keyboard :focus-visible measurement.


States

State Evidence boundary
Focus A public WTS compact primary focus frame was captured; its retained colors and geometry match the rest values. The marketing primary has no focus frame (corrected 2026-09-29). Every focus frame in this capture followed a mouse press (the collector presses before calling .focus()), so none is a keyboard :focus-visible measurement and no focus value is declared.
Hover Measured: WTS tab text rgba(18, 31, 51, 0.47) → rgba(22, 31, 46, 0.61); segmented radio and content card fill transparent → rgba(13, 25, 74, 0.02); investment header links rgba(253, 253, 255, 0.75) → #3182f6. WTS top-navigation links and the investment secondary pill were sampled mid-transition, so no hover value is declared for them. The marketing primary has no hover frame (corrected 2026-09-29).
Pressed Measured: WTS tab text → rgba(22, 31, 46, 0.61); segmented radio and content card fill → rgba(7, 25, 76, 0.04), the wash the compact menu trigger carries at rest; investment header links → #3182f6. The WTS compact primary’s pressed frame keeps its colors and geometry; the style dump records no opacity, outline, or transform. The marketing primary has no pressed frame (corrected 2026-09-29).
Expanded / menu-open One public WTS menu interaction was expanded and recorded.
Dialog-open One public WTS dialog interaction was opened and recorded.
Selected / unchecked Public WTS tab and radio-like controls exposed selected and unchecked states: selected tab and checked radio text rgba(26, 31, 41, 0.89), unselected and unchecked rgba(18, 31, 51, 0.47).
Disabled Not observed; no disabled token or variant is claimed.
Error Not observed; no error token or variant is claimed.
Loading / skeleton Not observed; no loading or skeleton token is claimed.
Empty / success Not observed; no empty or success treatment is claimed.

Live state probe, 2026-10-16 (), wts-primary-entry: pressed — bg #2272eb, shadow none; focus — outline rgba(0, 12, 30, 0.8) solid 2px.

Voice & Tone

Voice

The official corporate language is direct, inclusive, and opportunity-oriented: it frames the service around better investment experiences, access to global markets, and technology that makes investing easier. The samples below are original tone guidance, not verbatim Toss Securities copy.

  • “See the choice clearly, then decide.”
  • “투자를 더 쉽게, 다음 기회를 더 가깝게.”
  • “One account, more ways to invest.”
Attribute Do Don’t
Inclusive Explain options for a broad investor range. Assume expertise or exclude beginners.
Direct Name the product, market, and next action plainly. Make a regulated choice sound effortless or guaranteed.
Useful Pair a feature with the decision it supports. Use market drama as decoration.

The examples in §9 are illustrative paraphrases only; no tagline or customer promise is reproduced as official copy.

Governance

Usage Guidelines

Do

  • Keep public WTS compact actions distinct from the 40px marketing pill.
  • Use #3182f6 with #ffffff for the observed primary action pairing.
  • Preserve the recorded WTS container progression: 12px menu, 16px dialog.
  • Use Toss Product Sans where the verified public web family is available; label unavailable specimens rather than substituting a system face as if it were Toss Product Sans.
  • Limit interaction claims to the sampled states: WTS tab and segmented-radio hover and pressed, content-card hover and pressed, investment header-link hover and pressed, the compact primary’s pressed frame, expanded/menu-open, and dialog-open. Focus frames were not keyboard-measured.

Don’t

  • Reintroduce an unverified dark trading canvas or red/blue market semantics from the legacy snapshot.
  • Treat the corporate or investment-marketing page as proof of authenticated or native trading UI.
  • Generalize the 100px marketing pill to WTS controls.
  • Promote Tossface to the UI family merely because it is declared in the stack.
  • Invent disabled, error, loading, toast, or checkout variants, or card treatments beyond the sampled content card link.

Accessibility & Density

The public WTS samples use #1a1f29 and #4e5968 on light surfaces, while primary actions use #ffffff on #3182f6. The packet establishes visible selected and unselected tab/radio controls plus menu and dialog expansion, but it does not provide a full keyboard, screen-reader, contrast, disabled, error, or responsive audit. Retain the observed state distinction and perform a product-specific accessibility audit before extending it to account or order entry.

Reference URLs

  • Public WTS surface:
  • Corporate context:
  • Investment-products marketing:
  • Toss Product Sans context:
  • Tossface official repository:

Known Gaps

  • Contrast, wts-primary-entry. Text #ffffff on #3182f6 measures 3.71:1, below the WCAG AA 4.5:1 minimum for normal-size text. Recorded as measured, not adjusted.
  • Contrast, investment-primary. Text #ffffff on #3182f6 measures 3.71:1, below the WCAG AA 4.5:1 minimum for normal-size text. Recorded as measured, not adjusted.
  • Contrast, wts-tab. Text #121f3378 on #00000000 measures 1.27:1, below the WCAG AA 4.5:1 minimum for normal-size text. Recorded as measured, not adjusted.
  • Contrast, wts-segmented-radio. Text #121f3378 on #00000000 measures 1.27:1, below the WCAG AA 4.5:1 minimum for normal-size text. Recorded as measured, not adjusted.
  • Contrast, wts-content-card-link. Text #4e5968 on #00000000 measures 2.95:1, below the WCAG AA 4.5:1 minimum for normal-size text. Recorded as measured, not adjusted.
  • Contrast, wts-nav-link. Text #161f2e9c on #00000000 measures 1.27:1, below the WCAG AA 4.5:1 minimum for normal-size text. Recorded as measured, not adjusted.
  • Contrast, wts-menu-trigger. Text #1a1f29e3 on #07194c0a measures 1.02:1, below the WCAG AA 4.5:1 minimum for normal-size text. Recorded as measured, not adjusted.
  • Contrast, wts-dialog-input. Text #000c1ecc on #00000000 measures 1.07:1, below the WCAG AA 4.5:1 minimum for normal-size text. Recorded as measured, not adjusted.
  • Contrast, investment-secondary. Text #031228b3 on #0220470d measures 1.16:1, below the WCAG AA 4.5:1 minimum for normal-size text. Recorded as measured, not adjusted.
All brands designs →

Brand names describe the visual style only; coderef is not affiliated with or endorsed by any brand listed. Licenses