Nunjucks-vejledning

Servergengivne makroer til Eleventy, Express eller enhver Node-skabelonpipeline — GOV.UK-tilgangen med Lilys katalog og klassekroge.

Det her bygger du

En lille servergengivet kontaktformular — felt med etiket, send-knap, nul JavaScript-last — først nøgen, derefter formgivet, på omkring 10 minutter.

Før du går i gang

Du skal bruge git, Node 22 eller nyere og pnpm 10 eller nyere. Enhver Nunjucks-pipeline virker — Eleventy, Express eller almindelig Nunjucks.

Trin 1 — Hent koden

git clone https://github.com/LilyDesignSystem/lily-design-system
cd lily-design-system/lily-design-system-nunjucks-headless
pnpm install
pnpm test        # vitest rendering every macro

Hver komponent er en mappe i components/ med en macro.njk, sin test og sin dokumentation — for eksempel components/button/macro.njk. Peg din Nunjucks-loader på components/ (i Eleventy tilføjer du den til include-stien) og importér det, du har brug for.

Trin 2 — Din første komponent

{% from "components/button/macro.njk" import button %}

{{ button({ text: "Save", type: "submit" }) }}

Gengiver <button class="button" type="submit">Save</button>. Makroer tager ét params-objekt: text (escapet) eller html (rå), type, label for et aria-labelog en tilføjer til klassekroge.

Trin 3 — Sæt en lille formular sammen

{% from "components/form/macro.njk" import form %}
{% from "components/label/macro.njk" import label %}
{% from "components/text-input/macro.njk" import textInput %}
{% from "components/button/macro.njk" import button %}

<form class="form" method="post">
  <div class="field">
    {{ label({ for: "name", text: "Full name" }) }}
    {{ textInput({ id: "name", name: "name", required: true }) }}
  </div>
  {{ button({ text: "Save", type: "submit" }) }}
</form>

Fordi alt gengives på serveren, modtager browseren ren semantisk HTML med klassekrogene — en JavaScript-last på nul bytes.

Tjek dit arbejde: indlæs siden, og formularen ser nøgen ud — præcis som tilsigtet: formgivningen kommer endnu. Tryk på Tab: fokus flytter sig gennem hver kontrol, etiketten oplæses, og afsendelse virker. Adfærden er færdig; udseendet er dit og er næste skridt.

Trin 4 — Giv den stil

Formgiv krogene — .button, .text-input, .label, .field — i dit typografiark, eller link et færdigt tema i dit basislayout:

<link rel="stylesheet" href="/themes/united-kingdom-government-digital-service.css" />

Trin 5 — Se det hele virke

Nunjucks + Eleventy eksempelapp bygger hele kataloget som et statisk site med demosider pr. komponent:

git clone https://github.com/LilyDesignSystem/lily-design-system
cd lily-design-system/lily-design-system-nunjucks-eleventy-examples
pnpm install && pnpm run dev

Næste skridt

Spørgsmål undervejs? Siden Hjælp er fuld af svar — og hvis et trin kan blive tydeligere, så fortæl os det og vi forbedrer gerne vejledningen.