Soenneker.Lepton.Suite
11.0.144
Prefix Reserved
dotnet add package Soenneker.Lepton.Suite --version 11.0.144
NuGet\Install-Package Soenneker.Lepton.Suite -Version 11.0.144
<PackageReference Include="Soenneker.Lepton.Suite" Version="11.0.144" />
<PackageVersion Include="Soenneker.Lepton.Suite" Version="11.0.144" />
<PackageReference Include="Soenneker.Lepton.Suite" />
paket add Soenneker.Lepton.Suite --version 11.0.144
#r "nuget: Soenneker.Lepton.Suite, 11.0.144"
#:package Soenneker.Lepton.Suite@11.0.144
#addin nuget:?package=Soenneker.Lepton.Suite&version=11.0.144
#tool nuget:?package=Soenneker.Lepton.Suite&version=11.0.144
Soenneker.Lepton.Suite
Small, composable Blazor component base classes for libraries that need clean defaults without buying into a UI framework.
Lepton gives component authors a consistent foundation for child content, element attributes, IDs, async disposal, and cancellation. It is not a component library. It is the base layer you build component libraries on.
Why Lepton
- Pick exactly the component capabilities you need.
- Keep
class,style, and unmatched attributes consistent across components. - Get disposal and cancellation patterns without rewriting them in every base class.
- Type against matching interfaces when you need capability-based APIs.
Install
dotnet add package Soenneker.Lepton.Suite
Pick A Base
| Need | Use |
|---|---|
| Plain Blazor base | LeptonComponent |
| Child content | LeptonContent |
| Element attributes | LeptonElement |
| Child content + element attributes | LeptonContentElement |
| Id + child content + element attributes | LeptonIdentifiableContentElement |
| Async disposal | LeptonDisposable |
| Disposable content | LeptonDisposableContent |
| Disposable content element | LeptonDisposableContentElement |
| Disposable identifiable content element | LeptonDisposableIdentifiableContentElement |
| Disposal-bound cancellation | LeptonCancellable |
| Cancellable content element | LeptonCancellableContentElement |
| Cancellable identifiable content element | LeptonCancellableIdentifiableContentElement |
Every public base has a matching interface in Soenneker.Lepton.Suite.Abstract.
Product Spotlight
Consistent Element Attributes
Element bases expose Class, Style, and AdditionalAttributes, then build render-ready attributes for you.
public sealed class Card : LeptonContentElement
{
protected override void BuildRenderTree(RenderTreeBuilder builder)
{
builder.OpenElement(0, "section");
builder.AddMultipleAttributes(1, BuildAttributes("data-slot", "card"));
builder.AddContent(2, ChildContent);
builder.CloseElement();
}
}
<Card Class="card" style="padding: 1rem" data-state="open">
Content
</Card>
class and style values are merged instead of clobbered.
Disposal Without Boilerplate
Disposable bases expose ThrowIfDisposed() and track disposal state.
public abstract class ModuleBackedComponent : LeptonDisposable
{
private IAsyncDisposable? _module;
public override async ValueTask DisposeAsync()
{
if (_module is not null)
await _module.DisposeAsync();
await base.DisposeAsync();
}
}
Cancellation That Follows Component Lifetime
Cancellable bases cancel their token during DisposeAsync().
public abstract class LoadingComponent : LeptonCancellable
{
protected Task Load()
{
ThrowIfDisposed();
return Task.Delay(TimeSpan.FromSeconds(1), CancellationToken);
}
}
Design
Cancellable types are an add-on over disposable shapes:
LeptonDisposableContentElement
-> LeptonCancellableContentElement
LeptonDisposableIdentifiableContentElement
-> LeptonCancellableIdentifiableContentElement
So if you choose a cancellable element, you still get the disposable element behavior underneath it.
Notes
AdditionalAttributesis the unmatched-attribute parameter for element bases.- Identifiable element bases add
idwhenIdis set. - Cancellable bases expose a protected
CancellationToken. - Base classes are abstract and intended for component-library authors.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net11.0 is compatible. |
-
net11.0
- Microsoft.AspNetCore.Components (>= 11.0.0)
- Soenneker.Atomics.ValueBools (>= 11.0.56)
- Soenneker.Atomics.ValueResources (>= 11.0.3)
- Soenneker.Extensions.String (>= 11.0.820)
NuGet packages (21)
Showing the top 5 NuGet packages that depend on Soenneker.Lepton.Suite:
| Package | Downloads |
|---|---|
|
Soenneker.Blazor.TomSelect
A Blazor interop library for the select user control library, Tom Select |
|
|
Soenneker.Blazor.FilePond
A Blazor interop library for the file upload library FilePond |
|
|
Soenneker.Blazor.Masonry
A lightweight, responsive Blazor component for Masonry (the cascading grid layout library) — perfect for image grids, cards, and dynamic content. |
|
|
Soenneker.Blazor.Turnstile
Renders a Cloudflare Turnstile widget in Blazor and exposes its token and lifecycle events. |
|
|
Soenneker.Blazor.DataTables
A Blazor interop library for DataTables |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 11.0.144 | 483 | 11/14/2026 |
| 11.0.143 | 2,675 | 11/11/2026 |
| 11.0.142 | 326 | 11/11/2026 |
| 11.0.141 | 790 | 11/11/2026 |
| 11.0.140 | 411 | 11/11/2026 |
| 11.0.139 | 96 | 11/11/2026 |
| 11.0.138 | 1,132 | 11/11/2026 |
| 11.0.137 | 115 | 11/10/2026 |
| 11.0.136 | 5,402 | 11/3/2026 |
| 11.0.135 | 1,506 | 11/3/2026 |
| 11.0.134 | 773 | 11/3/2026 |
| 11.0.133 | 6,768 | 10/26/2026 |
| 11.0.132 | 224 | 10/26/2026 |
| 11.0.130 | 1,290 | 10/26/2026 |
| 4.0.129 | 107 | 10/26/2026 |
| 4.0.128 | 2,340 | 10/24/2026 |
| 4.0.127 | 292 | 10/24/2026 |
| 4.0.126 | 116 | 10/24/2026 |
| 4.0.125 | 93 | 10/24/2026 |
| 4.0.123 | 907 | 10/24/2026 |
Update dependency Microsoft.CodeAnalysis.CSharp to 5.12.0 (#285)