true-perfect-code
Version: 1.1.87

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 Demo

Date Picker

P11DatePicker

Accessible date selection with multiple variants (date, month, week, time).

View Demo

Label

P11Label

Enhanced label component with onClick support while maintaining accessibility.

View Demo

Get Started with P11

1. Install via NuGet

Install-Package P11.UI

2. 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 JsonSerializerContext for 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 DynamicDependency and RequiresUnreferencedCode hints where needed.
An unhandled error has occurred. Reload 🗙