DESIGN.md · Analysis

detikcom

detik.com · 10 Jun 2026 · 47 colors · Google Sans Flex, Montserrat

detikcom

Indonesia's leading digital news platform delivering breaking news, sports, finance, and lifestyle content with a bold, energetic visual identity rooted in primary blue and accent lime-green.

Colors

surface#ffffff
surface-dim#f7f7f7
surface-bright#ffffff
surface-container-lowest#f8f8f8
surface-container-low#f0f0f0
surface-container#eeeeee
surface-container-high#e8e8e8
surface-container-highest#e0e0e0
on-surface#000000
on-surface-variant#666666
inverse-surface#1a1a1a
inverse-on-surface#ffffff
outline#cccccc
outline-variant#d0d0d0
surface-tint#21409a
primary#21409a
on-primary#ffffff
primary-container#2c5498
on-primary-container#ffffff
inverse-primary#007cbd
secondary#89be3e
on-secondary#ffffff
secondary-container#a8d45f
on-secondary-container#1a3d0a
tertiary#00a1dc
on-tertiary#ffffff
tertiary-container#00c7ff
on-tertiary-container#003d5c
error#c72026
on-error#ffffff
error-container#ff0000
on-error-container#ffffff
primary-fixed#2c5498
primary-fixed-dim#1e3f7a
on-primary-fixed#ffffff
on-primary-fixed-variant#e8eef9
secondary-fixed#89be3e
secondary-fixed-dim#6fa02e
on-secondary-fixed#ffffff
on-secondary-fixed-variant#f0f7e8
tertiary-fixed#00a1dc
tertiary-fixed-dim#0078a8
on-tertiary-fixed#ffffff
on-tertiary-fixed-variant#e0f4ff
background#ffffff
on-background#000000
surface-variant#f0f0f0

Typography

display
fontFamily: Google Sans Flex · fontSize: 60px · fontWeight: 900 · lineHeight: 68px · letterSpacing: -0.04em
headline-lg
fontFamily: Google Sans Flex · fontSize: 40px · fontWeight: 700 · lineHeight: 48px · letterSpacing: -0.02em
headline-md
fontFamily: Google Sans Flex · fontSize: 28px · fontWeight: 700 · lineHeight: 36px · letterSpacing: -0.01em
title-lg
fontFamily: Google Sans Flex · fontSize: 20px · fontWeight: 600 · lineHeight: 28px
body-lg
fontFamily: Montserrat · fontSize: 18px · fontWeight: 400 · lineHeight: 28px
body-md
fontFamily: Montserrat · fontSize: 16px · fontWeight: 400 · lineHeight: 24px
label-md
fontFamily: Google Sans Flex · fontSize: 14px · fontWeight: 600 · lineHeight: 20px · letterSpacing: 0.01em
label-sm
fontFamily: Google Sans Flex · fontSize: 12px · fontWeight: 700 · lineHeight: 16px · letterSpacing: 0.05em

Design guidance

Overview

detikcom is Indonesia's most-visited news platform, delivering breaking news, sports coverage, finance, and lifestyle content with urgency and authority. The design system embodies a "Bold Journalistic" aesthetic—combining a commanding primary blue (#21409a) with energetic lime-green (#89be3e) and cyan accents (#00a1dc) to create visual hierarchy and draw attention to critical stories. The interface prioritizes clarity and scannability, reflecting the brand's mission to inform millions of Indonesians daily. Voice: direct, authoritative, and conversational. The tone avoids sensationalism while maintaining energy; example: "Presiden Joko Widodo mengumumkan kebijakan baru hari ini—baca analisis lengkapnya di sini."

Colors

The color system is rooted in a primary blue (#21409a) that commands attention on CTAs, navigation headers, and key interactive elements. This blue conveys trust and journalistic authority. Secondary lime-green (#89be3e) and tertiary cyan (#00a1dc) are deployed as accent gradients (linear-gradient(223deg, rgba(137, 190, 62, 1) 0%, rgba(0, 161, 220, 1) 100%)) on featured content cards, match-score highlights, and promotional buttons—creating visual energy without overwhelming the layout. Error red (#c72026) marks urgent alerts and breaking-news badges. The surface stack is anchored in pure white (#ffffff) for maximum readability, with subtle grays (#f0f0f0, #e8e8e8) for container differentiation. On-surface text is pure black (#000000) for 16px body copy, ensuring WCAG AA contrast ratios. O

Typography

The type system pairs Google Sans Flex (headlines, labels, UI text) with Montserrat (body copy, article text) to balance modern energy with readability. Display text uses Google Sans Flex at 60px, weight 900, with -0.04em letter-spacing to create impact on hero sections and breaking-news callouts. Headline-lg (40px, weight 700) anchors article titles and major section headers. Body-md (16px, weight 400, 24px line-height) is the workhorse for article text and list content, set in Montserrat for optimal legibility at small sizes. Label-md (14px, weight 600, Google Sans Flex) is applied to navigation tabs, button text, and metadata labels. On small labels over busy backgrounds (e.g., live-score badges), apply text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3) to ensure legibility. All headlines use le

