Programmable Button Colors


Screenshot from 2023-06-30 19-23-01

Hey fellow Coda enthusiasts! I hope you’re all having a great day. I wanted to take a moment to share an exciting feature idea that I believe would greatly enhance our experience with buttons in Coda. Currently, buttons serve as fantastic tools for organization and interaction within our workspace. However, there is one crucial feature missing—the ability to change button colors based on different states or conditions.

Feature Description:

The proposed feature is to introduce programmable button colors in Coda. With this enhancement, users would gain the ability to define and assign specific colors to buttons based on different states or conditions. Let’s explore an example to illustrate the potential benefits of this feature:

  • By incorporating conditional formatting for button colors, we could dynamically adjust their appearance based on specified criteria. For instance, we could define a condition where a button turns blue if a related task is overdue or becomes green once completed. This capability would empower users to create highly personalized and intuitive workflows tailored to their specific needs.


Incorporating the ability to program button colors in Coda would be a valuable addition that enhances the platform’s functionality and flexibility. It would allow users to create visually rich workspaces, intuitively manage tasks, and personalize their experience. With this feature, Coda would further solidify its position as a leading productivity tool, empowering users to unlock their full potential.

Thank you for considering this feature request, let’s keep building :building_construction:

Isn’t that already possible with some formula language? :thinking:
I guess it is…


Yeah, I too would like the official way to dynamically set the icon and the color.

Meanwhile there’s that Button() hidden formula…


Hey, @Paul_Danyliuk, thank you for the fantastic response. It really got me brainstorming about a neat idea. What if, upon clicking a button, we could magically spawn a brand new button in the document? It seems like this might require some kind of clever trickery with actionBuilderOptions. Do you think this could be doable? It’s like having the ability to dynamically create user interfaces right within the document. If that’s possible, it would be absolutely wild!

In a way, generating new controls is possible by abusing canvas columns. E.g., here in this gif I’m creating new inputs; same could be done with buttons:

BTW you don’t need to resort to the Button() formula either; you can create buttons in the global namespace with canvas columns too.

Regarding actionBuilderOptions, I have no idea what that argument does. I never dug into what that was for; I guess something system.

P.S. For a mind-blowing example with dynamic buttons, you can see the “calendar UI” with buttons in a popup I built here:

Or this old thing: