Responding to review comments

- Use self.X instead of underlying variables
- Use functor for colour
- self.titleColor returns a function, not a colour
- Theme uses correct ordering of <fontsize> <fontcolor>