Blazor ਟਿਊਟੋਰਿਅਲ

ਪੈਰਾਮੀਟਰਾਂ ਵਾਲੇ Razor ਕਲਾਸ ਲਾਇਬ੍ਰੇਰੀ ਕੰਪੋਨੈਂਟ, ChildContent ਰੈਂਡਰ ਫ਼੍ਰੈਗਮੈਂਟ, ਗੁਣ ਫੈਲਾਅ ਅਤੇ ਹਰ ਕੰਪੋਨੈਂਟ ਲਈ ਇੱਕ bUnit ਟੈਸਟ।

ਤੁਸੀਂ ਕੀ ਬਣਾਓਗੇ

ਇੱਕ ਛੋਟਾ ਸੰਪਰਕ ਫ਼ਾਰਮ — ਲੇਬਲ ਵਾਲਾ ਖੇਤਰ, ਜਮ੍ਹਾਂ ਕਰਨ ਦਾ ਬਟਨ, @bind-Value ਬਾਈਂਡਿੰਗ, ਅਸਲੀ ਕੀਬੋਰਡ ਅਤੇ ਸਕ੍ਰੀਨ-ਰੀਡਰ ਵਿਹਾਰ — ਪਹਿਲਾਂ ਨੰਗਾ, ਫਿਰ ਸਟਾਈਲ ਕੀਤਾ, ਲਗਭਗ 10 ਮਿੰਟਾਂ ਵਿੱਚ।

ਸ਼ੁਰੂ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ

ਤੁਹਾਨੂੰ git ਅਤੇ .NET SDK 8 ਜਾਂ ਨਵਾਂ ਚਾਹੀਦਾ ਹੈ। ਕੋਈ ਵੀ Blazor ਪ੍ਰੋਜੈਕਟ ਚੱਲੇਗਾ — Blazor Web App, Server ਜਾਂ WebAssembly।

ਪੜਾਅ 1 — ਕੋਡ ਪ੍ਰਾਪਤ ਕਰੋ

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

ਕੰਪੋਨੈਂਟ ਇੱਥੇ ਰਹਿੰਦੇ ਹਨ: src/LilyBlazorHeadless/Components/ — Button.razor, TextInput.razor — ਹਰ ਇੱਕ ਲਈ ਇੱਕ Razor ਫ਼ਾਈਲ। ਆਪਣੀ Blazor ਐਪ ਤੋਂ ਪ੍ਰੋਜੈਕਟ ਦਾ ਹਵਾਲਾ ਦਿਓ (ਜਾਂ ਫ਼ਾਈਲਾਂ ਕਾਪੀ ਕਰੋ) ਅਤੇ ਜੋੜੋ @using LilyBlazorHeadless.Components ਵਿੱਚ _Imports.razor.

ਪੜਾਅ 2 — ਤੁਹਾਡਾ ਪਹਿਲਾ ਕੰਪੋਨੈਂਟ

<Button OnClick="Save">Save</Button>

ਇਹ ਦਿਖਾਉਂਦਾ ਹੈ <button class="button">। ਸਾਂਝੇ ਪੈਰਾਮੀਟਰ ਨੇਮ: Label (ਇੱਕ aria-label ਓਵਰਰਾਈਡ ਕਰਨ ਲਈ), CssClass (ਮੂਲ ਹੁੱਕ ਨਾਲ ਜੋੜਿਆ ਜਾਂਦਾ ਹੈ), ChildContent, ਅਤੇ [Parameter(CaptureUnmatchedValues = true)] ਗੁਣ ਫੈਲਾਅ ਤਾਂ ਜੋ ਕੋਈ ਵੀ ਵਾਧੂ HTML ਗੁਣ ਲੰਘ ਜਾਵੇ।

ਪੜਾਅ 3 — ਇੱਕ ਛੋਟਾ ਫ਼ਾਰਮ ਬਣਾਓ

<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 ਦਿੱਸਦੇ Label ਨੂੰ ਆਪਣੇ ਪੈਰਾਮੀਟਰ ਵਜੋਂ ਲੈਂਦਾ ਹੈ, ਨਾ ਕਿ ਅੰਦਰ ਰੱਖੇ ਲੇਬਲ ਕੰਪੋਨੈਂਟ ਵਜੋਂ — ਇਸਨੂੰ ਇੱਕ ਵਾਰ ਦਿਓ, ਉੱਤੇ Field, ਅਤੇ TextInputਦਾ Label ਪਹੁੰਚਯੋਗ ਨਾਮ ਦਿੰਦਾ ਹੈ।

