Skip to content

ui_color is ignored for Taskgroup and custom operators in airflow 3.0.4 #54474

Closed

Description

@waqas-saeed

Apache Airflow version

3.0.4

If "Other Airflow 2 version" selected, which one?

No response

What happened?

class MyCustomSnowflakeOperator(SQLExecuteQueryOperator):

    ui_color = "#F54927"

... here goes the code for custom operator

when I was running with Airflow 2.10.3 this colour was respected and I could see my task in this color just fine.

Now I've upgraded to airflow 3.0.4 and all I can see is just plain white background and this colour is completely ignored.

What you think should happen instead?

In taskgroup or in customer operator, if we are providing ui_colour value then it should be respected and should be visualised in airflow UI. This allows us to easily identify different types of operators in our DAG... It also allows us to organise the DAG a bit better as well.

How to reproduce

Just create any customer operator like the example above and define ui_color value and it will be ignored by Airflow UI
I created a custom operator called SomeSnowflakeOperator and here is the DAG UI - as you can see all the SomeSnowflakeOperator tasks are in white background

Image

taskgroup was also provided with ui_color but it was also ignored

here is the taskgroup code

def task_group() -> TaskGroup:

    with TaskGroup('create_snowflake_objects', ui_color="ff7f00") as tg:

        SomeSnowflakeOperator(
            task_id="create_weekly_dates_table",
            sql="snowflake_objects/create_weekly_dates.sql",
        )

        SomeSnowflakeOperator(
            task_id="some_other_task2",
            sql="snowflake_objects/some_other_task2.sql",
        )

        SomeSnowflakeOperator(
            task_id="some_other_task3",
            sql="snowflake_objects/some_other_task3.sql",
        )

    return tg

SomeSnowflakeOperator class

class SomeSnowflakeOperator(SQLExecuteQueryOperator):

    ui_color = "#F54927"

Operating System

MacOS

Versions of Apache Airflow Providers

3.0.4

Deployment

Docker-Compose

Deployment details

No response

Anything else?

No response

Are you willing to submit PR?

  • Yes I am willing to submit a PR!

Code of Conduct

