WssBlazorControls 1.13.6
See the version list below for details.
dotnet add package WssBlazorControls --version 1.13.6
NuGet\Install-Package WssBlazorControls -Version 1.13.6
<PackageReference Include="WssBlazorControls" Version="1.13.6" />
<PackageVersion Include="WssBlazorControls" Version="1.13.6" />
<PackageReference Include="WssBlazorControls" />
paket add WssBlazorControls --version 1.13.6
#r "nuget: WssBlazorControls, 1.13.6"
#:package WssBlazorControls@1.13.6
#addin nuget:?package=WssBlazorControls&version=1.13.6
#tool nuget:?package=WssBlazorControls&version=1.13.6
WssBlazorControls
A comprehensive library of form controls for Blazor applications providing consistent, feature-rich input components with built-in validation, accessibility support, and flexible styling options.
Features
- ?? Rich Form Controls: String, Number, Date, Boolean, Select, Radio, Checkbox lists, and TextArea components
- ? Data Annotations Integration: Full support for validation attributes (Required, Range, MinLength, etc.)
- ? Accessibility First: ARIA attributes, screen reader support, and keyboard navigation
- ?? Flexible Display Modes: Edit mode and read-only views for all controls
- ?? Consistent Styling: CSS classes and customizable appearance
- ? TypeScript/JavaScript Interop: Enhanced client-side functionality
- ?? Cross-Platform: Works with both Blazor Server and Blazor WebAssembly
Installation
Install the package via NuGet Package Manager:
dotnet add package WssBlazorControls
Or via Package Manager Console:
Install-Package WssBlazorControls
Quick Start
- Add the using statement to your
_Imports.razor:
@using WssBlazorControls
- Include the CSS in your
App.razororindex.html:
<link href="_content/WssBlazorControls/editControls.css" rel="stylesheet" />
- Use the controls in your Blazor components:
@using System.ComponentModel.DataAnnotations
<EditForm Model="@model" OnValidSubmit="@HandleSubmit">
<DataAnnotationsValidator />
<EditString @bind-Value="model.Name"
Label="Full Name"
IsRequired="true" />
<EditNumber @bind-Value="model.Age"
Label="Age"
IsRequired="true" />
<EditDate @bind-Value="model.BirthDate"
Label="Birth Date" />
<EditBool @bind-Value="model.IsActive"
Label="Active Status" />
<button type="submit">Submit</button>
<ValidationSummary />
</EditForm>
@code {
private PersonModel model = new();
private void HandleSubmit()
{
// Handle form submission
}
public class PersonModel
{
[Required]
[StringLength(100)]
public string Name { get; set; } = "";
[Required]
[Range(1, 120)]
public int? Age { get; set; }
public DateTime? BirthDate { get; set; }
public bool IsActive { get; set; } = true;
}
}
Available Controls
Input Controls
EditString- Text input with masking and URL supportEditTextArea- Multi-line text inputEditNumber- Numeric input with validationEditDate- Date picker componentEditBool- Checkbox for boolean valuesEditBoolNullRadio- Three-state radio for nullable booleans
Selection Controls
EditSelect- Dropdown selection for objectsEditSelectEnum- Dropdown for enum valuesEditSelectString- Dropdown for string valuesEditRadio- Radio buttons for objectsEditRadioEnum- Radio buttons for enumsEditRadioString- Radio buttons for strings
Multi-Selection Controls
EditCheckedStringList- Checkbox list for stringsEditCheckedEnumList- Checkbox list for enums
Support Components
FormLabel- Consistent labeling with tooltips and descriptionsFieldValidationDisplay- Validation message displayReadOnlyValue- Read-only value presentation
Component Features
All form controls implement the IEditControl interface and provide:
- Identity Management:
Id,IdPrefixfor unique identification - Display Control:
IsEditMode,IsDisabled,IsHidden - Labeling:
Label,Descriptionwith markup support - Styling:
ContainerClassfor custom CSS - Validation:
IsRequiredintegration with DataAnnotations - Conditional Display:
Hidingmodes andHidingModeenum
Examples
Dropdown with Enum
<EditSelectEnum @bind-Value="model.Priority"
Label="Priority Level"
IsRequired="true" />
@code {
public enum Priority
{
Low,
Medium,
High,
Critical
}
public class TaskModel
{
[Required]
public Priority? Priority { get; set; }
}
}
Radio Button Group
<EditRadioString @bind-Value="model.Department"
Label="Department"
Options="@departments" />
@code {
private List<string> departments = new()
{
"Engineering",
"Marketing",
"Sales",
"Support"
};
}
Checkbox List
<EditCheckedStringList @bind-Value="model.Skills"
Label="Technical Skills"
Options="@skills" />
@code {
private List<string> skills = new()
{
"C#",
"JavaScript",
"Blazor",
"ASP.NET Core"
};
}
Styling and Customization
The library provides default styling through the included CSS file. You can customize the appearance by:
- Overriding CSS classes in your own stylesheets
- Using ContainerClass parameter for component-specific styling
- Applying custom CSS to the
.edit-control-wrapperclass
<EditString @bind-Value="model.Name"
Label="Name"
ContainerClass="my-custom-style" />
Accessibility
WssBlazorControls is built with accessibility as a priority:
- ? ARIA attributes for screen readers
- ?? Keyboard navigation support
- ?? Focus management and indicators
- ?? Semantic HTML structure
- ?? High contrast color support
Browser Support
- Modern browsers with WebAssembly support
- Designed for both Blazor Server and Blazor WebAssembly scenarios
- Compatible with .NET 8.0+
Contributing
Contributions are welcome! Please feel free to submit issues, feature requests, or pull requests.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Support
- Documentation: Check the demo applications in the repository
- Issues: Report bugs via GitHub Issues
- Feature Requests: Submit enhancement requests via GitHub Issues
Changelog
1.13.6
- Move the star for non-legends to the left.
1.13.5
- Enable tooltips through markup
- Move the required star to the left of the label
1.13.4
- EditDate and other controls. Add a null value string to display when the value is null, such as a dash instead of blank space.
- IsRequired parameter on all controls. When set forces the “edit-label-required-star” to show up without being required in the DataAnnotations.
- Accessibility updates for EditCheckedStringList
1.13.3
- Current stable release
- Full feature set with comprehensive validation support
1.0.13.2
- EditCheckedListEnum
1.0.13.1
- Rename icons to have edit- in front of the current names
- .icon-eye ⇒ .edit-icon-eye
- Icon-invalid, icon-eye-invisible
- EditSelectEnum no longer requires specifying the type.
- Tooltips exist on the controls
- Only from attributes right now [Tooltip(“My cool tooltip”)
1.0.12.11
- Import js into application in App.razor or index.html
-
<script src="_content/WssBlazorControls/editControls.js"></script> - This is to add the functionality of “When submit is clicked, but invalid, scroll to the first input that is invalid.
- Use JsInteropEc to access js methods. Use JsInteropEc.FocusFirstInvalidField() when there are validation errors while submitting.
-
- EditCheckedStringList
- Error message shows up on each checkbox
1.0.12.10
- IsRequired parameter on all controls. When set forces the “edit-label-required-star” to show up without being required in the DataAnnotations.
- Accessibility updates for EditCheckedStringList
1.0.12.x
- moved away from utilizing bootstrap css classes such as form-group to using classes that start with edit- to avoid conflicts with other libraries
- New Features
- IsHidden to hide controls withougt wrapping them in an if statement
- Hiding allows hiding controls based on their own property for [Never, WhenReadonlyAndNull, WhenReadonly, etc.]
- This also exists within FormOptions, so the hiding can be controlled over a large group of controls.
- Control Changes
- EditRadio and EditCheckedList
- Change parameter from HasHorizontalButtons → IsHorizontal
- Removed the need for "Type" parameter, now uses the type of the value passed in.
- EditSelectEnum
- Removed the need for "Type" parameter, now uses the type of the value passed in.
- New Controls
- EditBoolNullRadio
| 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
- Microsoft.AspNetCore.Components.DataAnnotations.Validation (>= 3.2.0-rc1.20223.4)
- Microsoft.AspNetCore.Components.Web (>= 8.0.19)
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 |
|---|---|---|
| 10.0.2 | 104 | 11/23/2025 |
| 10.0.1 | 108 | 11/23/2025 |
| 1.13.8 | 343 | 11/18/2025 |
| 1.13.7 | 158 | 10/29/2025 |
| 1.13.6 | 134 | 10/29/2025 |
| 1.13.5 | 140 | 10/28/2025 |
| 1.13.4 | 136 | 9/24/2025 |
| 1.0.13.3 | 334 | 9/18/2025 |
| 1.0.13.2 | 317 | 8/21/2025 |
| 1.0.13.1 | 144 | 8/19/2025 |
| 1.0.12.10 | 158 | 8/12/2025 |
| 1.0.12.9 | 130 | 8/12/2025 |
| 1.0.12.8 | 134 | 8/12/2025 |
| 1.0.12.7 | 131 | 8/11/2025 |
| 1.0.12.6 | 127 | 8/11/2025 |
| 1.0.12.5 | 215 | 8/5/2025 |
| 1.0.12.3 | 200 | 8/5/2025 |
| 1.0.12.2 | 161 | 8/4/2025 |
| 1.0.12.1 | 524 | 7/22/2025 |
| 1.0.11.4 | 204 | 7/15/2025 |
| 1.0.11.3 | 158 | 7/14/2025 |
| 1.0.11.2 | 171 | 7/14/2025 |
| 1.0.11.1 | 167 | 7/9/2025 |
| 1.0.10.5 | 190 | 7/8/2025 |
| 1.0.10.4 | 189 | 6/25/2025 |
| 1.0.10.2 | 261 | 5/22/2025 |
| 1.0.10.1 | 202 | 5/20/2025 |
| 1.0.10 | 167 | 5/20/2025 |
| 1.0.9.9 | 375 | 3/27/2025 |
| 1.0.9.8 | 635 | 3/25/2025 |
| 1.0.9.7 | 496 | 3/24/2025 |
| 1.0.9.6 | 283 | 2/17/2025 |
| 1.0.9.5 | 202 | 2/6/2025 |
| 1.0.9.4 | 240 | 1/9/2025 |
| 1.0.9.3 | 145 | 11/28/2024 |
| 1.0.9.2 | 134 | 10/31/2024 |
| 1.0.9.1 | 269 | 10/24/2024 |
| 1.0.9 | 122 | 10/24/2024 |
| 1.0.8.2 | 140 | 10/21/2024 |
| 1.0.8.1 | 151 | 10/15/2024 |
| 1.0.8 | 137 | 9/26/2024 |
| 1.0.7 | 159 | 9/4/2024 |
| 1.0.6 | 181 | 8/22/2024 |
| 1.0.5 | 153 | 8/21/2024 |
| 1.0.4 | 162 | 8/13/2024 |
| 1.0.3 | 171 | 8/12/2024 |
| 1.0.2 | 170 | 8/12/2024 |
| 1.0.1 | 128 | 7/30/2024 |
| 1.0.0 | 120 | 7/23/2024 |
Full feature set with comprehensive validation support and accessibility features.