My point is that plain CSS is already good at this. So then you don't need to make more components with their own interface to learn.
<button class="btn large shadow">Edit</button>
.btn {
...default button styles
}
.btn.large {
font-size: larger;
}
.btn.shadow {
box-shadow: 0 0 8px #0004;
}