Canvas UI and state manager