I made some custom buttons using a combination of control nodes and a TextureButton with no textures. This setup allows me to animate and control the button in ways that Themes made more difficult. It works with localization and keyboard/controller navigation too.
Little test drive on my custom menu buttons