Giraffe.Htmx 4.0.0

dotnet add package Giraffe.Htmx --version 4.0.0
                    
NuGet\Install-Package Giraffe.Htmx -Version 4.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Giraffe.Htmx" Version="4.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Giraffe.Htmx" Version="4.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Giraffe.Htmx" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Giraffe.Htmx --version 4.0.0
                    
#r "nuget: Giraffe.Htmx, 4.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Giraffe.Htmx@4.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Giraffe.Htmx&version=4.0.0
                    
Install as a Cake Addin
#tool nuget:?package=Giraffe.Htmx&version=4.0.0
                    
Install as a Cake Tool

Giraffe.Htmx

This package enables server-side support for htmx within Giraffe and ASP.NET's HttpContext.

htmx version: 4.0.0

Upgrading from v2.x: the migration guide lists changes for v4. For this package, the HX-Trigger and HX-Trigger-Name headers are marked obsolete. They are replaced by HX-Source, which provides the triggering tag name and id attribute. The HX-Prompt header has also been marked as obsolete, as the hx-prompt attribute which generated its content has been removed.

Obsolete elements will be removed in the first production v4 release.

Setup

  1. Install the package.
  2. Prior to using the request header extension properties or the header-setting HttpHandlers, open Giraffe.Htmx.

Use

To obtain a request header, using the IHeaderDictionary extension properties:

let myHandler : HttpHander =
    fun next ctx ->
        match ctx.Target with
        | Some elt -> ... // do something with id of the target element
        | None -> ... // no target element provided

To set a response header:

let myHandler : HttpHander =
    fun next ctx ->
        // some meaningful work
        withHxPushUrl "/some/new/url" >=> [other handlers]

The HxSwap module has constants to use for the HX-Reswap header. These may be extended with settle, show, and other qualifiers; see the htmx documentation for the hx-swap attribute for more information.

To load the package-provided htmx library without using Giraffe.ViewEngine, use HtmxScript.local; to load the htmax bundle, use HtmxScript.localMax.

Learn

The naming conventions of this library were selected to mirror those provided by htmx. The header properties become Hx* on the ctx.Request.Headers object, and the response handlers are withHx* based on the header being set. The only part that does not line up is withHxTrigger* and withHxTriggerMany; the former set work with a single string (to trigger a single event with no arguments), while the latter set supports both arguments and multiple events.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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.0 119 9/1/2026
4.0.0-beta5 117 6/30/2026
4.0.0-beta4 114 6/15/2026
4.0.0-alpha8 122 3/22/2026
4.0.0-alpha6a 143 1/7/2026
2.0.10 252 7/3/2026
2.0.8 651 12/28/2025
2.0.6 318 7/3/2025
2.0.4 1,081 12/13/2024
2.0.3 347 10/18/2024
2.0.2 449 8/13/2024
2.0.1 295 7/29/2024
2.0.0 4,739 6/18/2024
2.0.0-beta4 262 5/23/2024
2.0.0-beta3 215 4/18/2024
2.0.0-beta1 248 3/19/2024
2.0.0-alpha2 262 2/12/2024
2.0.0-alpha1 244 1/31/2024
1.9.12 2,832 4/18/2024
1.9.11 2,429 3/19/2024
Loading failed

htmx 4.0.0 Initial Release

See package and prior alpha/beta release READMEs; v2 to v4 is not an update-and-forget-it release. If you encounter build errors after installing this, install v4.0.0-beta5 instead; obsolete elements will generate a warning with suggestions of what to use instead.