BrandToPrompt

HuffPost Design System: Bold Newsroom UI Patterns

Visit Site

Explore HuffPost's design system - high-contrast colors, bold typography, grid-based layouts. Build fast, editorial-focused UIs with HuffPost's style.

7 min read1,315 words

Brand Identity

Color Palette

Primary
Secondary

Typography

Primary Font
ProximaNovaCond
Secondary Font
Montserrat

Design Style

Style
bold and confident with high-contrast black, deep green accents, and condensed typography
Visual Density
compact grid-based with micro-targeted breakpoints
Border Style
mixed: sharp edges, 21.5px pill inputs, 24px rounded buttons

Full Analysis

HuffPost Design System Deep-Dive

1. Brand Overview

HuffPost’s visual language is blunt, confident, and a little old-school newsprint dressed up for digital. This is a newsroom brand that has kept its edge while integrating modern UI conventions.

The tone of the site matches the editorial tone: headline-heavy, condensed typefaces, and strong black framing. The black primary color is a statement — it says “serious,” “direct,” and “we’re doing journalism,” not lifestyle fluff. Their designers clearly know they’re serving fast, scroll-heavy consumption. This means typography hierarchy gets top billing, while “UI chrome” (buttons, cards, shadows) comes second.

The palette stays narrowly defined — no rainbow gradients here. You get deep greens, harsh blacks, tones of grey, and occasional bright accents (like pink/red for certain CTAs). That restraint makes their green stand out when they want it to.

Typography is mostly about bold condensed sans-serifs — Proxima Nova Condensed (Adobe font) dominates headings and large links. They use uppercase liberally in headings, especially for structure and emphasis. Supporting typefaces like Montserrat and Sporting Grotesque show up, but the condensed family is the workhorse.

Spacing is on an 8px base grid with some off-grid oddities (11px, 15px) — signs of old design choices still lurking in the codebase. Breakpoints are granular; they’ve clearly optimized per device width for editorial layouts. The range from 374px up to 1280px is dotted with intermediate breakpoints (400px, 416px, 897px) — very likely to keep headlines and ad layouts intact.

Components stick to function-first design. The buttons aren’t overly styled — either solid rectangles or pill shapes — but colors and border treatments define context. Links are often plain colored text with subtle hover changes; underline only when needed for clarity. Forms are rare (email signups, preference toggles) and get simple rounded treatment.

Big takeaway: HuffPost’s system is designed for speed, clarity, and continuous reading. Their brand identity is strong through typography and color discipline, not decorative UI.


2. Color System

2.1 Primary Colors

Primary is straight black: rgb(0,0,0) / #000000. It’s a loaded choice — black is authoritative, reminiscent of ink, and demands contrast for readability. Compared to competitors (CNN uses red, BBC uses black with red accents, NYTimes is all-black text), HuffPost’s primary feels in line with serious news but pairs with a distinct green accent, which is less common in news media. That green (#2e7061) softens the brand perception just enough to make it approachable.

2.2 Complete Palette

Color NameHexRoleUsage
White#ffffffBackground, textMasthead, content areas
Black#000000Primary brandText, borders
Charcoal#222222Secondary textCategory headers
Light Gray#d4d4d4DividerBackground elements
Soft Mint#b3daceAccent backgroundOccasional highlights
Dark Gray#3a3a3aTextStructural UI
Medium Gray#555555Icons, miscClose icons
Deep Green#2e7061Accent text/bgLinks, nav
Mid Gray#626262Hover statesFocus/hover adjustments

2.3 Color Relationships

