button: Refactor for `view` modifier

+ update documentaion

closes #897