Tutorja tan-Nunjucks

Makro rrenderjati fuq is-server għal Eleventy, Express jew kwalunkwe pipeline ta' mudelli Node — l-approċċ b'stil GOV.UK, bil-katalogu u l-ganċijiet tal-klassi ta' Lily.

X'se tibni

Formola żgħira ta' kuntatt rrenderjata fuq is-server — qasam b'tikketta, buttuna biex tibgħat, żero tagħbija JavaScript — l-ewwel għarwiena, imbagħad bi stil, f'madwar 10 minuti.

Qabel ma tibda

Għandek bżonn git, Node 22 jew iktar ġdid, u pnpm 10 jew iktar ġdid. Kwalunkwe pipeline Nunjucks jaħdem — Eleventy, Express jew Nunjucks sempliċi.

Pass 1 — Ġib il-kodiċi

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

Kull komponent huwa direttorju fi components/ b' macro.njk, it-test tiegħu u d-dokumentazzjoni tiegħu — pereżempju components/button/macro.njk. Immira l-loader Nunjucks tiegħek lejn components/ (f'Eleventy, żidu mat-triq tal-includes) u importa dak li għandek bżonn.

Pass 2 — L-ewwel komponent tiegħek

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

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

Jirrendi <button class="button" type="submit">Save</button>. Il-makro jieħdu oġġett params wieħed: text (b'escape) jew html (mhux ipproċessat), type, label għal aria-labelu mqabbad tal-ganċ tal-klassi.

Pass 3 — Ikkomponi formola żgħira

{% 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>

Peress li kollox jiġi rrenderjat fuq is-server, il-browser jirċievi HTML semantiku pur bil-ganċijiet tal-klassi — tagħbija JavaScript ta' żero bytes.

Iċċekkja x-xogħol tiegħek: tella' l-paġna u l-formola tidher għarwiena — eżattament kif intenzjonat: l-istil għad irid jiġi. Agħfas Tab: il-focus jgħaddi minn kull kontroll, it-tikketta tiġi mħabbra u l-ibgħat jaħdem. Il-mġiba lesta; id-dehra hija tiegħek u hija l-pass li jmiss.

Pass 4 — Agħtiha stil

Agħti stil lill-ganċijiet — .button, .text-input, .label, .field — fl-istylesheet tiegħek, jew evita tema lesta fil-layout bażi tiegħek:

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

Pass 5 — Ara kollox jaħdem

L-app eżempju Nunjucks + Eleventy tibni l-katalogu sħiħ bħala sit statiku b'paġni ta' dimostrazzjoni għal kull 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

Passi li jmiss

Mistoqsijiet matul it-triq? Il-paġna tal-għajnuna hija mimlija tweġibiet — u jekk pass jista' jkun iktar ċar, għidilna u nħossuna kuntenti ntejbu t-tutorja.