BrandToPrompt

Unsplash Design System: Minimal Content-First UI

Visit Site

Explore Unsplash's design system - minimal colors, system fonts, airy spacing. Learn to craft photo-first interfaces with clean UI.

6 min read1,078 words

Brand Identity

Color Palette

Primary
Secondary

Typography

Primary Font
ui-sans-serif

Design Style

Style
minimalist with soft shadows and neutral tones
Visual Density
airy layout with generous whitespace and 8px base grid
Border Style
mixed: 4px images, 8px cards/buttons, 24px pill search fields

Full Analysis

Unsplash Brand Design System Deep Dive


1. Brand Overview

Unsplash’s design language is exactly what you’d expect from a platform that’s all about showcasing photography — minimal, restrained, letting the content speak. The vibe is stripped down, almost editorial. No gradients, no visual noise, no ornamental UI elements. If an element is on screen, it’s there to serve the photo.

The philosophy here is content-first minimalism. They’ve stripped away any branding theatrics — no flashy brand colors splashed across the interface, no ornamental typography. The site’s primary “color” is white (#ffffff), and the secondary is transparent (rgba(0, 0, 0, 0)). This is not an accident. On Unsplash, the photography is the brand. The UI is just scaffolding.

This works because their audience — designers, marketers, creatives — come here to find clean, high-quality images. The UI avoids competing with the imagery. Even primary buttons are either black (#111111) or white, and shadows are subtle (rgba(0, 0, 0, 0.1) at most). This is a deliberate choice to keep everything feeling airy and distraction-free.

Typography is system UI sans-serif, which means it inherits the OS-native look. This keeps things feeling familiar and fast. No custom fonts to load. No “brand typeface” to enforce. Again, the photos are the star.

If you’re designing within this system, you’re accepting the constraints: no loud colors, no heavy borders, no ornamental flourishes. The design is almost invisible — exactly the point.


2. Color System

2.1 Primary Colors

Primary is pure white (#ffffff). This is the canvas color. Backgrounds, cards, button fills — they all start here. Secondary is transparent (rgba(0, 0, 0, 0)), used heavily for overlays and backgrounds that need to let content through.

The “brand black” is #111111 — used for primary text, high-contrast buttons, and key actions. This is the closest thing to an accent in the Unsplash UI. Competitors like Pexels use teal or green as their accent. Unsplash refuses to have an accent color — the black/white contrast is their identity.

Functional colors exist — blues for links/buttons (#007fff, #006aff, #005fcc), greens for success (#3cb46e, #37a866), reds for errors (#e25c3d, #df4927), and a pink pair for some playful moments (#f15151, #e04c4c). But these are used sparingly.

2.2 Complete Palette

Color NameHexRoleUsage
Primary White#ffffffBase backgroundPage backgrounds, card surfaces
Transparent Secondaryrgba(0,0,0,0)Overlay, backgroundsImage overlays, modals
Mid Gray#767676Secondary textCaptions, muted labels
Light Gray#d1d1d1BordersDivider lines, input borders
Dark Gray#555555Text on light surfacesSecondary buttons, muted UI elements
Brand Black#111111Primary text/actionsTitles, primary buttons
Very Light Gray#eeeeeeHover backgroundInput hovers, card hovers
Blue CTA#005fccHover/focus accentsLink hover states, focus outlines
Blue CTA Slight#005ec9Hover/focus accentsAlternate hover/focus
Dark Red#df4927Error stateCritical alerts
Green Dark#37a866Success stateConfirmation banners
Gray 800#555Secondary textButtons, muted labels
Gray 600#aaaPlaceholderInput placeholders
Border Opacityrgba(0,0,0,.12)Border colorDividers, card outlines
Pinterest Red#e60023Social iconPinterest share button
Blue Dark#006affLinks/buttonsPrimary links, CTAs
Gray 100#f5f5f5Background surfaceCards, modals
Placeholder BG#f4f4f4Input backgroundForm fields
Gray 200#eeeBordersInput borders, dividers
Red#e25c3dError stateAlerts, validation
Green#3cb46eSuccess stateMessages, highlights
Blue#007fffPrimary linkCTAs, inline links
Pink Dark#e04c4cAccentOccasional highlight
Pink#f15151AccentOccasional highlight
Facebook Blue#1877f2Social iconFacebook share button

2.3 Color Relationships

The palette is almost monochrome for core UI: white backgrounds, black text, gray borders. Accent colors (blue, green, red, pink) are functional — they signal actions, states, or social integrations.

Contrast ratios are solid for accessibility. Black (#111) on white is ~21:1 contrast — AAA compliant. Gray (#767676) is borderline for small text; needs careful usage (fine for captions, not for body text). Blues are strong enough against white for link visibility.

Dark mode? Not evident in extracted data — the palette is optimized for light backgrounds.

2.4 Usage Guide

  • Use white for all major surfaces.
  • Use black for primary text and buttons.
  • Use mid gray for secondary text — but avoid for small text if accessibility is a concern.
  • Blues are for interactive states — don’t use them as decorative colors.
  • Reds and greens signal status — don’t repurpose them for decoration.
  • Avoid mixing multiple accent colors in the same component — keeps the UI clean.

3. Typography

3.1 Font Families

Unsplash uses ui-sans-serif — which resolves to system fonts:
system-ui, -apple-system, Segoe UI, Roboto, Noto Sans, Ubuntu, Cantarell, Helvetica Neue.

No Google Fonts. No Adobe Fonts. No variable fonts. This means instant load, native feel.

3.2 Type Scale

ElementFont FamilySize (px/rem)WeightLine HeightTransform
Heading-1ui-sans-serif40px / 2.50rem7001.20none
Heading-1ui-sans-serif18px / 1.13rem4001.60none
Heading-1ui-sans-serif18px / 1.13rem6001.33none
Linkui-sans-serif15px / 0.94rem4001.60none
Buttonui-sans-serif15px / 0.94rem4001.60none
Heading-1ui-sans-serif15px / 0.94rem6001.60none
Linkui-sans-serif15px / 0.94rem6001.60none
Heading-1ui-sans-serif15px / 0.94rem4001.60none
Heading-1ui-sans-serif15px / 0.94rem5001.60capitalize
Linkui-sans-serif15px / 0.94rem5001.60capitalize
Linkui-sans-serif15px / 0.94rem5001.33none
Captionui-sans-serif14px / 0.88rem4001.43none
Buttonui-sans-serif14px / 0.88rem4001.43none
Linkui-sans-serif14px / 0.88rem5002.14none
Buttonui-sans-serif14px / 0.88rem5002.14none
Linkui-sans-serif14px / 0.88rem4001.43none
Captionui-sans-serif12px / 0.75rem4001.33none
Captionui-sans-serif12px / 0.75rem4001.330.12px
Linkui-sans-serif12px / 0.75rem4001.330.12px
Captionui-sans-serif10px / 0.63rem5001.60none

3.3 Hierarchy

The 40px H1 is the only “large” type — everything else lives between 10px and 18px. This keeps the UI compact. The hierarchy relies more on weight (400–700) than on size jumps. This works in a photo-first UI — text is supporting metadata, not the primary content.


4. Spacing & Layout

4.1 Spacing Scale

Base scale is 8px. Most common values: 8px, 20px. Larger values (171px+) are probably for hero sections.

Value (px)RemCountUsage
1px0.06rem3Hairline borders
2px0.13rem1Fine dividers
3px0.19rem12Icon gaps
4px0.25rem5Tight padding
8px0.50rem30Component gaps
12px0.75rem6Button padding
20px1.25rem58Card padding
56px3.50rem2Large section gaps
98.0469px6.13rem1Hero spacing
127.781px7.99rem1Hero spacing
171.047px10.69rem6Hero vertical spacing
171.875px10.74rem2Hero spacing
173.547px10.85rem1Hero spacing
181.859px11.37rem1Hero spacing
191.016px11.94rem1Hero spacing
414px25.88rem1Full-width hero
449.766px28.11rem1Full-height hero
513.828px32.11rem1Full-height hero
518px32.38rem9Full-height hero

4.2 Layout

Breakpoints are dense: from 479px up to 1414px, with increments around common device widths. This suggests fine-tuned responsive adjustments per device class — not just “mobile/tablet/desktop” buckets.


5. Visual Elements

Border Radius:

  • 4px: Images
  • 6px: Links
  • 8px: Buttons, cards, collections
  • 24px / 56px: Search field (pill-like)
  • 50%: Avatars, circular presentations

Shadows:
Subtle — main shadow: rgba(0, 0, 0, 0.1) 0px 1px 2px 0px. This keeps depth minimal. No heavy drop shadows.

Borders:
Mostly 1px solid light gray (#d1d1d1). Occasional #eeeeee for search inputs.


6. Components

6.1 Buttons

Variant 1 — Secondary (Gray border)
Default:

  • BG: #ffffff
  • Text: #767676
  • Padding: 0px 11px
  • Radius: 8px
  • Border: 1px solid #d1d1d1
  • Shadow: rgba(0,0,0,0.08) 0px 1px 1px

Hover:

  • Color: var(--link-text-color-hover)
  • Shadow: softer, slightly deeper

Variant 2 — Primary (Black)
Default:

  • BG: #111111
  • Text: #ffffff
  • Padding: 0px 11px
  • Radius: 8px
  • Border: none (rgba(0,0,0,0))
  • Shadow: subtle

Variant 3 — Tertiary (Light)
Default:

  • BG: rgba(254, 254, 254, 0.96)
  • Text: #555555
  • Padding: 0px 11px
  • Radius: 8px
  • Border: none
  • Shadow: rgba(0,0,0,0.1) 0px 1px 2px

Variety of colors: black, gray, light gray, white, dark gray. Underlines vary — some default underline, some none.

6.3 Forms

Inputs are minimal — no border radius, transparent BG, no box shadow. Borders are either none or very light.


7. Design Tokens (CSS Custom Properties)

:root {
  /* Colors */
  --color-primary-white: #ffffff;
  --color-secondary-transparent: rgba(0,0,0,0);
  --color-gray-mid: #767676;
  --color-gray-light: #d1d1d1;
  --color-gray-dark: #555555;
  --color-black: #111111;
  --color-gray-very-light: #eeeeee;
  --color-blue-cta: #005fcc;
  --color-blue-cta-alt: #005ec9;
  --color-red-dark: #df4927;
  --color-green-dark: #37a866;
  --color-gray-800: #555;
  --color-gray-600: #aaa;
  --color-border-opacity: rgba(0,0,0,.12);
  --color-pinterest: #e60023;
  --color-blue-dark: #006aff;
  --color-gray-100: #f5f5f5;
  --color-placeholder-bg: #f4f4f4;
  --color-gray-200: #eee;
  --color-red: #e25c3d;
  --color-green: #3cb46e;
  --color-blue: #007fff;
  --color-pink-dark: #e04c4c;
  --color-pink: #f15151;
  --color-facebook: #1877f2;

  /* Typography */
  --font-ui-sans: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Noto Sans, Ubuntu, Cantarell, Helvetica Neue;

  /* Spacing */
  --space-1: 1px;
  --space-2: 2px;
  --space-3: 3px;
  --space-4: 4px;
  --space-8: 8px;
  --space-12: 12px;
  --space-20: 20px;
  --space-56: 56px;

  /* Border Radius */
  --radius-sm: 4px;
  --radius-md: 6px;
  --radius-lg: 8px;
  --radius-xl: 24px;
  --radius-xxl: 56px;
  --radius-full: 50%;

  /* Shadows */
  --shadow-sm: rgba(0, 0, 0, 0.1) 0px 1px 2px 0px;
}

8. AI Coding Assistant Prompt

# Unsplash Design System Specification

You are an Unsplash design expert. Build UIs matching their visual language exactly.

## Brand Context
Unsplash values minimalism, content-first design, and unobtrusive UI. The photography is the hero — the UI is scaffolding. Colors are neutral, typography is system-native, and spacing follows an 8px grid.

## Color Palette
- Primary White: #ffffff — page backgrounds, card surfaces
- Transparent: rgba(0,0,0,0) — overlays, modal backgrounds
- Gray Mid: #767676 — secondary text
- Gray Light: #d1d1d1 — borders
- Gray Dark: #555555 — muted UI text
- Black: #111111 — primary text, buttons
- Gray Very Light: #eeeeee — hover backgrounds
- Blue CTA: #005fcc — hover/focus highlights
- Blue CTA Alt: #005ec9 — alternate hover/focus
- Red Dark: #df4927 — critical alerts
- Green Dark: #37a866 — success banners
- Gray 800: #555 — muted text
- Gray 600: #aaa — placeholders
- Border Opacity: rgba(0,0,0,.12) — subtle dividers
- Pinterest Red: #e60023 — Pinterest icon
- Blue Dark: #006aff — links/CTAs
- Gray 100: #f5f5f5 — card backgrounds
- Placeholder BG: #f4f4f4 — form fields
- Gray 200: #eee — borders
- Red: #e25c3d — error states
- Green: #3cb46e — success states
- Blue: #007fff — primary links
- Pink Dark: #e04c4c — accent
- Pink: #f15151 — accent
- Facebook Blue: #1877f2 — Facebook icon

## Typography
Font: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Noto Sans, Ubuntu, Cantarell, Helvetica Neue

| Level      | Size  | Weight | Line Height | Use For |
|------------|-------|--------|-------------|---------|
| H1         | 40px  | 700    | 1.20        | Page titles |
| Body-lg    | 18px  | 400    | 1.60        | Paragraphs |
| Body-lg-bold | 18px| 600    | 1.33        | Emphasis |
| Link       | 15px  | 400    | 1.60        | Default link |
| Link-bold  | 15px  | 600    | 1.60        | Important link |
| Caption    | 14px  | 400    | 1.43        | Metadata |
| Caption-bold | 14px| 500    | 2.14        | Emphasized metadata |
| Small      | 12px  | 400    | 1.33        | Fine print |
| Small-bold | 10px  | 500    | 1.60        | Labels |

## Spacing & Grid
Base: 8px grid. Tokens: 4px, 8px, 12px, 20px, 56px  
Use multiples for padding/margins. Buttons: 0px vertical, 11px horizontal padding.

## Border Radius
- 4px — images
- 6px — links
- 8px — buttons, cards
- 24px — search input
- 56px — search input pill
- 50% — avatars

## Shadows & Depth
- `rgba(0,0,0,0.1) 0px 1px 2px` — main shadow
- Keep shadows subtle; avoid heavy drop shadows.

## Component Specifications

### Primary Button
Default:
```css
background: #111111;
color: #ffffff;
padding: 0px 11px;
border-radius: 8px;
border: 1px solid rgba(0,0,0,0);
box-shadow: rgba(0,0,0,0.08) 0px 1px 1px;
font-weight: 500;
font-size: 14px;
```

### Secondary Button
Default:
```css
background: #ffffff;
color: #767676;
padding: 0px 11px;
border-radius: 8px;
border: 1px solid #d1d1d1;
box-shadow: rgba(0,0,0,0.08) 0px 1px 1px;
```
Hover:
```css
box-shadow: rgba(0,0,0,0.05) 0px 1px 1px, rgba(0,0,0,0.15) 0px 1px 3px;
```

### Input Fields
Default:
```css
background: transparent;
color: #111111;
border: none;
border-radius: 0;
padding: 0;
```

## Layout & Responsive Rules
Max width: fluid; breakpoints at 479px, 768px, 992px, 1200px, 1400px. Adjust spacing per breakpoint.

## Interaction Rules
- Transition: 150ms ease for hover/focus
- Focus: Maintain visible outline; use blue CTA for focus rings
- Disabled: opacity 0.5, remove hover styles

## DO List
- Use only defined palette colors
- Stick to 8px spacing multiples
- Keep border radius consistent per component type
- Use subtle shadows only where defined
- Maintain high contrast for text

## DON'T List
- Add new brand colors
- Use heavy shadows
- Mix sharp and rounded corners
- Overuse accent colors
- Reduce text contrast below WCAG AA levels

## Code Examples

Primary Button:
```css
.btn-primary {
  background: #111;
  color: #fff;
  padding: 0px 11px;
  border-radius: 8px;
  border: 1px solid transparent;
  box-shadow: rgba(0,0,0,0.08) 0px 1px 1px;
}
.btn-primary:hover {
  background: #111;
}
```

Card:
```css
.card {
  background: #fff;
  border-radius: 8px;
  padding: 20px;
  box-shadow: rgba(0,0,0,0.1) 0px 1px 2px;
}
```

9. Summary

TL;DR — Unsplash’s design system is minimal, neutral, and content-first. White backgrounds, black text, subtle shadows, and system-native type keep the UI invisible so photography shines.

Brand Keywords: photo-first-minimalism, neutral-clarity, content-scaffolding, editorial-clean