MonorailCss.Discovery
0.0.5-alpha.0.149
dotnet add package MonorailCss.Discovery --version 0.0.5-alpha.0.149
NuGet\Install-Package MonorailCss.Discovery -Version 0.0.5-alpha.0.149
<PackageReference Include="MonorailCss.Discovery" Version="0.0.5-alpha.0.149" />
<PackageVersion Include="MonorailCss.Discovery" Version="0.0.5-alpha.0.149" />
<PackageReference Include="MonorailCss.Discovery" />
paket add MonorailCss.Discovery --version 0.0.5-alpha.0.149
#r "nuget: MonorailCss.Discovery, 0.0.5-alpha.0.149"
#:package MonorailCss.Discovery@0.0.5-alpha.0.149
#addin nuget:?package=MonorailCss.Discovery&version=0.0.5-alpha.0.149&prerelease
#tool nuget:?package=MonorailCss.Discovery&version=0.0.5-alpha.0.149&prerelease
MonorailCSS
MonorailCSS is a utility-first CSS library inspired heavily by Tailwind CSS. It's a JIT CSS compiler written in .NET that aims to be Tailwind CSS 4.2 compatible.
Basic Usage
Given a list of CSS classes, MonorailCSS will produce optimized CSS output.
var framework = new CssFramework();
var css = framework.Process("my-4 mx-4 text-red-500");
Will produce:
.mx-4 {
margin-left: 1rem;
margin-right: 1rem;
}
.my-4 {
margin-bottom: 1rem;
margin-top: 1rem;
}
.text-red-500 {
color: var(--color-red-500);
}
You can also process collections of classes:
var classes = new[] { "bg-blue-500", "text-white", "p-4", "rounded-lg" };
var css = framework.Process(classes);
Customizing the Theme
The theme system uses CSS custom properties and can be customized to match your design system:
using System.Collections.Immutable;
// Start with the default theme and customize it
var customTheme = new Theme()
.AddColorPalette("brand", new Dictionary<string, string>
{
{ "50", "#eff6ff" },
{ "100", "#dbeafe" },
{ "200", "#bfdbfe" },
{ "300", "#93c5fd" },
{ "400", "#60a5fa" },
{ "500", "#3b82f6" },
{ "600", "#2563eb" },
{ "700", "#1d4ed8" },
{ "800", "#1e40af" },
{ "900", "#1e3a8a" },
{ "950", "#172554" }
}.ToImmutableDictionary())
.MapColorPalette("sky", "primary") // Map 'sky' palette to 'primary'
.AddFontFamily("display", "'Inter', sans-serif");
var framework = new CssFramework(new CssFrameworkSettings
{
Theme = customTheme
});
// Now you can use: bg-brand-500, text-primary-600, font-display
Component Classes (Apply)
You can create component classes by applying utility classes to selectors:
using System.Collections.Immutable;
var settings = new CssFrameworkSettings
{
IncludePreflight = false,
Applies = new Dictionary<string, string>
{
{ "body", "font-sans text-gray-900" },
{ ".btn", "px-4 py-2 rounded-lg font-semibold" },
{ ".btn-primary", "bg-blue-500 text-white hover:bg-blue-600" },
{ ".card", "bg-white shadow-lg rounded-xl p-6" }
}.ToImmutableDictionary()
};
var framework = new CssFramework(settings);
var css = framework.Process("btn btn-primary");
Advanced Features
Custom Variants
Create custom pseudo-classes or selector modifiers:
var settings = new CssFrameworkSettings
{
CustomVariants = new List<CustomVariantDefinition>
{
new() { Name = "scrollbar", Selector = "&::-webkit-scrollbar" },
new() { Name = "scrollbar-track", Selector = "&::-webkit-scrollbar-track" }
}.ToImmutableList()
};
var framework = new CssFramework(settings);
// Use: scrollbar:w-2 scrollbar-track:bg-gray-100
Arbitrary Values
MonorailCSS supports arbitrary values in square brackets:
var framework = new CssFramework();
var css = framework.Process("bg-[#1da1f2] text-[14px] w-[500px]");
Preflight CSS
Control whether to include base/reset styles:
var framework = new CssFramework(new CssFrameworkSettings
{
IncludePreflight = true // Default is true
});
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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. |
-
net10.0
- MonorailCss (>= 0.0.5-alpha.0.149)
-
net9.0
- MonorailCss (>= 0.0.5-alpha.0.149)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on MonorailCss.Discovery:
| Package | Downloads |
|---|---|
|
Pennington.MonorailCss
MonorailCSS integration for Pennington providing utility-first CSS generation |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.0.5-alpha.0.149 | 31 | 5/24/2026 |
| 0.0.5-alpha.0.148 | 37 | 5/24/2026 |
| 0.0.5-alpha.0.147 | 38 | 5/23/2026 |
| 0.0.5-alpha.0.146 | 110 | 5/15/2026 |
| 0.0.5-alpha.0.143 | 75 | 5/12/2026 |
| 0.0.5-alpha.0.142 | 54 | 5/12/2026 |
| 0.0.5-alpha.0.141 | 46 | 5/12/2026 |
| 0.0.5-alpha.0.137 | 52 | 5/11/2026 |
| 0.0.5-alpha.0.134 | 57 | 5/11/2026 |
| 0.0.5-alpha.0.133 | 46 | 5/11/2026 |
| 0.0.5-alpha.0.131 | 58 | 5/11/2026 |
| 0.0.5-alpha.0.127 | 65 | 5/10/2026 |
| 0.0.5-alpha.0.126 | 50 | 5/10/2026 |
| 0.0.5-alpha.0.125 | 50 | 5/10/2026 |
| 0.0.5-alpha.0.123 | 51 | 5/10/2026 |
| 0.0.5-alpha.0.122 | 54 | 5/9/2026 |
| 0.0.5-alpha.0.120 | 61 | 5/8/2026 |
| 0.0.5-alpha.0.115 | 57 | 5/8/2026 |
| 0.0.5-alpha.0.111 | 56 | 5/8/2026 |
| 0.0.5-alpha.0.109 | 117 | 5/6/2026 |