WssBlazorControls 1.13.6

There is a newer version of this package available.
See the version list below for details.
dotnet add package WssBlazorControls --version 1.13.6
                    
NuGet\Install-Package WssBlazorControls -Version 1.13.6
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="WssBlazorControls" Version="1.13.6" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="WssBlazorControls" Version="1.13.6" />
                    
Directory.Packages.props
<PackageReference Include="WssBlazorControls" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add WssBlazorControls --version 1.13.6
                    
#r "nuget: WssBlazorControls, 1.13.6"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package WssBlazorControls@1.13.6
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=WssBlazorControls&version=1.13.6
                    
Install as a Cake Addin
#tool nuget:?package=WssBlazorControls&version=1.13.6
                    
Install as a Cake Tool

WssBlazorControls

NuGet Version NuGet Downloads

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

  1. Add the using statement to your _Imports.razor:
@using WssBlazorControls
  1. Include the CSS in your App.razor or index.html:
<link href="_content/WssBlazorControls/editControls.css" rel="stylesheet" />
  1. 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 support
  • EditTextArea - Multi-line text input
  • EditNumber - Numeric input with validation
  • EditDate - Date picker component
  • EditBool - Checkbox for boolean values
  • EditBoolNullRadio - Three-state radio for nullable booleans

Selection Controls

  • EditSelect - Dropdown selection for objects
  • EditSelectEnum - Dropdown for enum values
  • EditSelectString - Dropdown for string values
  • EditRadio - Radio buttons for objects
  • EditRadioEnum - Radio buttons for enums
  • EditRadioString - Radio buttons for strings

Multi-Selection Controls

  • EditCheckedStringList - Checkbox list for strings
  • EditCheckedEnumList - Checkbox list for enums

Support Components

  • FormLabel - Consistent labeling with tooltips and descriptions
  • FieldValidationDisplay - Validation message display
  • ReadOnlyValue - Read-only value presentation

Component Features

All form controls implement the IEditControl interface and provide:

  • Identity Management: Id, IdPrefix for unique identification
  • Display Control: IsEditMode, IsDisabled, IsHidden
  • Labeling: Label, Description with markup support
  • Styling: ContainerClass for custom CSS
  • Validation: IsRequired integration with DataAnnotations
  • Conditional Display: Hiding modes and HidingMode enum

Examples

<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:

  1. Overriding CSS classes in your own stylesheets
  2. Using ContainerClass parameter for component-specific styling
  3. Applying custom CSS to the .edit-control-wrapper class
<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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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.