UI: implement variants (different sets of widget states - e.g. for menu buttons you could have different variants "default" and "submenu")