Wavve
Wavve
wavve
Design System
Wavve logo

Wavve

Wavve is Korea's homegrown OTT — the merger of SK Telecom's oksusu and the terrestrial broadcasters' POOQ into one streaming home for Korean drama, variety, news, and live TV. Its interface is the classic streaming dark room, but with a distinctly Wavve signature: instead of the near-pure black of most OTTs, Wavve sits on a deep midnight blue canvas, and

01

Color Palette

Brand

Accent

Neutrals

Semantic

02

Typography

Type Scale

Rendered in system-ui to clearly show scale & weight.

display44px · 600 · 1.25
Design at scale
32px32px · 600 · 1.25
Section heading
heading-lg24px · 600 · 1.4
Subheading
body16px · 400 · 1.5
Body text. The quick brown fox jumps over the lazy dog. Designed for readable line-height in long-form content.
small12px · 400 · 1.5
Supporting text
caption12px · 400 · 1.5
Caption · timestamp · 2026
label10px · 500 · 1.5
BADGE / LABEL

Fonts

Primary
Apple SD Gothic Neo
Systemno install needed
Apple system font for Korean.
Not publicly distributed.
Primary
Malgun Gothic
Brand-only
Not in the OMD font registry. Likely a brand-proprietary typeface — check the brand's own design site for source/availability.
Not publicly distributed.
Primary
Apple System
Systemno install needed
macOS/iOS default — uses SF Pro automatically.
Not publicly distributed.
Primary
Apple System (Blink)
Systemno install needed
Chrome alias for Apple system font on macOS.
Not publicly distributed.
Primary
Noto Sans KR
Open · OFL
Install via Google Fonts
Primary
LIVE
Brand-only
Not in the OMD font registry. Likely a brand-proprietary typeface — check the brand's own design site for source/availability.
Not publicly distributed.
03

Spacing & Shape

Spacing

PurposeValuePreview
Densitycomfortable
Base unit8px
Section gap32px
Card padding12px
Element gap12px

Border Radius

ElementValuePreview
liveTight4px
buttonsStandard6px
inputsStandard6px
posterStandard6px
snackbarsSoft8px
surfaceComfortable10px
dialogsComfortable10px
badgesPill9999px
progressPill9999px
iconCircle50%
avatarsCircle50%

Elevation

Subtle
Default
Elevated
Floating
Modal
04

Guidelines

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

Do

  • Use #1351F9 for the one primary interactive element per surface — play, subscribe, active tab, progress
  • Keep the canvas deep midnight blue (#0A0E1A) and let poster art supply the color
  • Step hierarchy through the blue-gray scale (#FFFFFF → #A7AEC0 → #6B7286)
  • Use the brand-blue progress bar to signal continue-watching state
  • Reserve the warm red strictly for the LIVE / 실시간 indicator

Don't

  • n't use pure black (#000000) — the canvas is a deep blue, that's the brand
  • n't introduce a second saturated interactive hue competing with the blue
  • n't put drop shadows or borders on poster cards — the gutter separates them
  • n't let the warm red bleed beyond live indicators into general UI
  • n't crowd the title-detail / player — those surfaces need breathing room
05

Components

Buttons

Primary CTA (Play / Subscribe)
Background`#1351F9`
Text`#FFFFFF`
Bordernone
Radius6px
Padding10px 20px
Font15px / 600 / Pretendard
Hoverbackground `#3A6CFF`
Activebackground `#0E3FCC`
Disabledbackground `rgba(19,81,249,0.4)`, text `rgba(255,255,255,0.6)`
Use: 재생, 구독하기, 지금 시청 — the primary blue action. ~40px tall.
Secondary / Ghost (on dark)
Background`rgba(255,255,255,0.10)`
Text`#FFFFFF`
Border1px solid `rgba(255,255,255,0.24)`
Radius6px
Padding10px 20px
Font15px / 600 / Pretendard
Use: 찜하기, 더보기, secondary actions on detail overlays
Icon Button (on dark)
Background`rgba(255,255,255,0.10)`
Text`#FFFFFF`
Bordernone
Radius50%
Size~40px circle
Use: Carousel chevrons, modal close, player controls

Inputs

Text Field (dark)
Background`rgba(255,255,255,0.06)`
Text`#FFFFFF`
Border1px solid `rgba(255,255,255,0.16)`
Radius6px
Padding12px 14px
Font15px / 400 / Pretendard
Focusborder `#1351F9`
Placeholder`#A7AEC0`
Errorborder `#FF7A45`
Use: Login email/password, search field

Cards

image fills
Poster Card
Backgroundtransparent (image fills)
Bordernone
Radius6px
Hoverscale ~1.05 + title/metadata overlay fade-in + brand-blue progress bar if partially watched
Aspect2:3 poster (or 16:9 for VOD/clip rows)
Use: The atomic browse unit — the art is the card, chrome stays off it
Surface Card (settings / account)
Surface Card (settings / account)
Background`#141A2B`
Bordernone
Radius10px
Padding20px
Use: Account, billing, settings panels on the dark blue canvas

Badges / Chips

Genre
Genre / Tag Chip
Background`rgba(255,255,255,0.10)`
Text`#FFFFFF`
Bordernone
Radius999px
Padding4px 12px
Font12px / 500 / Pretendard
Active`#1351F9` bg + white text
Use: Genre filters, mood tags
LIVE
LIVE Badge
Background`#F5444C`
Text`#FFFFFF`
Bordernone
Radius4px
Padding1px 6px
Font11px / 700 / Pretendard
Use: 실시간 TV / live-broadcast indicator — the one warm-red exception

Tabs / Nav

spec only
Top Nav Item
Font15px / 500 / Pretendard
Active text`#FFFFFF`
Inactive text`#A7AEC0`
Indicator2px `#1351F9` underline (active) or weight shift
Use: 홈 / 드라마 / 예능 / 영화 / 실시간 switcher

Toasts

Snackbar
Snackbar
Background`#1F2742`
Text`#FFFFFF`
Bordernone
Radius8px
Padding12px 16px
Font14px / 500 / Pretendard
Shadow`0px 4px 16px rgba(0,0,0,0.4)`
Use: "찜 목록에 추가했어요" transient feedback, 3s auto-dismiss

Dialogs

Modal
Dialog content placeholder
Modal
Background`#141A2B`
Text`#FFFFFF`
Bordernone
Radius12px
Padding24px
Backdrop`rgba(0,0,0,0.7)`
Use: Login, plan selection, "이 작품 정보"