syncfusion-blazor-inputs — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited syncfusion-blazor-inputs (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
This skill covers the Syncfusion Blazor FileUpload component, a robust solution for file handling in Blazor applications. Learn to implement single and multiple file uploads, configure validation rules, enable drag-drop interactions, handle large files with chunked uploads, and leverage comprehensive events for complete upload control and user feedback.
Learn to implement Syncfusion Blazor File Upload component with async/sync uploads, validation, events, customization, and always get immediate file handling with drag-drop or form integration for web and server applications.
#### Getting Started 📄 Read: references/file-upload-getting-started.md
#### Core Configuration 📄 Read: references/file-upload-configuration.md
#### Upload Methods & Behavior 📄 Read: references/file-upload-file-upload-methods.md
#### Events & Handlers 📄 Read: references/file-upload-events-and-handlers.md
#### File Validation 📄 Read: references/file-upload-validation.md
#### Advanced Features 📄 Read: references/file-upload-advanced-features.md
#### Customization & Styling 📄 Read: references/file-upload-customization.md
#### File Source Options 📄 Read: references/file-upload-file-source-options.md
#### Localization & Accessibility 📄 Read: references/file-upload-localization-accessibility.md
#### Platform-Specific Setup 📄 Read: references/file-upload-platform-specific-setup.md
@using Syncfusion.Blazor.Inputs
<SfUploader AutoUpload="true" AllowedExtensions=".jpg,.jpeg,.png,.pdf">
<UploaderAsyncSettings
SaveUrl="api/upload/save"
RemoveUrl="api/upload/remove">
</UploaderAsyncSettings>
</SfUploader>#### Pattern 1: Basic File Upload with Validation (Server Upload)
AutoUpload="true" for instant uploadsUploaderAsyncSettings with SaveUrl/RemoveUrlAllowedExtensions to restrict file typesFileSelected event for pre-validationSuccess/OnFailure events for upload feedback#### Pattern 2: Direct File Access (Blazor Server Only)
ValueChange event to access file content directlyUploaderAsyncSettings with ValueChange#### Pattern 3: Multiple File Handling
AllowMultiple="true" to allow batch uploadsSequentialUpload for ordered processing#### Pattern 4: Large File Upload with Chunking
ChunkSize in UploaderAsyncSettings| Property | Default | Use When |
|---|---|---|
| AutoUpload | true | Upload files immediately after selection |
| AllowMultiple | true | User needs to upload multiple files |
| SequentialUpload | false | Files must upload one at a time |
| AllowedExtensions | "" | Only specific file types allowed |
| DirectoryUpload | false | User can select entire folders |
| MaxFileSize | 28.4 MB | Limiting maximum upload file size |
| MinFileSize | 0 | Setting minimum file size requirement |
| ChunkSize | 0 (disabled) | Enable chunked upload for large files |
| ShowFileList | true | Control visibility of uploaded file list |
| ShowProgressBar | true | Display upload progress indicator |
| Enabled | true | Enable or disable the uploader |
| DropArea | null | Specify custom drop zone CSS selector |
| CssClass | "" | Apply custom CSS classes |
| TabIndex | 0 | Set tab navigation order |
| EnablePersistence | false | Maintain state across page reloads |
| EnableRtl | false | Enable right-to-left layout |
User needs file upload functionality ├─ Single file only? → Set AllowMultiple="false" + use basic setup ├─ Multiple files? │ ├─ All at once? → AllowMultiple="true" + SequentialUpload="false" │ └─ One at a time? → AllowMultiple="true" + SequentialUpload="true" └─ Large files (>100MB)? ├─ Enable chunking → Set ChunkSize property └─ Add pause/resume → Listen to Paused and OnResume events
Learn to implement Syncfusion Blazor TextArea component for multi-line text input with configurable resize modes, row/column sizing, character limits, floating labels, and comprehensive validation. Perfect for comments, descriptions, messages, and any scenario requiring extended text entry with real-time feedback and form integration.
#### Getting Started 📄 Read: references/textarea-getting-started.md
#### Configuration Options 📄 Read: references/textarea-configuration.md
#### Events and Data Binding 📄 Read: references/textarea-events-binding.md
#### Customization and Styling 📄 Read: references/textarea-customization.md
@using Syncfusion.Blazor.Inputs
<SfTextArea @bind-Value="@description"
Placeholder="Enter description..."
RowCount="5"
ColumnCount="50"
MaxLength="500"
FloatLabelType="FloatLabelType.Auto">
</SfTextArea>
@code {
private string description = "";
}#### Pattern 1: Basic Multi-Line Input
RowCount to set visible lines (default: 2)Placeholder for user guidance@bind-Value for two-way bindingMaxLength for character constraints#### Pattern 2: Resizable TextArea with Limits
ResizeMode="Resize.Both" for user resizingRowCount and ColumnCount for initial sizeMaxLength to prevent excessive inputValueChange for live character counting#### Pattern 3: Form Integration with Validation
<EditForm> with model binding@bind-Value with ValueExpression[Required] or [StringLength] attributes<ValidationMessage>#### Pattern 4: Auto-Growing TextArea
ResizeMode="Resize.Vertical" for vertical expansionRowCount (e.g., 3)MaxLength for upper bounds| Property | Default | Use When |
|---|---|---|
| Value | "" | Binding textarea content |
| RowCount | 2 | Setting visible number of rows |
| ColumnCount | 20 | Setting visible number of columns |
| MaxLength | null | Limiting maximum characters |
| ResizeMode | Resize.Both | Controlling user resize behavior |
| Placeholder | "" | Showing hint text when empty |
| FloatLabelType | FloatLabelType.Never | Enabling floating label animation |
| ShowClearButton | false | Adding quick clear functionality |
| ReadOnly | false | Preventing user edits while showing content |
| Disabled | false | Disabling the component entirely |
| Width | "100%" | Setting component width |
| CssClass | "" | Applying custom CSS classes |
| EnableRtl | false | Enabling right-to-left text direction |
User needs multi-line text input ├─ Fixed size? → Set ResizeMode="Resize.None" + specific RowCount ├─ User-resizable? │ ├─ Vertical only? → ResizeMode="Resize.Vertical" │ ├─ Horizontal only? → ResizeMode="Resize.Horizontal" │ └─ Both directions? → ResizeMode="Resize.Both" ├─ Character limit needed? → Set MaxLength property └─ Form validation? ├─ Use within <EditForm> └─ Add ValueExpression for validation binding
Learn to implement Syncfusion Blazor Signature component for capturing digital signatures with configurable stroke width, colors, background images, save/load functionality in multiple formats (PNG, JPEG, SVG), and comprehensive event handling. Perfect for e-signatures, document approval workflows, digital consent forms, and any scenario requiring handwritten signature capture with touch and mouse support.
#### Getting Started 📄 Read: references/signature-getting-started.md
#### Drawing Configuration 📄 Read: references/signature-drawing-configuration.md
#### Save and Load Signatures 📄 Read: references/signature-save-load.md
#### Event Handling 📄 Read: references/signature-events.md
#### Customization and Styling 📄 Read: references/signature-customization.md
@using Syncfusion.Blazor.Inputs
<div class="signature-container">
<label>Sign below:</label>
<SfSignature @ref="signatureRef"
StrokeColor="#000000"
BackgroundColor="#FFFFFF"
MaxStrokeWidth="2.0"
MinStrokeWidth="0.5">
</SfSignature>
<div class="signature-actions">
<button @onclick="SaveSignature">Save</button>
<button @onclick="ClearSignature">Clear</button>
</div>
</div>
@code {
private SfSignature signatureRef;
private async Task SaveSignature()
{
await signatureRef.SaveAsync(SignatureFileType.Png, "signature.png");
}
private async Task ClearSignature()
{
await signatureRef.ClearAsync();
}
}#### Pattern 1: Basic Signature Capture
BackgroundColor="#FFFFFF" for clear canvas#### Pattern 2: Document Signing with Letterhead
BackgroundImage for company letterhead or form templateSaveWithBackground="true" to include background in saved fileStrokeColor to contrast with background#### Pattern 3: Mobile-Optimized Signature
IsReadOnly="false" only when signature mode active#### Pattern 4: Multi-Signature Forms
| Property | Default | Use When |
|---|---|---|
| MinStrokeWidth | 0.5 | Setting minimum pen thickness |
| MaxStrokeWidth | 2.0 | Setting maximum pen thickness |
| StrokeColor | "#000000" | Changing ink color |
| BackgroundColor | "#FFFFFF" | Setting canvas background color |
| BackgroundImage | null | Adding letterhead or watermark image |
| Velocity | 0.7 | Controlling stroke smoothness (0-1) |
| SaveWithBackground | true | Including background in saved signature |
| Disabled | false | Disabling signature capture entirely |
| IsReadOnly | false | Preventing signature changes while showing existing |
| EnablePersistence | false | Maintaining signature across page reloads |
| HtmlAttributes | null | Adding custom HTML attributes to wrapper |
User needs signature capture ├─ Basic signature? │ └─ Use default settings + Save as PNG ├─ Document with letterhead? │ ├─ Set BackgroundImage property │ └─ Enable SaveWithBackground="true" ├─ Mobile/touch primary? │ ├─ Increase MaxStrokeWidth to 3.0+ │ └─ Use larger canvas dimensions ├─ Multiple signers? │ ├─ Use multiple SfSignature components │ ├─ Track each signature state separately │ └─ Save with unique identifiers └─ Need specific format? ├─ PNG → Universal support, transparency ├─ JPEG → Smaller file size, no transparency └─ SVG → Vector format, scalable
Learn to implement Syncfusion Blazor Range Slider component with dual handles for range selection, ticks, tooltips, color ranges, movement limits, and always get immediate two-value selection for price filters, date ranges, temperature zones, or any scenario requiring range input with visual feedback and validation in Blazor applications.
#### Getting Started 📄 Read: references/rangeslider-getting-started.md
#### Range Configuration 📄 Read: references/rangeslider-range-configuration.md
#### Ticks and Tooltip 📄 Read: references/rangeslider-ticks-and-tooltip.md
#### Color Ranges and Visual Indication 📄 Read: references/rangeslider-color-ranges-visual.md
#### Limits and Constraints 📄 Read: references/rangeslider-limits-and-constraints.md
#### Orientation and Customization 📄 Read: references/rangeslider-orientation-and-customization.md
#### Events and Data Binding 📄 Read: references/rangeslider-events-and-binding.md
@using Syncfusion.Blazor.Inputs
<div class="range-slider-container">
<label>Select Price Range: $@priceRange[0] - $@priceRange[1]</label>
<SfSlider @bind-Value="@priceRange"
Type="SliderType.Range"
Min="0"
Max="1000"
Step="10">
<SliderTicks Placement="Placement.After" LargeStep="200" SmallStep="50" ShowSmallTicks="true"></SliderTicks>
<SliderTooltip IsVisible="true" ShowOn="TooltipShowOn.Always" Format="C0"></SliderTooltip>
</SfSlider>
</div>
@code {
private int[] priceRange = new int[] { 200, 800 };
}#### Pattern 1: Basic Range Selection
Type="SliderType.Range" for dual handlesMin, Max, and Step propertiesIsVisible="true" for user feedbackValueChange event to capture range updates#### Pattern 2: Range with Visual Color Zones
SliderColorRanges componentColorRange segments (e.g., cold/warm/hot)#### Pattern 3: Constrained Range Selection
SliderLimits to restrict handle movementMinStart/MaxStart for first handle boundsMinEnd/MaxEnd for second handle boundsStartHandleFixed or EndHandleFixed if one handle should be locked#### Pattern 4: Custom Value Range Selection
CustomValues array for non-numeric ranges| Property | Default | Use When |
|---|---|---|
| Type | SliderType.Default | Set to SliderType.Range for dual handles |
| Value | new int[]{} | Binding range values (must be 2-element array) |
| Min | 0 | Setting minimum selectable value |
| Max | 100 | Setting maximum selectable value |
| Step | 1 | Defining increment/decrement value |
| CustomValues | null | Using non-numeric values (sizes, labels) |
| IsImmediateValue | false | Getting real-time updates during drag |
| ShowButtons | false | Adding increment/decrement buttons |
| Orientation | SliderOrientation.Horizontal | Changing to vertical layout |
| Width | null | Setting component width |
| EnableAnimation | true | Controlling handle animation |
| ReadOnly | false | Preventing user interaction while showing value |
| Enabled | true | Enabling/disabling the entire component |
User needs range selection (two values) ├─ Numeric range? │ ├─ Set Type="SliderType.Range" │ ├─ Use int[] or double[] for Value │ └─ Configure Min, Max, Step ├─ Non-numeric values (sizes, labels)? │ ├─ Set CustomValues array │ ├─ Value array contains indices │ └─ Use tick formatting for labels ├─ Need visual zones? │ ├─ Add SliderColorRanges component │ └─ Define multiple ColorRange segments ├─ Restrict movement? │ ├─ Use SliderLimits component │ ├─ Set MinStart/MaxStart/MinEnd/MaxEnd │ └─ Enable StartHandleFixed or EndHandleFixed if needed ├─ Vertical layout needed? │ └─ Set Orientation="SliderOrientation.Vertical" └─ Real-time updates during drag? └─ Set IsImmediateValue="true"
Learn to implement Syncfusion Blazor OtpInput (One-Time Password) component for secure verification code entry with configurable length, input types (number, text, password), styling modes (outlined, underlined, filled), automatic focus management, and comprehensive event handling. Perfect for 2FA authentication, email verification, SMS codes, PIN entry, and any scenario requiring secure multi-digit code input with keyboard navigation and accessibility support.
#### Getting Started 📄 Read: references/otpinput-getting-started.md
#### Configuration Options 📄 Read: references/otpinput-configuration.md
#### Styling Modes 📄 Read: references/otpinput-styling-modes.md
#### Events and Data Binding 📄 Read: references/otpinput-events-binding.md
#### Accessibility 📄 Read: references/otpinput-accessibility.md
@using Syncfusion.Blazor.Inputs
<div class="otp-container">
<label>Enter verification code:</label>
<SfOtpInput @bind-Value="@otpValue"
Length="6"
Type="OtpInputType.Number"
StylingMode="OtpInputStyle.Outlined">
</SfOtpInput>
@if (!string.IsNullOrEmpty(message))
{
<div class="message">@message</div>
}
</div>
@code {
private string otpValue = "";
private string message = "";
protected override void OnParametersSet()
{
if (otpValue.Length == 6)
{
message = "Verifying code...";
// Call verification API
}
}
}#### Pattern 1: Basic OTP Verification (6-digit numeric)
Length="6" for standard OTP lengthType="OtpInputType.Number" for numeric-only inputAutoFocus="true" for immediate input@bind-Value for two-way binding (simplest approach)#### Pattern 2: Email/SMS Verification Code
Length="4" or Length="6" based on serviceType="OtpInputType.Number" for numeric codesStylingMode="OtpInputStyle.Underlined" for clean look#### Pattern 3: Secure PIN Entry
Type="OtpInputType.Password" to mask inputLength="4" or Length="6" for PIN lengthStylingMode="OtpInputStyle.Filled" for modern look#### Pattern 4: Alphanumeric Verification (with separators)
Type="OtpInputType.Text" for letters and numbersTextTransform="TextTransform.Uppercase" for readabilitySeparator="-" to visually group digitsLength="9" (including separator positions)| Property | Default | Use When |
|---|---|---|
| Value | "" | Binding OTP value (two-way with @bind-Value) |
| Length | 4 | Setting number of OTP input fields |
| Type | OtpInputType.Number | Defining input type (Number, Text, Password) |
| StylingMode | OtpInputStyle.Outlined | Choosing visual style (Outlined, Underlined, Filled) |
| Placeholder | "" | Showing hint text in empty fields |
| Separator | "" | Adding visual separator between groups |
| TextTransform | TextTransform.None | Transforming text (None, Lowercase, Uppercase) |
| AutoFocus | false | Auto-focusing first input on load |
| Disabled | false | Disabling all input fields |
| CssClass | "" | Applying custom CSS classes |
| AriaLabels | null | Setting custom ARIA labels for each input |
| HtmlAttributes | null | Adding custom HTML attributes |
User needs OTP/verification code input ├─ Numeric only? │ ├─ Set Type="OtpInputType.Number" │ └─ Use Length="4" or Length="6" ├─ Need to hide input (PIN)? │ ├─ Set Type="OtpInputType.Password" │ └─ Apply security best practices ├─ Alphanumeric codes? │ ├─ Set Type="OtpInputType.Text" │ ├─ Use TextTransform="TextTransform.Uppercase" │ └─ Consider Separator for readability ├─ Auto-submit when complete? │ ├─ Listen to ValueChanged event │ ├─ Check if value.Length == Length │ └─ Call verification API automatically ├─ Custom styling needed? │ ├─ Outlined → StylingMode="OtpInputStyle.Outlined" (default) │ ├─ Underlined → StylingMode="OtpInputStyle.Underlined" │ └─ Filled → StylingMode="OtpInputStyle.Filled" └─ Accessibility important? ├─ Set AriaLabels array for screen readers └─ Enable AutoFocus for keyboard users
Learn to implement Syncfusion Blazor Rating component for intuitive rating and feedback collection with configurable precision modes (full, half, quarter, exact), custom icons and templates, label and tooltip support, comprehensive event handling, and accessibility features. Perfect for product reviews, skill assessments, satisfaction surveys, quality ratings, and any scenario requiring user feedback through star ratings or custom iconography with keyboard navigation and form integration.
#### Getting Started 📄 Read: references/rating-getting-started.md
#### Precision and Values 📄 Read: references/rating-precision-and-values.md
#### Labels and Tooltips 📄 Read: references/rating-labels-and-tooltips.md
#### Templates and Customization 📄 Read: references/rating-templates-customization.md
#### Events and States 📄 Read: references/rating-events-and-states.md
@using Syncfusion.Blazor.Inputs
<div class="rating-container">
<label>Rate your experience:</label>
<SfRating @bind-Value="@userRating"
ItemsCount="5"
Precision="PrecisionType.Full"
ShowLabel="true">
</SfRating>
@if (userRating > 0)
{
<p>You rated: @userRating / 5 stars</p>
}
</div>
@code {
private double userRating = 0;
}#### Pattern 1: Basic 5-Star Product Rating
ItemsCount="5" for standard ratingPrecision="PrecisionType.Full" for whole stars only@bind-Value for two-way data bindingShowLabel="true" to display rating valueLabelPosition="LabelPosition.Right"ValueChanged event for auto-submit#### Pattern 2: Half-Star Rating with Hover Feedback
Precision="PrecisionType.Half" for 0.5 incrementsShowTooltip="true" for hover feedbackOnItemHover event for previewReadOnly="true"#### Pattern 3: Custom Icon Templates (Hearts, Thumbs, Emojis)
EmptyTemplate for unselected stateFullTemplate for selected stateRatingItemContext for item-specific renderingCssClass for custom colors and sizingEnableAnimation="true" for smooth transitions#### Pattern 4: Multi-Category Rating Form
SfRating componentsItemsCount per category if neededEditForm for validation| Property | Default | Use When |
|---|---|---|
| Value | 0 | Binding rating value (two-way with @bind-Value) |
| ItemsCount | 5 | Setting number of rating items (stars) |
| Precision | PrecisionType.Full | Defining rating granularity (Full, Half, Quarter, Exact) |
| ShowLabel | false | Displaying rating value as text |
| LabelPosition | LabelPosition.Right | Positioning label (Top, Bottom, Left, Right) |
| ShowTooltip | false | Enabling hover tooltips |
| AllowReset | true | Allowing users to clear their rating |
| EnableSingleSelection | false | Single item selection mode (thumbs up/down) |
| Min | null | Setting minimum rating value |
| ReadOnly | false | Display-only mode for showing ratings |
| Disabled | false | Disabling all interactions |
| EnableAnimation | true | Enabling smooth transitions |
| Visible | true | Controlling component visibility |
| EmptyTemplate | null | Custom template for unselected items |
| FullTemplate | null | Custom template for selected items |
| LabelTemplate | null | Custom label content |
| TooltipTemplate | null | Custom tooltip content |
| CssClass | "" | Applying custom CSS classes |
User needs rating/feedback functionality ├─ Display existing rating (read-only)? │ ├─ Set ReadOnly="true" │ ├─ Use Precision="PrecisionType.Exact" for average ratings │ └─ Show ShowLabel="true" with review count ├─ Collect new rating from user? │ ├─ Whole stars only? → Precision="PrecisionType.Full" │ ├─ Half stars? → Precision="PrecisionType.Half" │ ├─ Quarter stars? → Precision="PrecisionType.Quarter" │ └─ Any decimal? → Precision="PrecisionType.Exact" ├─ Custom rating scale? │ ├─ 3-point scale → ItemsCount="3" │ ├─ 7-point scale → ItemsCount="7" │ └─ 10-point scale → ItemsCount="10" ├─ Need custom icons instead of stars? │ ├─ Hearts → Define EmptyTemplate and FullTemplate with ♥ │ ├─ Thumbs → Use 👍/👎 icons │ ├─ Emojis → Use 😞😐🙂😊🤩 progression │ └─ Custom SVG → Render SVG in templates ├─ Thumbs up/down only? │ ├─ Set EnableSingleSelection="true" │ ├─ Use ItemsCount="1" or ItemsCount="2" │ └─ Custom templates with thumb icons ├─ Form integration needed? │ ├─ Use within <EditForm> │ ├─ Add validation attributes │ └─ Listen to ValueChanged for validation ├─ Show rating feedback? │ ├─ Enable ShowLabel="true" for numeric display │ ├─ Use LabelTemplate for custom messages │ ├─ Enable ShowTooltip="true" for hover feedback │ └─ Use TooltipTemplate for contextual messages └─ Accessibility requirements? ├─ Ensure keyboard navigation works (arrow keys) ├─ Test screen reader compatibility └─ Provide clear ARIA labels
Learn to implement Syncfusion Blazor InputMask (MaskedTextBox) component for formatted text input with predefined patterns, custom mask rules, prompt characters, and always get immediate masked input for phone numbers, SSN, credit cards, dates, ZIP codes, license plates, or any scenario requiring structured text entry with format validation, literal preservation, and comprehensive event handling in Blazor applications.
#### Getting Started 📄 Read: references/inputmask-getting-started.md
#### Mask Patterns and Configuration 📄 Read: references/inputmask-mask-patterns.md
#### Custom Characters and Formatting 📄 Read: references/inputmask-custom-characters.md
#### Prompt Character Configuration 📄 Read: references/inputmask-prompt-configuration.md
#### Events and Data Binding 📄 Read: references/inputmask-events-binding.md
#### Styling and Accessibility 📄 Read: references/inputmask-styling-accessibility.md
@using Syncfusion.Blazor.Inputs
<div class="input-mask-container">
<label>Phone Number:</label>
<SfMaskedTextBox @bind-Value="@phoneNumber"
Mask="(000) 000-0000"
Placeholder="Enter phone number"
FloatLabelType="FloatLabelType.Auto">
</SfMaskedTextBox>
<label>Social Security Number:</label>
<SfMaskedTextBox @bind-Value="@ssn"
Mask="000-00-0000"
PromptChar="#"
Placeholder="Enter SSN">
</SfMaskedTextBox>
</div>
@code {
private string phoneNumber = "";
private string ssn = "";
}#### Pattern 1: Phone Number Input (US Format)
"(000) 000-0000" for US phone numbersPromptChar="_" for clear visual feedback@bind-Value for two-way bindingFloatLabelType.Auto for modern UXPlaceholder for user guidanceEnableLiterals="false" to exclude parentheses/dashes from value#### Pattern 2: Social Security Number (SSN)
"000-00-0000" for SSN formatPromptChar="#" or PromptChar="*" for privacyReadonly="false" for input, Readonly="true" for displayShowClearButton="true" for quick resetValueChange event#### Pattern 3: Credit Card Number with Separators
"0000 0000 0000 0000" for 16-digit cardsEnableLiterals="false" to get digits onlyValueChange to detect card type (Visa, MC, Amex)PromptChar="X" for clear empty positions#### Pattern 4: Date Input with Custom Format
"00/00/0000" for MM/DD/YYYY format"00-00-0000" for DD-MM-YYYY formatPlaceholder="MM/DD/YYYY" for format guidanceValueChange to validate day/month ranges#### Pattern 5: Custom Product Code Format
CustomCharacters dictionary for special rules@(new Dictionary<string, string> { { "P", "[A-Z]" }, { "N", "[0-9]" } })"PPP-NNN-NNN" for ABC-123-456 formatTextTransform for uppercase conversion#### Pattern 6: International Phone with Custom Characters
CustomCharacters for country-specific patterns"+00 (000) 000-0000" with country codeEnableLiterals="true" to include + and formatting| Property | Default | Use When |
|---|---|---|
| Mask | "" | Defining input format pattern (required) |
| Value | "" | Binding masked input value |
| PromptChar | '_' | Setting placeholder character for empty positions |
| PromptPlaceholder | null | Overriding prompt character in placeholder mode |
| EnableLiterals | true | Include/exclude literal characters in value |
| CustomCharacters | null | Defining custom mask rules with regex |
| Placeholder | "" | Showing hint text when empty |
| FloatLabelType | FloatLabelType.Never | Enabling floating label animation |
| ShowClearButton | false | Adding quick clear functionality |
| Readonly | false | Preventing edits while showing masked value |
| Enabled | true | Enabling/disabling the component |
| Width | "" | Setting component width |
| CssClass | "" | Applying custom CSS classes |
| EnableRtl | false | Enabling right-to-left text direction |
| HtmlAttributes | null | Adding custom HTML attributes to wrapper |
| InputAttributes | null | Adding custom attributes to input element |
| TabIndex | 0 | Setting tab navigation order |
User needs formatted text input with pattern ├─ Standard formats? │ ├─ US Phone → Mask="(000) 000-0000" │ ├─ SSN → Mask="000-00-0000" │ ├─ ZIP Code → Mask="00000" or Mask="00000-0000" │ ├─ Credit Card → Mask="0000 0000 0000 0000" │ ├─ Date → Mask="00/00/0000" (MM/DD/YYYY) │ └─ Time → Mask="00:00" (HH:MM) ├─ Need digits only in value? │ ├─ Set EnableLiterals="false" │ └─ Mask literals will be excluded from Value ├─ Include formatting in value? │ ├─ Set EnableLiterals="true" (default) │ └─ Value will include parentheses, dashes, etc. ├─ Custom pattern (not standard)? │ ├─ Use CustomCharacters dictionary │ ├─ Define regex for each custom character │ ├─ Example: { "P", "[A-Z]" } for uppercase letters │ └─ Combine in mask: "PPP-000-NNN" ├─ Privacy/security concerns? │ ├─ Set PromptChar="*" or PromptChar="#" │ ├─ Use Readonly="true" for display-only masked data │ └─ Implement additional masking on display if needed ├─ International format support? │ ├─ Use CustomCharacters for flexible patterns │ ├─ Implement dynamic mask switching based on locale │ └─ Consider country/region selection ├─ Form validation needed? │ ├─ Use within <EditForm> with model binding │ ├─ Add ValueExpression for validation │ ├─ Apply data annotations ([Required], [StringLength]) │ ├─ Listen to ValueChange for real-time validation │ └─ Implement custom validation logic (Luhn, date ranges) ├─ Enhance user experience? │ ├─ Set FloatLabelType="FloatLabelType.Auto" │ ├─ Enable ShowClearButton="true" for quick reset │ ├─ Use meaningful Placeholder text │ └─ Provide visual feedback on validation └─ Accessibility important? ├─ Ensure keyboard navigation works ├─ Set proper ARIA labels via HtmlAttributes ├─ Test screen reader compatibility └─ Provide clear format instructions in label/placeholder
Learn to implement Syncfusion Blazor ColorPicker component for intuitive color selection with picker and palette modes, opacity control, preset color collections, inline or popup display, mode switching, and always get immediate color input for themes, UI customization, design tools, data visualization, branding, or any scenario requiring color selection with hex/rgba values, recent colors tracking, and comprehensive event handling in Blazor applications.
#### Getting Started 📄 Read: references/colorpicker-getting-started.md
#### Modes and Configuration 📄 Read: references/colorpicker-modes-configuration.md
#### Preset Colors and Palettes 📄 Read: references/colorpicker-presets-colors.md
#### Opacity and Value Formats 📄 Read: references/colorpicker-opacity-values.md
#### Events and Data Binding 📄 Read: references/colorpicker-events-binding.md
#### Customization and Accessibility 📄 Read: references/colorpicker-customization-accessibility.md
@using Syncfusion.Blazor.Inputs
<div class="colorpicker-container">
<label>Choose a color:</label>
<SfColorPicker @bind-Value="@selectedColor"
Mode="ColorPickerMode.Palette"
ShowButtons="true">
</SfColorPicker>
<div class="color-preview" style="background-color: @selectedColor;">
Selected: @selectedColor
</div>
</div>
@code {
private string selectedColor = "#008000";
}#### Pattern 1: Basic Palette Color Picker
Mode="ColorPickerMode.Palette" for predefined color grid@bind-Value for two-way bindingShowButtons="true" for Apply/Cancel actions#### Pattern 2: Advanced Gradient Picker with Opacity
Mode="ColorPickerMode.Picker" for gradient selectorEnableOpacity="true" for alpha channelModeSwitcher="true" to allow mode switching#### Pattern 3: Inline Color Selector (No Popup)
Inline="true" for always-visible pickerShowButtons="false" for instant selection#### Pattern 4: Custom Preset Palette
PresetColors dictionary with custom groupsColumns property for grid layoutShowRecentColors="true" for historyNoColor="true" for "no selection" option| Property | Default | Use When |
|---|---|---|
| Value | "" | Binding selected color (hex, rgba, hsva) |
| Mode | ColorPickerMode.Picker | Choosing Picker (gradient) or Palette (grid) |
| Inline | false | Display picker inline instead of popup |
| ModeSwitcher | false | Allow user to switch between Picker and Palette |
| EnableOpacity | false | Enable alpha channel/transparency control |
| ShowButtons | false | Show Apply and Cancel buttons (popup mode) |
| ShowRecentColors | true | Display recently selected colors |
| PresetColors | null | Custom preset color palette dictionary |
| Columns | 10 | Number of columns in palette mode |
| NoColor | false | Allow "no color" selection option |
| Disabled | false | Disable color selection entirely |
| EnableRtl | false | Enable right-to-left layout |
| CssClass | "" | Apply custom CSS classes |
| HtmlAttributes | null | Add custom HTML attributes |
User needs color selection functionality ├─ Specific predefined colors only? │ ├─ Use Mode="ColorPickerMode.Palette" │ ├─ Set PresetColors with custom palette │ └─ Configure Columns for grid layout ├─ Any color from gradient? │ ├─ Use Mode="ColorPickerMode.Picker" (default) │ └─ Users can select from full color spectrum ├─ Allow both modes? │ ├─ Enable ModeSwitcher="true" │ └─ Users can toggle between Picker and Palette ├─ Need transparency/opacity? │ ├─ Set EnableOpacity="true" │ ├─ Value will include alpha (rgba format) │ └─ Show opacity slider for user control ├─ Always visible (no popup)? │ ├─ Set Inline="true" │ ├─ Use in settings panels, sidebars │ └─ Consider ShowButtons="false" for instant selection ├─ Popup with confirmation? │ ├─ Use Inline="false" (default) │ ├─ Set ShowButtons="true" for Apply/Cancel │ └─ Listen to Selected event for confirmed selection ├─ Track recent colors? │ ├─ Enable ShowRecentColors="true" (default) │ └─ Recent colors displayed automatically ├─ Allow "no color" selection? │ ├─ Set NoColor="true" │ └─ User can clear color selection ├─ Custom color palette needed? │ ├─ Define PresetColors dictionary │ ├─ Group colors by category │ └─ Example: { "Basic": ["#fff", "#000"], "Brand": ["#e74c3c", "#3498db"] } ├─ Form integration required? │ ├─ Use within <EditForm> │ ├─ Apply validation attributes │ └─ Listen to ValueChanged for validation └─ Accessibility important? ├─ Ensure keyboard navigation works (Tab, Enter, Escape) ├─ Test screen reader compatibility └─ Provide clear labels via HtmlAttributes
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.