If a ui button is clicked, you have to move the mouse off and click to revert to normal color or animation

what fixes this?

Add these lines to Start function of any script in your scene, or create a new script

 void Start() {
		Button[] allButton = FindObjectsOfType<Button>();
		foreach (Button button in allButton) {
			button.onClick.AddListener(delegate {
				UnityEngine.EventSystems.EventSystem.current.SetSelectedGameObject(null, null);
			});
		}
    }