BlazorEmo 1.0.2

dotnet add package BlazorEmo --version 1.0.2
                    
NuGet\Install-Package BlazorEmo -Version 1.0.2
                    
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="BlazorEmo" Version="1.0.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="BlazorEmo" Version="1.0.2" />
                    
Directory.Packages.props
<PackageReference Include="BlazorEmo" />
                    
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 BlazorEmo --version 1.0.2
                    
#r "nuget: BlazorEmo, 1.0.2"
                    
#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 BlazorEmo@1.0.2
                    
#: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=BlazorEmo&version=1.0.2
                    
Install as a Cake Addin
#tool nuget:?package=BlazorEmo&version=1.0.2
                    
Install as a Cake Tool

BlazorEmo - Emoji Picker for Blazor

WCAG 2.1 AA Compliant • Keyboard Accessible • Dark Mode

License .NET

🚀 Quick Start

dotnet add package BlazorEmo

@page "/" 
@using BlazorEmo.Components

<button @onclick="() => isPickerOpen = true">Select Emoji</button>

<EmoPicker IsOpen="@isPickerOpen" .
		   OnEmojiSelected="HandleEmojiSelected" 
		   OnClose="() => isPickerOpen = false" 
		   UseCompleteDataset="true" 
		   UseVirtualization="true" />

<p>Selected: @selectedEmoji</p>

@code { 
	private bool isPickerOpen = false; 
	private string selectedEmoji = "";

	private void HandleEmojiSelected(BlazorEmo.Models.Emo emoji)
	{
    selectedEmoji = emoji.Char;
    isPickerOpen = false;
	}
}

🎯 Features

  • 1,100+ Emojis across 9 categories with live search (300ms debounce)
  • Virtualized Rendering — only renders visible emojis for large lists
  • Lazy Loading — categories loaded on-demand
  • Recent Emojis — tracks recently used selections
  • Dark Mode — automatic prefers-color-scheme detection
  • Responsive — works on desktop, tablet, and mobile
  • Touch-Friendly — 48×48px minimum touch targets

♿ Accessibility

  • WCAG 2.1 Level AA compliant (text contrast exceeds AAA 7:1+)
  • ARIA 1.2 dialog, tablist, and grid patterns
  • Full keyboard navigation (Arrow keys, Tab, Enter, Escape, Home/End)
  • Focus trap with 3px focus indicators
  • Screen reader announcements
  • Windows High Contrast Mode compatible
  • Section 508 compliant

📖 Parameters

Parameter Type Default Description
IsOpen bool false Controls picker visibility
OnEmojiSelected EventCallback<Emo> Required. Invoked when emoji is selected
OnClose EventCallback Invoked when picker closes
UseCompleteDataset bool false Full 1,100+ emojis (true) or basic 60 (false)
UseVirtualization bool true Virtualized rendering for 40+ emoji lists
OnOpened EventCallback Invoked when picker opens
OnCategoryChanged EventCallback<string> Invoked on category switch
OnSearchChanged EventCallback<string> Invoked on search query change
OnBeforeClose Func<Task<bool>>? Async callback to prevent closing
OnError EventCallback<Exception> Invoked on errors

📜 License

MIT License — see LICENSE for details.

📞 Support

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 is compatible.  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 is compatible.  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 (2)

Showing the top 2 NuGet packages that depend on BlazorEmo:

Package Downloads
BlazorChat

Real-time chat UI component for Blazor applications. Drop-in embeddable chat widget with SignalR, emoji reactions, typing indicators, and message editing. GPLv3 open source with in-memory storage. For production persistence, add BlazorChat.Server.SqlServer.

BlazorRTE

Rich text editor for Blazor (.NET 8, .NET 9, .NET 10) with keyboard accessibility, ARIA support, emoji picker (1800+ emojis via BlazorEmo), emoji autocomplete (first-item auto-selected on open), XSS protection. Tested on Chrome, Edge, Firefox. Native Blazor component. GPL-3.0 for open-source.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.2 40 3/13/2026
1.0.0 247 2/7/2026

v1.0.2 - Package cleanup
- Fixed: README accuracy — corrected emoji count, model documentation, and repository links
- Fixed: SourceLink now points to GitHub for public consumer debugging
- Fixed: README and icon now correctly packed into NuGet package

v1.0.1 - Multi-target support
- Added: .NET 8 and .NET 9 support (multi-target net8.0, net9.0, net10.0)
- Added: Embedded debug symbols and SourceLink for consumer debugging

v1.0.0 - Initial Release
- 1,100+ emojis across 9 categories
- Full emoji picker with live search and category organization
- WCAG 2.1 Level AA compliant
- Full keyboard navigation and screen reader support
- Programmatic dark mode with automatic system preference detection
- Virtualization support for efficient rendering
- Works with both Blazor WebAssembly and Server