I recently read the "Should 'Yes, delete it' be read or green" (Should "Yes, delete it" be red, or green?) thread and was impressed with the responses. I'm currently having a very similar problem with buttons in an interface that reflect state.
The buttons cause two separate background processes to pause or resume. The default state is that the process is running, but if they're not this should immediatly be visible.
- Button has the color of the state (green for resumed, red for paused)
- Button has the color of the action you're about to perform (pausing the job, or resuming it)
Both have their problems, and neither seems logical. The labels have always been "stop the job" or "start the job". Because these buttons are part of the interface, an accompanying label isn't the easiest to add. Here's a screenshot of how it looks right now:
The TLDR of the problem is: you want to instantly see the state of the jobs, most importantly when the job is paused. But it also has to be clear what the button does: start the job, or stop it
Any tips are much appreciated!