Soenneker.Blazor.Masonry
4.0.2281
Prefix Reserved
dotnet add package Soenneker.Blazor.Masonry --version 4.0.2281
NuGet\Install-Package Soenneker.Blazor.Masonry -Version 4.0.2281
<PackageReference Include="Soenneker.Blazor.Masonry" Version="4.0.2281" />
<PackageVersion Include="Soenneker.Blazor.Masonry" Version="4.0.2281" />
<PackageReference Include="Soenneker.Blazor.Masonry" />
paket add Soenneker.Blazor.Masonry --version 4.0.2281
#r "nuget: Soenneker.Blazor.Masonry, 4.0.2281"
#:package Soenneker.Blazor.Masonry@4.0.2281
#addin nuget:?package=Soenneker.Blazor.Masonry&version=4.0.2281
#tool nuget:?package=Soenneker.Blazor.Masonry&version=4.0.2281
Soenneker.Blazor.Masonry ??
A lightweight, responsive Blazor component for Masonry (the cascading grid layout library) � perfect for image grids, cards, and dynamic content.
? Features
- Fully compatible with Bootstrap grid classes
- Script auto-loading (CDN or embedded)
- No manual cleanup required
Installation
dotnet add package Soenneker.Blazor.Masonry
Usage
- Register the interop within DI (
Program.cs)
public static async Task Main(string[] args)
{
...
builder.Services.AddMasonryInteropAsScoped();
}
?? Components
Masonry
Wraps a group of items in a Masonry layout.
<Masonry AutoRender="true" class="row"> // or if not Bootstrap, a different class
...
</Masonry>
Parameters:
AutoRender� Automatically initializes layout after renderSizerClass� Automatically adds a sizer with the given class(es). Used by Masonry to determine width of a single column.
MasonryItem
Wraps a single item in the layout and adds the required class.
<MasonryItem class="col-md-6">
<div class="card">...</div>
</MasonryItem>
Automatically appends masonry-item to the class attribute.
?? Example
<Masonry AutoRender="false" SizerClass="col-sm-1" @ref="_masonry" class="row">
@foreach (var card in _cards)
{
<MasonryItem class="col-lg-4 col-md-6 mb-4">
<div class="card">
<img src="@card.ImageUrl" class="card-img-top" />
<div class="card-body">
<h5>@card.Title</h5>
<p>@card.Text</p>
</div>
</div>
</MasonryItem>
}
</Masonry>
@code {
private Masonry _masonry = null!;
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
{
// Example delay for images to load
await Task.Delay(3000);
await _masonry.Init();
}
}
}
?? Initialization
- If
AutoRenderistrue, Masonry initializes on first render. - If
false, callInit()manually when ready (e.g., after images load). - No disposal needed � cleanup is handled automatically when navigating away.
?? Manual Interop Usage
If you want full control without using the Masonry component, you can use the provided IMasonryInterop service directly.
@inject IMasonryInterop MasonryInterop
Warmup (Script Load)
await MasonryInterop.Warmup(); // Loads Masonry script from CDN
Or use the embedded version:
await MasonryInterop.Warmup(useCdn: false);
Initialize Layout
await MasonryInterop.Init("myElementId");
Advanced options:
await MasonryInterop.Init(
elementId: "gallery",
containerSelector: "#gallery",
itemSelector: ".masonry-item",
columnWidthSelector: ".masonry-sizer",
percentPosition: true,
transitionDurationSecs: 0.25f,
useCdn: true
);
Force Layout Recalculation
await MasonryInterop.Layout("gallery");
Set Up Mutation Observer
await MasonryInterop.CreateObserver("gallery");
Destroy Instance
await MasonryInterop.Destroy("gallery");
?? Note: The
Masonrycomponent handles these automatically. Use manual interop when building custom wrappers or integrations.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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. |
-
net10.0
- Soenneker.Asyncs.Initializers (>= 4.0.49)
- Soenneker.Blazor.Utils.ResourceLoader (>= 4.0.1662)
- Soenneker.Extensions.String (>= 4.0.675)
- Soenneker.Lepton.Suite (>= 4.0.12)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 4.0.2281 | 42 | 5/13/2026 |
| 4.0.2280 | 73 | 5/13/2026 |
| 4.0.2279 | 69 | 5/13/2026 |
| 4.0.2278 | 80 | 5/12/2026 |
| 4.0.2277 | 102 | 5/6/2026 |
| 4.0.2276 | 156 | 5/2/2026 |
| 4.0.2275 | 92 | 5/2/2026 |
| 4.0.2274 | 90 | 5/1/2026 |
| 4.0.2273 | 93 | 5/1/2026 |
| 4.0.2272 | 175 | 4/24/2026 |
| 4.0.2271 | 101 | 4/24/2026 |
| 4.0.2270 | 99 | 4/24/2026 |
| 4.0.2269 | 100 | 4/23/2026 |
| 4.0.2268 | 99 | 4/23/2026 |
| 4.0.2267 | 96 | 4/23/2026 |
| 4.0.2266 | 100 | 4/23/2026 |
| 4.0.2265 | 95 | 4/23/2026 |
| 4.0.2263 | 143 | 4/21/2026 |
| 4.0.2262 | 109 | 4/20/2026 |
| 4.0.2261 | 110 | 4/15/2026 |
Update dependency Soenneker.Blazor.Utils.ResourceLoader to 4.0.1662 (#2976)