BrandToPrompt

Goodreads Design System: Literary Flat UI Patterns

Visit Site

Explore Goodreads' design system - earthy colors, serif and sans-serif typography, functional spacing. Learn how it builds trust for book lovers.

6 min read1,020 words

Brand Identity

Color Palette

Primary
Secondary

Typography

Primary Font
Merriweather
Secondary Font
Lato

Design Style

Style
earthy, flat, content-first with literary heritage
Visual Density
compact with functional spacing and dense content layout
Border Style
mixed: 3px buttons, 5px inputs, 10px cards, 50% avatars

Full Analysis

Goodreads Brand Design System Deep-Dive


1. Brand Overview

Goodreads is the digital equivalent of a well-worn library card. It’s for book lovers, list-makers, and people who want to track, share, and discover reading. The design speaks to a community vibe—less about flashy visuals, more about trust, familiarity, and a sense of timelessness.

The aesthetic leans heavily on literary heritage. That’s obvious in the typography choices: Merriweather for serif warmth and Lato for clean sans-serif UI elements. They’re pairing the romanticism of print with the clarity of modern web interfaces. This isn’t Apple’s ultra-minimalism or Netflix’s cinematic drama—it’s quieter, more conversational.

The site feels like it’s been around for years (because it has), and the design reflects that longevity. Colors are earthy: deep greens, browns, warm yellows. No neon. No gradients. A flat style that relies on borders and subtle contrasts instead of shadows or glowing effects. It's pragmatic and a little nostalgic.

Goodreads users are not chasing micro-interactions or high-motion UI. They want quick access to reviews, ratings, and book lists. The design doesn’t get in their way. Spacing is functional, typography is readable, and components are consistent enough that you can skim without thinking about layout.

This is a brand where design is in service of content—not the other way around. The vibe is: books first, design second. And that’s intentional. They’ve avoided trendy visual shifts, which means the visual language is stable. That stability is part of the brand’s trust—users know what to expect every time they come back.


2. Color System

2.1 Primary Colors

The main brand color is #00635d — a deep teal-green. It’s used for links and primary interactive text. This choice is smart: green is often associated with growth, nature, and stability, but here the teal shift adds sophistication. It’s less “eco” and more “library leather binding.”

Compared to competitors:

  • Amazon (Goodreads’ parent) leans on orange.
  • StoryGraph uses a softer purple. Goodreads’ green is more grounded, less playful. That fits the brand’s sense of authority.

2.2 Complete Palette

Here’s every extracted color, with usage notes:

Color NameHexRoleUsage
Deep Teal#00635dPrimary brand colorLinks, key interactive text
Dark Gray#333333Primary textBody copy, headings
Very Dark Brown#1e1915Secondary dark textEmphasis text, non-link headings
Black#000000Functional text/bordersBorders, icons
Medium Gray#999999Secondary textPlaceholders, disabled states
White#ffffffBackground/text on dark surfacesPage background, button text
Warm Yellow#f8c15dAccent / hoverHover/focus accents
Rich Brown#58371fAccent / hoverHover/focus accents
Pale Beige#f5d47a*Button background (Amazon variant)CTA background (extracted from button style)
Warm Cream#f4f1ea*Button background (small variant)Secondary buttons
Light Border Beige#d6d0c4*Component bordersInput borders, secondary buttons
Dark Gold Border#b38b22*Amazon button borderCTA button borders
Dark Coffee#382110*Auth button backgroundAuth CTAs
Pale Gray Border#d8d8d8*Divider linesTable dividers, section borders

(* colors pulled from component states in data)

2.3 Color Relationships

