Copy-pasting button markup across twenty pages works until you need a new variant or an accessibility fix. Then you hunt through the whole site.
A predictable API
{% include components/button.html
label="Get Started"
href="/pricing/"
variant="primary"
size="lg"
%}
Every component in this framework follows the same ideas:
- Named parameters with sensible defaults
- Optional parameters never emit invalid HTML
- Variants and sizes as explicit strings
- Extra
class/id/aria_labelwhen needed
Commercial templates
When the framework is the base for SaaS, Agency, and Portfolio themes, the template author should mostly write layouts, pages, and content — not rewrite buttons and modals. That is only possible if the component API is stable and documented.