![]() |
VOOZH | about |
dotnet add package Soenneker.Lepton.Suite --version 4.0.25
NuGet\Install-Package Soenneker.Lepton.Suite -Version 4.0.25
<PackageReference Include="Soenneker.Lepton.Suite" Version="4.0.25" />
<PackageVersion Include="Soenneker.Lepton.Suite" Version="4.0.25" />Directory.Packages.props
<PackageReference Include="Soenneker.Lepton.Suite" />Project file
paket add Soenneker.Lepton.Suite --version 4.0.25
#r "nuget: Soenneker.Lepton.Suite, 4.0.25"
#:package Soenneker.Lepton.Suite@4.0.25
#addin nuget:?package=Soenneker.Lepton.Suite&version=4.0.25Install as a Cake Addin
#tool nuget:?package=Soenneker.Lepton.Suite&version=4.0.25Install as a Cake Tool
👁 alternate text is missing from this package README image
👁 alternate text is missing from this package README image
👁 alternate text is missing from this package README image
👁 alternate text is missing from this package README image
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.
class, style, and unmatched attributes consistent across components.dotnet add package Soenneker.Lepton.Suite
| 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.
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.
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();
}
}
Cancellable bases cancel their token during DisposeAsync().
public abstract class LoadingComponent : LeptonCancellable
{
protected Task Load()
{
ThrowIfDisposed();
return Task.Delay(TimeSpan.FromSeconds(1), CancellationToken);
}
}
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.
AdditionalAttributes is the unmatched-attribute parameter for element bases.id when Id is set.CancellationToken.| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 net10.0 is compatible. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
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
A Blazor interop library for Cloudflare Turnstile |
|
|
Soenneker.Blazor.DataTables
A Blazor interop library for DataTables |
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 4.0.25 | 0 | 6/18/2026 |
| 4.0.24 | 925 | 6/17/2026 |
| 4.0.23 | 3,797 | 6/10/2026 |
| 4.0.22 | 1,974 | 6/9/2026 |
| 4.0.20 | 1,476 | 6/9/2026 |
| 4.0.19 | 3,707 | 6/6/2026 |
| 4.0.18 | 348 | 6/6/2026 |
| 4.0.17 | 732 | 6/6/2026 |
| 4.0.16 | 378 | 6/6/2026 |
| 4.0.15 | 410 | 6/5/2026 |
| 4.0.14 | 583 | 6/5/2026 |
| 4.0.13 | 149 | 6/5/2026 |
| 4.0.12 | 9,228 | 5/13/2026 |
| 4.0.11 | 188 | 5/12/2026 |
| 4.0.10 | 4,920 | 5/6/2026 |
| 4.0.9 | 3,729 | 4/30/2026 |
| 4.0.8 | 96 | 4/30/2026 |
| 4.0.7 | 100 | 4/30/2026 |
| 4.0.6 | 102 | 4/30/2026 |
| 4.0.5 | 102 | 4/30/2026 |