New button designs

Holding this open for review at the moment.
Agreed, I held off on adding `style` and `size` in there which are cosmetic data and should not be part of the data payload (the currently are).