Feliz.UseElmish
4.1.0
dotnet add package Feliz.UseElmish --version 4.1.0
NuGet\Install-Package Feliz.UseElmish -Version 4.1.0
<PackageReference Include="Feliz.UseElmish" Version="4.1.0" />
<PackageVersion Include="Feliz.UseElmish" Version="4.1.0" />
<PackageReference Include="Feliz.UseElmish" />
paket add Feliz.UseElmish --version 4.1.0
#r "nuget: Feliz.UseElmish, 4.1.0"
#:package Feliz.UseElmish@4.1.0
#addin nuget:?package=Feliz.UseElmish&version=4.1.0
#tool nuget:?package=Feliz.UseElmish&version=4.1.0
Feliz 
A fresh retake of the React API in Fable, optimized for happiness.
Here is how it looks like:
module App
open Feliz
[<ReactComponent>]
let Counter() =
let (count, setCount) = React.useState(0)
Html.div [
Html.button [
prop.style [ style.marginRight 5 ]
prop.onClick (fun _ -> setCount(count + 1))
prop.text "Increment"
]
Html.button [
prop.style [ style.marginLeft 5 ]
prop.onClick (fun _ -> setCount(count - 1))
prop.text "Decrement"
]
Html.h1 count
]
open Browser.Dom
let root = ReactDOM.createRoot (document.getElementById "root")
root.render (Counter())
✨ Features
- Flexible API design: Combine the reliability of F# type safety with the flexibility to interop easily with native JavaScript.
- Discoverable attributes with no more functions,
Htmlattributes or CSS properties globally available so they are easy to find. - Proper documentation: each attribute and CSS property
- Full React API support: Feliz aims to support the React API for building components using hooks, context and more.
- Fully Type-safe: no more
Margin of objbut instead utilizing a plethora of overloaded functions to account for the overloaded nature ofCSSattributes, covering 90%+ of the CSS styles, values and properties. - Compatible with Femto.
- Approximately Zero bundle size increase where everything function body is erased from the generated JavaScript unless you actually use said function.
🚀 Quick Start
# install the template (if you haven't already)
dotnet new -i Feliz.Template
# create a new Feliz project from the installed template
dotnet new feliz -n MyProject
# navigate to the created project folder
cd MyProject
# install the npm dependencies
npm install
# install .NET tools
dotnet tool restore
# start the development server
npm start
📚 Documentation
Explore the full docs at https://fable-hub.github.io/Feliz/ — packed with live examples and practical guidance. Highlights:
- Feliz syntax: comprehensive reference for
Html,prop,style, React hooks, and more. Browse: https://fable-hub.github.io/Feliz/category/feliz - Guides: curated walkthroughs and best practices — from getting started to advanced patterns. Start here: https://fable-hub.github.io/Feliz/category/guides
- Ecosystem: discover community libraries and official add‑ons (UI, components, hooks, testing, tooling). Explore: https://fable-hub.github.io/Feliz/ecosystem
- Feliz.UseElmish: integrate Elmish state machines with React components. Learn more: https://fable-hub.github.io/Feliz/ecosystem/Hooks/Feliz.UseElmish
- Vitest: testing library for Feliz components. Learn more: https://fable-hub.github.io/Feliz/ecosystem/Testing/Feliz.Vitest
If anything’s unclear or you’re missing an example, please open an issue or discussion — contributions are very welcome!
⌚ Changelog
Each project in Feliz has its own changelog file in the src folder. Check them out for the latest changes!
Here is a direct link to the Feliz changelog.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. 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 was computed. 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 was computed. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Fable.Elmish (>= 4.0.0)
- Feliz (>= 3.1.1)
NuGet packages (5)
Showing the top 5 NuGet packages that depend on Feliz.UseElmish:
| Package | Downloads |
|---|---|
|
Feliz.ElmishComponents
Elmish components as React elements without the boilerplate based on the Feliz API |
|
|
Feliz.2sxc
Bindings and Helpers to create Apps for 2sxc with Feliz and Fable Compiler |
|
|
WebSharper.Feliz.UseElmish
WebSharper Proxy for Feliz.UseElmish |
|
|
Feliz.Router.BasePath
Hooks for using Feliz.Router in sub pages |
|
|
Antidote.FormStudio
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 4.1.0 | 195 | 12/22/2025 |
| 4.0.0 | 480 | 12/10/2025 |
| 4.0.0-rc.2 | 140 | 11/24/2025 |
| 4.0.0-rc.1 | 142 | 10/2/2025 |
| 2.5.0 | 60,931 | 11/21/2023 |
| 2.4.0 | 9,366 | 3/18/2023 |
| 2.3.0 | 2,952 | 1/5/2023 |
| 2.2.0 | 935 | 1/4/2023 |
| 2.1.0 | 1,064 | 12/25/2022 |
| 2.0.0 | 1,012 | 12/25/2022 |
| 1.6.0 | 48,511 | 11/5/2021 |
| 1.5.1 | 36,102 | 2/21/2021 |
| 1.5.0 | 7,934 | 11/15/2020 |
| 1.4.1 | 8,538 | 9/1/2020 |
| 1.4.0 | 1,373 | 8/16/2020 |
| 1.3.0 | 1,189 | 8/8/2020 |
| 1.2.2 | 3,361 | 6/26/2020 |
| 1.2.1 | 6,248 | 5/26/2020 |
| 1.2.0 | 7,636 | 5/25/2020 |
| 1.1.0 | 1,819 | 5/22/2020 |
| 1.0.0 | 1,530 | 5/22/2020 |
### ✨ Added
- Support for server side rendering (SSR) with React 19 #697 (by @mjblacker)