Millie
Millie
millie

밀리의서재's reference documents #242424 as a documented primary color, Pretendard Variable for typography, 100px corner radius. Millie is a Korean reading-subscription platform.

Primary
#242424
Typography
Pretendard Variable
Radius
100px

Evidence snapshot

verified v2
Claims grounded
132/132 · 100%
Sources
2 surfaces · 7 sources
UI font basis
frontmatter · high
Components
13 documented · 10 interactive

Not backed by evidence

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

Millie

Millie is a Korean reading-subscription platform. Its official company material says it began an e-book subscription service in 2016 and has expanded into a catalogue spanning e-books, audio formats, chat books, web novels, and webtoons. The supplied public capture is much narrower than that product story: it covers Millie’s public home and a B2B marketing page, not a signed-in library, checkout, reader, or native app. On those surfaces, the visual expression is quiet and typographic: near-black #242424 text, white page planes, a subtle #F7F7F7 skeleton surface, and a loaded Pretendard Variable webfont. The home’s large editorial imagery and translucent carousel controls make content imagery the strongest visible accent; the capture does not establish a universal brand-CTA color.

01

Color Palette

Neutrals

02

Typography

Type Scale

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

44px44px · 700 · 1.23
Observed public B2B heading specimen.
28px28px · 700 · 1.36
Observed public B2B section heading specimen.
body14px · 400 · 1.71
Observed public home body and list text.
12px12px · 400 · 1.5
Observed compact home utility button.

Fonts

sans
Pretendard Variable
Open · OFL
Live webfont loaded in preview
Modern Korean variable font with full Latin coverage.
Install via GitHub · orioncactus/pretendard
03

Spacing & Shape

Border Radius

ElementValuePreview
carousel-paginationStructured token100px
utility-buttonStructured token4px
04

Guidelines

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

Do

  • Keep #242424, white, #F7F7F7, and #6F6F6F tied to their recorded public-surface roles.
  • Use Pretendard Variable only where its computed, loaded, and source evidence supports it.
  • Preserve translucent, fully rounded carousel controls as home-hero specimens.
  • Keep B2B benefit cards and the yellow HubSpot CTA explicitly separate from consumer product claims.

Don't

  • Restore the prior blue CTA or promotional palette without current selector-level evidence.
  • Promote declared Noto Serif, icon, fallback, or unresolved font observations into a UI family.
  • Generate reader, checkout, search, library, subscription, or mobile-app components from this public marketing capture.
  • Invent hover, focus, pressed, disabled, error, loading, toast, modal, or responsive states.
05

Components

Cards

b2b-benefit-card
b2b-benefit-card
Background#ffffff
Radius10px
Padding16px 24px
size297px x 169px
statesdefault captured on three list items; no state frame (the bundle holds none on either route)
Use: B2B benefit list item (surface-2::li, bundle variant 7); a container, so its inherited 14px / 400 type is not claimed as a label style
image fills
hero-slide
Backgroundtransparent
Radius20px
size1392px x 400px
statesdefault captured; no state frame (the bundle holds none on either route)
Use: Home hero banner slide (li.swiper-slide, bundle variant 13); the selector home::li is shared by many list items, so the class is the locator; the hero links (capture 17-20) span the same 1392 x 400 box
skeleton-card
skeleton-card
Background#f7f7f7
Radius16px
Padding45px 24px 30px
size280px x 424px
statescaptured shell only: no loading event, timing, or state frame
Use: Home skeleton card (div.skeleton__SkeletonCard-sc-3613fd6a-1, bundle variant 5), five occurrences; the selector home::div is shared, so the class is the locator

Buttons

b2b-campaign-cta
Background#fef08c
Text#242424
Radius4px
Padding0px
Text style16px / 400 / 56px Pretendard Variable
Shadowrgba(0, 0, 0, 0.22) 0px 4px 16px 0px
statesdefault captured; no state frame (the bundle holds none on either route)
Use: B2B page HubSpot CTA (a.hs-cta-embed) at surface-2::[data-omd-capture="1"], 318 x 56; its wrapper anchor (capture 0) records the same values; route-local marketing evidence, not a consumer product CTA
footer-about-button
Backgroundtransparent
Text#a5a5a5
Radius0px
Padding0px 14px 0px 0px
Font10px / 400 Pretendard Variable
statesdefault captured; no state frame (the bundle holds none on either route)
Use: Home footer about button (styled__AboutButton) at home::[data-omd-capture="42"], 97 x 12
hero-pagination-control
Backgroundrgba(0, 0, 0, 0.3)
Text#ffffff
Radius100px
Padding4px 10px
Text style16px / 400 / 24px Pretendard Variable
statesdefault captured; no state frame (the bundle holds none on either route)
Use: Home hero pagination counter (styled__PaginationButtonContainer) at home::[data-omd-capture="22"], 76 x 32 over the hero image
hero-play-control
Backgroundrgba(0, 0, 0, 0.3)
Radius100px
Padding8px
size32px x 32px
statesdefault captured; no state frame (the bundle holds none on either route)
Use: Home hero carousel play control (styled__PlayButtonContainer) at home::[data-omd-capture="21"]; its 8-character text cannot render inside the 16 x 16 content box, so the computed #242424 is not claimed as a label colour
home-utility-button
Background#333333
Text#ffffff
Radius4px
Padding0px 12px
Text style12px / 400 / 18px Pretendard Variable
statesdefault captured; no state frame (the bundle holds none on either route)
Use: Home header utility button (button.button__Button-sc-746c0757-0) at home::[data-omd-capture="10"], 80 x 32
translucent-icon-button
Backgroundrgba(0, 0, 0, 0.4)
Border1px rgba(255, 255, 255, 0.3)
Radius8px
size24px x 24px
statesdefault captured; no state frame (the bundle holds none on either route)
Use: Home translucent icon button (classes rounded-8 border-white-alpha-30 bg-black-alpha-40) at home::[data-omd-capture="34"]; it has no text node, so no label colour is claimed
white-anchor-button
Background#ffffff
Text#242424
Radius4px
Padding0px 16px
Text style14px / 400 / 20px Pretendard Variable
statesdefault captured; no state frame (the bundle holds none on either route)
Use: Home anchor button (a.button__Anchor-sc-746c0757-1, the utility button component family) at home::[data-omd-capture="38"], 311 x 40; its border width is 0px

Tabs

TabTabTab
category-tab-link
Backgroundtransparent
Text#242424
Radius0px
Padding0px 10px
Text style16px / 400 / 24px Pretendard Variable
statesrest on five links (capture 11, 13-16; 15 adds 32px left padding); capture 12 carries a different generated class and renders 16px / 700 / 22px, but no aria-selected or active class marks it, so it is not declared selected; no state frame (the bundle holds none on either route)
Use: Home category tab link (styled__MdsTabLink) at home::[data-omd-capture="11"]
TabTabTab
footer-link
Backgroundtransparent
Text#6f6f6f
Radius0px
Padding0px 12px 0px 0px
Font12px / 400 Pretendard Variable
statesdefault captured on eleven links (capture 43-53); no state frame (the bundle holds none on either route)
Use: Home footer link row at home::[data-omd-capture="43"]
TabTabTab
gnb-link
Backgroundtransparent
Text#242424
Radius0px
Padding0px 24px
Font20px / 400 Pretendard Variable
selected20px / 700, same colour (class on, capture 1)
statesrest on five links (capture 2-6); the link carrying the class on (capture 1) renders 20px / 700; no state frame (the bundle holds none on either route)
Use: Home top navigation link at home::[data-omd-capture="2"]

Related design systems