Tier 2Tier 2 · Native apps: tokens only. Row progress is a stock linear ProgressView; the download control is a stock Gauge(.accessoryCircularCapacity) with an SF Symbol inside. Status colour comes from the semantic token roles, not from a hand-picked hex.--yellow-solid · --line · --solid · --red-text-secondary · --component-bg-active
Progress is a control, not a painted row
The web transfer row paints its own background as the progress fill. That is a tier-1 recipe for a wide desktop list. On iOS progress is a 4pt ProgressView under the subtitle.
The download button is the one composed control: iOS has no determinate circular progress button.

Still stock parts, a Gauge plus an SF Symbol in a 44pt target. Five states, one position.
Failure reads as a sentence, not a code. No seeders found, never ERR_NO_PEERS, and never a dialog.
9:41
Transfers
ActiveFinishedAll
Dune.Part.Two.2024.2160p.WEB-DL.DDP5.1.Atmos.HDR.x265.mkv
11.2 of 18.6 GB · 18.4 MB/s · 6 min left
The.Wire.S03E04.Back.Burners.1080p.BluRay.x264-DEMAND.mkv
Seeding · ratio 1.42
backup-2026-02-14.zip
Queued · position 2
ubuntu-26.04-desktop-amd64.iso
No seeders found
Retry
Remove
Files
Transfers
Activity
Account
List + ProgressViewStock segmented Picker on top; 4pt linear progress inside the row, tinted.
9:41
Account
Downloads
On This iPhone
6.4 GB
Wi-Fi Only
Dune.Part.Two.2024.2160p.WEB-DL.mkv
11.2 of 18.6 GB
tears_of_steel.mkv
1.20 GB · on this iPhone
ambient-session-03.mp3
72.4 MB · queued
The.Wire.S03E04.Back.Burners.1080p.BluRay.x264-DEMAND.mkv
3.42 GB
Invoices Q1 2026.pdf
Not enough space on this iPhone
Downloads · the ring is the control44pt target, one glyph, five states. Tap while downloading stops it.
Idle
--solid glyph, no ring
Queued
clock, still no ring
Downloading
Gauge + stop glyph
Downloaded
--yellow-solid, ring gone
Failed
idle glyph; reason in the subtitle
Row progress
ProgressView 4pt
--yellow-solid on --component-bg-active
Row height
76pt
two lines plus the bar
Ring
44pt · 2pt
Gauge · --line track
Segmented
32pt · 9pt
stock Picker, system selection
Failed
--red-text-secondary
subtitle + red bar remainder
Swipe
Retry / Remove
system widths, system roles
Numerics
Berkeley Mono
rate, remaining, ratio, quota
Spacing
4 / 8 / 16
put.io ramp inside the row
Per-control detail, the token map and the full don't list live in platforms/apple/DESIGN.md.
Do not bring the web transfer row's self-painting progress fill to iOS. It relies on a hover model, a 6px radius and a row width no phone has, and it makes the row's background mean two things at once.

A ProgressView says the same thing in 4pt and comes with VoiceOver.