„Svelte“ vadovas
„Lily“ „Svelte“ biblioteka yra kanoninis įgyvendinimas: „Svelte 5“ runos, tipizuoti propai, likusių propų paskleidimas ir dvipusis susiejimas su
bind:value.
Ką sukursite
Nedidelė kontaktų forma — laukas su žyma, siuntimo mygtukas, dvipusis susiejimas, tikras klaviatūros ir ekrano skaitytuvo elgesys — pirma plika, paskui apipavidalinta, per maždaug 10 minučių.
Prieš pradedant
Reikia git, Node 22 ar naujesnės ir pnpm 10 ar naujesnio. Tinka bet kuris „Svelte 5“ projektas — visiškai nauja npx sv create programa pakanka.
1 žingsnis — Gaukite kodą
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
Komponentai yra aplanke src/lib/components/{Name}/, vienas katalogas kiekvienam komponentui su .svelte byla, jo testais, story ir dokumentacija greta. Nukopijuokite reikalingus katalogus į savo programą arba priklausykite nuo saugyklos ir importuokite tiesiogiai.
2 žingsnis — Jūsų pirmasis komponentas
<script>
import Button from "#lib/components/Button/Button.svelte";
function save() { console.log("saved"); }
</script>
<Button onclick={save}>Save</Button>
Atvaizduoja <button class="button" type="button">. Propai tipizuoti: type, disabled,
pressed (atvaizduoja aria-pressed (atvaizduoja label ( aria-label perjungimo mygtukams),
3 žingsnis — Sudėkite nedidelę formą
<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 priima matomą label kaip savo prop vietoj įdėto žymos komponento — perduokite ją vieną kartą, prie Fieldir TextInputiš label suteikia prieinamą pavadinimą. TextInput's value norint pakeisti), o bet koks papildomas atributas paskleidžiamas ant šaknies.
$bindable yra bind:value rune prop, todėl
Patikrinta 2026-08-29: iš karto suteikia dvipusį susiejimą. svelte/server būtent šis fragmentas buvo sukompiliuotas per <label for> ir patikrintas dėl vienintelės, teisingai susietos žymos Label viduje Field— ankstesnis juodraštis įdėjo atskirą
dvi žymos (viena tuščia), nes Field jau pats atvaizduoja savo iš label viduje, kuris atvaizdavo
Sudėtinis kontaktų formos maršrutas
yra tas pats šablonas, išbandytas tikrais e2e ir axe testais.
Patikrinkite savo darbą: paleiskite programą ir forma atrodo plika — kaip ir numatyta: stilius dar laukia. Paspauskite Tab: fokusas pereina per kiekvieną valdiklį, žyma paskelbiama, o siuntimas veikia. Elgesys baigtas; išvaizda jūsų ir yra kitas žingsnis.
4 žingsnis — Apipavidalinkite
Viskas aukščiau atvaizduojama kaip gryna struktūra, paruošta jūsų stiliams. Apipavidalinkite klasių kablius —
.button, .text-input, .label,
.field — savo visuotinėje stilių lentelėje arba susiekite paruoštą temą faile app.html:
<link rel="stylesheet" href="/themes/dark.css" />
Koregavimai kiekvienam egzemplioriui eina per class prop, kuris pridedamas prie bazinio kablio: <Button class="wide"> atvaizduoja
class="button wide".
5 žingsnis — Pažiūrėkite, kaip viskas veikia
„SvelteKit“ pavyzdinė programa yra tas pats katalogas visiškai apipavidalintas, su gyvomis demonstracijomis, „Playwright“ e2e testais ir axe-core prieinamumo pradine riba:
git clone https://github.com/LilyDesignSystem/lily-design-system
cd lily-design-system/lily-design-system-svelte-sveltekit-examples
pnpm install && pnpm run dev
Tolesni žingsniai
- Temos — perjungimas vykdymo metu su „Svelte“ pagalbininku theme-picker.
- Nuostatų pagalbininkai — kalba ir teksto dydis.
- Komponentų katalogas — savybės, ARIA ir klaviatūra kiekvienam komponentui.
Klausimų pakeliui? Pagalbos puslapis pilnas atsakymų — o jei kuris nors žingsnis galėtų būti aiškesnis, pasakykite mums ir mielai patobulinsime vadovą.