Copilot

Microsoft Copilot's iOS app is a warm, approachable assistant wrapped in Microsoft's Fluent design language.

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

21tokens
10type steps
5radius steps
10pxspacing base

Copilot, in one page

Microsoft Copilot's iOS app is a warm, approachable assistant wrapped in Microsoft's Fluent design language. The canvas is clean white (#FFFFFF) in light mode and a deep neutral (#202020) in dark mode, but the defining material is Fluent acrylic: frosted, lightly tinted, blurred surfaces that sit *over* content (the prompt bar, sheets, the suggestion tray) so the UI feels physical and layered rather than flat. Where Gemini is a bare document, Copilot is a soft, tactile workspace — answers arrive in gently rounded cards, surfaces have depth, and the whole thing reads friendly and consumer-warm, not enterprise-cold.

The accent system pairs the Copilot flourish gradient — a warm sweep from coral (#FF6F61) to gold (#FFB900) — with Microsoft's Fluent Blue (#0078D4) as the interactive primary. The flourish gradient is precious: it fills the swirl/flourish logomark, the streaming shimmer, and the focused prompt-bar accent — the brand's "thinking happening" signal. Fluent Blue owns the functional primary (active send, links, selected toggles, the tone selector's active state). Everything else is ink, gray, or an acrylic-tinted surface (#F3F3F3 light / #2D2D2D dark). The warm flourish + cool blue duality is intentional: warmth for personality, blue for action.

Typography is Segoe UI (Microsoft's product typeface), rendered here with Inter as the closest free substitute, at weights 400 / 600 / 700. The hierarchy is friendly and reading-optimized: 12–28pt, with weights at 400 (body/answers), 600 (titles/labels/chips), and 700 (strong emphasis). There are no oversized headlines — the answer text *is* the content, set at 16pt with comfortable 1.5 line-height inside soft cards. The most expressive type moment is the streaming answer card, where text generates with a warm flourish shimmer and the card subtly settles into place with an acrylic blur-fade.

Key Characteristics:

Do's and don'ts

Do

  • Build surfaces as Fluent acrylic — frosted, tinted, blurred sheets that float over the conversation
  • Render answers in soft rounded cards (16pt radius, acrylic tint, whisper shadow) — not bare text
  • Reserve the flourish gradient (#FF6F61 → #FFB900) for the flourish mark, streaming edge, and focus emphasis
  • Use solid Fluent Blue (#0078D4) for the functional primary — active send, links, selected tone/toggles
  • Keep the Creative / Balanced / Precise tone selector visible — it is a Copilot signature
  • Stream answers token-by-token with a warm flourish shimmer at the leading edge
  • Do an acrylic blur-in (opacity + blur ramp, 220ms) when a surface or new card appears
  • Keep answer body at 16pt with 1.5 line-height inside cards
  • Provide full light + dark parity; keep the flourish stops identical across themes
  • Use Segoe UI (Inter fallback) at weights 400/600/700, Cascadia Code for code

Don't

  • Don't render answers as bare unboxed text — Copilot uses soft acrylic cards
  • Don't tint body text with the flourish gradient — text is always solid ink; the gradient is structural
  • Don't use the flourish gradient as a button fill or a flat panel background
  • Don't make surfaces flat/opaque where acrylic is expected — the frosted layering is the brand
  • Don't add a bottom tab bar — the sidebar is the sole primary navigation
  • Don't full-pill the primary action button — Fluent primaries use a softer 8pt rounded rect (the tone selector is the pill)
  • Don't use thin font weights — the ramp is 400/600/700
  • Don't skip the streaming shimmer / thinking indicator — generation must feel alive
  • Don't diverge the flourish stops between light and dark — keep #FF6F61 → #FFB900 exact

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 Copilot design language. Follow the measured tokens below — do not substitute your own palette.

Colors:
- Fluent Blue: #0078d4
- Blue Pressed: #005a9e
- Blue Tint: #deecf9
- Flourish Coral: #ff6f61
- Flourish Gold: #ffb900
- Canvas White: #ffffff
- Surface Acrylic: #f3f3f3
- Surface Raised: #ffffff
- Divider: #e0e0e0
- Text Primary: #242424

Type:
- families: Segoe UI, Segoe UI Variable, Inter, Fallback Stack
- scale: 11, 13, 14, 15, 16, 17, 18, 20, 22
- weights: 400, 600, 700

Shape:
- radius: 8, 12, 16, 18, 24
- elevation: Surface Raised (`#FFFFFF` + soft shadow + 1pt hairline): Menus, dialogs.

Spacing: 10, 12, 16

Rules:
- Build surfaces as Fluent acrylic — frosted, tinted, blurred sheets that float over the conversation
- Render answers in soft rounded cards (16pt radius, acrylic tint, whisper shadow) — not bare text
- Reserve the flourish gradient (`#FF6F61 → #FFB900`) for the flourish mark, streaming edge, and focus emphasis
- Use solid Fluent Blue (`#0078D4`) for the functional primary — active send, links, selected tone/toggles
- Keep the Creative / Balanced / Precise tone selector visible — it is a Copilot signature
- Stream answers token-by-token with a warm flourish shimmer at the leading edge

Avoid:
- Don't render answers as bare unboxed text — Copilot uses soft acrylic cards
- Don't tint body text with the flourish gradient — text is always solid ink; the gradient is structural
- Don't use the flourish gradient as a button fill or a flat panel background
- Don't make surfaces flat/opaque where acrylic is expected — the frosted layering is the brand
- Don't add a bottom tab bar — the sidebar is the sole primary navigation
- Don't full-pill the primary action button — Fluent primaries use a softer 8pt rounded rect (the tone selector is the pill)

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

The specification

Colour paletteRead the full spec

Primary

  • Copilot Flourish Gradient: Linear sweep #FF6F61 (0%) → #FFB900 (100%). Used for the flourish mark, streaming shimmer, and the focused prompt accent — never a flat fill behind body text.
  • Fluent Blue (#0078D4): Interactive primary — active send button, links, selected tone, toggles.
  • Blue Pressed (#005A9E): Pressed state for the blue send / primary actions.
  • Blue Tint (#DEECF9): Selected-chip wash, focused-field subtle ring (light).
  • Flourish Coral (#FF6F61): Gradient start; used solo for warm secondary accents (rare).
  • Flourish Gold (#FFB900): Gradient end; used solo for warm highlights / "new" dots.

Canvas & Surfaces (Light)

  • Canvas White (#FFFFFF): Primary canvas behind the conversation.
  • Surface Acrylic (#F3F3F3): Answer cards, prompt-bar fill, suggestion chips, sidebar (rendered with a frosted blur over content).
  • Surface Raised (#FFFFFF + soft shadow + 1pt hairline): Menus, dialogs.
  • Divider (#E0E0E0): Hairlines, card borders, sidebar separators.
  • Text Primary (#242424): Answer text, titles, primary UI text (warm near-black).
  • Text Secondary (#616161): Timestamps, helper text, placeholders, captions.
  • Text Tertiary (#919191): Disabled labels, very low-emphasis meta.

Canvas & Surfaces (Dark)

  • Dark Canvas (#202020): Primary dark canvas behind the conversation.
  • Dark Surface Acrylic (#2D2D2D): Answer cards, prompt bar, chips, sidebar (frosted dark blur).
  • Dark Divider (#3A3A3A): Hairlines, card borders, separators.
  • Dark Text Primary (#FFFFFF): Answer text and titles on dark.
  • Dark Text Secondary (#A6A6A6): Helper text and captions on dark.
  • Dark Blue (#4DA3E0): Fluent Blue lightened for AA contrast on the dark canvas.

Semantic

  • Success Green (#107C10 light / #6CCB5F dark): "Copied", confirmation toast.
  • Warning Amber (#F7630C): Rate-limit / content notice banner.
  • Error Red (#C50F1F light / #FF99A4 dark): Generation failed, network error.
Type scaleRead the full spec

Font Family

  • Primary: Segoe UI / Segoe UI Variable (Microsoft product typeface)
  • Substitute / Fallback: Inter — closest free humanist-grotesque match
  • Fallback Stack: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif
  • Code blocks: Cascadia Code / 'SF Mono', Menlo, monospace for fenced code in answers

Hierarchy

RoleFontSizeWeightLine HeightLetter SpacingNotes
Greeting (Hero)Segoe UI28pt7001.2-0.2pt"Hi, I'm Copilot" empty-state greeting
Screen TitleSegoe UI22pt7001.25-0.1ptSidebar header, settings title
Section HeaderSegoe UI18pt6001.30pt"Recent", "Copilot Pages" in the sidebar
Answer HeadingSegoe UI20pt6001.30ptMarkdown H2 inside a response card
Answer SubheadingSegoe UI17pt6001.350ptMarkdown H3 inside a response card
Answer BodySegoe UI16pt4001.50ptThe model's prose — the core content
User TurnSegoe UI16pt4001.450ptText inside the user card/bubble
List Item (answer)Segoe UI16pt4001.50ptBulleted/numbered list lines in a response
Prompt InputSegoe UI16pt4001.40ptText typed into the prompt bar
Suggestion ChipSegoe UI14pt6001.30ptPrompt-suggestion pill label
Tone LabelSegoe UI13pt6001.00.1pt"Creative / Balanced / Precise" segment
MetadataSegoe UI13pt4001.30ptTimestamps, model label, sidebar subtitle
CodeCascadia Code14pt4001.50ptFenced code blocks inside answers
Label (UPPER)Segoe UI11pt6001.20.6pt"TODAY" / "LAST 7 DAYS" sidebar labels
ButtonSegoe UI15pt6001.00ptText buttons, dialog actions

Principles

  • Weights at 400 / 600 / 700: Regular for all reading text, semibold for titles/labels/chips, bold for the greeting and strong in-answer emphasis — no thin
  • Reading-optimized body: answer text is 16pt at 1.5 line-height so long responses read comfortably inside cards
  • The flourish gradient never tints body text: text is always solid ink; the gradient lives in the flourish mark, the streaming edge, and the focus accent
  • Negative tracking only on the greeting/titles: -0.2pt at 28pt; body sits at 0pt
  • Dynamic Type respected: greeting, answers, body scale; the prompt-bar height and sidebar labels are layout-pinned
Components and layoutRead the full spec

Buttons

Send Button (prompt bar)

  • Shape: Circle, 36pt diameter, trailing edge of the prompt bar
  • Empty state: glyph arrow.up 18pt, #616161, transparent background
  • Active state (text present): background solid #0078D4, glyph #FFFFFF
  • Pressed: scale 0.92, background #005A9E, soft haptic
  • Generating: morphs to a stop.fill square in #0078D4 to interrupt the stream

Voice Button

  • Shape: Circle, 44pt; sits beside the prompt bar or as a prominent empty-state CTA
  • Idle: acrylic surface fill, mic glyph 20pt #616161
  • Listening: a flourish-gradient pulse ring radiates; mic glyph turns #0078D4
  • Pressed: scale 0.94, haptic

Suggestion Chip

  • Background: acrylic #F3F3F3 (light) / #2D2D2D (dark), 1pt #E0E0E0 / #3A3A3A border
  • Text: #242424 / #FFFFFF, 14pt w600
  • Padding: 10pt vertical, 16pt horizontal, corner radius 18pt
  • Pressed: surface darkens ~6%, scale 0.98
  • Optional leading 12pt flourish glyph on AI-action chips

Icon Action (Mic, Add, Copy, Regenerate, Like/Dislike, Share, More)

  • Size: 22pt glyph, 44pt hit area
  • Default: #616161 (light) / #A6A6A6 (dark)
  • Active/primary: #0078D4 / #4DA3E0
  • Like/Dislike feedback: thumbs glyphs; selected thumb fills #0078D4

Text Button (dialog "Cancel" / "Done")

  • Font: Segoe UI, 15pt, weight 600
  • Color: #0078D4 / #4DA3E0
  • No background, no underline, 44pt hit area

Pill Button (primary dialog action)

  • Background: #0078D4
  • Text: #FFFFFF, 15pt w600
  • Padding: 10pt vertical, 24pt horizontal, corner radius 8pt (Fluent uses softer-rect, not full-pill, for primaries)
  • Pressed: #005A9E, scale 0.98

Cards & Containers

Answer Card (The Signature)

  • Background: acrylic #F3F3F3 (light) / #2D2D2D (dark) — frosted blur over the canvas
  • Corner radius: 16pt, soft shadow rgba(36,36,36,0.06) 0 2px 10px, optional 1pt hairline
  • Padding: 16pt; leading a 22pt flourish glyph marking the start of the response
  • Full conversation-column width; 16pt body at 1.5 line-height
  • Footer action row after the stream: Copy, Like, Dislike, Regenerate, Share, ⋯
  • Streaming: a warm flourish shimmer sweeps the leading edge; the card does an acrylic blur-fade as it first appears

User Turn

  • Background: #0078D4 at full (or a soft #DEECF9 light / #2D2D2D dark "neutral" variant per setting)
  • Text: white on blue / #242424 on neutral, 16pt w400
  • Corner radius: 16pt (4pt on the bottom-trailing corner), trailing-aligned, max ~80% width
  • Padding: 12pt vertical, 16pt horizontal

Tone Selector

  • A 3-segment pill control: "Creative" / "Balanced" / "Precise"
  • Track: acrylic surface; selected segment fills #0078D4 with white label, others #616161
  • Sits above/below the prompt bar; changing it visibly re-themes the next answer's accent intensity
  • Corner radius 500pt, 13pt w600 labels, 36pt tall

Code Block (inside an answer card)

  • Background: a deeper acrylic #EDEDED (light) / #1B1B1B (dark), corner radius 12pt
  • Header bar: language label (13pt #616161) + a "Copy" text button
  • Body: Cascadia Code 14pt, 1.5 line-height, 16pt padding, horizontal scroll
  • 1pt #E0E0E0 / #3A3A3A border

Sidebar Conversation Row

  • Height: 48pt
  • Leading: an 18pt chat glyph; title (16pt w400, 1-line truncating)
  • Pressed: acrylic #F3F3F3 / #2D2D2D highlight, corner radius 8pt
  • Active conversation: persistent acrylic highlight + a 3pt leading #0078D4 accent bar

Sheet / Menu

  • Background: acrylic over a scrim, corner radius 16pt top corners, 16pt grabber
  • Rows: 52pt, 1pt #E0E0E0 / #3A3A3A dividers, leading 22pt glyph + label

Navigation

Top Bar

  • Height: 44pt + safe area
  • Leading: sidebar toggle (24pt #616161)
  • Center: "Copilot" wordmark or model/persona selector with a small chevron, 17pt w600
  • Trailing: new-chat icon (22pt) + account avatar (28pt circular)
  • Background: acrylic, subtle hairline on scroll

Sidebar (Drawer)

  • Width: ~80% of screen, slides from the leading edge over a rgba(0,0,0,0.4) scrim
  • Top: a "New chat" button (acrylic or #0078D4) + search field
  • Body: recents grouped under uppercase labels ("TODAY", "LAST 7 DAYS"), then "Copilot Pages"
  • Bottom: settings + account row
  • No bottom tab bar — the sidebar is the sole primary navigation

Input Fields

Prompt Bar (The Composer, acrylic)

  • Background: acrylic #F3F3F3 (light) / #2D2D2D (dark) — frosted blur over the conversation
  • Corner radius: 24pt, min height 52pt, full-width with 16pt side margins
  • Leading: "+" add-content icon (22pt #616161) opening image/file/camera
  • Center: text field, placeholder "Message Copilot", 16pt w400 #616161
  • Trailing: voice mic (22pt) and the send button (see Buttons)
  • Focused: a 1.5pt accent stroke (Fluent Blue, or a flourish-gradient variant on emphasis)
  • Multiline: grows up to ~5 lines, then scrolls internally

Search Field (sidebar)

  • Background: acrylic with a 1pt #E0E0E0 / #3A3A3A border
  • Height: 44pt, corner radius 8pt
  • Leading magnifyingglass 18pt #616161, placeholder "Search chats"

Distinctive Components

Flourish Mark

Responsive behaviourRead the full spec

Device Sizes

DeviceWidthKey Changes
iPhone SE (3rd gen)375ptCards tight to 16pt margins; chips scroll sooner
iPhone 13/14/15390ptStandard single-column card conversation
iPhone 15/16 Pro393ptDynamic Island accommodated in the acrylic top bar
iPhone 15/16 Pro Max430ptWider reading column, larger empty-state flourish
iPad768pt+Persistent sidebar (not overlay) + a centered ~720pt card column

Dynamic Type

  • Greeting, answer body/headings, user turn, chips: full scale
  • Prompt-bar height: grows with text size but base height is layout-pinned
  • Sidebar day labels and tone labels: fixed sizes
  • Code blocks: scale but preserve monospace alignment

Orientation

  • Conversation: portrait-primary; landscape supported (column re-centers, max readable width)
  • iPad: all orientations, persistent sidebar + centered card column
  • Image/attachment viewer: rotates to fit media

Touch Targets

  • Send button: 36pt visual, 44pt hit area
  • Voice button: 44pt
  • Mic / add / card actions: 22pt glyph, 44pt hit area
  • Suggestion chips: full chip tappable, ≥ 40pt tall
  • Tone segments: each ≥ 44pt wide, 36pt tall
  • Sidebar rows: 48pt height, full-row tappable

Safe Area Handling

  • Top: acrylic top bar respects safe area + Dynamic Island
  • Bottom: acrylic prompt bar floats above the home indicator with 12pt clearance; KB-aware
  • Sidebar: full-height overlay respecting safe area, scrim covers the rest
  • Conversation: respects safe area; the prompt bar never overlaps the last card (auto-scroll)

Drop-in CSS variables

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

body.theme-copilot {--page-bg: #ffffff;
  --page-bg-gradient: none;
  --text-color: #242424;
  --heading-color: #242424;
  --link-color: #0078d4;
  --link-hover-color: #005ba1;
  --border-color: #d8d8d8;
  --card-bg: #ffffff;
  --card-shadow: 0 1px 2px rgba(36,36,36,0.06);
  --card-hover-shadow: 0 6px 18px rgba(36,36,36,0.12);
  --header-bg: #242424;
  --header-text-color: #ffffff;
  --header-shadow: none;
  --footer-bg: #ffffff;
  --footer-text-color: #717171;
  --button-bg: #0078d4;
  --button-text-color: #000000;
  --button-hover-bg: #005ba1;
  --button-border: none;
  --button-border-radius: 16px;
  --button-secondary-bg: #f2f2f2;
  --button-secondary-text-color: #242424;
  --button-secondary-hover-bg: #e5e5e5;
  --button-secondary-border: 1px solid #d8d8d8;
  --prompt-bg: #f4f4f4;
  --prompt-text-color: #242424;
  --base-font: var(--font-inter);
  --heading-font: var(--font-inter);
  --card-border-radius: 16px;
}

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/copilot/DESIGN.md · 23.9 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.