Friendly advice from Radoslav Stankov: when building a new UI/design system, leave the button component for last. Buttons are the most-used component in an app, carry the most variance, and invite the most bike-shedding. Starting there leads to over-extraction — you usually need to extract a button from existing code, not implement one from scratch. Use plain button helpers first; promote to a component only when the shape is clear.