Svelte tutoriala
Lilyren Svelte liburutegia inplementazio kanonikoa da: Svelte 5 runes, propa tipatuak, rest-prop hedapena eta bi norabideko lotura honekin:
bind:value.
Zer eraikiko duzun
Harremanetarako formulario txiki bat — etiketadun sarrera, bidaltze-botoia, bi norabideko lotura, teklatu eta pantaila-irakurgailu portaera erreala — lehenik biluzik, gero estilatuta, 10 minutu inguruan.
Hasi aurretik
git, Node 22 edo berriagoa eta pnpm 10 edo berriagoa behar dituzu. Edozein Svelte 5 proiektuk balio du — berri-berria den npx sv create aplikazio bat nahikoa da.
1. pausoa — Lortu kodea
git clone https://github.com/LilyDesignSystem/lily-design-system
cd lily-design-system/lily-design-system-svelte-headless
pnpm install
pnpm test # vitest — thousands of component cases
pnpm run storybook # browse all 571 components
Osagaiak hemen bizi dira: src/lib/components/{Name}/, osagai bakoitzeko direktorio bat .svelte fitxategiarekin, bere probekin, story-ekin eta dokumentazioarekin elkarren ondoan. Kopiatu behar dituzun direktorioak zure aplikaziora, edo egin biltegiaren mendekotasun eta inportatu zuzenean.
2. pausoa — Zure lehen osagaia
<script>
import Button from "#lib/components/Button/Button.svelte";
function save() { console.log("saved"); }
</script>
<Button onclick={save}>Save</Button>
Errendatzen du <button class="button" type="button">. Propak tipatuak dira: type, disabled,
pressed (errendatzen du aria-pressed etengailu-botoietarako), label ( aria-label gainidazketa), eta atributu gehigarri oro erroan hedatzen da.
3. pausoa — Osatu formulario txiki bat
<script>
import Form from "#lib/components/Form/Form.svelte";
import Field from "#lib/components/Field/Field.svelte";
import TextInput from "#lib/components/TextInput/TextInput.svelte";
import Button from "#lib/components/Button/Button.svelte";
let name = $state("");
</script>
<Form label="Contact form" onsubmit={handleSubmit}>
<Field label="Full name" required>
<TextInput id="name" label="Full name" bind:value={name} required />
</Field>
<Button type="submit">Save</Button>
</Form>
Field etiketa ikusgarria label bere propa gisa, etiketa-osagai habiaratu gisa baino — eman behin, Field, eta TextInput-ak label -n TextInput's value
$bindable rune propa da, beraz bind:value bi norabideko lotura ematen dizu berehala.
2026-08-29an egiaztatua: snippet zehatz hau honen bidez konpilatu zen svelte/server eta hau egiaztatu zen: bakarra, ongi lotua <label for> — aurreko zirriborro batek bereizita habiaratzen zuen Label -ren barruan Field, honek errendatzen zuen
bi etiketa errendatzen zituen (bat hutsik) zeren Field -k jada bere etiketa errendatzen baitu label propa. Honek
harremanetarako formulario konposatuaren ibilbideak
patroi bera du, benetako e2e eta axe probekin erabilia.
Egiaztatu zure lana: exekutatu aplikazioa eta formularioa soila ageri da — hain zuzen nahi bezala: estiloa oraindik aurrean dago. Sakatu Tab: fokua kontrol guztietatik pasatzen da, etiketa iragartzen da eta bidalketak funtzionatzen du. Portaera prest dago; itxura zurea da eta hurrengoa da.
4. pausoa — Estilatu
Gainean dagoen guztia egitura huts gisa errendatzen da, zure estilorako prest. Estilatu klase-gakoak —
.button, .text-input, .label,
.field — zure estilo-orri globalean, edo lotu prest dagoen gai bat hemen: app.html:
<link rel="stylesheet" href="/themes/dark.css" />
Instantzia bakoitzeko doikuntzak honen bidez doaz: class propa, oinarrizko gakoari eransten zaiona: <Button class="wide"> errendatzen du
class="button wide".
5. pausoa — Ikusi dena funtzionatzen
SvelteKit adibide-aplikazioa katalogo bera da guztiz estilatuta, demo biziekin, Playwright e2e probekin eta axe-core irisgarritasun oinarri-lerroarekin:
git clone https://github.com/LilyDesignSystem/lily-design-system
cd lily-design-system/lily-design-system-svelte-sveltekit-examples
pnpm install && pnpm run dev
Hurrengo pausoak
- Gaiak — exekuzio-garaiko aldaketa Svelte theme-picker laguntzailearekin.
- Lehentasun-laguntzaileak — hizkuntza eta testu-tamaina.
- Osagai-katalogoa — osagai bakoitzaren propak, ARIA eta teklatua.
Galderarik bidean? laguntza-orriak erantzunez beteta dago — eta pauso bat argiagoa izan badaiteke, esan iezaguzu eta pozik hobetuko dugu tutoriala.