Skip to content

feat(ui): icons say what they're for, and no two meanings share a drawing - #379

Merged
giraffesyo merged 1 commit into
canaryfrom
feat/ui-icon-meanings
Oct 19, 2026
Merged

giraffesyo merged 1 commit into
canaryfrom
feat/ui-icon-meanings

Conversation

@giraffesyo

@giraffesyo giraffesyo commented Oct 18, 2026 •

Copy link
Copy Markdown
Member

Icons now show what they're for, not the nearest stock shape, and no two meanings share a drawing. This follows the icon audit: you picked each drawing on the review board.

Redrawn icons, before and after

New icons

What's in it

  • 43 icons redrawn, for example:
    • ComputeIcon is a chip, not a cloud.
    • NodeIcon is a server slab, not a chip.
    • BucketIcon is a pail, not a paint bucket.
    • JobIcon is a page with a clock, and its old checklist drawing moves to TodoIcon.
    • PasswordIcon is masked dots, not a key.
  • 24 new icons for meanings that borrowed another icon:
    • Infrastructure: Provision, Deprovision, Shared, Worker, Workload, CloudNetwork, WorkspaceMount
    • Actions: Restart, Reset, Restore, Release, Revoke, Unsplit, Loading
    • Things: Workflow, Logs, Definition, Config, Variable, Report, Token, AiProvider, DirectorySync, Banner
  • Three renames. NamespaceIcon, CommandShellIcon and QuickActionIcon replace KubernetesNamespaceIcon, PowershellIcon and ZapIcon. The old names are kept as deprecated aliases, so nothing breaks.
  • New test. It fails when two icons share a drawing. Only Close and Remove share one (the X), as the README documents; a filled twin like PinFilled counts as a different drawing.
  • README. The "One name per meaning" section lists the new pairs. The out-of-date note about Pending and NotRunning sharing a circle is replaced.

Not in this PR

  • VerifiedIcon: no option was picked, so it isn't added.
  • OwnerIcon and DefaultIcon: both options were rejected on the board (crowns read as kings). They aren't added; core keeps using the Featured star for them until there's a drawing that fits.

Checks: vitest (icons and stories, 388 tests), biome and tsc pass. Core moves to the new names in a follow-up.

…wing

43 icons are redrawn to show what they mean rather than the nearest stock
shape, and 24 new ones cover meanings that borrowed another icon (provision,
worker, workflow, logs, token, restart and more). NamespaceIcon,
CommandShellIcon and QuickActionIcon replace KubernetesNamespaceIcon,
PowershellIcon and ZapIcon, which stay as deprecated names. A test fails when
two meanings share a drawing.
@github-actions

Copy link
Copy Markdown
Contributor

Dependency graph benchmark

Medians of 3 runs in headless Chrome on a shared runner; lower is better. Base and head run in turn on the same machine. ⚠️ marks a result more than 25% slower than the base, beyond its usual noise.

thousand

Base Head Change
Mount 183 ms 190 ms +4%
Hover, median frame 17 ms 17 ms −0%
Hover, p90 frame 33 ms 33 ms +0%
Hover, slowest frame 217 ms 217 ms −0%
Wheel zoom, median frame 17 ms 17 ms +0%
Wheel zoom, p90 frame 17 ms 17 ms +0%
Page elements 8,058 8,058 +0%

three-thousand

Base Head Change
Mount 439 ms 448 ms +2%
Hover, median frame 250 ms 250 ms −0%
Hover, p90 frame 608 ms 607 ms −0%
Hover, slowest frame 733 ms 733 ms +0%
Wheel zoom, median frame 17 ms 17 ms +0%
Wheel zoom, p90 frame 17 ms 17 ms +1%
Page elements 24,023 24,023 +0%

nested

Base Head Change
Mount 10 ms 11 ms +9%
Hover, median frame 17 ms 17 ms +0%
Hover, p90 frame 17 ms 17 ms +0%
Hover, slowest frame 17 ms 17 ms +0%
Wheel zoom, median frame 17 ms 17 ms +0%
Wheel zoom, p90 frame 17 ms 17 ms +0%
Page elements 140 140 +0%

@giraffesyo
giraffesyo merged commit e6696dc into canary Oct 19, 2026
10 checks passed
@giraffesyo
giraffesyo deleted the feat/ui-icon-meanings branch October 19, 2026 01:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant