In regards to you needing to change your button when the design system needs to change I think you may be thinking about how to apply your current naming conventions or methodology as something like sass for instance what you could do is create the default button component and anything that you think you may need to change about that button you have props with defaults already set this way if you have one button requirements you just include it in the prop of that button, if you need to change all of them then you update the default prop.
In other wards instead of doing <button class=“btn-lg><button/> you're doing <Button {...specs}/>.
In other wards instead of doing <button class=“btn-lg><button/> you're doing <Button {...specs}/>.