TVING (티빙)'s reference documents #ff153c as a documented primary color, Pretendard for typography, 109.996px corner radius. TVING is CJ ENM's Korean streaming platform, serving series, movies, live channels, and sports.

Primary
#ff153c
Typography
Pretendard
Radius
109.996px

Evidence snapshot

verified v2
Claims grounded
123/123 · 100%
Sources
3 surfaces · 7 sources
UI font basis
frontmatter · high
Components
11 documented · 9 interactive

Not backed by evidence

  • Component states are described in prose, not given per-state values
Design System
Tving logo

Tving

TVING is CJ ENM's Korean streaming platform, serving series, movies, live channels, and sports. The three supplied public product routes use a cinema-dark field: black canvas, white and cool-gray text, a restrained raised surface, and a light hairline rather than a marketing-page palette. The product evidence is deliberately narrower than TVING's wider public narrative. CJ's 2025 lineup describes a program spanning varied original genres, signature franchises, and year-round live sports, while its earlier company reporting places TVING's independent expansion after its 2020 separation from CJ ENM and subsequent partnerships. Those are first-party context sources, not UI-token sources. CJ ENM: TVING and Seezn · TVING 2025 lineup

01

Color Palette

Accent

Neutrals

02

Typography

Type Scale

Verified size, weight, line-height, and tracking. Family is omitted when unresolved.

22.0044px22.0044px · 700 · 1.5
Observed product-surface heading text.
body16.5px · 400 · 1.15
Observed product-surface body and utility text.
14.2956px14.2956px · 400 · 1.15
Observed unselected live-route tab text.
13.2px13.2px · 400 · 1.5
Observed opened-menu text on home and movie surfaces.

Fonts

ui
Pretendard
Open · OFL
Live webfont loaded in preview
Install via GitHub · orioncactus/pretendard
03

Spacing & Shape

Border Radius

ElementValuePreview
live-pillStructured token109.996px
menuStructured token4.95px
04

Guidelines

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

Do

  • Keep the verified product shell black with white/gray text when recreating these captured routes.
  • Use Pretendard only with its recorded TVING-hosted loaded-font evidence and preserve the system stack as fallback.
  • Preserve the expanded/menu-open and selected states with their route and selector boundaries.
  • Treat CJ's editorial and policy material as narrative or legal context, not as product CSS authority.

Don't

  • not introduce a red CTA, red brand accent, six-category palette, poster-card geometry, or sports-player layout from the previous snapshot.
  • not promote Campton, Noto Sans KR, OmniGothic, or another declared-only face into TVING UI typography.
  • not add hover, focus, pressed, disabled, error, dialog, or responsive variants without a new observed state and selector.
  • not use marketing, subscription, legal, or newsroom chrome as though it were the captured streaming product surface.
05

Components

Cards

content-menu-listbox
content-menu-listbox
Background#212121
Text#a3a3a3
Border1px #4f4f4f
Radius4.95px
Padding0px
Text style13.2px / 400 / 15.18px Pretendard
Shadowrgba(0, 0, 0, 0.1) 0px 4px 6px -1px, rgba(0, 0, 0, 0.1) 0px 2px 4px -2px
size144px x 305px
statescaptured open after the collector opened its trigger (menu interaction recording expanded and menu-open); two listboxes on home and two on movie; no pointer-state frame
Use: Opened listbox of the combobox trigger at home::[data-omd-interaction-capture="menu-0-0"]; the computed shadow lists two alpha-0 layers before these two

List items

content-menu-option
content-menu-option
Backgroundtransparent
Text#a3a3a3
Radius0px
Padding4.95px 6.6px
Text style13.2px / 400 / 19.8px Pretendard
statesrest captured inside the opened listbox; the first option of every captured listbox (menu-0-3 and menu-1-3 on home and movie) computes bg #2e2e2e with aria-selected false, and the dump does not say which state paints it, so it is not declared
Use: Listbox option (role=option) at home::[data-omd-interaction-capture="menu-0-4"]

