Tier 1Web (www / app / auth). The full design system: our component library and the components.css recipe. This is the one tier where the recipe is the contract, native tiers take the tokens and nothing else.--yellow-solid · --green-solid · --red-text-secondary · --yellow-component-bg-hover
Count badges and dot
The only badges app.put.io renders: a count on the Transfers nav item (component-bg), a small yellow count as a list-row indicator, and a dot on the avatar. Radius 4.
Transfers3 2 12
Status pills, transfer & share lifecycle proposed
app.put.io shows transfer state as the row's progress fill, not a pill. They'd describe what the system is doing, not what the file contains.
Queued Downloading Completed Seeding Failed
Filter chips, user-applied facets proposed
Chips filter by attributes we actually know: folder, date added, size, owner. Never by inferred type.

Added last 7 days > 1 GB Shared with me + Add filter
User tags, manual, optional proposed
Tags are whatever the user writes. We don't assign them.

Yellow variant is reserved for a single starred/pinned state.
keep to-watch work pinned
Never do this
No quality / codec / source badges. put.io is content-agnostic, we don't parse 1080p, HEVC, WEB-DL out of filenames. The filename itself is the label.
No "Watched" / "New" pills on files. app.put.io marks a started video with an eye icon in the row, never a pill.
No genre, rating, or duration badges. We have none of that metadata. If we ever do, it belongs in a detail panel, not as a list-row badge.