Activity

  1. boring-cyborg commented on Aug 13, 2025

    @boring-cyborg

    Thanks for opening your first issue here! Be sure to follow the issue template! If you are willing to raise PR to address this issue please do so, no need to wait for approval.

  2. added
    area:UIRelated to UI/UX. For Frontend Developers.
    on Aug 13, 2025
  3. jroachgolf84 commented on Aug 14, 2025

    @jroachgolf84
    Collaborator

    @waqas-saeed, was this working in any other version of Airflow 3.0.X?

  4. waqas-saeed commented on Aug 14, 2025

    @waqas-saeed
    Author

    @waqas-saeed, was this working in any other version of Airflow 3.0.X?

    yep - it's working fine with Airflow version 2.10.3. I can change colours just fine and I can see it in my DAG UI too. it's only 3.0.4 I'm currently trying to upgrade to isn't working

  5. tirkarthi commented on Aug 14, 2025

    @tirkarthi
    Contributor
  6. changed the title [-]ui_color is ignored for Taskgroup and custom operators in airflor 3.0.4[/-] [+]ui_color is ignored for Taskgroup and custom operators in airflow 3.0.4[/+] on Aug 14, 2025
  7. waqas-saeed commented on Aug 14, 2025

    @waqas-saeed
    Author

    updated more info on how to reproduce it.

  8. waqas-saeed commented on Aug 14, 2025

    @waqas-saeed
    Author

    hi @nrnavaneet is this something you can help with?

  9. nrnavaneet commented on Aug 14, 2025

    @nrnavaneet
    Contributor

    Sure ! Let me see what might be the issue and give it a shot on fixing it :). Lmk if uve got any specifications I can use other than what uve mentioned

  10. waqas-saeed commented on Aug 14, 2025

    @waqas-saeed
    Author

    @nrnavaneet thanks so much for your reply - all I want is to override ui_color and ui_fgcolor for my custome operators. This is very useful to quickly see which task is performing what operations.

    The additional thing would be to have the same ability for TaskGroups.

  11. nrnavaneet commented on Aug 15, 2025

    @nrnavaneet
    Contributor

    Got it ! Thank you.

  12. added and removed
    needs-triagelabel for new issues that we didn't triage yet
    on Aug 15, 2025
  13. waqas-saeed commented on Aug 16, 2025

    @waqas-saeed
    Author

    Once this is fixed, I'm curious to know how this will work when dark mode is on...

  14. pierrejeambrun commented on Aug 19, 2025

    @pierrejeambrun
    Member

    I think these are remnants of airflow 2 but the intent was to remove this feature completely. #43519

    We need to think about other ways to achieve UI customization from a broader perspective without going through dag authoring.

    I considered closing this but maybe we can recycle it into a broader 'UI customization' ticket?

    cc: @bbovenzi

  15. mallman-experian commented on Jan 30, 2026

    @mallman-experian

    I'm confused. If we remove this functionality how do we set custom task colors for the UI?

  16. pierrejeambrun commented on Feb 5, 2026

    @pierrejeambrun
    Member

    Between the TI states colors and the custom one the UI was becoming really quickly a mess. Also for accessibility custom colors are often a bad option and it wouldn't play nicely with dark and light theme. (we would need a ui_color_dark, ui_color_light, etc...).

    We chose to remove this feature until we can find a better approach for this. So in airflow 3 you cannot customize the tasks colors for now. You can rely on operator names to identify them visually, I know it's not the same as custom colors.

    Maybe via the custom UI theming coming in airflow 3 we can achieve something similar. (adapt it to make it work or offer an interface to do so at least) I would have to investigate further.

  17. bbovenzi commented on Feb 11, 2026

    @bbovenzi
    Contributor

    Not a bug, this was intentionally removed in 3.0. We needed to have the UI be more opinionated and rely less on the backend telling it how to display. But I won't close this, because we can find a away to reintroduce this feature.

  18. tyger commented on Apr 28, 2026

    @tyger

    I appreciate all the work done to improve the UI in Airflow 3, but this change really looks like step back - it simply reduces customisation aspect of Airflow.
    I believe colour customisation has its place and does provide distinct visual clue about nature of individual Tasks in very big DAGs. Internally we see it as a downgrade.

    Probably it's to late to make suggestion, but I could see several options how it could be done:

    • Add default configuration that would have the same effect - disable colouring, that would allow to keep behaviour for those users that really need it.
    • If real concern how it is going to look like in the dark mode - introduce two pairs of colours so that developers could adopt their colouring scheme for light and dark modes in UI.

    Right now it feels rushed without providing any alternative really...

  19. cwormsl2 commented on Jun 18, 2026

    @cwormsl2

    I want to echo the sentiment @tyger shared. This feature being removed is a huge downgrade, and actively makes the Airflow experience worse. When I have a DAG with 100+ tasks and I zoom out to view the graph, it's impossible to rely on the operator names. The color coding of the operator types was a quick, and efficient way to view a DAG at a quick glance to get a sense of it.

    This feels like a change that was made without regard for the customer experience, and doesn't seem to take into account how DAG owners are actually interacting with the UI.

    Would love to see this feature re-introduced!

  20. rohanvarshney commented on Jun 18, 2026

    @rohanvarshney

    I want to echo the sentiment @tyger shared.

    Following up on this! In Airflow 2, teams were able to visually distinguish task types at a glance (e.g., SparkOperator vs. PrestoOperator vs. TaskSensor). This feature removal is a significant usability loss for us. The color coding made it possible to understand a DAG's composition quickly without reading individual task labels. We'd love to see this reintroduced in a way that works within the new light/dark theming system, whether through a curated set of accessible per-operator-type colors, a standardized ui_color API that maps to theme-safe values, or another mechanism that preserves the quick visual parsing that made the old behavior so valuable.

  21. dkibets commented on Jun 18, 2026

    @dkibets

    I want to echo the sentiments shared by @tyger, @cwormsl2, and @rohanvarshney. Removing ui_color is a massive usability downgrade, especially for complex pipelines.

    For my team, losing this feature directly impacts how we read DAG design patterns:

    • Pattern Recognition: Many of our DAGs strictly follow standard processing phases (e.g., Load, Validate, Promote). Using distinct colors for the operators in each phase makes these structural patterns instantly recognizable at a glance.
    • Navigation at Scale: When zoomed out on a DAG with 100+ tasks, relying on text labels is impossible. Color-coding provides the immediate visual mapping needed to understand or debug the pipeline's flow.

    Instead of removing the feature entirely over theme/accessibility concerns, please consider reintroducing it with modern guardrails—like allowing ui_color_light / ui_color_dark fields or mapping to a theme-safe palette. I would definitely love to see this feature brought back!

  22. sofiamaterynska-lyft commented on Jun 19, 2026

    @sofiamaterynska-lyft

    Adding my voice to the feedback here - the removal of ui_color is a meaningful usability regression for teams like ours managing DAGs at scale. When zoomed out on a multi-task graph, color-coded operators are the only practical way to parse pipeline structure and distinguish operator types at a glance. We'd strongly welcome a path forward such as ui_color_light/ui_color_dark pairs or a curated theme-safe palette that preserves this capability within the new theming system.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions