ZIGZAG Design System (ZDS)
ZIGZAG Design System (ZDS)
zigzag

ZIGZAG's reference documents #121212 as a documented primary color, 24px corner radius. ZIGZAG is KakaoStyle's style-commerce service: its public terms describe it as the mobile shopping service through which sellers and users transact, while the company's 2025 brand publication frames the service as a plac

Primary
#121212
Typography
Radius
24px

Evidence snapshot

verified v2
Claims grounded
144/144 · 100%
Sources
3 surfaces · 6 sources
UI font basis
unresolved
Components
12 documented · 10 interactive, 4 with states
Design System
Zigzag logo

Zigzag

ZIGZAG is KakaoStyle's style-commerce service: its public terms describe it as the mobile shopping service through which sellers and users transact, while the company's 2025 brand publication frames the service as a place for people to discover and complete their own tastes. The current public web evidence is deliberately product-led rather than a separate corporate-brand treatment: product photography and dense catalog information occupy the page, with a white #ffffff canvas, dark #292b2b reading text, muted metadata, and square-to-lightly-rounded geometry. The official ZDS engineering account explains why that consistency matters: Kakaostyle rebuilt the web design system around CSS-variable tokens and unified product-card work across surfaces. This reference preserves that engineering and commerce context, but promotes only the values observed on the three supplied current public product surfaces.

01

Color Palette

Accent

Neutrals

02

Typography

Type Scale

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

32px32px · 600 · 1.4
Public product-detail section headings
body16px · 400 · normal
Current page and product-card text
14px14px · 500 · 1.21
Product-detail tab and supporting metadata
03

Spacing & Shape

Spacing

PurposeValuePreview
xs4px
sm8px
md12px
lg16px

Border Radius

ElementValuePreview
controlStructured token24px
fullStructured token9999px
iconStructured token8px
squareStructured token0px

Elevation

flat
04

Guidelines

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

Do

  • Keep #292b2b as the observed body/card foreground and reserve #121212 for the strongest captured detail-tab state.
  • Preserve the product-card split between thumbnail and metadata when using this reference's public-card pattern.
  • Use 0px geometry only for the observed card/tab roles; use 8px, 24px, and full-pill values only in their evidenced icon, action, and carousel-control roles.

Don't

  • not present the legacy pink palette as a current public product token without new product-surface proof.
  • not label the computed Pretendard JP stack as a browser-loadable ZIGZAG font or substitute a system font under that name.
  • not invent sale, error, success, favorite, dialog, input, or checkout variants from adjacent marketing or native-app surfaces, or hover, focus, and pressed values beyond those measured in §4.
05

Components

Buttons

app-banner-button
Background#f1ecea
Text#000000
Radius0px
Padding0px 17px
Text style16px / 400
size600px x 54px
statesdefault captured 2026-07-13 on all three surfaces; not probed
Use: Top 앱으로 이동 app banner at home::[data-omd-capture="0"]
buy-cta
Background#121314
Text#fafafb
Radius24px
Padding0px
Text style17px / 700
Focusno focus indication in the compared scope (self, its ::before/::after, 0 descendants, 3 ancestor levels) — measured 2026-09-29
size460px x 46px
statesdefault captured 2026-07-13 on both product pages; keyboard focus measured 2026-09-29 (Tab 238); hover and pressed deliberately unmeasured: the button was never pressed, because another zigzag control had just fired on mouse-down
Use: Fixed bottom 구매하기 purchase button at surface-2::[data-omd-capture="37"]
carousel-next
Background#ffffff
Text#000000
Radius9999px
Padding6px
Shadow0px 2px 8px rgba(0, 0, 0, 0.1)
Hoverno change in the compared scope (self, its ::before/::after, 2 descendants incl. 1 svg and 1 path, 3 ancestor levels) — measured 2026-09-29
Focusno focus indication in the compared scope (self, its ::before/::after, 2 descendants incl. 1 svg and 1 path, 3 ancestor levels) — measured 2026-09-29
pressedno change in the compared scope (self, its ::before/::after, 2 descendants incl. 1 svg and 1 path, 3 ancestor levels) — measured 2026-09-29
size32px x 32px
statesdefault captured 2026-07-13 on both product pages; hover, pressed and keyboard focus measured 2026-09-29 on product-a's product-card carousel next arrow (Tab 29, second run)
Use: White circular product-card carousel arrow at surface-2::[data-omd-capture="26"]
floating-scroll-button
Background#ffffff
Text#000000
Radius50%
Padding0px
Shadow0px 2px 6px rgba(0, 0, 0, 0.08)
size40px x 40px
statesdefault captured 2026-07-13 (four occurrences on the two product pages); not probed
Use: White circular scroll button on the product page at surface-2::[data-omd-capture="38"]
header-icon-link
Backgroundtransparent
Text#292b2b
Radius8px
Padding0px
Hoverbg rgba(0, 0, 0, 0.03)
Focusno focus indication in the compared scope (self, its ::before/::after, 3 descendants incl. 1 svg and 1 path, 3 ancestor levels) — measured 2026-09-29
pressedbg rgba(0, 0, 0, 0.03)
size44px x 44px
statesdefault captured 2026-07-13 (two on home, three on each product page); hover, pressed and keyboard focus measured 2026-09-29 on the product-page 검색 link (Tab 4, second run); hover equals pressed; the July hover, pressed and focus frames on these links (alpha 0.004 and 0.008) were transition frames and are not used
Use: Header icon link (검색 and its siblings; no text node) at surface-2::[data-omd-capture="2"] to [data-omd-capture="4"]
more-button
Backgroundtransparent
Text#242729
Radius24px
Padding0px
Text style15px / 600
Focusno focus indication in the compared scope (self, its ::before/::after, 1 descendant, 3 ancestor levels) — measured 2026-09-29
size98px x 48px
statesdefault captured 2026-07-13; keyboard focus measured 2026-09-29 (Tab 34); hover and pressed unmeasured: the button is pointer-events none, and its 1px #292b2b pill border is drawn by its parent div, not by the button
Use: 상품정보 더 보기 pill at surface-2::[data-omd-capture="33"]
quick-menu-arrow
Backgroundtransparent
Text#000000
Border1px solid #ecedee
Radius50%
Hoverno change in the compared scope (self, its ::before/::after, 2 descendants incl. 1 svg and 1 path, 3 ancestor levels) — measured 2026-09-29
Focusno focus indication in the compared scope (same scope as hover) — measured 2026-09-29
Disabledrgba(16,16,16,0.3)
pressedbg rgba(0, 0, 0, 0.05)
statesdefault captured 2026-07-13; the previous arrow is a natively disabled button (disabled attribute, pointer-events none) with rgba(16,16,16,0.3) text, confirmed 2026-09-29; hover, pressed and keyboard focus measured 2026-09-29 on the next arrow 다음 (Tab 76)
Use: Home quick-menu carousel arrow
text-action
Backgroundtransparent
Text#606567
Radius0px
Padding0px
Text style13px / 500
size63px x 20px
statesdefault captured 2026-07-13 on both product pages; not probed
Use: 전체보기 text action at surface-2::[data-omd-capture="8"]

