Orbyss.Blazor.MudBlazor.JsonForms
1.0.0
dotnet add package Orbyss.Blazor.MudBlazor.JsonForms --version 1.0.0
NuGet\Install-Package Orbyss.Blazor.MudBlazor.JsonForms -Version 1.0.0
<PackageReference Include="Orbyss.Blazor.MudBlazor.JsonForms" Version="1.0.0" />
<PackageVersion Include="Orbyss.Blazor.MudBlazor.JsonForms" Version="1.0.0" />
<PackageReference Include="Orbyss.Blazor.MudBlazor.JsonForms" />
paket add Orbyss.Blazor.MudBlazor.JsonForms --version 1.0.0
#r "nuget: Orbyss.Blazor.MudBlazor.JsonForms, 1.0.0"
#:package Orbyss.Blazor.MudBlazor.JsonForms@1.0.0
#addin nuget:?package=Orbyss.Blazor.MudBlazor.JsonForms&version=1.0.0
#tool nuget:?package=Orbyss.Blazor.MudBlazor.JsonForms&version=1.0.0
π¦ Orbyss.Blazor.MudBlazor.JsonForms
A full-featured MudBlazor-based UI renderer for Orbyss.Blazor.JsonForms.
This package brings the power of MudBlazor components to schema-driven forms using the jsonforms.io standard.
All you need to generate your JSON forms are:
- JSON Schema β defines the data structure (types, constraints, etc.)
- UI Schema β controls layout and per-control options
- Translation Schema β handles localization, labels, and error messages
The package is meant to support all functionality that is also natively supported by jsonforms.io, but not all functionality could be tested and implemented.
Please β if any functionality is not working as expected β either open an issue, or fork the repo and create a PR.
This is an open source project. Together we can make it better, faster.
If you notice anything that is not working as you expect, please either let us know, or implement your own components (see Orbyss.Blazor.JsonForms README for how to do that).
Important Note: This project is an independent Blazor-based implementation and is not affiliated with or supported by the jsonforms.io team. Please direct all support requests for this package to the Orbyss.io team, not jsonforms.io.
π― What is this?
This package implements the IFormComponentInstanceProvider
interface for MudBlazor β plugging directly into the Orbyss.Blazor.JsonForms core form engine.
β
You donβt need to write your own component provider
β
Just install this NuGet package and use <JsonForm ... />
as normal
β
Make sure to either inject MudFormComponentInstanceProvider
in your DI container, or pass a fresh instance as parameter to
<JsonForm ComponentInstanceProvider=@provider ... >
π§± Components Rendered with MudBlazor
All form controls are implemented using MudBlazor components:
- β
MudTextField
,MudSelect
,MudSwitch
,MudDatePicker
, etc. - β Supports layout controls like Grid, Columns, Lists, Buttons, and Stepper Navigation
- β
Fully compatible with cascading properties:
Language
,Disabled
,ReadOnly
- β
Custom UI behavior via
options
in your UI schema
π Quickstart
dotnet add package Orbyss.Blazor.MudBlazor.JsonForms
1οΈβ£ Add CSS & JS to index.html
<link href="_content/MudBlazor/MudBlazor.min.css?v=@(MudBlazor.Metadata.Version)" rel="stylesheet" />
<link href="_content/CodeBeam.MudBlazor.Extensions/MudExtensions.min.css" rel="stylesheet" />
<script src="_content/MudBlazor/MudBlazor.min.js?v=@(MudBlazor.Metadata.Version)"></script>
<script src="_content/CodeBeam.MudBlazor.Extensions/mudExtensions.min.js"></script>
2οΈβ£ Register MudBlazor and JsonForms in MauiProgram.cs
builder.Services.AddMudServices();
builder.Services.AddMudExtensions();
// Optionally configure JsonForms with custom component settings:
var instanceProviderOptions = new MudFormComponentInstanceProviderOptions
{
ConfigureButton = (@default, type, form) =>
{
@default.Size = Size.Medium;
if (type == Orbyss.Blazor.JsonForms.FormButtonType.Submit)
{
@default.EndIcon = Icons.Material.Filled.Send;
}
return @default;
},
ConfigureDropdownInput = (@default, control) =>
{
@default.Searchable = true;
@default.SearchCaseSensitive = false;
@default.SearchOperator = DropdownSearchOperator.Contains;
return @default;
}
};
builder.Services.AddMudBlazorJsonForms(instanceProviderOptions);
βοΈ Customization
You can override the default behavior by subclassing the MudFormComponentInstanceProvider
:
public class CustomProvider : MudFormComponentInstanceProvider
{
public override InputFormComponentInstanceBase GetInputField(IJsonFormContext context, FormControlContext control)
{
if (control.Interpretation.JsonPath == "$.properties.mySpecialField")
return new MyCustomInputInstance();
return base.GetInputField(context, control);
}
}
This lets you hook into form rendering at the component level for specific fields.
π Under the hood: Powered by 3 schemas
Like all Orbyss JSON Forms integrations, this renderer works using:
Schema | Purpose |
---|---|
JSON Schema | Defines data structure (types, constraints, etc.) |
UI Schema | Controls layout, per-control options, rules |
Translation Schema | Manages localization, labels, error messages |
All schema interactions are fully supported.
π§© Other UI Options
Prefer a different component library? Try:
- π¨ Orbyss.Blazor.Syncfusion.JsonForms
- Or implement your own renderer via
IFormComponentInstanceProvider
π License
MIT License
Β© Orbyss.io
π Links
- π Website: https://orbyss.io
- π¦ Core Engine: Orbyss.Blazor.JsonForms
- π¦ This Package: Orbyss.Blazor.MudBlazor.JsonForms
- π§βπ» GitHub: https://github.com/orbyss-io
- π MudBlazor Docs: MudBlazor
- π License: MIT
π€ Contributing
This project is open source and contributions are welcome!
Whether it's bug fixes, improvements, documentation, or ideas β we encourage developers to get involved.
Just fork the repo, create a branch, and open a pull request.
We follow standard .NET open-source conventions:
- Write clean, readable code
- Keep PRs focused and descriptive
- Open issues for larger features or discussions
No formal contribution guidelines β just be constructive and respectful.
βοΈ Found this useful? Give us a star and help spread the word!
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- CodeBeam.MudBlazor.Extensions (>= 8.2.4)
- Microsoft.AspNetCore.Components.Web (>= 8.0.18)
- Orbyss.Blazor.JsonForms (>= 1.0.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
1.0.0 | 124 | 8/13/2025 |
**Release: 13 August, 2025**
Initial release of the MudBlazor renderer for Orbyss.Blazor.JsonForms.
This package aims to support all functionality natively available in jsonforms.io, though not all features have been tested or implemented yet.
Please report any issues or contribute improvements via pull requests.