UI: distinguish upstream_failed from failed in default state palette#66324
Merged
bbovenzi merged 1 commit intoMay 4, 2026
Merged
Conversation
failed (red.600) and upstream_failed (orange.600) currently differ by ~9° hue at near-identical lightness, producing ΔE2000=6.2 — below the "easily distinguishable" threshold even for normal vision (and collapsing to ΔE=0.4 under deuteranopia). Switch upstream_failed to amber.600 (hue ~58°) so the pair clears ΔE>20 in normal vision while keeping upstream_failed/up_for_retry above ΔE=10. Related: apache#66323
2 tasks
Contributor
bbovenzi
approved these changes
May 4, 2026
Contributor
Backport successfully created: v3-2-testNote: As of Merging PRs targeted for Airflow 3.X In matter of doubt please ask in #release-management Slack channel.
|
bbovenzi
pushed a commit
that referenced
this pull request
May 4, 2026
…66324) (#66365) failed (red.600) and upstream_failed (orange.600) currently differ by ~9° hue at near-identical lightness, producing ΔE2000=6.2 — below the "easily distinguishable" threshold even for normal vision (and collapsing to ΔE=0.4 under deuteranopia). Switch upstream_failed to amber.600 (hue ~58°) so the pair clears ΔE>20 in normal vision while keeping upstream_failed/up_for_retry above ΔE=10. (cherry picked from commit a94a38b) Related: #66323 Co-authored-by: Stefan Wang <1fannnw@gmail.com>
vatsrahul1001
pushed a commit
that referenced
this pull request
May 20, 2026
…66324) (#66365) failed (red.600) and upstream_failed (orange.600) currently differ by ~9° hue at near-identical lightness, producing ΔE2000=6.2 — below the "easily distinguishable" threshold even for normal vision (and collapsing to ΔE=0.4 under deuteranopia). Switch upstream_failed to amber.600 (hue ~58°) so the pair clears ΔE>20 in normal vision while keeping upstream_failed/up_for_retry above ΔE=10. (cherry picked from commit a94a38b) Related: #66323 Co-authored-by: Stefan Wang <1fannnw@gmail.com>
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.


related: #66323
failedandupstream_failedcurrently render with ΔE2000=6.2 in normal vision — below the "easily distinguishable" threshold of ~10. In a Grid view they look like the same color, especially in dense state mixes. Issue #66323 has the full simulation data; this PR is the smallest fix for the immediate normal-vision regression.upstream_failedswitches fromorange.600(hue ~36°) toamber.600(hue ~58°), pushing it clear ofred.600(hue ~27°). Theamberpalette is already defined intheme.tsso no new tokens are introduced.airflow_state_colors.py
Before / after (Brettel/Machado simulation, ΔE2000)
Normal-vision
upstream_failedvsup_for_retrydrops from 24.8 to 10.8 — still above the 10 threshold, so no new normal-vision regression.The deuteranopia collapse of
upstream_failedvsup_for_retry(8.3 → 1.2) is part of the broader colorblind story in #66323. The warm-hue band structurally collapses under deuteranopia regardless of which OKLCH is chosen — fixing that fully needs either a per-user CB-safe preset (Okabe-Ito-derived, what GitHub Primer ships as four theme variants) or a non-warm hue for one of these states. Both are bigger conversations.Filing as a draft to invite discussion. Reasonable alternatives:
amber.600, simplest swap.orange.600OKLCH directly to a higher hue.ThemeColors(Allow gray, black, and white color tokens in AIRFLOW__API__THEME #64232 pattern) to expose state-color tokens.Happy to take it in any direction. If
amber.600is fine, will mark ready, add a newsfragment + tests.