Tabs

TabTabTab
detail-tab
Text#121212
Radius0px
Padding0px 4px 17.5px
Text style14px / 600
Hoverno change in the compared scope (self, its ::before/::after, 3 descendants, 3 ancestor levels) on the selected 상품정보 and the default 성분 — measured 2026-09-29
Focusno focus indication in the compared scope (same scope) on the selected tab (Tab 32) — measured 2026-09-29
Active#121212
pressedno change in the compared scope (same scope) on the selected tab — measured 2026-09-29
statesselected captured 2026-07-13; the default tab uses #878f91 at 14px / 500 with padding that varies by tab (0px 4px 17.5px on 성분, 0px 4px 10px on 리뷰 in the 2026-09-29 survey; July sampled 10px); 성분's pressed state is unmeasured (the page changed on mouse-down) and its focus is unmeasured (tabIndex -1 in a roving tablist)
Use: Product-detail tab list on both captured product-detail pages
TabTabTab
tabbar-link
Backgroundtransparent
Text#121212
Radius0px
Font11px / 500 (visible label; the link itself computes #292b2b 16px / 400)
Hoveroverlay ::before rgba(0, 0, 0, 0.05), full size
Focusno focus indication in the compared scope (self, its ::before/::after, 4 descendants incl. 1 svg and 1 path, 3 ancestor levels) — measured 2026-09-29
pressedoverlay ::before rgba(0, 0, 0, 0.05); bg rgba(0, 0, 0, 0.05); transform icon svg scale 0.95
size150px x 59px
statesdefault captured 2026-07-13 on four links (the first and last round their outer top corner at 12px); hover, pressed and keyboard focus measured 2026-09-29 on 카테고리 (Tab 366)
Use: Fixed bottom tab bar link (홈, 카테고리, 찜, 마이페이지) at home::[data-omd-capture="78"] to [data-omd-capture="81"]

Cards

image fills
product-card
Radius0px
Padding0px 0px 8px
Hoverno change in the compared scope (the card link a.product-card-link, its ::before/::after, 0 descendants, 3 ancestor levels; the thumbnail and texts are siblings of the link and were not compared) — measured 2026-09-29
Focusno focus indication in the compared scope (same scope as hover) — measured 2026-09-29
pressedbg rgba(0, 0, 0, 0.03) on the card link
statesroot captured 2026-07-13; hover, pressed and keyboard focus measured 2026-09-29 on the link inside the first product card on product-a (172px x 336.4px, Tab 13) in the second run; the first run's hover and pressed were voided when the page navigated away
Use: Public product-card root on both captured product-detail pages
product-thumbnail
product-thumbnail
Background#ecedee
Radius0px
Use: Public product-card thumbnail placeholder on both captured product-detail pages

Related design systems