Spotify:色彩、情感與大規模設計
「我們將 Spotify 視為一個設計服務音樂的平台,而非反過來。」——Spotify 設計團隊
Spotify 是一個在全球規模運作的設計系統:超過六億用戶、超過一億首曲目、數十種介面涵蓋行動裝置、車載儀表板到智慧音箱。然而它始終保持一致的體驗。無論你是在廣告看板上、播放清單裡,還是在通知匣中看到這個品牌,它都能被即時辨認。這種一致性絕非偶然,而是一套名為 Encore 的設計系統、一種以專輯封面為根基的深色優先哲學,以及一支將色彩視為情感基礎設施的團隊共同打造的成果。
Spotify 值得研究之處不在於某個單一功能,而在於整體的協調統合。字體排印、色彩萃取、編輯式版面、個人化演算法,以及 Wrapped 等行銷活動,全部匯聚成統一的設計語言。每一個像素都為音樂服務。
為什麼 Spotify 值得關注
Spotify 重新定義了數位產品如何運用色彩、動態效果與個人化來大規模創造情感共鳴。
核心成就: - 建立了 Encore 設計系統,服務於 web、iOS、Android、桌面端、電視、車載與嵌入式裝置 - 開創性地運用演算法從專輯封面萃取色彩,生成動態 UI 色彩方案 - 將年度數據回顧(Wrapped)打造成社群媒體史上分享量最高的行銷活動 - 證明了深色優先介面能降低內容密集型媒體應用的視覺疲勞 - 在 180 多個市場推廣編輯式設計版面,並支援在地化內容
重點摘要
- 色彩是情感基礎設施,不是裝飾 —— Spotify 從專輯封面萃取主色調並充滿整個 UI,將每次聆聽體驗轉化為與音樂緊密連結的沉浸式視覺環境
- 深色優先設計提升內容表現 —— 接近純黑的畫布(#121212)讓專輯封面、文字排印與強調色更加突出;對於每天使用數小時的應用程式,也能減輕眼睛疲勞
- 卡片式架構可無限擴展 —— 從首頁到搜尋到音樂庫,每個介面都由同一種卡片基元構成,確保在不同螢幕尺寸與裝置類型間維持一致的版面
- 設計符記在規模化中確保一致性 —— Encore 的符記系統(間距、色彩、字體排印、動態效果)確保 iOS 上的按鈕與智慧電視上的按鈕共享相同的 DNA,而無需共用程式碼
- 個人化是設計原則,不僅是功能 —— Spotify 將演算法推薦視為一級設計介面,賦予 Discover Weekly 和 Daily Mixes 與人工策展播放清單相同的編輯級待遇
核心設計原則
1. 色彩即情感
Spotify 最獨特的設計決策是從專輯封面萃取色彩,並用它來轉變整個介面。當你打開一張專輯頁面時,背景漸層並非固定的品牌色,而是從封面圖像運算而來的。
萃取流程:
Album Art → Dominant Color Extraction → Vibrancy Filter → Contrast Check → Gradient Generation
系統透過無障礙閾值過濾萃取的色彩,避免出現混濁或低對比度的結果。如果主色調在 #121212 背景上過暗,系統會將其偏移至更鮮豔的變體。
實作模式:
/* Spotify's dynamic gradient approach */
.album-header {
background: linear-gradient(
to bottom,
var(--extracted-color) 0%,
rgba(18, 18, 18, 1) 100%
);
min-height: 340px;
padding: 24px;
transition: background 300ms ease;
}
/* The extracted color becomes a CSS custom property */
:root {
--extracted-color: #1a6b3c; /* Set dynamically per album */
--extracted-color-light: #2d9d5a;
--surface-base: #121212;
--surface-elevated: #1a1a1a;
--text-primary: #ffffff;
--text-secondary: #b3b3b3;
}
為什麼有效: 色彩在視覺與聽覺體驗之間建立了情感橋樑。帶有暖琥珀色調的爵士專輯,感覺與深紅色調的金屬樂專輯截然不同。設計放大了藝術家所意圖傳達的氛圍。
2. 深色優先設計系統
Spotify 在深色模式成為業界趨勢之前,便已全面投入。這並非美學偏好,而是深思熟慮的產品決策。
設計考量: - 專輯封面是主角內容。白色背景與之競爭;深色背景則為其提供框架。 - 音樂聆聽時段可能持續數小時。深色介面能減輕眼睛疲勞。 - 強調色(標誌性的綠色、萃取的封面色彩)在深色背景上更為鮮豔。 - 在昏暗環境(臥室、夜店、車內)中,螢幕光線較不刺眼。
Spotify 的深色調色盤:
:root {
/* Surface hierarchy */
--background-base: #121212;
--background-elevated: #1a1a1a;
--background-tinted: #282828;
--background-highlight: #333333;
/* Text hierarchy */
--text-base: #ffffff;
--text-subdued: #a7a7a7;
--text-disabled: #6a6a6a;
/* Brand accent */
--essential-positive: #1ed760; /* The green */
--essential-negative: #e91429;
--essential-announcement: #3d91f4;
/* Elevation through brightness, not shadow */
--card-surface: #181818;
--card-surface-hover: #282828;
}
/* Cards get lighter on hover — inverse of light-mode convention */
.card {
background: var(--card-surface);
border-radius: 8px;
padding: 16px;
transition: background-color 200ms ease;
}
.card:hover {
background: var(--card-surface-hover);
}
關鍵洞察: 在深色模式中,層級感透過亮度而非陰影來傳達。Spotify 的浮起表面是更亮的,而非更暗的。這與淺色模式的慣例恰恰相反,需要重新思考整個層級模型。
3. 規模化的字體排印層級
Spotify 使用 Circular,一款從 Lineto 授權並為其品牌客製化的幾何字體。字體排印系統需要在從 11px 播放清單元資料到 96px Wrapped 大標題的尺寸範圍內都能良好運作。
字型比例:
/* Spotify's typographic hierarchy */
.type-canon {
font-size: 96px;
font-weight: 900;
line-height: 1.0;
letter-spacing: -0.04em;
/* Used in Wrapped, marketing, hero moments */
}
.type-title-large {
font-size: 32px;
font-weight: 700;
line-height: 1.2;
letter-spacing: -0.02em;
/* Album titles, playlist names */
}
.type-title-medium {
font-size: 24px;
font-weight: 700;
line-height: 1.2;
/* Section headers on Home */
}
.type-title-small {
font-size: 16px;
font-weight: 700;
line-height: 1.3;
/* Card titles */
}
.type-body {
font-size: 14px;
font-weight: 400;
line-height: 1.5;
color: var(--text-subdued);
/* Descriptions, metadata */
}
.type-caption {
font-size: 11px;
font-weight: 400;
line-height: 1.4;
letter-spacing: 0.02em;
text-transform: uppercase;
color: var(--text-subdued);
/* Labels, overlines */
}
核心原則: 粗體、緊縮字距的標題創造能量感。柔和的常規字重內文則退居幕後。這兩個極端之間的反差正是建立層級的關鍵,無需分隔線或框格等額外視覺元素。
值得借鏡的設計模式
卡片式架構
Spotify 的每個介面都由卡片構成。播放清單、專輯、藝人、Podcast、有聲書——它們共享同一種基元。
HOME FEED LAYOUT:
┌─────────────────────────────────────────────────────────┐
│ Good evening │
│ ┌──────────┬──────────┬──────────┐ │
│ │ ■ Daily │ ■ Liked │ ■ Chill │ ← Quick-access │
│ │ Mix 1 │ Songs │ Hits │ (2-column grid) │
│ ├──────────┼──────────┼──────────┤ │
│ │ ■ Rock │ ■ Jazz │ ■ Focus │ │
│ │ Clas. │ Vibes │ Flow │ │
│ └──────────┴──────────┴──────────┘ │
│ │
│ Made for you [Show all →] │
│ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ │
│ │ │ │ │ │ │ │ │ │
│ │ ■ Art │ │ ■ Art │ │ ■ Art │ │ ■ Art │ ← Scroll│
│ │ │ │ │ │ │ │ │ │
│ │ Discov │ │ Daily │ │ Releas │ │ Repeat │ │
│ │ Weekly │ │ Mix 2 │ │ Radar │ │ Rewind │ │
│ └────────┘ └────────┘ └────────┘ └────────┘ │
│ │
│ Recently played [Show all →] │
│ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ │
│ │ ○ Art │ │ ■ Art │ │ ○ Art │ │ ■ Art │ │
│ │ Artist │ │ Album │ │ Artist │ │ Plist │ │
│ └────────┘ └────────┘ └────────┘ └────────┘ │
└─────────────────────────────────────────────────────────┘
○ = circular (artist) ■ = square with radius (album/playlist)
卡片本身:
.content-card {
width: 100%;
background: var(--card-surface);
border-radius: 8px;
padding: 16px;
cursor: pointer;
transition: background-color 200ms ease;
position: relative;
}
.content-card:hover {
background: var(--card-surface-hover);
}
/* Play button appears on hover */
.content-card:hover .play-button {
opacity: 1;
transform: translateY(0);
}
.play-button {
position: absolute;
bottom: 88px;
right: 16px;
width: 48px;
height: 48px;
border-radius: 50%;
background: var(--essential-positive);
opacity: 0;
transform: translateY(8px);
transition: opacity 200ms ease, transform 200ms ease;
box-shadow: 0 8px 16px rgba(0, 0, 0, 0.3);
}
.card-image {
width: 100%;
aspect-ratio: 1;
border-radius: 4px;
object-fit: cover;
margin-bottom: 16px;
}
/* Artists get circular images */
.card-image--artist {
border-radius: 50%;
}
形狀傳達類型: 帶圓角的方形圖片代表專輯和播放清單。圓形圖片代表藝人。這種慣例已根深蒂固,用戶無需閱讀標籤就能立即理解眼前看到的是什麼。
Wrapped:作為產品的編輯式設計
Spotify Wrapped 是科技界被研究最多的年度設計活動。它將個人聆聽數據轉化為可分享的故事格式體驗。
Wrapped 在設計上的成功之處:
WRAPPED STORY FORMAT:
┌─────────────────────────────────┐
│ │
│ Your top genre │ ← Overline (caption)
│ │
│ INDIE │ ← Hero text (canon size)
│ ROCK │
│ │
│ You listened to 847 │ ← Supporting stat
│ indie rock songs │
│ this year │
│ │
│ That's more than 94% │ ← Social proof
│ of listeners │
│ │
│ ┌───────────────────────────┐ │
│ │ Share to Instagram │ │ ← CTA
│ └───────────────────────────┘ │
│ │
│ ● ○ ○ ○ ○ │ ← Story progress
└─────────────────────────────────┘
Background: bold duotone gradient
Typography: oversized, heavy weight
Layout: centered, mobile-first
驅動分享行為的設計決策: - 大膽的全出血色彩背景在截圖中效果極佳 - 文字夠大,在社群媒體縮圖中也能清晰閱讀 - 個人數據創造情感投入(「我的音樂年度回顧」) - 百分位數比較增添競爭性與社交維度 - 垂直故事格式直接對應 Instagram 和 TikTok
結論
Spotify 證明了設計系統不是一份在 wiki 中蒙塵的風格指南,而是活的基礎設施,使數百個團隊能在數十個平台上交付一致的體驗。深色優先哲學、色彩萃取管道、卡片式架構與字體排印系統協同運作,讓音樂始終作為主角。
最具可轉移性的啟示是色彩即情感。大多數產品將色彩視為品牌識別(使用我們的色碼)或信號傳達(紅色代表錯誤、綠色代表成功)。Spotify 將色彩視為環境設計——當你切換專輯時,整個空間都會隨之改變。這種程度的動態、內容驅動型主題化既罕見又強大。
最適合學習: 如何建立跨平台擴展的設計系統、深色模式如何提升內容密集型介面、以及如何將數據個人化作為設計介面而非僅僅作為工程功能來運用。
常見問題
Spotify 如何從專輯封面萃取色彩?
Spotify 使用色彩萃取演算法從專輯封面識別主色調,過濾鮮豔度與對比度(相對於深色背景),並將結果作為漸層應用於專輯和播放清單頁面。系統透過檢查萃取色彩與白色文字之間是否維持足夠對比度來確保無障礙性。
為什麼 Spotify 使用深色介面,而不是同時提供淺色和深色模式?
深色優先設計是深思熟慮的產品選擇,不僅是美學偏好。專輯封面是 Spotify 的主角內容,深色畫布為其提供無競爭的框架。標誌性綠色等強調色在深色表面上更為鮮豔。長時間聆聽受益於減少的眼睛疲勞。單一模式的一致性也簡化了設計系統。
什麼是 Spotify 的 Encore 設計系統?
Encore 是 Spotify 的內部設計系統,提供設計符記(色彩、間距、字體排印、動態效果)、可複用元件,以及在所有 Spotify 平台——web、iOS、Android、桌面端、電視、車載顯示器與嵌入式裝置——上建構一致體驗的指南。它使用符記而非硬編碼數值來跨程式庫維持一致性。
Spotify Wrapped 如何達成如此高的社群分享率?
Wrapped 結合了個人數據(情感投入)、大膽的視覺設計(截圖在社群媒體上極為醒目)、百分位數比較(競爭性與社交動機),以及原生故事格式(直接對應 Instagram 限時動態和 TikTok)。字型夠大,在縮圖中也能閱讀,全出血色彩背景的拍攝效果極佳。
設計師能從 Spotify 的卡片式架構中學到什麼?
Spotify 證明了單一卡片基元可以作為整個產品的基礎。透過改變圖片形狀(專輯用方形、藝人用圓形)、元資料與互動模式,同時保持結構容器的一致性,Spotify 實現了多樣性與統一性的兼顧。這種模式可從手機螢幕擴展到電視介面。
相關資源
- 官方網站: spotify.com
- 設計部落格: spotify.design —— 設計團隊的案例研究
- Encore: Spotify 的公開設計系統文件
- Wrapped: 年度活動 —— 研究歷年視覺設計的演進
- 工程部落格: engineering.atspotify.com —— 設計基礎設施的技術深度剖析