Buttons

content-menu-trigger
Background#000000
Text#a3a3a3
Radius4.95px
Padding0px 16.5px
Font13.2/400 Pretendard
statesexpanded, menu-open
Use: Combobox trigger (aria-haspopup=menu) at home::[data-omd-capture="19"] and "20" on home and movie; it sits in the footer row (top 647px, beside the footer links at 646px). Corrected 2026-09-29: its border width computes 0px, so the July border value is removed.
header-subscribe-pill
Text#ffffff
Radius42px
Padding0px 12px
Text style14px / 700 / 16.1px Pretendard
size61px x 33px
statesdefault captured on all three routes; no pointer-state frame
Use: Header pill link at home::[data-omd-capture="9"]; its computed background-color is transparent on all three routes, the live copy names a gradient utility in its class list, and background-image is not in the dump, so no fill is claimed
landing-cta
Background#dedede
Text#000000
Radius3px
Padding17.5956px 200.204px 19.8px
Text style19.8px / 700 / 19.8px Pretendard
statesdefault captured on home and movie (529 x 57 at top 459px on both); no pointer-state frame
Use: Large light-grey button at home::[data-omd-capture="11"]
live-round-icon-button
Background#27272e
Radius3.35544e+07px
Padding0px
size44px x 44px
statesdefault captured; it declares aria-haspopup=dialog, but the collector opened no dialog and recorded no pointer-state frame for it
Use: Live-route round icon button at surface-3::[data-omd-capture="15"]; it has no text node, so no label colour is claimed
live-white-pill-cta
Background#ffffff
Text#000000
Radius3.35544e+07px
Padding13.2px 26.4px
Text style16.5px / 700 / 18.975px Pretendard
statesdefault captured; no pointer-state frame
Use: Live-route white pill button at surface-3::[data-omd-capture="11"]; the computed radius is the rounded-full utility value and renders as a full pill

Tabs

TabTabTab
footer-link
Backgroundtransparent
Text#a3a3a3
Radius0px
Padding0px
Text style16.5px / 400 / 18.975px Pretendard
statesdefault captured on seven links per route (home and movie 12-18, live 74-80); the third link in each row is 700 weight; no pointer-state frame
Use: Footer policy link row at home::[data-omd-capture="12"]; a smaller underlined link below it (capture 21) computes #6e6e6e at 14.2956px / 400
TabTabTab
header-nav-link
Backgroundtransparent
Textrgba(255, 255, 255, 0.6)
Radius0px
Padding0px
Text style16px / 400 / 16px Pretendard
selectedfg #ffffff, 16px / 700
statesrest and current-page link (class on) captured on the movie route; home computes rgba(255, 255, 255, 0.9) on all eight links with no current item, and the live route #ffffff / 400 on all eight; no pointer-state frame
Use: Header navigation link (a.other) at surface-2::[data-omd-capture="1"]; the current-page link is "3" (a.other.on)
TabTabTab
live-channel-tab
Backgroundtransparent
Text#ffffff
Radius0px
Padding8.8044px 13.2px
Text style14.2956px / 400 / 16.4399px Pretendard
selectedbg rgba(255, 255, 255, 0.2), 14.2956px / 700, radius 109.996px
statesunselected rest (capture 62, aria-selected=false) and the selected tab (capture 61, aria-selected=true, also recorded on its own as live-selected-tab); thirteen tabs in the row; no pointer-state frame
Use: Live-route tab (li role=tab) at surface-3::[data-omd-capture="62"]
TabTabTab
live-selected-tab
Backgroundrgba(255, 255, 255, 0.2)
Text#ffffff
Radius109.996px
Padding8.8044px 13.2px
Font14.2956/700 Pretendard
statesselected
Use: Observed selected tab on the supplied live route only (surface-3::[data-omd-capture="61"]); live-channel-tab records the same row with its unselected rest. Corrected 2026-09-29: its border width computes 0px, so the July border value is removed.

Related design systems