Totally just my personal opinion, but I think a button should indicate the intended behavior.
The Following example doesn't completely offend me, only cause I know it was Follow 'before' I clicked it (however long ago it was).
The Save example here doesn't bother me a ton, mostly because of the hover state + the know the Save button used to be there so it makes sense thats where un-save lives too
I think I would change both to their intended action, and maybe use something else to display the state? :shrug:
I second this. In most cases, it seems more clear to show the intended action rather than the current state. My thought on this falls back to what feels natural to the average user. For instance, as I'm typing this on my phone, I see a "Submit" button. I know that clicking it will submit this post. But what if it showed "Not Submitted" instead? Would I know to click it to send it? Probably not. At least not right away. But it's a matter of context as with most things and highly subjective as well. I think I err more on the side of "what buttons are considered the most important/most used, and how do I make it most obvious what their function is? " Keeping them simple and easy to understand, I believe most people will pick up the more intricate buttons through experimentation on their own. Ya know, give them enough to understand basic functionality, but not so much that they lose curiosity. DEV seems to balance that line very well so far.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.