MudBlazor UI framework implementation for FormCraft dynamic forms. Provides beautiful Material Design components for your dynamic forms.
$ dotnet add package FormCraft.ForMudBlazorMudBlazor UI framework implementation for FormCraft dynamic forms.
dotnet add package FormCraft.ForMudBlazor
// In Program.cs
builder.Services.AddFormCraft();
builder.Services.AddFormCraftMudBlazor();
The project is organized by feature, with each field type having its own folder containing both the component and renderer:
FormCraft.ForMudBlazor/
├── Extensions/
│ └── ServiceCollectionExtensions.cs # DI registration
├── Features/
│ ├── MudBlazorUIFrameworkAdapter.cs # Main adapter implementation
│ ├── TextField/
│ │ ├── MudBlazorTextFieldComponent.razor
│ │ └── MudBlazorTextFieldRenderer.cs
│ ├── NumericField/
│ │ ├── MudBlazorNumericFieldComponent.razor
│ │ └── MudBlazorNumericFieldRenderer.cs
│ ├── BooleanField/
│ │ ├── MudBlazorBooleanFieldComponent.razor
│ │ └── MudBlazorBooleanFieldRenderer.cs
│ ├── DateTimeField/
│ │ ├── MudBlazorDateTimeFieldComponent.razor
│ │ └── MudBlazorDateTimeFieldRenderer.cs
│ ├── SelectField/
│ │ ├── MudBlazorSelectFieldComponent.razor
│ │ └── MudBlazorSelectFieldRenderer.cs
│ ├── FileUploadField/
│ │ ├── MudBlazorFileUploadFieldComponent.razor
│ │ └── MudBlazorFileUploadFieldRenderer.cs
│ ├── CustomFields/
│ │ └── RatingRenderer.cs
│ ├── FormContainer/
│ │ ├── FormCraftComponent.razor
│ │ └── FormCraftComponent.razor.cs
│ └── Validation/
│ ├── DynamicFormValidator.cs
│ ├── FieldValidationMessage.razor
│ └── FieldValidationMessage.razor.cs
To add a new field type:
Features/.razor file) and renderer (.cs file)ServiceCollectionExtensions.csExample:
// Features/ColorPickerField/MudBlazorColorPickerFieldRenderer.cs
public class MudBlazorColorPickerFieldRenderer : FieldRendererBase
{
protected override Type ComponentType => typeof(MudBlazorColorPickerFieldComponent<>);
public override bool CanRender(Type fieldType, IFieldConfiguration<object, object> field)
=> fieldType == typeof(string) && field.AdditionalAttributes.ContainsKey("color-picker");
}
// Features/ColorPickerField/MudBlazorColorPickerFieldComponent.razor
@namespace FormCraft.ForMudBlazor.Features.ColorPickerField
@typeparam TModel
@inherits FieldComponentBase<TModel, string>
<MudColorPicker T="string"
Label="@Label"
@bind-Value="@CurrentValue"
Required="@IsRequired"
ReadOnly="@IsReadOnly"
Disabled="@IsDisabled" />
This package is part of the FormCraft project and follows the same MIT license.