2026-08-29 ਨੂੰ ਪੁਸ਼ਟੀ ਕੀਤੀ: ਇੱਕ ਪਹਿਲੇ ਖਰੜੇ ਨੇ ਵੱਖਰਾ Label ਕੰਪੋਨੈਂਟ Fieldਦੇ ਅੰਦਰ ਰੱਖਿਆ, ਜਿਸ ਨੇ ਦੋ ਲੇਬਲ (ਇੱਕ ਖਾਲੀ) ਦਿਖਾਏ ਕਿਉਂਕਿ Field ਪਹਿਲਾਂ ਹੀ ਆਪਣਾ ਲੇਬਲ Label ਪੈਰਾਮੀਟਰ — ਕੰਪੋਨੈਂਟ ਦਾ ਸਰੋਤ ਕੋਡ ਜਾਂਚ ਕੇ ਪਤਾ ਲੱਗਾ; Form ਦਾ ਆਪਣਾ ਕੋਈ Label ਪੈਰਾਮੀਟਰ ਨਹੀਂ ਹੈ, ਇਸ ਲਈ ਪਹਿਲੇ ਖਰੜੇ ਦੀ <Form> ਵਰਤੋਂ ਨੂੰ ਉਸਨੂੰ ਹਟਾ ਕੇ ਠੀਕ ਕੀਤਾ ਗਿਆ, ਨਾ ਕਿ ਕੋਈ ਅਜਿਹਾ ਗੁਣ ਘੜ ਕੇ ਜੋ ਮੌਜੂਦ ਨਹੀਂ। ਸੰਯੁਕਤ ਸੰਪਰਕ-ਫ਼ਾਰਮ ਰੂਟ ਉਹੀ ਪੈਟਰਨ ਹੈ, ਅਸਲੀ e2e ਅਤੇ axe ਟੈਸਟਾਂ ਨਾਲ ਪਰਖਿਆ।

ਆਪਣਾ ਕੰਮ ਜਾਂਚੋ: ਐਪ ਚਲਾਓ ਅਤੇ ਫ਼ਾਰਮ ਸਾਦਾ ਦਿਸਦਾ ਹੈ — ਬਿਲਕੁਲ ਜਿਵੇਂ ਇਰਾਦਾ ਸੀ: ਸਟਾਈਲਿੰਗ ਅਜੇ ਅੱਗੇ ਹੈ। ਦਬਾਓ Tab: ਫੋਕਸ ਹਰ ਕੰਟਰੋਲ ਵਿੱਚੋਂ ਲੰਘਦਾ ਹੈ, ਲੇਬਲ ਬੋਲਿਆ ਜਾਂਦਾ ਹੈ ਅਤੇ ਜਮ੍ਹਾਂ ਕਰਨਾ ਕੰਮ ਕਰਦਾ ਹੈ। ਵਿਹਾਰ ਪੂਰਾ ਹੈ; ਦਿੱਖ ਤੁਹਾਡੀ ਹੈ ਅਤੇ ਅਗਲਾ ਕਦਮ ਹੈ।

ਪੜਾਅ 4 — ਇਸਨੂੰ ਸਟਾਈਲ ਕਰੋ

ਕਲਾਸ ਹੁੱਕਾਂ ਨੂੰ ਸਟਾਈਲ ਕਰੋ — .button, .text-input, .label, .field — ਇਸ ਵਿੱਚ app.css, ਜਾਂ ਇੱਕ ਤਿਆਰ ਥੀਮ ਇੱਥੇ ਲਿੰਕ ਕਰੋ App.razor / index.html:

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

ਪੜਾਅ 5 — ਸਭ ਕੁਝ ਕੰਮ ਕਰਦਾ ਵੇਖੋ

Blazor Web ਉਦਾਹਰਨ ਐਪ ਪੂਰਾ ਕੈਟਾਲਾਗ ਸਟਾਈਲ ਕੀਤਾ ਅਤੇ ਡੈਮੋ ਸਮੇਤ ਦਿਖਾਉਂਦੀ ਹੈ, Playwright e2e ਟੈਸਟਾਂ ਨਾਲ:

git clone https://github.com/LilyDesignSystem/lily-design-system
cd lily-design-system/lily-design-system-blazor-web-examples
dotnet run --project src/LilyBlazorWebExamples

ਅਗਲੇ ਕਦਮ

  • ਥੀਮ — Blazor theme-picker ਸਹਾਇਕ ਨਾਲ ਚੱਲਦੇ ਸਮੇਂ ਬਦਲਣਾ (NuGet ਉੱਤੇ Razor ਕਲਾਸ ਲਾਇਬ੍ਰੇਰੀ)।
  • ਤਰਜੀਹ ਸਹਾਇਕ — ਭਾਸ਼ਾ ਅਤੇ ਲਿਖਤ ਦਾ ਆਕਾਰ।
  • ਕੰਪੋਨੈਂਟ ਕੈਟਾਲਾਗ — ਹਰ ਕੰਪੋਨੈਂਟ ਲਈ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ, ARIA ਅਤੇ ਕੀਬੋਰਡ।

ਰਾਹ ਵਿੱਚ ਸਵਾਲ ਹਨ? ਮਦਦ ਪੰਨਾ ਜਵਾਬਾਂ ਨਾਲ ਭਰਿਆ ਹੈ — ਅਤੇ ਜੇ ਕੋਈ ਕਦਮ ਹੋਰ ਸਾਫ਼ ਹੋ ਸਕਦਾ ਹੈ, ਸਾਨੂੰ ਦੱਸੋ ਅਤੇ ਅਸੀਂ ਖ਼ੁਸ਼ੀ ਨਾਲ ਟਿਊਟੋਰਿਅਲ ਸੁਧਾਰਾਂਗੇ।