Using Nunjucks Macros in Eleventy

Nunjucks macros allows you to define reusable UI components that can be imported in your Eleventy pages when using the Nunjucks templating language:

{%- macro button(params) -%}
<button type="{{ params.type }}">{{ params.text }}</button>
{%- endmacro -%}

Importing the macro in your page by referencing the filename and the macro name:

{%- from "button.macro.njk" import button -%}

{{ button({ type: "button", text: "Click Me" }) }}