Hack the Trello UI for a Cleaner, Pleasing, Distraction-Free Web Experience

Trello is missing a black background

Having returned to Trello for Individuals (free) after several years, I see it was acquired by Atlassian and now has “Try Premium Free” banners in far too many places, along with persistent nags to the same effect. Also, the columns are all gray and depressing.

Trello Pain Points:

  • Trello has too many distracting “free trial” buttons and banners.
  • The column colors are gray and uninspiring.
  • There is no black or charcoal background option.

Here are some of the distracting “free trial” call-to-action (CTA) buttons:

Even more Trello nags

More Trello nags

Trello nags

My company already pays enterprise fees per seat, but I just want something simple for home organization—without the clutter and nagging—and with a black background.

Trello For Individuals

I’d like to use Trello the way I did before Atlassian bought it—without all the nag banners. Can it just be a board of simple sticky notes again? Is that still possible?


Goal: Create Tampermonkey scripts for Chrome/Brave to make Trello for Individuals awesome again—with custom column colors, a dark background, and no “free trial” nagging call-to-action (CTA) buttons.
Before You Read: I began by creating individual scripts to stack the visual and UX changes I wanted in Trello. If you skip to the end, I eventually rolled them into one robust script after evolving the individual ones.
Important! (Update Sept 25, 2022) Use a browser that supports Manifest V2, like Firefox or Chrome versions before 2023. Chrome, Brave, Edge, and other Chromium-based browsers are transitioning to declarative network requests, which block user scripts and cripple ad blockers (Google profits from ads).

1. Make the Background Black

Trello is missing a black background
Trello is missing a black background

We’re given the choice of pastel colors or a few default backgrounds—but not black. If I’m keeping Trello on a side monitor all day, I’d prefer a low-light theme like solid black. Sure, a black PNG could be used as a background, but really—one line of CSS could fix this, right?

Trello black background
Trello black background

The first Tampermonkey script simply changes the root background color on body:hover. Why on hover? Because this is a React-based site—HTML elements appear, disappear, and morph without reloading the page. You could use CSS !important, but applying the rule on hover is surprisingly effective.


2. Color the Columns

It would be nice if the columns had colors. Instead of managing multiple boards I’d eventually forget about, I’d prefer a single board with several columns representing different projects I can bounce between—like one big physical wall of sticky notes.

Trello has colored columns now

The plan is to detect the column title text, then work backward to style both the column and the container holding the cards. In this example, a column name like [Setup] will trigger a pastel purple theme. Edit the script to add or modify keywords that apply styles to columns.

This script is quite crude, but it sets RGB hex colours in the desired places.


3. Remove Free-Trial and Upgrade Distractions

Here’s what Trello looks like without the nag banners:

Trello free-trial nags are gone

Using the same technique—searching for phrases like “Premium free” and “upgrade”—we can target <span>, <h2>, etc. elements, then walk back up the DOM to find their container elements and eliminate them (well, display: none).


4. Trello Awesomeness in One Script

After working on individual improvements for Trello—and since there’s overlap in how the CSS search algorithm works—I figured, why not roll everything into one script, add some extra zhuzh, and use HSL color format (e.g., color: hsl(74deg 13% 49%)) to create some very cool themes.

Why use HSL color notation? It stands for Hue, Saturation, and Lightness—and it’s great for one reason: if I find a sweet color and want a complementary shade that’s lighter or darker, I’m basically SOL when using the RGB color wheel. What usually happens is I end up with ugly mismatched colors.

RGB is tough

With HSL, if I find a nice color, I can simply adjust the lightness to make it darker or lighter while preserving the original hue and tone. Could I just use alpha on RGB? No—because HTML containers stack and blend visually.

HSL Example

  • HSL(35deg 100% 69%) = #FFBD61
  • HSL(35deg 100% 49%) = #945600

As you can see, reducing the lightness by 20% significantly alters the RGB hex output. HSL gives us a powerful way to create theme variations without the trial-and-error of RGB tweaking. Chrome DevTools includes an HSL toggle—click the arrows in the color picker to cycle between formats.

Trello awesomeness

Customize to your liking. One additional feature: exact CSS rules are injected using the !important directive and applied globally to the DOM’s stylesheet. To improve robustness, a setInterval(..., 1000) loop is used to detect and style new elements every second—because global rules alone aren’t sufficient.

Mutation Observer: Could I have used a MutationObserver on the DOM instead? You bet. However, because this is a React-based site, it uses a shadow DOM, and nodes in the DOM are constantly changing. That means a high-level observer—like one on <body>—would be required. We’d then have to iterate through the entire DOM to detect changes, and for each change, traverse up the ancestor chain to apply CSS. In short, whenever the page updates, we’d have to walk down the DOM, then walk it back up for every CSS override we want to apply—very inefficient.

How to Use

A keyword in the column controls the color. See the screenshot below.

Trello column keywords

To adjust the behavior, tweak the fields in the JavaScript below. For example, if a column contains the word Complete, the green theme is applied. To avoid false matches, I prefer using square brackets—for instance, [Misc] triggers the blue theme.


The Trello Awesomeness Script

Feel free to fork this script on GitHub.

Installation

You can copy and paste the script above into a new Tampermonkey editor, which you can find in the Chrome Web Store. This works in both Chrome and Brave for now.

Install Trello script


Conclusion

Trello awesome featured

With a bit of patience and DevTools magic, we’re able to figure out which elements need to be adjusted or hidden on a React page with mangled CSS class names and a dynamic DOM structure—to apply column colors and remove “free trial” distractions.

Success: We’ve created a Tampermonkey script for Chrome/Brave to make Trello awesome again by adding custom column colors based on partial column names, setting a black background, and removing many “free trial” distractions.