This palette is low-chroma except during accent use. Black/white anchors the contrast — most content is easily WCAG AA compliant. Deep green against white works well for accessibility (ratio ~4.5:1). Soft mint (#b3dace) is subtle and should be kept large for visibility. Pink/red CTAs (like rgb(248,51,113) seen in buttons) inject urgency but are used sparingly.

Dark mode? They don’t ship one. But palette would invert well: black backgrounds, white text, green accents.

2.4 Usage Guide

  • Pair green (#2e7061) only with white backgrounds — preserves contrast.
  • Avoid green on black — poor contrast.
  • Use black as text on light backgrounds only.
  • Light gray (#d4d4d4) works as a divider but not for text — too low contrast.
  • Keep pink/red CTAs isolated — no second accent on same screen.

3. Typography

3.1 Font Families

  • ProximaNovaCond — primary heading and prominent link font. Adobe source. Falls back to ProximaNovaCondFallback.
  • ProximaNova — body and UI link text. Comes with light and bold weights.
  • Montserrat — used for some headings and caption contexts. Google font.
  • Sporting Grotesque_Bold — uppercase headings in small contexts.
  • Roboto — appears for buttons and system UI.
  • Georgia — uppercase headings occasionally.
  • Verdana — rare link styles, uppercase small text.
  • Sans-serif — generic fallback in various contexts.

Variable fonts and Adobe fonts suggest design flexibility, but ProximaNovaCond is the identity anchor.

3.2 Type Scale

Too many variants to cherry-pick — here’s the raw table:

ElementFontSizeWeightLine HeightTransform
linkProximaNovaCond110px800
heading-1ProximaNovaCond72px8000.51uppercase
heading-1ProximaNovaCond48px8000.77uppercase
linkProximaNovaCond45px800
heading-1sans-serif32px700
heading-1ProximaNovaCond32px8001.16
heading-1ProximaNovaCond30px800
heading-1ProximaNovaCond28px7001.00
heading-1Montserrat25px900uppercase
heading-1sans-serif24px400
heading-1ProximaNovaCond20px7001.25uppercase
heading-1ProximaNovaCond20px8001.20
heading-1Montserrat20px7001.25uppercase
heading-1Sporting Grotesque_Bold20px7001.25uppercase
heading-1ProximaNova18px4001.50
buttonProximaNovaCond18px6001.33
linkProximaNova18px4001.11
... etc................

(Full list is from extracted data — 60+ entries, demonstrating complexity.)

3.3 Hierarchy

They double up heading sizes for flexibility. Big headlines use condensed bold at huge sizes — 72px or even 110px. Uppercase emphasises structure in sections. Body sizes hover in the 14–18px range. Captions dip to ~12px. The condensed styles keep massive text fitting in narrow columns — well-suited for mobile.


4. Spacing & Layout

4.1 Spacing Scale

Base grid: 8px. Most values are multiples: 4, 8, 16, 24, 32, 60, 90, etc.

Common values/frequency:

ValueRemCount
1px0.06rem17
2px0.13rem17
3px0.19rem14
4px0.25rem26
6px0.38rem22
8px0.50rem240
10px0.63rem43
11px0.69rem24
12px0.75rem27
15px0.94rem34
.........

4.2 Layout

Breakpoints are micro-targeted:

374, 375, 400, 414, 415, 416, 425, 426px — dense early grid suggests device-specific tuning.

Tablet: 600, 601, 767, 768, 769px.
Desktop: 1023, 1024, 1279, 1280px.

No max-width value in extracted data, but likely close to 1280px container.


5. Visual Elements

Border Radius

Values range from sharp (0px) to fully rounded (50%, 1000px).

Notable:

  • 21.5px — email input pill shape.
  • 24px — one large button.
  • 40px — pill buttons.
  • 50% — avatars/icons.
  • Odd 1000px radius — maybe a joke/test element in code.

Shadows

Main shadow: rgba(196,196,196,0.25) 3px 3px 7px — subtle drop, used ~10 times.
Otherwise flat design, occasional outline shadows.

Borders

Frequent combo: 1px solid with various greys. Uses both dashed and dotted in decorative contexts.


6. Components

6.1 Buttons

Three variants based on extracted data.

Variant 1 — Green Rect

Default:

  • Background: #2e7061
  • Color: white
  • Padding: 11px 0
  • Border: 1px solid #2e7061
  • Radius: 0px

Hover:

  • Bg: #f5f5f5
  • Border: 1px solid #f83371
  • Opacity: 0.6
  • Box-shadow: #1a1e66 3px 3px

Active:

  • Bg: #2c6415
  • Border: 1px solid rgba(162,192,169,0.5)
  • Scale: 0.95

Focus:

  • Outline: #bb22ee 2px solid
  • Bg: #1eaedb

Variant 2 — Pink Pill

Default:

  • Bg: #f83371
  • Color: white
  • Radius: 24px
  • Padding: 6px 12px

States identical hover/active/focus patterns to Variant 1.

Variant 3 — Light Rect

Default:

  • Bg: #fafafa
  • Color: #333
  • Border: 1px solid #333
  • Radius: 4px
  • Padding: 8px 4px

Same state pattern.

Multiple color/styling variants:

  • White link, no underline, stays white on hover.
  • Green (#61ae96) — turns white on hover.
  • Blue (#0000ee) — underline default.
  • Black (#000) — underline default.
  • Red (#ff0808) — no underline.
  • Deep green (#2e7061) — no underline.
  • Gray (#333) — no underline.
  • Bright blue (#005aff) — underline.

6.3 Forms

Email input:

  • Bg: transparent
  • Border: 1px solid #dbdbdb
  • Radius: 21.5px
  • Padding: 1px 2px 1px 20px
    Focus flips bg to #1eaddb and text to white.

Radio inputs have zero-radius, transparent bg. Focus follows same bg/outline pattern.


7. Design Tokens (CSS Vars)

:root {
  /* Colors */
  --color-white: #ffffff;
  --color-black: #000000;
  --color-charcoal: #222222;
  --color-light-gray: #d4d4d4;
  --color-soft-mint: #b3dace;
  --color-dark-gray: #3a3a3a;
  --color-medium-gray: #555555;
  --color-deep-green: #2e7061;
  --color-mid-gray: #626262;

  /* Typography Sizes (sample subset) */
  --font-link-xl: 110px;
  --font-heading1-lg: 72px;
  --font-heading1-md: 48px;
  --font-heading1-sm: 32px;
  --font-body-md: 18px;
  --font-body-sm: 14px;

  /* Spacing */
  --space-1: 1px;
  --space-2: 2px;
  --space-3: 3px;
  --space-4: 4px;
  --space-6: 6px;
  --space-8: 8px;
  --space-10: 10px;
  --space-12: 12px;
  --space-15: 15px;
  --space-16: 16px;
  --space-20: 20px;
  --space-24: 24px;
  --space-32: 32px;
  --space-54: 54px;
  --space-56: 56.2212px;
  --space-60: 60px;
  --space-90: 90px;
  --space-160: 160px;
  --space-198: 198px;

  /* Border Radius */
  --radius-none: 0px;
  --radius-sm: 2px;
  --radius-md: 4px;
  --radius-pill: 21.5px;
  --radius-lg: 24px;
  --radius-xl: 40px;
  --radius-round: 50%;
  --radius-full: 1000px;

  /* Shadows */
  --shadow-soft: rgba(196,196,196,0.25) 3px 3px 7px 0px;
}

8. AI Coding Assistant Prompt

# HuffPost Design System Specification

You are a HuffPost design expert. Build UIs matching their visual language exactly.

## Brand Context
HuffPost's design is newsroom-focused: bold condensed headlines, high-contrast black and white base, deep green accents, and restrained color usage. Typography carries brand identity; UI elements are functional and minimal.

## Color Palette
- Primary Black: #000000 — text, primary brand color
- White: #ffffff — page background, text on dark surfaces
- Charcoal: #222222 — secondary text, headers
- Light Gray: #d4d4d4 — dividers, backgrounds
- Soft Mint: #b3dace — accent backgrounds
- Dark Gray: #3a3a3a — text, UI structure
- Medium Gray: #555555 — icons, inactive states
- Deep Green: #2e7061 — links, nav highlights
- Mid Gray: #626262 — hover/focus adjustments
- CTA Pink: #f83371 — pill buttons, urgent CTAs
- CTA Red: #ff0808 — attention text

## Typography
Font families:
- "ProximaNovaCond", "ProximaNovaCondFallback"
- "ProximaNova"
- "Montserrat"
- "Sporting Grotesque_Bold"
- "Roboto"
- "Georgia"
- "Verdana"
- "sans-serif"

Type sizes and use cases:
| Level | Size | Weight | Line Height | Use For |
| H1 XL | 110px | 800 | — | Feature headlines |
| H1 LG | 72px  | 800 | 0.51 | Main headlines |
| H1 MD | 48px  | 800 | 0.77 | Sub-headlines |
| Body | 18px | 400 | 1.50 | Paragraph text |
| Caption | 14px | 400-800 | 1.21-1.43 | Meta info |
| Button | 14-18px | 400-700 | — | UI actions |

## Spacing & Grid
Base: 8px. Scale includes: 1, 2, 3, 4, 6, 8, 10, 11, 12, 15, 16, 20, 24, 32, 54, 56.2212, 60, 90, 160, 198px.

Apply spacing in multiples of 8px for layout alignment. Smaller values (1-4px) for borders/gaps, larger for section padding.

## Border Radius
- none: 0px — rectangular elements
- sm: 2px — small cards, buttons
- md: 4px — inputs, cards
- pill: 21.5px — text inputs
- lg: 24px — large rounded buttons
- xl: 40px — pill CTAs
- round: 50% — avatars, icons
- full: 1000px — special pill/test shapes

## Shadows & Depth
- Soft shadow: rgba(196,196,196,0.25) 3px 3px 7px — subtle depth
Mostly flat — rely on borders and color contrast for separation.

## Component Specifications

### Primary Button (Green Rect)
Default:
```css
background-color: #2e7061;
color: #ffffff;
padding: 11px 0;
border: 1px solid #2e7061;
border-radius: 0px;
font-weight: 700;
font-size: 14px;
```
Hover:
```css
background-color: #f5f5f5;
border: 1px solid #f83371;
opacity: 0.6;
box-shadow: #1a1e66 3px 3px;
```
Active:
```css
background-color: #2c6415;
border: 1px solid rgba(162,192,169,0.5);
transform: scale(0.95);
```
Focus:
```css
outline: 2px solid #bb22ee;
background-color: #1eaddb;
```

### Secondary Button (Pink Pill)
Default:
```css
background-color: #f83371;
color: #ffffff;
padding: 6px 12px;
border-radius: 24px;
border: none;
```
States follow Primary Button pattern.

### Link (Green)
Default:
```css
color: #2e7061;
text-decoration: none;
```
Hover:
```css
color: #ffffff;
```

### Input (Email)
Default:
```css
background-color: transparent;
border: 1px solid #dbdbdb;
border-radius: 21.5px;
padding: 1px 2px 1px 20px;
color: #000000;
```
Focus:
```css
background-color: #1eaddb;
color: #ffffff;
border-color: #000000;
```

## Layout & Responsive Rules
Breakpoints:
- Mobile: 374–426px range
- Tablet: 600–769px range
- Desktop: 1024–1280px

Grid gap: multiples of 8px.

## Interaction Rules
- Transition timing: 150ms ease for hover/active/focus changes
- Outline for focus: 2px solid accent color
- Active state scale: 0.95

## DO
- Use only defined palette hex values
- Maintain 8px-base spacing
- Keep headlines in ProximaNovaCond for consistency
- Limit accent colors per screen
- Use uppercase for structural headings

## DON'T
- Invent additional colors
- Mix sharp and rounded corners within same element
- Overuse CTA pink — reserve for key actions
- Apply shadows stronger than soft default

## Code Examples

### Primary Button
```css
.btn-primary {
  background: #2e7061;
  color: #fff;
  padding: 11px 0;
  border: 1px solid #2e7061;
  border-radius: 0;
  font-weight: 700;
  font-size: 14px;
  transition: background 150ms ease;
}
.btn-primary:hover {
  background: #f5f5f5;
  border-color: #f83371;
  opacity: 0.6;
}
```

### Card
```css
.card {
  background: #fff;
  border-radius: 4px;
  padding: 24px;
  box-shadow: rgba(196,196,196,0.25) 3px 3px 7px;
}
```

### Input
```css
.input-email {
  border: 1px solid #dbdbdb;
  border-radius: 21.5px;
  padding: 1px 2px 1px 20px;
  background: transparent;
}
.input-email:focus {
  background: #1eaddb;
  color: #fff;
}
```

9. Summary

TL;DR — HuffPost’s system is built for editorial speed: huge condensed headlines, black/white dominance, green accents, and barebones UI components. Type and color do the branding; the rest stays invisible.

Brand Keywords: news-heavy, high-contrast, type-driven, accent-disciplined, grid-consistent