fixes to demo: handle text bounds correctly; and update for Color