BrandToPrompt

DigitalOcean Design System: Clarity-First Developer UI

Visit Site

Explore DigitalOcean's design system - bold blues, clean typography, and consistent spacing. Build trust-driven developer UIs with clarity.

7 min read1,222 words

Brand Identity

Color Palette

Primary
Secondary

Typography

Primary Font
Epilogue
Secondary Font
Inter

Design Style

Style
clean, modern, high-contrast developer-focused with subtle shadows
Visual Density
generous whitespace with 8px grid-based spacing
Border Style
mixed: 4px small buttons, 16px cards, 999px pill buttons

Full Analysis

DigitalOcean Design System Deep-Dive

1. Brand Overview

DigitalOcean’s design language is exactly what you’d expect from a developer-first cloud company—but with a bit more polish than the average “terminal green and monospaced font” aesthetic you see in some tech brands. They’ve nailed a clean, modern, and slightly corporate vibe without losing accessibility for indie developers and startups.

The vibe: trustworthy, straightforward, and just enough personality to feel human. They’re not trying to be flashy. Instead, the design system is built to communicate clarity and ease-of-use—mirroring their product promise: “the simplest cloud platform.”

The color palette is anchored by a strong, saturated blue (#0069ff)—you see it in CTAs, links, and focus states. It’s paired with very deep navy-blacks (#000c2a) for text and UI elements, plus plenty of white space. The supporting grays and slate blues (#4d5b7c, #3e4c6c) give depth without overwhelming. This system is designed for high contrast and easy scanning.

Typography is split between Epilogue for headings (geometric, modern, high impact) and Inter for body copy and UI (clean, readable, familiar). They’ve clearly tuned letter spacing for large displays—note the -1.5px tracking on the largest H1. Headings are bold, body text is regular or medium, and link text is almost always semi-bold for clarity.

Spacing is on an 8px grid with some oddball pixel values (e.g., 70.3906px) that hint at dynamic scaling or responsive calculations. Border radii are consistent, with pills (999px) for circular buttons and 16px for most cards and containers. Shadows are subtle—rgba(0, 12, 42, 0.15) 0px 0px 15px 0px—used sparingly for depth.

Buttons are unapologetically pill-shaped for primaries and slightly rounded for secondaries. Links are underlined on hover (always), and focus states use strong outlines in the brand blue. It’s a system built for clarity over fancy motion or decorative distractions.

If you’re building for DigitalOcean, keep it simple. Emphasize clarity, contrast, and consistent rhythm. This is a developer-trust brand, and the design system reflects that.


2. Color System

2.1 Primary Colors

The hero color is DigitalOcean Blue: #0069ff. It’s everywhere—primary CTAs, link hover states, focus outlines. It’s a bold, saturated blue that screams “click me” without looking cheap. Psychologically, blue is trust, stability, and competence. Compared to AWS’s orange or Azure’s softer blue, DigitalOcean’s blue is more vivid and energetic.

It’s supported by a deep navy (#000c2a) for headings and important text, plus a slate gray (#4d5b7c) for secondary text. White (#ffffff) is the primary background in light mode. Very light grays (#e3e8f4, #eff2fb) are used for dividers and subtle backgrounds.

Accent variants: darker blue #005fcc for hover states, and #1433d6 in some button hovers. This keeps the interaction feedback consistent and brand-aligned.


2.2 Complete Palette

Color NameHexRoleUsage
Black#000000Text/IconsPure black for some text and icons
Slate Blue#4d5b7cSecondary textButtons, muted text
Navy Black#000c2aPrimary textHeadings, strong UI elements
White#ffffffBackground/TextPage background, text on dark
DigitalOcean Blue#0069ffPrimaryCTAs, links, focus outlines
Light Gray#e3e8f4DividerSection dividers, borders
Darker Blue#005fccHover stateButton/link hover background
Dim Slate#3e4c6cHover stateHover backgrounds
Ultra Light Gray#eff2fbBackground hoverHover states on light backgrounds
Dark Navy Transparentrgba(0,12,42,0.15)ShadowCard/button shadows
Transparent Navyrgba(17,25,46,0.1)Border insetInput/button focus borders

2.3 Color Relationships

Contrast is high. #0069ff on #ffffff is well above WCAG AA for normal text. #000c2a over white is extremely legible. Secondary slate blues (#4d5b7c) over white hit AA for large text; they’re mainly used in UI microcopy.

Dark mode isn’t explicitly defined in the extracted data, but the deep navy and slate blues suggest a palette that could invert nicely.


2.4 Usage Guide

Do:

  • Use #0069ff only for interactive elements.
  • Use #000c2a for headings and primary text.
  • Use #4d5b7c for secondary/descriptive text.
  • Use #e3e8f4 and #eff2fb for dividers and subtle backgrounds.

Don’t:

  • Put #0069ff on dark backgrounds without white text—it loses clarity.
  • Use more than two accent colors in the same component.
  • Use slate blue for primary actions—it reads as disabled.

3. Typography

3.1 Font Families

  • Epilogue – Geometric sans-serif, modern, slightly condensed. Used for headings. No fallbacks specified in data.
  • Inter – Highly readable UI font. Used for body, links, buttons, captions. No fallbacks specified, but in production you’d use Inter, sans-serif.
  • Inter-Regular and Inter-Bold appear for specific link/caption/button contexts.

No Google Fonts or Adobe Fonts are loaded according to extracted data—likely self-hosted.


3.2 Type Scale

ElementFontSizeWeightLine Height
H1 (xl)Epilogue48px7001.17
H1 (lg)Epilogue36px7001.33
H1 (md)Epilogue24px7001.33
H1 (sm)Epilogue20px7001.40
HeadingInter20px5001.40
HeadingInter18px5001.44
HeadingInter18px7001.44
LinkInter16px4000.00
BodyInter16px4001.50
ButtonInter16px4001.40
BodyInter16px5001.50
LinkInter16px5001.50
LinkInter16px6001.50
HeadingInter16px6001.50
HeadingInter16px7001.50
HeadingEpilogue16px6001.50
LinkEpilogue16px6001.50
CaptionInter14px5001.43
LinkInter14px5001.50
CaptionInter14px7001.43
CaptionInter14px6001.43
LinkInter14px6001.50
CaptionInter14px4001.43
LinkInter14px4001.43
LinkInter-Regular14px4001.40
CaptionInter12px4001.50
ButtonInter-Bold12px4001.40 (uppercase)

3.3 Hierarchy

They use Epilogue for big, bold, marketing-facing statements. Inter picks up for functional UI. The line height tightens for large headings (1.17) to keep them compact, and loosens for body (1.50) for easy reading. Weight changes (400 → 700) create a strong visual hierarchy without needing many colors.


4. Spacing & Layout

4.1 Spacing Scale

Base is 8px grid, but with 4px sub-steps. Some unusual fractional values are likely the result of rem/em conversions.

PixelsRemCountUse
1px0.06rem4Hairlines
4px0.25rem62Tight gaps
6px0.38rem10Icon padding
7px0.44rem2Odd spacing, icons
8px0.50rem36Small gaps
11px0.69rem5Niche
12px0.75rem4Tight UI blocks
15px0.94rem2Oddball
16px1.00rem68Body padding
24px1.50rem8Section insets
32px2.00rem23Medium gaps
40px2.50rem34Section spacing
64px4.00rem4Large gaps
70.39px4.40rem4Responsive calc
80px5.00rem5Hero spacing
98.39px6.15rem2Hero spacing
128px8.00rem14Hero padding
182.39px11.40rem2Large hero
202.39px12.65rem6Large hero
230.39px14.40rem2Max hero

4.2 Layout

Breakpoints:

  • 320px, 479px → small mobile
  • 719px, 767px, 768px → mobile/tablet
  • 1023px, 1024px → tablet/desktop
  • 1280px → large desktop

These suggest a mobile-first, fluid layout with key snap points at 768px and 1024px.


5. Visual Elements

Border Radius:

  • 4px: Small buttons
  • 6px: Small UI elements
  • 8px: Cards
  • 16px: Most containers, media
  • 24px, 32px, 40px: Larger pills, hero images
  • 999px: Fully rounded pills and circular buttons

Shadows:

  • rgba(0, 12, 42, 0.15) 0px 0px 15px 0px for depth
  • Inset outlines for inputs/buttons: rgb(77, 91, 124) 0px 0px 0px 1px inset, rgba(17, 25, 46, 0.1) 0px 0px 0px 1px inset

Borders:

  • Light gray (#e3e8f4) and white borders used for separation.
  • Occasionally rgb(3, 27, 78) for dark dividers.

6. Components

6.1 Buttons

Primary Pill Button:

  • Default: bg #0069ff, text #ffffff, padding 1px 6px, radius 999px, no border
  • Hover: bg #1433d6, text #ffffff, border 1px solid #0069ff
  • Focus: bg rgba(0, 105, 255, 0.15), text #0069ff, border 1px solid transparent, outline 2px solid #1433d6
  • Weight: 400, size: 16px

Secondary Button:

  • Default: bg #ffffff, text #031b4e, padding 6px, radius 4px, border 1px solid #ffffff
  • Hover: bg transparent, text #ffffff, border 1px solid #0069ff
  • Focus: bg rgba(0, 105, 255, 0.15), text #0069ff, border 1px solid transparent
  • Weight: 400, size: 12px

Multiple variants:

  • White text → hover blue underline
  • Light gray text → hover blue underline
  • Black text → hover blue underline
  • Slate blue text → hover blue underline
  • Primary blue text → underline on hover
  • Dark navy text → hover blue underline

6.3 Forms

No inputs extracted—likely styled with inset borders and brand blue focus outlines.


6.4 Cards

Shadows: rgba(0, 12, 42, 0.15) 0px 0px 15px 0px Radius: 16px Likely 32px internal padding based on spacing scale.


7. Design Tokens

:root {
  /* Colors */
  --color-black: #000000;
  --color-slate-blue: #4d5b7c;
  --color-navy-black: #000c2a;
  --color-white: #ffffff;
  --color-blue-primary: #0069ff;
  --color-light-gray: #e3e8f4;
  --color-blue-hover: #005fcc;
  --color-dim-slate: #3e4c6c;
  --color-ultralight-gray: #eff2fb;
  --shadow-navy: rgba(0, 12, 42, 0.15);
  --inset-navy: rgba(17, 25, 46, 0.1);

  /* Typography */
  --font-epilogue: "Epilogue", sans-serif;
  --font-inter: "Inter", sans-serif;

  /* Spacing (px) */
  --space-1: 1px;
  --space-4: 4px;
  --space-6: 6px;
  --space-7: 7px;
  --space-8: 8px;
  --space-11: 11px;
  --space-12: 12px;
  --space-15: 15px;
  --space-16: 16px;
  --space-24: 24px;
  --space-32: 32px;
  --space-40: 40px;
  --space-64: 64px;
  --space-70: 70.3906px;
  --space-80: 80px;
  --space-98: 98.3906px;
  --space-128: 128px;
  --space-182: 182.391px;
  --space-202: 202.391px;
  --space-230: 230.391px;

  /* Border Radius */
  --radius-4: 4px;
  --radius-6: 6px;
  --radius-8: 8px;
  --radius-16: 16px;
  --radius-24: 24px;
  --radius-32: 32px;
  --radius-40: 40px;
  --radius-pill: 999px;

  /* Shadows */
  --shadow-card: rgba(0, 12, 42, 0.15) 0px 0px 15px 0px;
  --shadow-inset-slate: rgb(77, 91, 124) 0px 0px 0px 1px inset;
  --shadow-inset-navy: rgba(17, 25, 46, 0.1) 0px 0px 0px 1px inset;
}

8. AI Coding Assistant Prompt

# DigitalOcean Design System Specification

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

## Brand Context
DigitalOcean’s design system is clean, high-contrast, and developer-focused. It uses bold blues, deep navies, and plenty of white space. Typography is modern and readable, with a clear hierarchy. Components are minimal, with subtle depth and consistent rounded radii.

## Color Palette
- Primary Blue: #0069ff — CTAs, primary buttons, focus outlines
- Dark Navy: #000c2a — Headings, body text
- Slate Blue: #4d5b7c — Secondary text
- White: #ffffff — Backgrounds, text on dark
- Light Gray: #e3e8f4 — Dividers, borders
- Darker Blue: #005fcc — Hover states
- Dim Slate: #3e4c6c — Hover backgrounds
- Ultra Light Gray: #eff2fb — Hover backgrounds
- Black: #000000 — Icons, some text
- Shadow Navy: rgba(0, 12, 42, 0.15) — Card shadows
- Inset Navy: rgba(17, 25, 46, 0.1) — Input/button borders

## Typography
- Headings: "Epilogue", sans-serif
- Body/UI: "Inter", sans-serif

| Level | Size | Weight | Line Height | Use |
|-------|------|--------|-------------|-----|
| H1-xl | 48px | 700 | 1.17 | Hero headings |
| H1-lg | 36px | 700 | 1.33 | Section headings |
| H1-md | 24px | 700 | 1.33 | Sub-headings |
| H1-sm | 20px | 700 | 1.40 | Small section titles |
| Body-lg | 20px | 500 | 1.40 | Feature text |
| Body | 16px | 400-600 | 1.50 | Paragraphs, buttons |
| Caption | 14px | 400-700 | 1.43 | Labels |
| Micro | 12px | 400 | 1.50 | Small UI text |

## Spacing & Grid
Base: 8px. Scale includes: 1px, 4px, 6px, 8px, 11px, 12px, 15px, 16px, 24px, 32px, 40px, 64px, 70.39px, 80px, 98.39px, 128px, 182.39px, 202.39px, 230.39px.

## Border Radius
- sm: 4px — small buttons
- md: 6px, 8px — small UI blocks, cards
- lg: 16px — containers, media
- xl: 24px, 32px, 40px — large pills, hero
- pill: 999px — pill buttons

## Shadows & Depth
- Card shadow: rgba(0, 12, 42, 0.15) 0px 0px 15px 0px
- Inset outlines for inputs/buttons

## Component Specifications

### Primary Button
Default: bg #0069ff, color #ffffff, padding 1px 6px, radius 999px, no border, font-size 16px, weight 400  
Hover: bg #1433d6, border 1px solid #0069ff  
Focus: bg rgba(0,105,255,0.15), color #0069ff, outline 2px solid #1433d6

### Secondary Button
Default: bg #ffffff, color #031b4e, padding 6px, radius 4px, border 1px solid #ffffff, font-size 12px  
Hover: bg transparent, color #ffffff, border 1px solid #0069ff  
Focus: bg rgba(0,105,255,0.15), color #0069ff

### Navigation Links
Default: various colors (#ffffff, #ef f2fb, #000000, #4d5b7c, #0069ff, #000c2a), no underline  
Hover: color #0069ff, underline

### Cards
bg #ffffff, radius 16px, shadow rgba(0,12,42,0.15) 0 0 15px, padding ~32px

## Layout & Responsive Rules
Breakpoints: 320px, 479px, 719px, 767px, 768px, 1023px, 1024px, 1280px  
Mobile-first, adjust padding/gaps at 768px and 1024px

## Interaction Rules
- Transitions: 150ms ease for hover/focus
- Focus outlines: 2px solid brand blue or dark blue
- Hover always changes color and adds underline for links

## DO
- Use only palette colors
- Maintain 8px spacing grid
- Keep text contrast high
- Use Epilogue for headings, Inter for body/UI
- Use pill radius for primary buttons

## DON'T
- Introduce unapproved colors
- Mix sharp and rounded corners in same component
- Use shadows excessively
- Remove hover underline from links

## Code Examples

### Primary Button
```css
.btn-primary {
  background: #0069ff;
  color: #ffffff;
  padding: 1px 6px;
  border-radius: 999px;
  font-size: 16px;
  font-weight: 400;
  border: none;
  transition: background 150ms ease;
}
.btn-primary:hover {
  background: #1433d6;
  border: 1px solid #0069ff;
}
.btn-primary:focus {
  background: rgba(0, 105, 255, 0.15);
  color: #0069ff;
  outline: 2px solid #1433d6;
}
```

### Secondary Button
```css
.btn-secondary {
  background: #ffffff;
  color: #031b4e;
  padding: 6px;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 400;
  border: 1px solid #ffffff;
}
.btn-secondary:hover {
  background: transparent;
  color: #ffffff;
  border: 1px solid #0069ff;
}
```

### Card
```css
.card {
  background: #ffffff;
  border-radius: 16px;
  box-shadow: rgba(0, 12, 42, 0.15) 0px 0px 15px 0px;
  padding: 32px;
}
```

9. Summary

TL;DR — DigitalOcean’s design system is built for clarity and trust. Strong blues, deep navies, crisp typography, and an 8px grid keep everything consistent. Buttons are bold and pill-shaped, links are always underlined on hover, and shadows are subtle but purposeful.

Brand Keywords:

  • developer-trust
  • high-contrast-minimal
  • blue-centric
  • clarity-first