Provider-first Blazor component library. Components define behavior β providers supply visual styling.
Swap providers to change the entire look-and-feel without touching a single component.
π Documentation Β· π Live Demo Β· π Report a Bug Β· π‘ Request a Feature
Marilo is an enterprise-grade Blazor component library built around a provider pattern: components are decoupled from their visual implementation. Register a provider (e.g., Fluent UI) at startup and all components automatically adopt that style system β without any per-component changes. This makes Marilo ideal for design system migrations, white-label products, and teams that need UI consistency across multiple applications.
π§© 40+ components Β· 5,000+ Tabler Icons (MIT) Β· Provider-swappable styling Β· .NET 10 Β· Unlicense
- Packages
- Getting Started
- Usage
- Component Catalog
- Theming & Providers
- Icons
- Running the Demo
- Documentation
- Contributing
- License
| Package | Description | NuGet |
|---|---|---|
Marilo.Components |
40+ provider-agnostic Razor components | (coming soon) |
Marilo.Providers.FluentUI |
Fluent UI visual styling provider | (coming soon) |
Marilo.Icons.Tabler |
5,000+ Tabler Icons SVG sprite provider (MIT) | (coming soon) |
Marilo.Icons |
Legacy custom SVG icon set (360 icons) | (coming soon) |
Marilo.Core |
Base classes, contracts, and enums | (coming soon) |
- .NET 10 SDK or later
- A Blazor Server or Blazor WebAssembly project
dotnet add package Marilo.Components
dotnet add package Marilo.Providers.FluentUI
dotnet add package Marilo.Icons.Tabler # recommended β 5,000+ Tabler Icons (MIT)In Program.cs, register Marilo and choose your provider:
builder.Services.AddMarilo(options => options.UseFluentUI());
builder.Services.AddMariloIconsTabler(); // Tabler Icons (recommended)In your App.razor or index.html:
<link rel="stylesheet" href="_content/Marilo.Providers.FluentUI/css/marilo-fluentui.css" />
<link rel="stylesheet" href="_content/Marilo.Icons/css/marilo-icons.css" />In _Imports.razor:
@using Marilo.Components
@using Marilo.Core.Enums<MariloButton Variant="ButtonVariant.Primary" OnClick="HandleClick">
<MariloIcon Name="download" /> Export
</MariloButton>π Full usage guide β
Explore all components with live demos and API reference in the documentation β
| Category | Components |
|---|---|
| Buttons | MariloButton, MariloButtonGroup, MariloToggleButton, MariloFAB |
| Forms | MariloTextField, MariloTextArea, MariloCheckbox, MariloSwitch, MariloSelect, MariloSlider, MariloDatePicker, MariloColorPicker, MariloSearchBox, MariloRating |
| Navigation | MariloMenu, MariloTabs, MariloBreadcrumb, MariloTreeView, MariloStepper, MariloSegmentedControl, MariloPagination, MariloToolbar |
| Layout | MariloContainer, MariloStack, MariloGridLayout, MariloPanel, MariloCard, MariloDivider |
| Feedback | MariloAlert, MariloDialog, MariloConfirmDialog, MariloDrawer, MariloTooltip, MariloChip, MariloProgressBar, MariloSpinner, MariloSkeleton |
| Display | MariloAvatar, MariloBadge, MariloDataGrid, MariloList |
| Icons | MariloIcon, MariloIconSprite |
Marilo's provider architecture separates component behavior from visual implementation. A provider is registered once at app startup and supplies all CSS, tokens, and rendering overrides across every component.
Currently available providers:
Marilo.Providers.FluentUIβ Microsoft Fluent UI 2 design language
Additional providers (e.g., Material, Bootstrap) can be created by implementing IMariloProvider. Swapping providers requires changing a single line in Program.cs β no component code changes needed.
π¨ Theming guide β
Marilo uses Tabler Icons (MIT) as its default icon set β 5,000+ outline SVG icons accessible via the MariloIcon component.
<!-- Basic usage -->
<MariloIcon Name="settings" />
<!-- With size and color -->
<MariloIcon Name="star" Size="IconSize.Large" ThemeColor="IconThemeColor.Primary" />| Method | Package | Description |
|---|---|---|
AddMariloIconsTabler() |
Marilo.Icons.Tabler |
Recommended. 5,000+ Tabler Icons (MIT). |
AddMariloIcons() |
Marilo.Icons |
Legacy custom icon set (360 icons). |
AddMariloIconsCustom(opts => ...) |
Marilo.Icons |
BYO sprite or CSS-class icon library. |
Icon names use Tabler kebab-case (e.g., home, calendar-event, user).
Browse the full icon reference at tabler.io/icons.
π Browse all icons β
The demo is a Blazor Server application showcasing all components interactively.
Once the Codespace starts, run:
dotnet run --project samples/Marilo.DemoThen open the forwarded port in your browser.
git clone https://github.com/ctwoodwa/marilo.git
cd marilo
npm install && npm run build
dotnet run --project samples/Marilo.DemoOpen https://localhost:5301.
Full API reference, component demos, theming guide, and icon browser are published to GitHub Pages:
π https://ctwoodwa.github.io/marilo/
To build and serve docs locally:
npm run docs:serveDocs are generated using DocFX from the docfx/ directory.
Contributions are welcome from the community. Please read the guidelines before opening a PR.
- Fork the repo and create your branch:
git checkout -b feat/my-component - Install dependencies:
npm install - Build assets:
npm run build - Run the demo:
dotnet run --project samples/Marilo.Demo - Submit a PR against
main
π Contributing Guide β
π¬ Code of Conduct β
π Security Policy β
This project follows Semantic Versioning.
- π Releases β
- π£οΈ Roadmap β
Licensed under The Unlicense.
Β© 2026 Christopher Wood. All rights reserved.