abstract out center color of vertical gradient
don't bother setting default fill for background
compute max width of text based on value range, convert some constructor parameters to options