P11 UI Library
The first fully accessible component library for Blazor applications
Built with Perfect A11y (Accessibility) in mind, using native HTML elements wherever possible and enhanced with Bootstrap 5 for maximum compatibility.
100% Accessibility Compliance
Built for A11y
Every component meets WCAG 2.1 AA standards, using semantic HTML as foundation.
Enhanced Functionality
Components like P11Label include practical extras (onClick support) without compromising accessibility.
HTML First
Native HTML elements where possible, Bootstrap-enhanced when needed - the perfect balance.
Featured Components
Building accessible applications has never been easier
Accordion
P11Accordion
Fully keyboard navigable with proper ARIA attributes. Native and styled versions available.
View DemoDate Picker
Label
Get Started with P11
1. Install via NuGet
Install-Package P11.UI2. Add to your Blazor app
// Program.cs builder.Services.AddP11Components();
Start building accessible apps today
WCAG 2.1 AA Compliant
Our Accessibility Promise
P11 was created because existing Blazor component libraries failed to fully implement accessibility standards.
- Semantic HTML as foundation
- Complete keyboard navigation
- Proper ARIA attributes
- Screen reader tested
- Contrast ratios that meet AA standards
AOT & Trimming Safe
AOT/Trimming Compatible
P11 UI is fully compatible with .NET AOT compilation and IL trimming. All P11 components run safely on Android, iOS, Windows and Blazor Hybrid with aggressive trimming enabled.
-
Reflection Operations: Fully supported. Only patterns using reflection on unreferenced types (e.g.,
Convert.ChangeType) may require explicit preservation. - Regular Expressions: All regex logic uses source-generated, AOT-optimized patterns.
- Dynamic Types: Safe to use — no runtime code generation required.
- Generics: All generic components and services are AOT/trimming compatible.
-
JSON Serialization: Uses source-generated
JsonSerializerContextfor full trimming safety. - String Formatting & Parsing: Safe for trimmed deployments.
- Culture & Localization: Fully supported on AOT platforms.
- LINQ Expressions: No dynamic expression compilation — fully AOT compatible.
- JavaScript Interop: Uses explicit method names (“magic strings”), preventing trimming issues.
-
Trimmer Instructions: Built-in
DynamicDependencyandRequiresUnreferencedCodehints where needed.