@startuml button_state_diagram [*] --> normal [*] --> disabled normal --> hovered : on mouse enter hovered --> normal : on mouse leave hovered --> tapped : on mouse click down tapped --> hovered : on mouse click up in (the cursor is in button) tapped --> normal : on mouse click up out (the cursor is out of button) normal --> focused : on focus focused --> normal : on unfocus focused --> tapped : on enter press down @enduml