{% macro button(label, variant="primary", size="md", type="button", href=None, class_name="", disabled=False) -%} {% set variants = { "primary": "bg-slate-900 text-white hover:bg-slate-700 focus-visible:outline-slate-900", "secondary": "bg-white text-slate-900 ring-1 ring-inset ring-slate-300 hover:bg-slate-50 focus-visible:outline-slate-900", "danger": "bg-red-600 text-white hover:bg-red-500 focus-visible:outline-red-600" } %} {% set sizes = { "sm": "rounded-md px-3 py-2 text-sm", "md": "rounded-lg px-4 py-2.5 text-sm", "lg": "rounded-lg px-5 py-3 text-base" } %} {% set classes = "inline-flex items-center justify-center gap-2 font-semibold shadow-sm transition focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 disabled:pointer-events-none disabled:opacity-50 " ~ variants.get(variant, variants["primary"]) ~ " " ~ sizes.get(size, sizes["md"]) ~ " " ~ class_name %} {% if href %} {{ label }} {% else %} {% endif %} {%- endmacro %}