button: Refactor for `view` modifier

closes #897

/cc @mishanga @gela-d 
borders?