# How opensource.googleblog.com is designed

[Open the live Fudge conversation](https://design.withfudge.com/share/opensource.googleblog.com-design)

Last updated: 2026-08-10

## Captured pages

[![Full page view showing the Google Open Source Blog header with navigation, hero title, article content with sidebar, and colorful geometric logo illustration](https://pin.fontofweb.com/6038?format=jpg)](https://design.withfudge.com/share/pin-6038)

[Full page view showing the Google Open Source Blog header with navigation, hero title, article content with sidebar, and colorful geometric logo illustration](https://design.withfudge.com/share/pin-6038)

[![Lower article section with code syntax highlighting in Courier Std, inline code spans, body text, author byline, social sharing icons, and category labels](https://pin.fontofweb.com/6039?format=jpg)](https://design.withfudge.com/share/pin-6039)

[Lower article section with code syntax highlighting in Courier Std, inline code spans, body text, author byline, social sharing icons, and category labels](https://design.withfudge.com/share/pin-6039)

## Overview

The Google Open Source Blog presents a restrained, engineering-credible reading environment built around clarity and information density. The design prioritizes long-form technical content through generous whitespace, a strict typographic hierarchy, and minimal decorative elements. The visual system pairs Google Sans 18 Pt for display and structural text with Roboto for body copy, creating a familiar Google material feel while maintaining editorial authority. A colorful geometric logo mark in the hero area provides the sole vibrant accent against an otherwise neutral palette of near-black inks, mid-tone grays, and selective blue links. The layout follows a classic blog pattern with a primary content column and a narrower sidebar for navigation and discovery. Code examples receive special treatment with a distinct monospace family and subtle background differentiation, signaling their importance to the technical audience.

## Colors

The color system is intentionally limited, deriving its character from typography and spacing rather than chromatic variety. The palette supports reading comprehension through high-contrast text and restrained accent usage.

| token | hex | use |
|---|---|---|
| ink-primary | #202124 | Primary headings, article titles, and strong emphasis text |
| ink-secondary | #474747 | Body text and secondary content |
| ink-tertiary | #4C4C4C | Tertiary text, captions, and metadata |
| link-blue | #3367D6 | Inline links in body text and navigation |
| link-bright | #4285F4 | Hover states and emphasized interactive elements |
| action-green | #0F9D58 | Success indicators and positive action states |
| canvas | #FFFFFF | Primary page background and content surfaces |

The interface operates in a light mode exclusively. The near-white canvas provides maximum contrast for the dark ink tones, while the slightly warmed gray of ink-secondary reduces eye strain during extended reading. Blue serves as the sole interactive accent, maintaining consistency with Google's broader product language. Green appears sparingly, reserved for positive semantic moments. The colorful geometric logo illustration in the hero introduces saturated blues, yellows, greens, and reds, but these remain confined to brand imagery rather than extending into UI elements. No dark mode or alternative theme is present in the visible system.

## Typography

The typographic system relies on four families with distinct roles: Google Sans 18 Pt for display and structural hierarchy, Roboto for body reading, Roboto-Italic for emphasized passages, and Courier Std for code and technical content.

| token | family | size | weight | leading | tracking | use |
|---|---|---:|---:|---:|---:|---|
| hero-display | Google Sans 18 Pt | 3.5rem | 500 | 0.86 | -0.01em | Article titles and major page headings |
| section-display | Google Sans 18 Pt | 1.75rem | 400 | 1.43 | -0.01em | Section headings within articles |
| body | Roboto | 1rem | 400 | 1.375 | 0em | Primary body text and navigation |
| body-loose | Roboto | 1rem | 400 | 1.5 | 0em | Paragraphs requiring more breathing room |
| label | Google Sans 18 Pt | 1rem | 100 | 1 | -0.01em | Metadata, dates, and subtle labels |
| sidebar-heading | Google Sans 18 Pt | 1.125rem | 500 | 1.33 | -0.01em | Sidebar section titles |
| code | Courier Std | 0.833rem | 400 | 1.38 | 0em | Inline code and code block content |

Google Sans 18 Pt carries the display load with tight leading and negative tracking that gives headlines a confident, modern density. The weight 500 on hero-display creates clear hierarchy against the 400 weight of section headings. Roboto at 16px with 22px line height forms the comfortable reading core, with an alternate 24px line height variant for paragraphs that benefit from additional air. Roboto-Italic appears in the type system for emphasized words and phrases within body text, providing semantic emphasis through slanted letterforms while maintaining the same metrics as regular Roboto. Courier Std at approximately 13.3px provides the technical voice, appearing in a slightly smaller size to maintain visual texture against the sans-serif body.

Roboto and Roboto-Italic are designed by Christian Robertson and provided by Google. Verify licensing for these families before production use.

## Layout

The page structure follows a centered, max-width container pattern that constrains content for optimal line length while allowing the header to extend full-bleed. The primary layout grid divides into a main content column and a right sidebar, creating asymmetric balance that favors reading.

The header spans the full viewport width with a clean horizontal navigation bar containing the Google Open Source logo mark on the left and primary navigation links across the center-right. Below the header, a hero section introduces the blog title "Google Open Source Blog" with its descriptive tagline and the colorful geometric logo illustration positioned to the right. This hero establishes the page's editorial tone before yielding to content.

The article area implements a two-column layout with the main content occupying approximately two-thirds of the available width and the sidebar taking the remaining third. The main column contains the article title, publication date, and flowing body text. The sidebar houses a search input, "Popular Posts" section with linked article previews, an archive dropdown, and social media links. This sidebar remains visually subordinate through smaller typography and reduced vertical presence.

Spacing follows a consistent rhythm based on a 2px relative unit. Major section divisions use 40px gaps, while paragraph spacing settles at 16px. Headings receive tight 5px bottom margins that pull subsequent content upward for connected reading flow. The content area maintains comfortable padding from viewport edges, with the main column receiving additional right padding to separate it from the sidebar.

## Visual language

The visual character is deliberately understated and professional, appropriate for a technical audience seeking information rather than entertainment. The design avoids decorative borders, shadows, and gradients entirely. Surfaces remain flat and untextured, relying on typography and spacing to create hierarchy.

The colorful geometric logo in the hero area provides the single moment of visual playfulness. Composed of four simple shapes, a blue triangle, yellow square outline, green circle, and red semicircle, it references Google's brand colors without overwhelming the restrained page palette. This illustration sits in quiet contrast to the monochrome text environment, serving as a brand anchor rather than a decorative element.

Code blocks receive subtle differentiation through a light gray background wash and monospace typography, creating visual zones that readers can scan quickly. Inline code appears in the same monospace family but without background treatment, integrating smoothly into sentences while remaining distinguishable.

The overall impression is of a well-engineered document: precise, readable, and free of unnecessary ornament. Every element serves the communication of technical content.

## Components

### Site header

- **Anatomy**: Full-width bar containing logo mark, text navigation links, and optional search
- **Surface**: Background color `{colors.canvas}`, no border or shadow
- **Typography**: Navigation links use `{typography.body}` at 16px
- **Spacing**: Compact vertical padding, horizontal distribution with logo left and navigation center-right
- **Composition**: Flexbox row with space-between alignment

### Article title

- **Anatomy**: Single heading element, typically h1
- **Typography**: `{typography.hero-display}` at 56px with weight 500
- **Color**: `{colors.ink-primary}`
- **Spacing**: Bottom margin of 40px to separate from article metadata and body
- **Shape**: No border, background, or decorative elements

### Section heading

- **Anatomy**: Heading element, typically h3
- **Typography**: `{typography.section-display}` at 28px with weight 400
- **Color**: `{colors.ink-primary}`
- **Spacing**: 5px bottom margin for tight coupling with following content
- **Shape**: Clean text only, no rules or background

### Body paragraph

- **Anatomy**: Standard p element with flowing text
- **Typography**: `{typography.body}` or `{typography.body-loose}` depending on context
- **Color**: `{colors.ink-secondary}` for primary reading, `{colors.ink-primary}` for emphasis
- **Spacing**: 16px bottom margin between paragraphs
- **Composition**: Left-aligned, no indent, full width of content column

### Inline link

- **Anatomy**: Anchor element within body text
- **Color**: `{colors.link-blue}` in default state
- **Typography**: Inherits surrounding body text size and weight
- **States**: No visible underline by default; hover state may apply `{colors.link-bright}`
- **Shape**: No border or background

### Code block

- **Anatomy**: Preformatted block containing code lines
- **Surface**: Subtle background wash for differentiation
- **Typography**: `{typography.code}` in Courier Std
- **Color**: Code syntax uses semantic coloring with green for strings, blue for keywords, and dark gray for comments
- **Spacing**: Padding around code content, full width of content column
- **Shape**: No border radius, no visible border

### Inline code

- **Anatomy**: Span or code element within paragraph text
- **Typography**: `{typography.code}` in Courier Std
- **Color**: Inherits body color or receives syntax-specific coloring
- **Shape**: No background, no border, integrates seamlessly into text flow

### Sidebar search

- **Anatomy**: Text input with search icon
- **Surface**: `{colors.canvas}` background
- **Typography**: `{typography.body}`
- **Shape**: No visible border radius, subtle border or bottom rule
- **Spacing**: Full width of sidebar column, margin below before popular posts

### Popular posts list

- **Anatomy**: Heading with linked article items below
- **Typography**: Section title uses `{typography.sidebar-heading}`, links use `{typography.body}` at 16px
- **Color**: Headings in `{colors.ink-primary}`, links in `{colors.ink-secondary}`
- **Spacing**: 16px between list items, comfortable vertical rhythm
- **Composition**: Stacked vertical list with no bullets or numbering

### Archive dropdown

- **Anatomy**: Collapsible section with folder icon and label
- **Typography**: `{typography.body}`
- **Color**: `{colors.ink-primary}` for label
- **Shape**: No visible border, icon indicates expandable state
- **Spacing**: Separated from popular posts by standard section gap

### Social links

- **Anatomy**: Icon buttons for Twitter and Facebook
- **Surface**: Transparent, icons in dark gray
- **Spacing**: Small gap between icons, positioned in sidebar lower area
- **Shape**: Square icon containers, no visible background shape

## Responsive behavior

The layout assumes a desktop viewport with sufficient width for the two-column arrangement. At narrower widths, the sidebar should stack below the main content column, maintaining readability through full-width single-column flow. The hero title and logo illustration should reflow to prevent overlap, with the logo either scaling down or dropping below the title text.

Navigation links in the header should collapse to a menu affordance on smaller screens, preserving access to primary sections without crowding the viewport. Article text should maintain comfortable line length through padding adjustments rather than font size reduction, keeping the 16px body size constant across breakpoints.

Code blocks require horizontal scrolling or word wrapping at narrow widths to prevent layout breakage. The syntax highlighting remains visible regardless of viewport constraints.

## Practical implementation guidance

### Preserve
- The stark contrast between near-black headings and mid-gray body text, which creates readable hierarchy without color dependence
- The generous 40px gap below article titles that establishes clear content boundaries
- Courier Std for all code content, maintaining technical credibility through monospace consistency
- The flat, shadowless surfaces that keep focus on content rather than container chrome
- The tight 5px heading margins that connect related content visually

### Avoid
- Adding decorative borders, shadows, or gradients that contradict the system's flat minimalism
- Using the colorful logo palette elsewhere in the UI, which would dilute its brand impact
- Reducing body text below 16px, which compromises readability for the technical audience
- Introducing additional font families beyond the four established roles
- Centering body text or using justified alignment, which disrupts the left-rag reading rhythm

### Recommended build order
1. Establish the typographic foundation with Google Sans 18 Pt, Roboto, and Roboto-Italic loaded at appropriate weights
2. Implement the single-column content flow with correct paragraph spacing and heading hierarchy
3. Add the two-column grid with sidebar at appropriate breakpoints
4. Style inline links and code elements with their distinct color and family treatments
5. Build the header with navigation and logo placement
6. Add the hero section with title, tagline, and geometric illustration
7. Implement sidebar components: search, popular posts, archive, social links
8. Refine responsive behavior for narrow viewports

### Accessibility
- Maintain the high contrast between ink-primary (#202124) and canvas (#FFFFFF), which exceeds WCAG AAA standards for normal text
- Ensure link-blue (#3367D6) against canvas meets AA requirements for interactive elements
- Preserve the visual distinction of inline code through font family change even when color perception varies
- Provide skip navigation for the header and sidebar to support keyboard users
- Consider focus indicators for all interactive elements that match or exceed the visibility of hover states

## Scope note

This guide covers the article page template of the Google Open Source Blog as visible in the supplied images. The homepage, archive pages, and search results are not represented. Mobile layouts, dark mode, loading states, and form validation styling are not included. Comment systems, subscription flows, and author profile pages fall outside the current scope. Measurements reflect the exact values present in the captured interface.

## Related design patterns

- [Primary text color](/share/designs-with-color.role.text_primary)
- [Secondary text color](/share/designs-with-color.role.text_secondary)
- [Moderate density](/share/designs-with-density.moderate)
- [Media and publishing](/share/designs-with-industry.media_publishing)
- [Technology and software](/share/designs-with-industry.technology_software)
- [Normal state](/share/designs-with-interaction.data_state.normal)
- [Media publication](/share/designs-with-offering.media_publication)
- [Article page](/share/designs-with-page.content.article)

## More website design guides

[Browse website design guides by pattern and website](/design-guides).
