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.TailwindCSSWarning
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
- .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