Contrast:

  • #00635d on #ffffff: passes WCAG AA for normal text.
  • #333333 on #ffffff: good readability.
  • Warm yellow (#f8c15d) on white: borderline for smaller text, better for large headings or icons.

Accessibility:

  • Most primary text colors meet accessibility standards.
  • Accent yellows are not for body copy—they’re for emphasis, icons, or hover states.

Dark mode:

  • No evidence of a dark mode palette in extracted data. The system is built for light backgrounds.

2.4 Usage Guide

Works well:

  • Deep teal (#00635d) for interactive text.
  • Dark gray (#333333) for primary copy.
  • Warm yellow (#f8c15d) against dark text for CTA highlights.

Avoid:

  • Yellow on white for small fonts—it’s low contrast.
  • Mixing teal and rich brown together without a neutral buffer—it gets muddy.

3. Typography

3.1 Font Families

Two main families:

  • Merriweather (serif) — fallback: Georgia. Used for headings and occasional captions. Brings a literary tone.
  • Lato (sans-serif) — fallback: Helvetica Neue, Helvetica, Arial. Used for body text, links, UI elements. Feels clean, neutral.

Sources:

  • No Google or Adobe Fonts listed in data. Likely self-hosted.

3.2 Type Scale

ElementFontSizeWeightLine HeightTransform
Heading-1Merriweather18px (1.13rem)4001.00None
Heading-1Lato18px (1.13rem)4001.00None
LinkLato16px (1.00rem)4001.13None
Heading-1Lato16px (1.00rem)4001.13None
Heading-1Lato16px (1.00rem)7001.15Uppercase
LinkLato14px (0.88rem)4002.00None
CaptionLato14px4001.29None
CaptionLato14px7001.71None
CaptionMerriweather14px4001.71None
LinkLato14px7001.71None
CaptionLato12px4001.50None
LinkLato12px4001.50None
CaptionLato12px7001.50None
LinkMerriweather12px7001.50None
LinkLato11px4001.00None

3.3 Hierarchy

The typography hierarchy is compressed. Heading-1 at 18px is small compared to modern web standards. This keeps the page dense—more content above the fold.

Line heights vary:

  • Headings: tight (1.00–1.15).
  • Body/links: more open (1.13–2.00).

This mix keeps headings distinct and body copy readable without huge spacing.


4. Spacing & Layout

4.1 Spacing Scale

Base scale: 8px grid with some off-grid values.

Value (px)RemCountNotes
20.13rem6Hairline gaps
40.25rem6Icon padding
50.31rem6Input padding
80.50rem16Button vertical padding
100.63rem36Common element padding
11.20.70rem31Slightly larger than 10px—odd choice
120.75rem3Caption padding
140.88rem4Tight card padding
150.94rem4Slight offset spacing
161.00rem4Standard body spacing
181.13rem15Heading spacing
201.25rem3Section padding
241.50rem12Card padding
251.56rem5Off-grid—probably legacy
322.00rem6Large section gaps
805.00rem2Hero padding
1257.81rem1Major layout spacing

4.2 Layout

No breakpoints extracted—likely responsive but data didn’t capture container widths.

Spacing is mostly multiples of 8px, but there are odd increments (11.2px, 25px) that suggest legacy code or pixel-perfect adjustments for specific components.


5. Visual Elements

Border Radius

ValueCountNotes
3px5Buttons, small components
4px1Rare use
5px2Inputs
10px2Medium components
50%20Circular avatars, round icons

Shadows

None. Flat design. Depth is created with borders, not shadows.

Borders

Multiple 1px solid borders in neutral tones:

  • #000000 for strong outlines (Apple button)
  • #999999 for inputs
  • #d6d0c4 for secondary buttons
  • #b38b22 for Amazon button
  • #382110 for auth button
  • #d8d8d8 for dividers

6. Components

6.1 Buttons

Amazon CTA Button

  • Default: bg #f5d47a, text #333333, padding 8px 12px, radius 3px
  • Border: 1px solid #b38b22
  • Font: 14px, weight 400
  • No hover/active data extracted

Apple CTA Button

  • Default: bg #ffffff, text #333333, padding 8px 12px, radius 3px
  • Border: 1px solid #000000
  • Font: 14px, weight 400

Auth Button

  • Default: bg #382110, text #ffffff, padding 8px 12px, radius 3px
  • Border: 1px solid #382110
  • Font: 14px, weight 400

Small Button

  • Default: bg #f4f1ea, text #333333, padding 4px 12px, radius 3px
  • Border: 1px solid #d6d0c4
  • Font: 11px, weight 400

Variants:

  • #00635d (primary) — no underline
  • #333333 (secondary text link)
  • #ffffff (light links on dark)
  • #1e1915 (dark brown text link)

Hover styles not extracted—likely underline or color change.

6.3 Forms

Text Input

  • Default: bg #ffffff, text #333333, border 1px solid #999999, radius 5px, padding 5px
  • No focus style extracted

7. Design Tokens

:root {
  /* Colors */
  --color-primary: #00635d;
  --color-text: #333333;
  --color-text-dark: #1e1915;
  --color-black: #000000;
  --color-text-secondary: #999999;
  --color-white: #ffffff;
  --color-accent-yellow: #f8c15d;
  --color-accent-brown: #58371f;
  --color-btn-amazon-bg: #f5d47a;
  --color-btn-small-bg: #f4f1ea;
  --color-border-light: #d6d0c4;
  --color-border-gold: #b38b22;
  --color-btn-auth-bg: #382110;
  --color-border-gray: #d8d8d8;

  /* Typography */
  --font-serif: Merriweather, Georgia;
  --font-sans: Lato, "Helvetica Neue", Helvetica, Arial;

  /* Spacing */
  --space-2: 2px;
  --space-4: 4px;
  --space-5: 5px;
  --space-8: 8px;
  --space-10: 10px;
  --space-11-2: 11.2px;
  --space-12: 12px;
  --space-14: 14px;
  --space-15: 15px;
  --space-16: 16px;
  --space-18: 18px;
  --space-20: 20px;
  --space-24: 24px;
  --space-25: 25px;
  --space-32: 32px;
  --space-80: 80px;
  --space-125: 125px;

  /* Radius */
  --radius-sm: 3px;
  --radius-md: 5px;
  --radius-lg: 10px;
  --radius-round: 50%;
}

8. AI Coding Assistant Prompt

# Goodreads Design System Specification

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

## Brand Context
Goodreads values literary heritage, clarity, and trust. The design is flat, earthy, and content-first. Typography blends serif warmth and sans-serif readability. Colors are grounded and avoid trends.

## Color Palette
- Deep Teal: #00635d — Primary links, interactive text
- Dark Gray: #333333 — Body text, headings
- Very Dark Brown: #1e1915 — Secondary headings, emphasis
- Black: #000000 — Strong borders, icons
- Medium Gray: #999999 — Secondary text, placeholders
- White: #ffffff — Background, text on dark
- Warm Yellow: #f8c15d — Accent, hover states
- Rich Brown: #58371f — Accent, hover states
- Amazon Button BG: #f5d47a — CTA buttons
- Small Button BG: #f4f1ea — Secondary buttons
- Light Border Beige: #d6d0c4 — Component borders
- Dark Gold Border: #b38b22 — Amazon button border
- Dark Coffee: #382110 — Auth button background
- Pale Gray Border: #d8d8d8 — Dividers

## Typography
- Serif: Merriweather, Georgia — headings, captions
- Sans: Lato, "Helvetica Neue", Helvetica, Arial — body, links

| Element   | Font        | Size          | Weight | Line Height | Transform |
|-----------|-------------|--------------|--------|-------------|-----------|
| Heading-1 | Merriweather| 18px          | 400    | 1.00        | None      |
| Heading-1 | Lato        | 18px          | 400    | 1.00        | None      |
| Link      | Lato        | 16px          | 400    | 1.13        | None      |
| Heading-1 | Lato        | 16px          | 700    | 1.15        | Uppercase |
| Link      | Lato        | 14px          | 400    | 2.00        | None      |
| Caption   | Lato        | 14px          | 700    | 1.71        | None      |
| Caption   | Merriweather| 14px          | 400    | 1.71        | None      |
| Caption   | Lato        | 12px          | 700    | 1.50        | None      |
| Link      | Merriweather| 12px          | 700    | 1.50        | None      |
| Link      | Lato        | 11px          | 400    | 1.00        | None      |

## Spacing & Grid
Base: 8px
Scale: 2px, 4px, 5px, 8px, 10px, 11.2px, 12px, 14px, 15px, 16px, 18px, 20px, 24px, 25px, 32px, 80px, 125px

## Border Radius
- sm: 3px — buttons, small components
- md: 5px — inputs
- lg: 10px — medium components
- full: 50% — avatars, round icons

## Shadows & Depth
Flat design—use borders, not shadows.

## Component Specifications

### Primary (Amazon) Button
Default:
```css
.btn-amazon {
  background-color: #f5d47a;
  color: #333333;
  padding: 8px 12px;
  border-radius: 3px;
  border: 1px solid #b38b22;
  font-size: 14px;
  font-weight: 400;
}
```

### Secondary (Apple) Button
Default:
```css
.btn-apple {
  background-color: #ffffff;
  color: #333333;
  padding: 8px 12px;
  border-radius: 3px;
  border: 1px solid #000000;
  font-size: 14px;
  font-weight: 400;
}
```

### Auth Button
Default:
```css
.btn-auth {
  background-color: #382110;
  color: #ffffff;
  padding: 8px 12px;
  border-radius: 3px;
  border: 1px solid #382110;
  font-size: 14px;
  font-weight: 400;
}
```

### Input Field
```css
.input {
  background-color: #ffffff;
  color: #333333;
  border: 1px solid #999999;
  border-radius: 5px;
  padding: 5px;
}
```

## Layout & Responsive Rules
No breakpoints extracted—maintain multiples of spacing scale. Use 8px grid alignment.

## Interaction Rules
- No shadows
- Border color changes for focus states
- Transition timing: 150ms ease for state changes

## DO List
- Use only palette colors
- Maintain 8px grid
- Serif for headings, sans for body
- Keep headings small (18px max in extracted data)
- Use borders for depth

## DON'T List
- Add shadows
- Use colors outside palette
- Mix serif and sans in same sentence
- Increase heading sizes beyond scale

## Code Examples

Primary Button:
```css
.btn-primary {
  background: #00635d;
  color: #ffffff;
  padding: 8px 12px;
  border-radius: 3px;
  border: none;
}
```

Card:
```css
.card {
  background: #ffffff;
  border-radius: 10px;
  padding: 24px;
  border: 1px solid #d6d0c4;
}
```

Form Input:
```css
.input {
  border: 1px solid #999999;
  border-radius: 5px;
  padding: 5px;
  background: #ffffff;
}
```

9. Summary

TL;DR: Goodreads keeps its design earthy, flat, and book-centric. Deep teal links, serif headings, and functional spacing create a timeless interface that serves the content without distracting from it.

Brand Keywords:

  • literary-grounded
  • flat-functional
  • warm-serif
  • content-first