WEC Design System uses Poppins as the primary font family for its modern, geometric sans-serif design, complemented by Telkomsel Batik for brand headlines. Our type scale ensures visual hierarchy and readability across all device sizes.
Weight Font File Font Weight Usage Thin poppins-thin.woff2100 Display, decorative Light poppins-light.woff2300 Subheadings, emphasis Regular poppins-regular.woff2400 Body text, default Medium poppins-medium.woff2500 Emphasized text, labels Bold poppins-bold.woff2700 Headings, strong emphasis Extra Bold poppins-extra-bold.woff2800 Display headings
Weight Font File Font Weight Usage Regular telkomsel-batik-regular.woff2400 Brand headlines Bold telkomsel-batik-bold.woff2700 Brand headlines (emphasis)
Note: Telkomsel Batik is used exclusively for brand headlines and hero sections to maintain brand identity.
font-family : 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif ;
font-family : 'Telkomsel Batik', 'Poppins', sans-serif ;
Token Size Line Height Font Weight Usage .text-desktop-h164px 72px Bold/Extra Bold Hero titles, main headings .text-desktop-h256px 72px Bold Page titles .text-desktop-h344px 56px Bold/Medium Section titles .text-desktop-h432px 48px Medium/Semi Bold Subsection titles .text-desktop-h524px 32px Medium Card titles .text-desktop-h618px 24px Medium Small headings .text-desktop-body218px 32px Regular Body text, paragraphs .text-desktop-body315px 24px Regular Secondary text .text-desktop-body413px 24px Regular Captions, labels
Token Size Line Height Font Weight Usage .text-mobile-h132px 40px Bold Hero titles .text-mobile-h232px 36px Bold Page titles .text-mobile-h320px 24px Medium Section titles .text-mobile-h416px 24px Medium Subsection titles .text-mobile-body214px 24px Regular Body text .text-mobile-body314px 16px Regular Secondary text .text-mobile-body-small12px 24px Regular Captions .text-mobile-small11px 16px Regular Tiny labels .text-mobile-extra-small8px 12px Regular Micro text
< h1 className = " text-desktop-h1 md:text-mobile-h1 font-bold " >
Build Consistent User Experiences
Usage: Landing page heroes, main section headers
< h2 className = " text-desktop-h2 md:text-mobile-h2 font-bold " >
Usage: Page titles, modal titles
< h3 className = " text-desktop-h3 md:text-mobile-h3 font-medium " >
Usage: Section headers, card categories
< p className = " text-desktop-body2 md:text-mobile-body2 font-normal " >
WEC Design System provides accessible components for building modern web applications.
Usage: Paragraphs, descriptions, content
< span className = " text-desktop-body4 md:text-mobile-body-small " >
Usage: Form labels, captions, hints
Use Telkomsel Batik for brand moments:
< h1 className = " font-telkomsel-batik text-6xl " >
Usage:
Application name/logo
Hero section brand headlines
Special campaign headers
Context Letter Spacing Usage Headings (H1-H3) -0.02em to -0.03em Tighter spacing for large text Body text Normal (0) Default readability Small text (captions) 0.05em Slightly expanded for clarity All caps/Buttons 0.05em to 0.1em Expanded for emphasis
/* Example letter spacing */
text-transform : uppercase ;
Weight When to Use Examples 100 (Thin) Display, decorative Hero overlays, artistic headlines 300 (Light) Subheadings Secondary headings, labels 400 (Regular) Body text default Paragraphs, descriptions 500 (Medium) Emphasis, labels Form labels, card titles 700 (Bold) Headings All heading levels (H1-H6) 800 (Extra Bold) Display headings Hero titles, landing page headlines
Typography scales between mobile and desktop:
/* Mobile-first approach */
font-size : 20 px ; /* Mobile */
@media ( min-width : 768 px ) {
font-size : 44 px ; /* Desktop */
Element Mobile Desktop Scale Factor H1 32px 64px 2.0x H2 32px 56px 1.75x H3 20px 44px 2.2x H4 16px 32px 2.0x Body 14px 18px 1.28x Caption 12px 13px 1.08x
Alignment When to Use Left Body text, most content (LTR languages) Center Headings, hero sections, CTAs Right Numbers, prices, data tables Justify Avoid - creates uneven word spacing
Transform When to Use Examples None Most text Body text, headings Uppercase Buttons, badges, labels ”BUY NOW”, “NEW” Capitalize Names, titles Proper nouns Lowercase URLs, email addresses www.example.com
text-transform : uppercase ;
text-transform : capitalize ;
text-transform : lowercase ;
Type When to Use None Most text (default) Underline Links only (on hover/focus) Line-through Deleted prices, completed tasks No underline Navigation, link buttons
border-bottom : 1 px solid transparent ;
transition : border-color 0.2 s ;
border-bottom-color : currentColor ;
Context Line Height Ratio Headings (32px+) 1.1 - 1.2 Tighter for large text Body text 1.6 - 1.8 Comfortable readability Captions (12-14px) 1.4 - 1.5 Slightly tighter Form inputs 1.4 - 1.5 Match input height
/* Line height examples */
line-height : 1.27 ; /* 56px */
line-height : 1.78 ; /* 32px */
line-height : 1.85 ; /* 24px */
< h3 className = " font-telkomsel-batik font-bold text-2xl md:text-3xl " >
< div className = " font-bold text-5xl md:text-7xl " >
< p className = " text-grey-60 text-sm " > /month </ p >
< label className = " font-medium text-base md:text-lg " >
< p className = " text-grey-60 text-sm " > We'll send confirmation to this email </ p >
< button className = " font-bold text-base uppercase tracking-wide " >
Body text: Minimum 14px on mobile, 16px on desktop
Form inputs: Minimum 16px to prevent iOS zoom
Touch targets: Text within buttons should be readable
Minimum 1.5x line height for body text
Minimum 1.2x line height for headings
Paragraph spacing: at least 1.5x font size
All text must meet WCAG 2.1 AA (4.5:1 for normal text)
Large text (18px+): 3:1 contrast ratio minimum
Use semantic HTML (<h1>-<h6>, <p>, <strong>, <em>)
Don’t rely on visual styling alone for emphasis
Provide alt text for text in images
--font-primary : ' Poppins ' , -apple-system , BlinkMacSystemFont, ' Segoe UI ' , sans-serif ;
--font-brand : ' Telkomsel Batik ' , ' Poppins ' , sans-serif ;
--text-desktop-body2 : 18 px ;
--text-desktop-body3 : 15 px ;
--text-desktop-body4 : 13 px ;
--text-mobile-body2 : 14 px ;
--text-mobile-body3 : 14 px ;
--text-mobile-body-small : 12 px ;
--text-mobile-small : 11 px ;
--text-mobile-extra-small : 8 px ;
--tracking-tighter : -0.05 em ;
--tracking-tight : -0.025 em ;
--tracking-wide : 0.025 em ;
--tracking-wider : 0.05 em ;
--tracking-widest : 0.1 em ;
✅ Do ❌ Don’t Use Poppins for most UI text Use Telkomsel Batik for body text Scale text proportionally (1.2-1.5x) Jump between unrelated sizes Use appropriate line heights Use single line height for paragraphs Respect mobile minimum (14px) Use text smaller than 12px Use font weights consistently Use too many weight variations Maintain visual hierarchy Make everything the same size