Deepseek

DeepSeek's iOS app is a focused, near-monochrome chat interface organized around one idea: show the model thinking before it answers.

Back to all styles

A live page in this style is not built yet — the CSS variables and the prompt below are enough to reproduce it.

At a glance

24tokens
9type steps
2radius steps
7pxspacing base

Deepseek, in one page

DeepSeek's iOS app is a focused, near-monochrome chat interface organized around one idea: show the model thinking before it answers. The canvas is a deep near-black (#0E0E10 in dark; a clean white #FFFFFF in light), and the only saturated color anywhere is DeepSeek Blue (#4D6BFE) — a vivid indigo-blue that appears on the whale logomark, the user's message bubble, the send button, and the active DeepThink (R1) / Search toggles. Everything else is a restrained grey ramp. The result feels like a research tool: serious, quiet, and engineered to make the *reasoning* the spectacle rather than the chrome.

The signature interaction — and the thing that must be reproduced faithfully — is the reasoning trace. When DeepThink (R1) is enabled, the assistant's reply is preceded by a collapsible reasoning panel: a recessed surface (#16171A in dark — deliberately *darker* than the canvas) with a 2pt DeepSeek-Blue left-bar, a header that reads "Thought for N seconds · tap to collapse", and the model's chain-of-thought rendered in dimmed italic (#8A8B90). Below the panel sits the final answer in full-contrast text (#ECECEC). The visual hierarchy is intentional: the reasoning is present but subordinate; the answer is primary. Tapping the header collapses the trace to a single line. This "thinking-then-answering" pattern is DeepSeek's entire identity.

The second pillar is the two-toggle composer. Above the input pill sit two pill toggles: DeepThink (R1) — switches from the fast V3 model to the R1 reasoning model (which produces the trace) — and Search — grounds the answer in live web results with inline citations. When active, a toggle fills with a soft blue tint (#1E2240), a blue border (#4D6BFE), and blue text/icon. These two toggles are the primary controls of the product; the input field itself is a quiet rounded pill.

Typography is the platform sans (Inter as the open fallback, SF Pro on device) — no custom display face. Message body is 15pt regular; the reasoning trace is 13pt italic (the italicization is a deliberate "this is internal monologue" signal); code is monospace on a #232428 chip with a faintly blue-tinted token color (#C5CDFF). The type system is conventional on purpose: DeepSeek's personality lives in the reasoning trace and the single electric blue, not in the letterforms.

Key Characteristics:

Do's and don'ts

Do

  • Use a near-black #0E0E10 canvas (dark) / clean #FFFFFF (light) — quiet research-tool calm
  • Ration DeepSeek Blue #4D6BFE to the whale, user bubble, send, active toggles, links, citations
  • Render the reasoning trace in a recessed #16171A panel with a 2pt blue left-bar
  • Keep the chain-of-thought dimmed italic #8A8B90 — italic IS the "internal monologue" signal
  • Keep the answer upright and full-contrast #ECECEC — visually dominant over the trace
  • Make the trace collapsible with a "Thought for N seconds · tap to collapse" header
  • Use soft-blue active state (#1E2240 fill + #4D6BFE border) for DeepThink / Search toggles
  • Give the user bubble the asymmetric 18/18/4/18 corner (4pt points at the sender)
  • Stream the trace token-by-token with a live duration counter, then the answer
  • Show [n] citation chips when Search is on; open a source sheet on tap

Don't

  • Don't render the reasoning trace upright or full-contrast — it must be dimmer/italic/recessed
  • Don't make the trace background lighter than the canvas — it recedes by being *darker*
  • Don't use blue for body text — blue is reserved for accents/toggles/links/citations only
  • Don't give assistant messages a bubble — only the user gets a bubble; AI is full-width
  • Don't add a second accent color — DeepSeek has exactly one (#4D6BFE)
  • Don't show the trace when DeepThink (R1) is off (V3 fast mode answers directly, no trace)
  • Don't use a heavy custom display font — DeepSeek uses the platform sans
  • Don't elevate the trace with a shadow — it uses a darker fill, not elevation
  • Don't keep the trace expanded by default on long answers — collapse after completion is fine
  • Don't tint the active tab with a pill — active is just #4D6BFE glyph + label

Copy this into your AI builder

Paste it as-is. Every value below was measured from the original site, not guessed.

Assembled from the measured tokens — the source document has no prompt block.

Build a page in the Deepseek design language. Follow the measured tokens below — do not substitute your own palette.

Colors:
- DeepSeek Blue: #4d6bfe
- dimmed italic: #8a8b90
- DeepSeek Blue Pressed: #3b57e0
- DeepSeek Blue Soft: #1e2240
- Blue Token: #c5cdff
- Canvas: #0e0e10
- Surface 1: #1a1b1e
- Surface 2: #232428
- Surface 3: #2c2d31
- Reasoning BG: #16171a

Type:
- families: Inter, SF Mono, Monospace, Fallback Stack
- scale: 10, 11, 12, 13, 14, 15, 18, 26, 32
- weights: 400, 500, 600, 700, 800

Shape:
- radius: 10, 18
- elevation: Don't elevate the trace with a shadow — it uses a darker fill, not elevation

Spacing: 7, 10, 12, 14, 18

Rules:
- Use a near-black `#0E0E10` canvas (dark) / clean `#FFFFFF` (light) — quiet research-tool calm
- Ration DeepSeek Blue `#4D6BFE` to the whale, user bubble, send, active toggles, links, citations
- Render the reasoning trace in a recessed `#16171A` panel with a 2pt blue left-bar
- Keep the chain-of-thought dimmed italic `#8A8B90` — italic IS the "internal monologue" signal
- Keep the answer upright and full-contrast `#ECECEC` — visually dominant over the trace
- Make the trace collapsible with a "Thought for N seconds · tap to collapse" header

Avoid:
- Don't render the reasoning trace upright or full-contrast — it must be dimmer/italic/recessed
- Don't make the trace background lighter than the canvas — it recedes by being *darker*
- Don't use blue for body text — blue is reserved for accents/toggles/links/citations only
- Don't give assistant messages a bubble — only the user gets a bubble; AI is full-width
- Don't add a second accent color — DeepSeek has exactly one (`#4D6BFE`)
- Don't show the trace when DeepThink (R1) is off (V3 fast mode answers directly, no trace)

Keep every value literal. If a token is given, use that exact value.

The specification

Colour paletteRead the full spec

Primary (Interactive)

  • DeepSeek Blue (#4D6BFE): The single accent — whale logomark, send button, active toggle border/text/icon, links, primary CTA fill.
  • DeepSeek Blue Pressed (#3B57E0): Pressed state of blue-filled buttons.
  • DeepSeek Blue Soft (#1E2240 dark / #EBEFFF light): User-bubble fill, active-toggle fill, soft-button background.
  • Blue Token (#C5CDFF dark / #3B57E0 light): Inline-code token color (a blue-tinted mono).

Canvas & Surfaces (Dark)

  • Canvas (#0E0E10): Primary dark canvas — near-black, faintly cool.
  • Surface 1 (#1A1B1E): Composer field, toggle resting background, cards, sections.
  • Surface 2 (#232428): Code chips, raised rows, hovered surfaces.
  • Surface 3 (#2C2D31): Pressed surface, menu rows.
  • Reasoning BG (#16171A): The reasoning-trace panel — intentionally *darker* than the canvas to recede.
  • Divider (#2E2F33): Hairline dividers, input/toggle borders.

Canvas & Surfaces (Light)

  • Canvas White (#FFFFFF): Primary light canvas.
  • Surface 1 Light (#F5F6F8): Composer field, cards.
  • Surface 2 Light (#ECEEF2): Code chips, raised rows.
  • Reasoning BG Light (#F7F8FA): Reasoning-trace panel (slightly off-white to recede).
  • Divider Light (#E4E6EB): Hairlines, borders.

Text

  • Text Primary (#ECECEC dark / #1A1B1E light): Final answer, message body, titles.
  • Text Secondary (#9A9BA0 dark / #6A6B70 light): Metadata ("Thought for N seconds"), model name, sub-labels.
  • Text Tertiary (#6A6B70 dark / #9A9BA0 light): Placeholder, disabled.
  • Reasoning Text (#8A8B90 dark / #6E6F74 light): Chain-of-thought inside the trace — dimmed, italic.

Semantic

  • Success Green (#2EBD85): "Copied", positive feedback (thumbs-up filled).
  • Error Red (#E5484D): Failed generation, network error, stop.
  • Citation Blue (#4D6BFE): Inline web-search citation chips [1] [2] when Search is on.
  • Stop Red (#E5484D): Stop-generating button while streaming.

Color Usage Rules

TokenDarkLightWhere
Canvas#0E0E10#FFFFFFBehind everything
Surface 1#1A1B1E#F5F6F8Composer, cards
Reasoning BG#16171A#F7F8FAThe reasoning trace panel
Divider#2E2F33#E4E6EBHairlines, borders
DeepSeek Blue#4D6BFE#4D6BFEWhale, send, active toggle, links
Blue Soft#1E2240#EBEFFFUser bubble, active toggle fill
Text primary#ECECEC#1A1B1EAnswer, body
Reasoning text#8A8B90#6E6F74Chain-of-thought (italic)
Type scaleRead the full spec

Font Family

  • Primary: System sans — SF Pro Text / SF Pro Display on iOS; Inter (by Rasmus Andersson, SIL OFL) as the open/web fallback. No custom display face.
  • Monospace: SF Mono on iOS ('SF Mono', ui-monospace, Menlo, monospace) — code blocks/chips and any verbatim tokens.
  • Fallback Stack: -apple-system, BlinkMacSystemFont, 'Inter', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif

Hierarchy

RoleFontSizeWeightLine HeightLetter SpacingNotes
Screen TitleInter / SF Pro32pt8001.15-0.4ptApp title / large nav
Empty-State HeadlineInter / SF Pro26pt7001.25-0.3pt"How can I help today?"
Section HeadingInter / SF Pro18pt7001.3-0.2ptHistory date groups
Message BodyInter / SF Pro15pt4001.60ptUser & assistant text
Toggle / ActionInter / SF Pro15pt6001.00ptDeepThink, Search, primary action
Card / List TitleInter / SF Pro15pt6001.30ptHistory conversation titles
Reasoning TraceInter / SF Pro13pt400 *italic*1.550ptChain-of-thought — dimmed italic
MetadataInter / SF Pro14pt4001.40pt"Thought for 14 seconds"
CaptionInter / SF Pro12pt5001.30ptModel name, timestamps
Code InlineSF Mono13pt4001.40ptinline code — blue token #C5CDFF
Code BlockSF Mono13pt4001.50ptFenced code blocks
Citation ChipSF Mono11pt6001.00pt[1] [2] web-search citations
Tab LabelInter / SF Pro10pt5001.00.1ptBottom tab labels
PlaceholderInter / SF Pro15pt4001.40pt"Message DeepSeek"

Principles

  • Reasoning is italic, answer is upright: the chain-of-thought is always italic and dimmed (#8A8B90); the final answer is upright and full-contrast (#ECECEC). The italic *is* the "this is internal monologue" signal — never render the trace upright.
  • Weight concentrated at 400 / 500 / 600 / 700 / 800: regular body, medium captions, semibold toggles/actions, bold headings, extrabold title. No thin, no light.
  • One accent, used sparingly: blue appears on the whale, user bubble, send, active toggles, links, citations — nowhere else. Body text is never blue.
  • Conventional letterforms by design: personality lives in the reasoning trace and the single blue, not the typeface.
  • Dynamic Type: message body, headings, reasoning text scale; tab labels, citation chips, toggle text stay fixed.
Components and layoutRead the full spec

Buttons

Primary Button (New chat / Send action)

  • Shape: Full pill, 999pt corner radius (or 50% circle for the composer send)
  • Background: #4D6BFE (DeepSeek Blue)
  • Text / icon: #FFFFFF
  • Padding: 14pt vertical, 28pt horizontal (pill); 36pt circle for send
  • Font: Inter 15–16pt weight 600
  • Pressed: background #3B57E0 + scale 0.98
  • Disabled (empty input): background #232428, icon #6A6B70

Secondary / Outline Button (Regenerate)

  • Background: transparent
  • Text: #ECECEC
  • Border: 1pt #2E2F33
  • Corner radius: 999pt
  • Padding: 12pt vertical, 20pt horizontal
  • Font: Inter 14pt weight 500
  • Pressed: background #1A1B1E

Soft Button (Continue reasoning / inline secondary)

  • Background: #1E2240 (Blue Soft)
  • Text / icon: #4D6BFE
  • Border: 1pt #2A3360
  • Corner radius: 999pt
  • Padding: 10pt vertical, 18pt horizontal
  • Font: Inter 14pt weight 600

Text Button (Clear conversation / Delete)

  • Font: Inter 14pt weight 500
  • Color: #9A9BA0 (or #E5484D for destructive)
  • No background, no border
  • Pressed: color → #ECECEC

Toggle Pills (the core control)

DeepThink (R1) / Search Toggle

  • Shape: pill, 999pt corner radius
  • Off: background #1A1B1E, border 1pt #2E2F33, text/icon #9A9BA0
  • On: background #1E2240 (Blue Soft), border 1pt #4D6BFE, text/icon #4D6BFE
  • Leading icon: 14pt (brain glyph for DeepThink, magnifier for Search)
  • Font: Inter 13pt weight 600
  • Padding: 7pt vertical, 13pt horizontal
  • Transition: 150ms ease — fill + border + content color crossfade
  • DeepThink ON ⇒ replies include the reasoning trace; Search ON ⇒ replies include [n] citations

Reasoning Trace (signature component)

The defining element of DeepSeek. When DeepThink (R1) is on, every assistant reply is preceded by this panel.

  • Container: #16171A (dark) / #F7F8FA (light) — intentionally recessed vs. canvas
  • Left bar: 2pt solid #4D6BFE (DeepSeek Blue), full-height
  • Corner radius: 10pt
  • Padding: 12pt vertical, 14–16pt horizontal
  • Header row: brain glyph (14pt #4D6BFE) + "Thought for N seconds" (Inter 12pt w600 #9A9BA0) + "· tap to collapse" (#6A6B70)
  • Body: chain-of-thought in Inter 13pt w400 italic #8A8B90, line-height 1.55
  • Collapsed state: header only (single line); expands with a 200ms height animation + chevron
  • While streaming: the trace types in live (token-by-token) with a blinking caret; the duration counts up
  • Subordination rule: the trace is always *visually quieter* than the answer below it — dimmer text, recessed background, smaller size

Message Bubbles

User Message

  • Background: #1E2240 (Blue Soft), border 1pt #2A3360
  • Text: #ECECEC, Inter 15pt w400, line-height 1.5
  • Corner radius: asymmetric 18 / 18 / 4 / 18 (the 4pt corner points to the sender, bottom-right)
  • Padding: 12pt vertical, 16pt horizontal
  • Max width: 78% of content width, right-aligned

Assistant Message

  • No bubble — full content width, left-aligned
  • Header: whale glyph (18pt #4D6BFE) + model name ("DeepSeek-R1" / "DeepSeek-V3", Inter 13pt w600 #9A9BA0)
  • Body: #ECECEC, Inter 15pt w400, line-height 1.6
  • Action row below: copy, thumbs-up, thumbs-down, regenerate, share — 16pt glyphs #6A6B70
  • Code blocks: #232428 background, 8pt radius, SF Mono 13pt, blue token #C5CDFF, "Copy" affordance top-right

Composer (signature input)

  • Toggle row on top: DeepThink (R1) + Search pills (see Toggle Pills), 8pt gap, 8pt bottom margin
  • Input pill: 50pt tall, #1A1B1E background, 1pt #2E2F33 border, 25pt corner radius
  • Leading 18pt inset, placeholder "Message DeepSeek" in #6A6B70
  • Trailing: 36pt circular send button — #4D6BFE fill, #FFFFFF up-arrow glyph (turns into a red #E5484D stop square while streaming)
  • Attach (+) affordance optional at the leading edge for image/file upload
  • On focus: border brightens to #3A3B40

Navigation

Bottom Tab Bar

  • Height: 68pt + safe area
  • Background: rgba(14,14,16,0.94) with backdrop-filter: blur(20px), 0.5pt top border #2E2F33
  • Tabs (3): Chat, History, Settings
  • Icon size: 22pt
  • Active: glyph + label #4D6BFE (the single accent), slightly thicker stroke
  • Inactive: #6A6B70
  • Labels: Inter 10pt w500, always shown

Top Bar

  • Height: 44pt + safe area
  • Leading: hamburger / history icon (22pt #9A9BA0)
  • Center: whale glyph (22pt #4D6BFE) + "DeepSeek" wordmark (Inter 16pt w700; "Seek" tinted #4D6BFE)
  • Trailing: new-chat (+) icon (22pt #9A9BA0)

Input Fields

Search Bar (History)

  • Height: 44pt
  • Background: #1A1B1E, no border
  • Corner radius: 10pt
  • Leading magnifyingglass 18pt #6A6B70
  • Placeholder "Search chats" 14pt #6A6B70
  • Focus: 1pt #4D6BFE border
Responsive behaviourRead the full spec

Device Sizes

DeviceWidthKey Changes
iPhone SE (3rd gen)375ptBubble max 80%; toggles may wrap to 2 rows
iPhone 13/14/15390ptStandard layout
iPhone 15/16 Pro393ptDynamic Island accommodated in top bar
iPhone 15/16 Pro Max430ptWider chat column; larger trace text
iPad (portrait)768ptChat centered max 720pt; History 2-pane
iPad (landscape)1024pt+Persistent History sidebar + chat; trace inline

Dynamic Type

  • Message body, headings, reasoning text: full scale
  • Tab labels, citation chips, toggle text: FIXED (layout-sensitive)
  • Code blocks: scale to XL (stay monospace)

Orientation

  • All screens support rotation
  • iPad split view: History list (primary) + active chat (secondary); the trace stays inline within the assistant message

Touch Targets

  • Toggle pill: 44pt min hit, 13pt label
  • Trace header (collapse/expand): full-width 36pt hit
  • Tab bar icons: 22pt glyph, 44pt hit
  • Send button: 36pt circle, 44pt hit
  • Citation chip: 24pt hit, 11pt glyph

Safe Area Handling

  • Top: top bar respects safe area and Dynamic Island
  • Bottom: composer (toggles + input) and tab bar respect home indicator
  • Keyboard: chat scrolls above keyboard; composer (with toggle row) docks above the keyboard
  • Sides: 16pt content inset

Drop-in CSS variables

The same values as a theme block. Add the class to <body> and the site repaints.

body.theme-deepseek {--page-bg: #0e0e10;
  --page-bg-gradient: none;
  --text-color: #ececec;
  --heading-color: #ececec;
  --link-color: #617cfe;
  --link-hover-color: #2e52fe;
  --border-color: #363638;
  --card-bg: #0e0e10;
  --card-shadow: 0 1px 2px rgba(236,236,236,0.06);
  --card-hover-shadow: 0 6px 18px rgba(236,236,236,0.12);
  --header-bg: #212123;
  --header-text-color: #ffffff;
  --header-shadow: none;
  --footer-bg: #0e0e10;
  --footer-text-color: #9e9e9f;
  --button-bg: #4d6bfe;
  --button-text-color: #000000;
  --button-hover-bg: #1a41fe;
  --button-border: none;
  --button-border-radius: 18px;
  --button-secondary-bg: #1b1b1d;
  --button-secondary-text-color: #ececec;
  --button-secondary-hover-bg: #29292a;
  --button-secondary-border: 1px solid #363638;
  --prompt-bg: #19191b;
  --prompt-text-color: #ececec;
  --base-font: var(--font-inter);
  --heading-font: var(--font-mono);
  --card-border-radius: 18px;
}

Download theme.css

Visually close to

Measured with a deterministic colour + geometry comparison across 958 styles. Not a hand-picked list.

Where this came from

Source document
ios/design-md/misc/deepseek/DESIGN.md · 24.4 KB
Repository
Meliwat/awesome-ios-design-md
Licence
MIT

Source text is reproduced under its original licence. Tokens, similarity scores and page structure are ours.