Blazor-Tutorial
Komponente vun enger Razor-Klassebibliothéik mat Parameteren, ChildContent
Render-Fragmenter, Attribut-Splatting an ee bUnit-Test pro Komponent.
Wat Dir bauen wäert
E klengt Kontaktformulaire — Feld mat Etikett, Schécken-Knäppchen,
@bind-Value -Bindung, richtegt Tastatur- an Écranliesser-Verhalen — fir d'éischt nackeg, duerno gestalt, an ongeféier 10 Minutten.
Ier Dir ufänkt
Dir braucht git an den .NET SDK 8 oder méi nei. All Blazor Projet funktionéiert — Blazor Web App, Server oder WebAssembly.
Schrëtt 1 — D'Code kréien
git clone https://github.com/LilyDesignSystem/lily-design-system
cd lily-design-system/lily-design-system-blazor-headless
dotnet build
dotnet test # bUnit — 1,400+ cases across the catalog
D'Komponente sinn am src/LilyBlazorHeadless/Components/ —
Button.razor, TextInput.razor — eng Razor-Datei jidd. Referenzéiert de Projet (oder kopéiert d'Dateien) aus Ärer Blazor-App a füügt @using LilyBlazorHeadless.Components bäi zu
_Imports.razor.
Schrëtt 2 — Är éischt Komponent
<Button OnClick="Save">Save</Button>
Rendert <button class="button">. D'gemeinsam Parameterkonventiounen: Label (en aria-label zum Iwwerschreiwen),
CssClass (gëtt un de Basis-Hook ugehaang),
ChildContentan
[Parameter(CaptureUnmatchedValues = true)] Attribut-Splatting, sou datt all zousätzlechen HTML-Attribut duerchgeleet gëtt.
Schrëtt 3 — E klengt Formulaire zesummestellen
<Form OnSubmit="HandleSubmit">
<Field Label="Full name" Required="true">
<TextInput Id="name" Label="Full name" @bind-Value="name" Required="true" />
</Field>
<Button Type="submit">Save</Button>
</Form>
@code {
private string name = "";
}
Field hëlt dat siichtbart Label als säin eegene Parameter amplaz vun enger verschachtelter Etikett-Komponent — gitt et eemol weider, bei
Fieldan TextInputvun
Label liwwert den zougänglechen Numm.
Gepréift den 2026-08-29: en ale Brouillon huet eng separat Label -Komponent an Fieldverschachtelt, wat zwee Etiketten (eng eidel) gerendert huet, well Field
schonn säin eegenen aus dem Label -Parameter — entdeckt duerch d'Kontroll vum Quellcode vun der Komponent; Form selwer huet keen Label -Parameter, dofir gouf d'Benotzung vun
<Form> aus dem ale Brouillon korrigéiert andeems et ewechgelooss gouf, amplaz en Attribut z'erfannen, dat net existéiert.
Déi zesummegesat Kontaktformulaire-Route
ass datselwecht Muster, getest mat richtegen e2e- an axe-Tester.
Kontrolléiert Är Aarbecht: start d'App an d'Formulaire gesäit nackeg aus — genee wéi geduecht: d'Gestaltung kënnt nach. Dréckt Tab: de Fokus geet duerch all Kontroll, d'Etikett gëtt ugekënnegt an d'Schécken funktionéiert. D'Verhalen ass fäerdeg; d'Ausgesi ass Är a kënnt als Nächst.
Schrëtt 4 — Gestalt et
Gestalt d'Klassen-Hooks — .button, .text-input,
.label, .field — am app.css, oder verlinkt en fäerdegt Thema am App.razor /
index.html:
<link rel="stylesheet" href="themes/wireframe.css" />
Schrëtt 5 — Alles am Aktioun gesinn
Blazor-Web Beispill-App weist de ganze Katalog gestalt an demonstréiert, mat Playwright e2e-Tester:
git clone https://github.com/LilyDesignSystem/lily-design-system
cd lily-design-system/lily-design-system-blazor-web-examples
dotnet run --project src/LilyBlazorWebExamples
Nächst Schrëtt
- Themen — Wiessel zur Laafzäit mam Blazor-Helper theme-picker (eng Razor-Klassebibliothéik op NuGet).
- Astellungs-Helperen — Sprooch a Textgréisst.
- Komponentekatalog — Eegeschaften, ARIA an Tastatur pro Komponent.
Froen ënnerwee? D'Hëllefsäit ass voller Äntwerten — a wann e Schrëtt méi kloer kéint sinn, soot et eis a mir verbesseren den Tutorial gär.