Hi, I would like to propose a useful enhancement for the RadzenLabel component. Currently, to display a required marker (like *), developers often have to override the entire ChildContent.
I suggest adding a RequiredText parameter that automatically appends a styled required indicator when using the standard Text property.
Proposed Changes
1. Component Parameter (RadzenLabel.razor.cs):
/// <summary>
/// Gets or sets the label required text to display.
/// For simple text labels, use this property. For complex content, use <see cref="ChildContent"/> instead.
/// </summary>
/// <value>The label required text. Default is empty string.</value>
[Parameter]
public string RequiredText { get; set; } = "";
2. Component Markup (RadzenLabel.razor):
@if (Visible)
{
<label @ref="@Element" for="@Component" style="@Style" @attributes="Attributes" class="@GetCssClass()" id="@GetId()">@if(ChildContent != null){@ChildContent}else{@Text @if(!string.IsNullOrEmpty(RequiredText)){<span style="color: var(--rz-text-required-color);">@RequiredText</span>}}</label>
}
3. Theme Styles (CSS):
--rz-text-required-color: var(--rz-danger);
Usage Example
<RadzenLabel Text="Email Address" RequiredText="*" Component="EmailInput" />
Why is this useful?
- Better DX (Developer Experience): No need to write complex boilerplate or nested
<span>tags insideChildContentjust to show a simple asterisk next to a text label. - Consistency: Allows centralized styling of the required field indicator via CSS variables.