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

다음 단계

진행하다가 궁금한 점이 있다면 도움말 페이지 에 답이 많이 있습니다. 어떤 단계가 더 명확해질 수 있다면 알려 주세요 . 기꺼이 튜토리얼을 개선하겠습니다.