Nunjucks-veiledning

Server-gjengitte makroer for Eleventy, Express eller enhver Node-malrørledning — GOV.UK-aktig tilnærming, med Lilys katalog og klassekroker.

Hva du skal bygge

Et lite server-gjengitt kontaktskjema — inndatafelt med etikett, send-knapp, null JavaScript-nyttelast — først bart, så stilet, på omtrent 10 minutter.

Før du begynner

Du trenger git, Node 22 eller nyere og pnpm 10 eller nyere. Enhver Nunjucks-rørledning fungerer — Eleventy, Express eller ren Nunjucks.

Steg 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 katalog i components/ med en macro.njk, testen sin og dokumentasjonen sin — for eksempel components/button/macro.njk. Pek Nunjucks-lasteren din på components/ (i Eleventy legger du den til includes-stien) og importer det du trenger.

Steg 2 — Din første komponent

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

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

Gjengir <button class="button" type="submit">Save</button>. Makroer tar ett params-objekt: text (escapet) eller html (rå), type, label for en aria-labelog en klassekrok-tilføyer.

Steg 3 — Sett sammen et lite skjema

{% 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 gjengis på serveren, mottar nettleseren ren semantisk HTML med klassekrokene — en JavaScript-nyttelast på null byte.

Sjekk arbeidet ditt: last siden, og skjemaet ser enkelt ut — akkurat som tiltenkt: stilingen ligger fortsatt foran. Trykk Tab: fokus beveger seg gjennom hver kontroll, etiketten kunngjøres og innsending fungerer. Oppførselen er ferdig; utseendet er ditt og er neste.

Steg 4 — Stil det

Stil krokene — .button, .text-input, .label, .field — i stilarket ditt, eller lenk et ferdig tema i baseoppsettet ditt:

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

Steg 5 — Se alt fungere

Nunjucks + Eleventy-eksempelappen bygger hele katalogen som et statisk nettsted med demosider per 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

Neste steg

  • Tema — inkludert Eleventy-informasjonskapselmønsteret for flimmerfritt SSR-temabytte.
  • Preferansehjelpere — språk og tekststørrelse.
  • Komponentkatalog — egenskaper, ARIA og tastatur per komponent.

Spørsmål underveis? hjelpesiden er full av svar — og hvis et steg kan bli tydeligere, fortell oss så forbedrer vi gjerne veiledningen.