Mafunzo ya Svelte

Maktaba ya Svelte ya Lily ndiyo utekelezaji wa msingi: runes za Svelte 5, sifa zenye aina, usambazaji wa sifa zilizosalia, na uunganishaji wa pande mbili kwa bind:value.

Utakachojenga

Fomu ndogo ya mawasiliano — pembejeo yenye lebo, kitufe cha kutuma, uunganishaji wa pande mbili, tabia halisi ya kibodi na kisomaji skrini — kwanza bila mapambo, kisha ikiwa na mapambo, kwa takriban dakika 10.

Kabla ya kuanza

Unahitaji git, Node 22 au zaidi, na pnpm 10 au zaidi. Mradi wowote wa Svelte 5 unafaa — mpya kabisa npx sv create programu inatosha.

Hatua ya 1 — Pata msimbo

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

Vipengele viko katika src/lib/components/{Name}/, saraka moja kwa kila kipengele ikiwa na faili ya .svelte , majaribio yake, hadithi zake, na nyaraka zake kando kwa kando. Nakili saraka unazohitaji kwenye programu yako, au tegemea hifadhi na uingize moja kwa moja.

Hatua ya 2 — Kipengele chako cha kwanza

<script>
  import Button from "#lib/components/Button/Button.svelte";

  function save() { console.log("saved"); }
</script>

<Button onclick={save}>Save</Button>

Huonyesha <button class="button" type="button">. Sifa zina aina: type, disabled, pressed (huonyesha aria-pressed (huonyesha label ( aria-label kwa vitufe vya kubadili),

Hatua ya 3 — Unda fomu ndogo

<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 huchukua label kama sifa yake yenyewe badala ya kipengele cha lebo kilichowekwa ndani — ipitishe mara moja, kwenye Field, na TextInputinayolingana label hutoa jina linalofikika. TextInput's value kubatilisha), na sifa yoyote ya ziada husambaa kwenye mzizi. $bindable ni sifa ya rune ya bind:value hivyo

Imethibitishwa 2026-08-29: hukupa uunganishaji wa pande mbili mara moja. svelte/server kijisehemu hiki hasa kilikusanywa kupitia <label for> na kuthibitishwa kuwa na lebo moja tu iliyounganishwa ipasavyo Label ndani ya Field— rasimu ya awali iliweka mbili lebo (moja tupu) kwa sababu Field tayari huonyesha lebo yake yenyewe kutoka kwenye label tofauti ndani yake, ambayo iliyoonyesha Njia ya fomu ya mawasiliano iliyounganishwa ni mchoro uleule, uliojaribiwa kwa majaribio halisi ya e2e na axe.

Hakiki kazi yako: endesha programu na fomu inaonekana ya kawaida — kama ilivyokusudiwa: mapambo bado yanakuja. Bonyeza Tab: umakini husogea kwenye kila kidhibiti, lebo inatangazwa, na kutuma kunafanya kazi. Tabia imekamilika; mwonekano ni wako, na ndio unaofuata.

Hatua ya 4 — Ipambe

Kila kitu hapo juu huonyeshwa kama muundo safi, tayari kwa mitindo yako. Pamba vishikio vya darasa — .button, .text-input, .label, .field — katika karatasi yako ya mitindo ya jumla, au unganisha mandhari yaliyo tayari katika app.html:

<link rel="stylesheet" href="/themes/dark.css" />

Marekebisho kwa kila mfano hupitia class sifa, ambayo huongezwa kwenye kishikio cha msingi: <Button class="wide"> huonyesha class="button wide".

Hatua ya 5 — Ona kila kitu kikifanya kazi

Programu ya mifano ya SvelteKit ni orodha ileile yenye mapambo kamili, ikiwa na maonyesho ya moja kwa moja, majaribio ya Playwright e2e, na msingi wa ufikivu wa axe-core:

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

Hatua zinazofuata

Una maswali njiani? Ukurasa wa msaada umejaa majibu — na kama hatua inaweza kuwa wazi zaidi, tuambie na tutafurahi kuboresha mafunzo.