A .NET MSBuild integration package for TailwindCSS that automatically compiles your TailwindCSS files during the build process. This package includes cross-platform TailwindCSS standalone executables and provides seamless integration with .NET projects.
- π Automatic compilation during MSBuild process
- π¦ No Node.js dependency - uses standalone TailwindCSS CLI
- π§ MSBuild integration with customizable properties
Install the NuGet package in your .NET project:
dotnet add package DotnetDevKR.TailwindCSSYou can also install the package from GitHub Packages:
-
Add GitHub Packages as a NuGet source (one time setup):
dotnet nuget add source https://nuget.pkg.github.com/dotnetdev-kr/index.json \ --name github \ --username YOUR_GITHUB_USERNAME \ --password YOUR_GITHUB_PAT \ --store-password-in-clear-text -
Install the package:
dotnet add package DotnetDevKR.TailwindCSS
Note: You need a GitHub Personal Access Token (PAT) with
read:packagesscope to install from GitHub Packages.
Warning
Rebuilding when dotnet watch is not working, so If you use dotnet watch, hit Ctrl + R
- Install the package in your project
- Create a TailwindCSS input file (e.g.,
tailwind.css):@import "tailwindcss";
- Configure MSBuild properties in your
.csprojfile:<Target Name="Configure" BeforeTargets="RunTailwindCSSTask"> <PropertyGroup> <InputFilename>$(ProjectDir)tailwind.css</InputFilename> <OutputFilename>wwwroot\css\app.css</OutputFilename> <IsMinify>false</IsMinify> <DebugMode>true</DebugMode> </PropertyGroup> </Target>
- Build your project - TailwindCSS will be compiled automatically!
Configure the TailwindCSS compilation by setting these properties in your project file:
| Property | Description | Default | Required |
|---|---|---|---|
InputFilename |
Path to the input TailwindCSS file | - | No |
OutputFilename |
Path where the compiled CSS will be saved | - | β Yes |
IsMinify |
Enable CSS minification | false |
No |
DebugMode |
Generate source maps | false |
No |
ProjectDir |
Project directory for TailwindCSS context | Current directory | No |
<Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly">
<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="DotnetDevKR.TailwindCSS" Version="0.0.1" />
</ItemGroup>
<Target Name="Configure" BeforeTargets="RunTailwindCSSTask">
<PropertyGroup>
<InputFilename>$(ProjectDir)tailwind.css</InputFilename>
<OutputFilename>wwwroot\css\app.css</OutputFilename>
<IsMinify Condition="'$(Configuration)' == 'Release'">true</IsMinify>
<DebugMode Condition="'$(Configuration)' == 'Debug'">true</DebugMode>
</PropertyGroup>
</Target>
</Project>- Set
DebugMode="true"to generate source maps - Set
IsMinify="false"for readable CSS output
- Set
IsMinify="true"to reduce file size - Set
DebugMode="false"to disable source maps
Check out the DotnetDevKR.TailwindCSS.WebTest folder for a complete Blazor WebAssembly example that demonstrates:
- Basic TailwindCSS integration
- MSBuild configuration
- File structure organization
- MSBuild Integration: The package registers a build task that runs before the main build
- Platform Detection: Automatically detects your OS and architecture
- TailwindCSS Execution: Runs the appropriate TailwindCSS standalone executable
- File Processing: Compiles your input CSS file and outputs the result
This package follows a 4-part version scheme that directly maps to TailwindCSS versions:
{TailwindMajor}.{TailwindMinor}.{TailwindPatch}.{Revision}
| Package Version | TailwindCSS Version | Revision |
|---|---|---|
4.1.17.0 |
v4.1.17 | 0 |
4.1.17.1 |
v4.1.17 | 1 |
4.2.0.0 |
v4.2.0 | 0 |
- First 3 parts: Directly correspond to the TailwindCSS version
- 4th part (Revision): Increments for package-only fixes (without TailwindCSS version change)
This versioning makes it easy to identify which TailwindCSS version is included in the package at a glance.
This package automatically stays up-to-date with the latest TailwindCSS releases:
- π€ Automated Checks: Daily automated checks for new TailwindCSS versions
- π¦ Auto-Publishing: Automatically builds and publishes updated NuGet packages
- π·οΈ Version Format:
{TailwindMajor}.{TailwindMinor}.{TailwindPatch}.{Revision}(e.g.,4.1.17.0) - π Seamless Updates: Simply update the NuGet package to get the latest TailwindCSS features
When a new TailwindCSS version is released, our GitHub Actions workflow:
- Detects the new version from NuGet registry
- Creates a new package version (e.g.,
4.1.18.0) - Downloads the latest TailwindCSS executables
- Builds and publishes to NuGet.org
- Creates a GitHub release with release notes
- .NET 6.0 or higher
- Any platform supported by .NET (Windows, macOS, Linux)
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the Mozilla Public License 2.0 - see the LICENSE.md file for details.
- TailwindCSS for the amazing CSS framework (MIT LICENSE)
- TailwindCSS CLI for the standalone executable
- AspNetCore.SassCompiler β inspiration for CSS compilation and tooling integration
Made with β€οΈ by DotnetDevKR and Forum