When did BevelButton highlighting changed in macOS

I 'm updating an app which has been around a long time – since 2009. t’s been on the Mac App Store since 2013.
In one area it uses BevelButtons, and the way these appear when “pressed” (Value - True) has changed over the years. One computer where the app runs full time is running Mojave (macOS 10.14 and the last one to support 32-bit apps) and here the button changes to a delicate shade of grey when pressed. It’s almost imperceptible.
On the development machine, running Ventura (macOS 13.5) the button is bright blue when “pressed”.
I need to use different methods of highlighting the button in the 2 cases, but obviously this should be reliable across all the intervening OS versions.

So the question is: with which version of macOS did this behaviour change?


Found one old forum entries about Bevelbuttons:


The hint of interest can be found on archive.org now:
“Archive_org/Apple Developer/Human Interface Guidelines/Bevel Buttons”

Mainly, this link says: “Avoid Bevel buttons”

1 Like

Thanks for this. So the answer seems to be Monterey. And the answer to the unasked question is: change to different control for the next version.

OK, received loud and clear! Thanks!


You should aim for switching to PushButton, but if you absolutely need the icon ability Norman has an open source BevelButton Replacement.

Thanks, I’ll look at that. I actually have these things grouped in twos. The first has a text label and easily be switched. The second has an icon, which changes according to the state. It would be nice to keep that, but i can imagine a situation where the icon is displayed separately from the button. I’‘’ look into the replacement. Thanks!

Canvas is a good replacement if you need graphics inside.

If you need / want icons in Buttons, the macOS natively supports this. It’s just Xojo doesn’t. You can use declares or a plugin to bypass this Xojo limitation.

In other languages it is as simple as below.

Button( "Hello World", systemImage: "wave" ) {
    // --- Do cool things here.

Yeah, still missing this feature. :wink:

At this point, don’t expect it to happen. If icons in buttons is really important to you, either use a plugin or a different development tool.

Canvas.Paint is a good workaround. :wink: