Things 3

Things 3's iOS app is a study in calm.

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
8type steps
2radius steps
12pxspacing base

Things 3, in one page

Things 3's iOS app is a study in calm. Where most task managers are dense, colorful dashboards, Things is a quiet white room: a pure white canvas (#FFFFFF), a single restrained blue accent, and acres of generous whitespace that let a to-do list feel like a calm sheet of paper rather than an anxiety machine. The design philosophy is "serene productivity" — the interface should disappear so that the user's own intentions are the only thing on screen. Surfaces lift only barely (#F5F6F8), dividers are whisper-thin (#ECECEC), and there is essentially no chrome: no toolbars crowding the top, no badges screaming for attention. The app feels expensive precisely because it withholds.

The accent is Things Blue #4F97FF — a soft, friendly blue used with monastic discipline for exactly three things: the active selection, the primary action, and the checkbox fill on completion. The one other color the app allows is the Today-yellow #FFD60A star, the single warm note in an otherwise cool, neutral palette — it marks the "Today" list, the heart of the app, and the star a task earns when scheduled for today. Everything else is ink-black text, soft gray metadata, and white. The restraint is the brand: when something turns blue, it is the one thing you should look at; when the yellow star appears, it means *today*.

Typography is San Francisco (SF Pro) — Apple's system face — used at 400 / 600 / 700 across a 13–28pt range, closely approximated by Inter where SF is unavailable. The hierarchy is built for reading a list like prose: list titles at 28pt bold (the "Today" headline feels like a chapter heading), task titles at 17pt regular, notes at 15pt regular gray. Headings *within* a project are a signature device — a bold 17pt heading with a hairline divider that visually chunks a long project into calm sections. The most expressive typographic moment is simply the generous line height and the air around each task; type here is about breathing room, not density.

Key Characteristics:

Do's and don'ts

Do

  • Use a pure white canvas (#FFFFFF) and protect the generous whitespace — the calm is the product
  • Reserve Things Blue (#4F97FF) for selection, primary action, and the checkbox fill
  • Use the Today-yellow (#FFD60A) star only for the Today list and scheduled-today markers
  • Animate the circular checkbox fill + check spring on completion — it is the signature delight
  • Provide the Magic-Plus button with press-and-drag insertion (blue line tracks the finger)
  • Chunk long projects with bold 17pt headings and hairline dividers
  • Keep list titles big (28pt w700) with roomy top padding so they read like chapter headings
  • Show project progress as a quiet circular pie ring that animates forward on completion
  • Keep the app flat — the only shadow is the soft blue glow under Magic-Plus

Don't

  • Don't crowd the canvas — resist adding metadata, badges, or chrome that breaks the calm
  • Don't introduce extra accent colors — blue for action, the single yellow star for "today"
  • Don't color-code tags or projects by default — color is structure here, not decoration
  • Don't make completion abrupt — the fill + check spring (and gentle fade-out) is the moment
  • Don't add card shadows or skeuomorphic depth — the white room is flat
  • Don't shrink the whitespace to fit more rows — density is explicitly not the goal
  • Don't use a bottom tab bar — navigation is the sidebar (Inbox / Today / Upcoming / …)
  • Don't use heavy modal scrims — even dimming stays soft (≈0.2)
  • Don't use light font weights — SF Pro here is 400/600/700 only

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

Colors:
- Things Blue: #4f97ff
- Blue Pressed: #3d7fe0
- Today Yellow: #ffd60a
- Yellow Pressed: #e6be00
- Canvas: #ffffff
- Surface 1: #f5f6f8
- Surface 2: #ececec
- Divider: #ececec
- Text Primary: #1d1d1f
- Text Secondary: #8a8a8e

Type:
- families: SF Pro, Fallback Stack, SF Pro Display, SF Pro Text
- scale: 12, 13, 14, 15, 16, 17, 24, 28
- weights: 400, 600, 700

Shape:
- radius: 8, 10
- elevation: Shadow: `rgba(79,151,255,0.35) 0 8px 20px` — a soft blue glow | Keep the app flat — the only shadow is the soft blue glow under Magic-Plus

Spacing: 12

Rules:
- Use a pure white canvas (`#FFFFFF`) and protect the generous whitespace — the calm is the product
- Reserve Things Blue (`#4F97FF`) for selection, primary action, and the checkbox fill
- Use the Today-yellow (`#FFD60A`) star only for the Today list and scheduled-today markers
- Animate the circular checkbox fill + check spring on completion — it is the signature delight
- Provide the Magic-Plus button with press-and-drag insertion (blue line tracks the finger)
- Chunk long projects with bold 17pt headings and hairline dividers

Avoid:
- Don't crowd the canvas — resist adding metadata, badges, or chrome that breaks the calm
- Don't introduce extra accent colors — blue for action, the single yellow star for "today"
- Don't color-code tags or projects by default — color is structure here, not decoration
- Don't make completion abrupt — the fill + check spring (and gentle fade-out) is the moment
- Don't add card shadows or skeuomorphic depth — the white room is flat
- Don't shrink the whitespace to fit more rows — density is explicitly not the goal

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

The specification

Colour paletteRead the full spec

Primary

  • Things Blue (#4F97FF): Active selection, primary action, the Magic-Plus button, checkbox fill on completion, links.
  • Blue Pressed (#3D7FE0): Active/pressed state for blue controls.
  • Blue Tint (rgba(79,151,255,0.10)): Selected-row wash, subtle highlight behind the active item.

Today

  • Today Yellow (#FFD60A): The "Today" list star, the star badge on a task scheduled for today — the single warm accent.
  • Yellow Pressed (#E6BE00): Pressed state for the Today star control.

Canvas & Surface (Light — primary)

  • Canvas (#FFFFFF): Pure white app background — the serene room.
  • Surface 1 (#F5F6F8): Grouped section backgrounds, search field, the barely-there lift.
  • Surface 2 (#ECECEC): Pressed rows, segmented controls.
  • Divider (#ECECEC): Whisper-thin hairline dividers between groups and under headings.
  • Text Primary (#1D1D1F): Task titles, list headlines, primary text — near-black ink, not pure black.
  • Text Secondary (#8A8A8E): Notes, dates, metadata, project subtitles.
  • Text Tertiary (#C7C7CC): Disabled, placeholder, completed-task strike text, very low emphasis.

Semantic

  • Checkbox Border (#C7C7CC): The unchecked circular checkbox outline.
  • Completed Check (#4F97FF): The filled checkbox + white checkmark on completion.
  • Deadline Red (#FF3B30): A task past its deadline; the deadline flag when overdue.
  • Today Star (#FFD60A): Scheduled-for-today indicator (shared with Today yellow).
  • Tag Pill (#8A8A8E text on #F5F6F8): Neutral tag chips — tags are not color-coded by default.
  • Area Accent: Areas use a subtle neutral; color is structure, not decoration.

Dark Mode

Things ships a true dark mode for users who prefer it; the primary identity is the white room.

  • Dark Canvas (#1C1C1E)
  • Dark Surface (#2C2C2E)
  • Dark Divider (#38383A)
  • Dark Text Primary (#F2F2F7)
  • Dark Text Secondary (#98989F)
  • Things Blue and Today yellow stay identical — they read well on both.
Type scaleRead the full spec

Font Family

  • Primary: SF Pro (Apple system) — Text and Display optical variants, used at 400 / 600 / 700
  • Fallback Stack: -apple-system, BlinkMacSystemFont, 'Inter', 'SF Pro Text', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif
  • Optical sizing: SF Pro Display at 20pt+ (titles), SF Pro Text below 20pt (rows, notes)

Hierarchy

RoleFontSizeWeightLine HeightLetter SpacingNotes
List Title (Large)SF Pro Display28pt7001.20.3pt"Today", "Upcoming" — feels like a chapter title
Project TitleSF Pro Display24pt7001.20.3ptProject detail screen hero title
Section HeadingSF Pro Text17pt7001.3-0.2ptA heading inside a project (with hairline divider)
Task TitleSF Pro Text17pt4001.35-0.2ptA to-do row's primary text
Task Title (done)SF Pro Text17pt4001.35-0.2ptCompleted — color tertiary, strikethrough
Body / NotesSF Pro Text15pt4001.45-0.1ptTo-do notes, descriptions
List Row SubtitleSF Pro Text14pt4001.35-0.1ptProject name under a to-do, area subtitles
MetadataSF Pro Text13pt4001.30ptDate, "3 to-dos", tag text
Button (Primary)SF Pro Text17pt6001.0-0.2pt"Add to-do", confirm actions
Sidebar ItemSF Pro Text16pt4001.3-0.1pt"Inbox", "Today" sidebar rows (active = 600)
Date PillSF Pro Text13pt6001.00pt"Today", "Tomorrow" scheduled-date chip
Tag PillSF Pro Text13pt4001.00ptTag chip text
Count / MetaSF Pro Text15pt4001.00ptSidebar count badge, tabular
Tiny Label (UPPER)SF Pro Text12pt7001.20.5pt"THIS EVENING", small caps section labels

Principles

  • Weights concentrated at 400 / 600 / 700: Regular for tasks and notes, semibold for buttons and active sidebar, bold for titles and headings — no light, no black
  • Titles breathe: List titles at 28pt with positive 0.3pt tracking feel like calm chapter headings, not UI labels
  • Tasks read like prose: 17pt regular with 1.35 line height and lots of vertical air — this is a reading surface
  • Headings chunk, dividers separate: A bold 17pt heading + a hairline divider is how a long project stays serene
  • Completed = quiet, not gone: Done tasks dim to tertiary with a strikethrough — present but receded
Components and layoutRead the full spec

Buttons

Magic-Plus Button (the signature control)

  • Shape: Circle, 56pt diameter, floating bottom-right (or bottom-center) above content
  • Background: #4F97FF
  • Icon: a plus glyph, 24pt, #FFFFFF
  • Shadow: rgba(79,151,255,0.35) 0 8px 20px — a soft blue glow
  • Pressed: scale 0.94, background #3D7FE0, medium haptic
  • Drag behavior: press-and-drag lifts the button; a blue insertion line follows the finger so a new to-do drops exactly where released

Primary Text Button ("Add", confirm)

  • Background: transparent (text-only) or #4F97FF filled for modal confirms
  • Text: #4F97FF (text) / #FFFFFF (filled), SF Pro Text 17pt weight 600
  • Filled padding: 12pt vertical, 24pt horizontal; corner radius 10pt
  • Pressed: text #3D7FE0 / filled #3D7FE0, no scale on text buttons

Icon Button (toolbar — search, more, calendar)

  • Size: 22pt glyph, 44pt hit target
  • Default: #8A8A8E
  • Active/pressed: #4F97FF
  • No background; the generous hit area is the affordance

Today Star Toggle

  • A star glyph, 18pt
  • Off: outline #C7C7CC; On: filled #FFD60A
  • Tapping animates a quick fill + 1.0 → 1.15 → 1.0 bounce

Cards & Containers

To-Do Row (the unit)

  • Min height: 44pt (expands with notes/subtitle)
  • Layout: 22pt circular checkbox (leading) → task title (17pt w400) → optional subtitle (14pt) / tag pills / date pill (trailing)
  • Background: transparent (canvas #FFFFFF)
  • Selected: background rgba(79,151,255,0.10), corner radius 8pt, title color unchanged
  • Swipe actions: swipe-right to schedule (blue), swipe-left for "when"/move
  • Completed: checkbox fills #4F97FF with white check; title goes #C7C7CC strikethrough; row fades and drops out of the list after a beat

Circular Checkbox

  • Diameter: 22pt; 1.5pt border #C7C7CC when unchecked
  • Checked: fills #4F97FF, a white checkmark scales in with a spring (the signature micro-interaction)
  • Tapping anywhere on the checkbox or its 44pt hit area toggles completion with a soft haptic

Section Heading (inside a project)

  • A bold 17pt #1D1D1F label, 24pt top padding, followed by a hairline #ECECEC divider
  • Tap to collapse/expand the heading's to-dos; a small chevron rotates
  • The signature device that keeps long projects calm and scannable

Project Row (in a list)

  • 56pt row: a pie-progress ring (leading) → project name (17pt w400) → area / count subtitle (14pt secondary)
  • The ring fills proportionally to completed to-dos; a fully-complete project shows a solid blue ring with a check

List Title Header

  • The big 28pt w700 list name ("Today", "Upcoming") with generous 24pt top / 8pt bottom padding
  • For "Today", a #FFD60A star sits beside the title; for "Upcoming", a small calendar glyph
  • No background, no divider — the whitespace is the separation

Quick-Find / Search

  • A #F5F6F8 rounded field, 10pt radius, 40pt tall
  • Leading magnifyingglass 16pt #8A8A8E; placeholder "Quick Find" 16pt w400 #8A8A8E
  • Focus: subtle, no heavy border; caret #4F97FF

Navigation

Sidebar (no bottom tab bar)

  • A slide-over / left panel listing: Inbox, Today (★), Upcoming, Anytime, Someday, Logbook, then Areas & Projects
  • Item height: 40pt; icon 18pt + label 16pt w400
  • Active item: background rgba(79,151,255,0.10), label 16pt w600, icon #4F97FF; trailing count in 15pt #8A8A8E
  • Inactive: label #1D1D1F, icon #8A8A8E
  • Opened via the top-left back/menu affordance or an edge swipe; canvas dims rgba(0,0,0,0.2) behind

Top Bar

  • Height: 44pt + safe area
  • Leading: back / sidebar affordance ; Trailing: search + more (22pt #8A8A8E)
  • No center title (the big 28pt list title lives in the scroll content, not the bar)
  • Fully transparent over white; on scroll the list title shrinks toward the bar gently

Input Fields

To-Do Title Field (composer)

  • Appears inline as a new row or in a card sheet
  • Text: 17pt w400 #1D1D1F; placeholder "New To-Do" 17pt w400 #C7C7CC
  • No border, no box — it is just text on white; the checkbox sits to its left
  • Below: a notes line (15pt), then a row of quick controls (When, tag, deadline, checklist)

When / Schedule Picker

  • A calm sheet: "Today" (★ yellow), "This Evening", "Tomorrow", "Upcoming" (calendar), "Someday", "Clear"
  • Each row a 44pt tappable item with a leading glyph; the chosen option gets a #4F97FF check

Tag Field

  • Tags render as neutral pills (#F5F6F8 background, 13pt #8A8A8E text, full-pill radius)
  • Add-tag opens a calm list of existing tags with a search field

Distinctive Components

Magic-Plus

  • The signature creation gesture: a floating 56pt blue "+" that you can tap to add a to-do at the top, or press-and-drag to drop a new to-do precisely between existing rows (a blue insertion line tracks the finger)
  • On release it morphs into an inline editable to-do row with the keyboard rising

Circular Checkbox Fill Animation

  • On completion the 22pt circle fills with #4F97FF from center outward over ~180ms, and a white checkmark draws/scales in with a spring (response 0.3, damping 0.6)
  • A soft haptic fires on toggle; the completed row then gently fades + collapses out of the list

Project Pie-Progress

  • A small (18–22pt) circular ring, #ECECEC track + #4F97FF fill arc proportional to completed to-dos
  • It animates the arc forward whenever a to-do in the project is completed — a quiet sense of momentum
Responsive behaviourRead the full spec

Device Sizes

DeviceWidthKey Changes
iPhone SE (3rd gen)375pt20pt margins kept; subtitle may truncate before tags
iPhone 13/14/15390ptStandard roomy rows, full 28pt title
iPhone 15/16 Pro393ptDynamic Island clears the transparent top bar
iPhone 15/16 Pro Max430ptSlightly larger title (30pt), more notes preview
iPad768pt+Sidebar + list (+ project detail) panes; Magic-Plus per pane

Dynamic Type

  • List titles, task titles, notes: scale fully with Dynamic Type (this is a reading app — honor it)
  • Checkbox: fixed 22pt (interaction target, not text)
  • Sidebar count badges: tabular, scale modestly
  • Tiny section labels ("THIS EVENING"): scale but clamp so the divider rhythm holds

Orientation

  • All lists: portrait and landscape
  • iPad: landscape unlocks the persistent multi-pane (sidebar + list + detail)
  • The Magic-Plus stays bottom-trailing in both orientations

Touch Targets

  • Checkbox: 22pt visual, 44pt hit area
  • To-do row: full row tappable (min 44pt)
  • Magic-Plus: 56pt — generous and unmissable
  • Toolbar icons: 22pt glyph, 44pt hit area
  • Sidebar rows: full 40pt height

Safe Area Handling

  • Top: transparent bar respects Dynamic Island / notch; the big title scrolls under it
  • Bottom: the Magic-Plus floats above the home indicator with a comfortable inset
  • Sides: 20pt content insets (the generous margin is intentional)

Drop-in CSS variables

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

body.theme-things-3 {--page-bg: #ffffff;
  --page-bg-gradient: none;
  --text-color: #1d1d1f;
  --heading-color: #1d1d1f;
  --link-color: #0067fe;
  --link-hover-color: #0052cb;
  --border-color: #d6d6d7;
  --card-bg: #ffffff;
  --card-shadow: 0 1px 2px rgba(29,29,31,0.06);
  --card-hover-shadow: 0 6px 18px rgba(29,29,31,0.12);
  --header-bg: #1d1d1f;
  --header-text-color: #ffffff;
  --header-shadow: none;
  --footer-bg: #ffffff;
  --footer-text-color: #6c6c6d;
  --button-bg: #4f97ff;
  --button-text-color: #000000;
  --button-hover-bg: #1c79ff;
  --button-border: none;
  --button-border-radius: 10px;
  --button-secondary-bg: #f1f1f2;
  --button-secondary-text-color: #1d1d1f;
  --button-secondary-hover-bg: #e4e4e4;
  --button-secondary-border: 1px solid #d6d6d7;
  --prompt-bg: #f4f4f4;
  --prompt-text-color: #1d1d1f;
  --base-font: var(--font-helvetica);
  --heading-font: var(--font-helvetica);
  --card-border-radius: 10px;
}

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/productivity/things-3/DESIGN.md · 22.0 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.