Layout

The layout uses a 12-column grid with a 1280px max-width container, centered on desktop. The primary navigation bar spans full-width at the top (fixed position, z-index 22) with a 24px gutter on left/right. Content sections use 24px (md spacing) for vertical rhythm between major blocks—news cards, featured stories, and sidebar widgets. Horizontal card grids typically employ 3–4 columns on desktop, collapsing to 2 columns at tablet (768px) and 1 column on mobile. The hero section (World Cup match card) uses a dark overlay with radial-gradient depth and 16px padding internally. Sidebar widgets maintain 12px (sm spacing) between list items. Container max-width is enforced at 1280px; content beyond that width is hidden or wrapped. White-space philosophy: generous breathing room around cards (2

Elevation & Depth

Depth is conveyed through a three-tier shadow system and subtle background color shifts. Level 1 (Base): flat white surface (#ffffff) with no shadow, used for body backgrounds and input fields. Level 2 (Standard Card): 0 3px 8px rgba(0, 0, 0, 0.15) shadow with surface-container-lowest (#f8f8f8) background, applied to news cards, article previews, and list items. Level 3 (Elevated/Featured): 0 8px 24px rgba(0, 0, 0, 0.12) shadow with surface-container-high (#e8e8e8) background, used for modals, featured story cards, and hover states. The World Cup match card uses a radial-gradient overlay (radi

Shapes

The shape system follows a "Journalistic Precision" philosophy: sharp, geometric corners with strategic rounding to guide focus. Buttons use 1rem (16px) border-radius for primary actions, creating a modern, approachable feel while maintaining authority. Secondary buttons and input fields use 1.5rem (24px) border-radius (full pill shape) to soften interactions and encourage engagement. Cards and containers default to 0.75rem (12px) border-radius, balancing structure with friendliness. Featured content cards (match scores, live updates) use 1rem (16px) radius. Navigation tabs and badges use 9999

Components

Action Elements Primary buttons use {colors.primary} (#21409a) background with {colors.on-primary} (white) text, 12px 24px padding, 48px height, and {rounded.lg} (16px) border-radius. On hover, shift to {colors.primary-container} (#2c5498) with a 0.2s ease transition. Secondary buttons are transparent with a 1px solid {colors.primary} border, 6px 24px padding, and {rounded.full} (pill shape). Accent gradient buttons layer linear-gradient(223deg, #89be3e 0%, #00a1dc 100%) with a 2.175px white offset shadow; on hover, translate(2.175px, 2.175px) collapses the shadow over 0.1s ease. All buttons use {typography.label-md} (14px, weight 600, Google Sans Flex).

Containers & Surfaces Standard cards use {colors.surface-container-lowest} (#f8f8f8) background, {rounded.lg} (16px), {spacing.m

Do's and Don'ts

**Do**

  • Do use the primary blue (#21409a) on all CTAs, navigation headers, and focus states to maintain consistent brand recognition across the platform.
  • Do apply the lime-green–to–cyan gradient (linear-gradient(223deg, #89be3e 0%, #00a1dc 100%)) on featured content, match scores, and promotional elements to create visual energy without overwhelming neutral layouts.
  • Do maintain 24px (lg spacing) between major content sections and 12px (sm spacing) between list items to ensure scannable, breathable layouts.
  • Do use Google Sans Flex for all headlines, labels, and UI text; reserve Montserrat for body copy and article text to balance modern energy with readability.
  • Do apply the three-tier shadow system (Level 1: none, Level 2: 0 3px 8px rgba(0, 0, 0, 0.15), Level 3: 0 8px 24px rgba(0, 0, 0, 0.12)) to create clear visual hierarchy without excessive depth.

**Don't**

  • Don't use the secondary lime-green (#89be3e) or tertiary cyan (#00a1dc) as standalone button backgrounds; reserve them for accent gradients and featured content highlights only.
  • Don't apply border-radius smaller than 8px (sm: 0.25rem) on interactive elements; tight corners reduce perceived affordance and conflict with the journalistic-precision aesthetic.
  • Don't exceed 1280px container max-width; content overflow creates layout instability and reduces readability on ultra-wide displays.
  • Don't mix Montserrat and Google Sans Flex in the same headline or label; maintain strict separation: Google Sans Flex for UI/headlines, Montserrat for body copy.
  • Don't use pure black (#000000) text smaller than 14px without increasing line-height to 1.5 or adding text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3) on busy backgrounds; legibility suffers at small sizes.