Color the favicon by the status of the workflow being viewed - #3900
Open
MoLow wants to merge 1 commit into
Open
Conversation
A workflow run page is something you leave open and come back to. Until you come back, the tab tells you nothing: every tab carries the same black Temporal mark, so finding the run that just failed means clicking through them. Tint the mark instead. The disc takes the colour of the status badge's scheme, so a strip of tabs reads at a glance, and the glyph and its proportions are the ones already shipped in favicon.ico. Any page that is not a workflow run keeps the static icon. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
@MoLow is attempting to deploy a commit to the Temporal Team on Vercel. A member of the Team first needs to authorize it. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description & motivation 💭
A workflow run page is a page you leave open and come back to — while a backfill grinds, while a flaky run retries. Until you come back, the tab tells you nothing: every Temporal tab carries the same black mark, so finding the run that just failed means clicking through them.
This tints that mark. On a workflow run page the favicon's disc takes the colour of the status badge's scheme, and goes back to the static icon everywhere else. It follows the status live — terminate a running workflow with the tab open and the icon turns without a reload, because it is derived from the same
workflowRunstore the header renders from.The glyph, its proportions and the disc are the ones already shipped in
favicon.ico— only the disc's fill changes.Screenshots (if applicable) 📸
Top row at 64px, bottom row the actual 16px rendering (pixel-doubled):
Design Considerations 🎨
Two choices worth a second opinion:
BadgeStatususes, taken at step 11 of that scheme's scale — the step dark enough that the knocked-out white glyph still holds at 16px.Canceledis the one exception: its badge scheme isneutral, and neutral's step 11 is so close to black that the icon would be indistinguishable from the static one, so it usesslate[9].Running/PausedandCompleted/ContinuedAsNewshare a colour, because their badges do. Happy to split them if you would rather the icon be more granular than the badge.The mark is drawn as an inline SVG
data:URI. The path is a copy ofvendor/logo.svg— adata:URI cannot reference an external asset, so it has to be inlined somewhere.Also happy to open an issue first and discuss the idea before this gets reviewed, if that is the preferred order.
Testing 🧪
How was this tested 👻
Unit tests cover the status → icon mapping and the store's fallback to no icon once the workflow run is cleared.
Manually verified in Chromium against a local
temporal server start-dev, readinglink[rel~="icon"]off the live page:pnpm lintandpnpm checkare clean, andpnpm test --runpasses.Steps for others to test: 🚶🏽♂️🚶🏽♀️
pnpm dev:temporal-clitemporal workflow start --task-queue demo-q --type DemoWorkflow --workflow-id wf-1temporal workflow terminate --workflow-id wf-1 --reason demoand watch the icon turn amber without reloading.Docs
Any docs updates needed?
No.
🤖 Generated with Claude Code