Fabulous 10.0.4
dotnet add package Fabulous --version 10.0.4
NuGet\Install-Package Fabulous -Version 10.0.4
<PackageReference Include="Fabulous" Version="10.0.4" />
<PackageVersion Include="Fabulous" Version="10.0.4" />
<PackageReference Include="Fabulous" />
paket add Fabulous --version 10.0.4
#r "nuget: Fabulous, 10.0.4"
#:package Fabulous@10.0.4
#addin nuget:?package=Fabulous&version=10.0.4
#tool nuget:?package=Fabulous&version=10.0.4
Fabulous combines the power of functional programming and the simple Model-View-Update architecture to build any kind of mobile and desktop applications with an expressive, dynamic and clean UI DSL
| 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 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. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | 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.1
- FSharp.Core (>= 8.0.300)
-
net10.0
- FSharp.Core (>= 8.0.300)
NuGet packages (7)
Showing the top 5 NuGet packages that depend on Fabulous:
| Package | Downloads |
|---|---|
|
Fabulous.XamarinForms
Declarative UIs for Xamarin.Forms with F# and MVU, using Fabulous |
|
|
Fabulous.LiveUpdate
LiveUpdate injects updated source code files while running to allow you to quickly view the effects of your changes without restarting the application. Needs fabulous-cli to work. |
|
|
Fabulous.SimpleElements
An alternative view rendering API for Fabulous that is easy to use and simple to read, inspired by Elmish on the web. |
|
|
Fabulous.MauiControls
Declarative UIs for .NET MAUI with F# and MVU, using Fabulous |
|
|
Fabulous.Avalonia
Declarative UIs for AvaloniaUI with F# and MVU, using Fabulous |
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on Fabulous:
| Repository | Stars |
|---|---|
|
egvijayanand/dotnet-maui-samples
Sample apps for working with .NET MAUI
|
| Version | Downloads | Last Updated |
|---|---|---|
| 10.0.4 | 98 | 10/12/2026 |
| 10.0.3 | 383 | 9/30/2026 |
| 10.0.2 | 183 | 9/27/2026 |
| 10.0.1 | 406 | 9/7/2026 |
| 10.0.0 | 272 | 8/24/2026 |
| 3.0.0-pre9 | 394 | 11/8/2024 |
| 3.0.0-pre23 | 578 | 6/5/2025 |
| 3.0.0-pre22 | 666 | 5/18/2025 |
| 3.0.0-pre21 | 352 | 4/7/2025 |
| 3.0.0-pre20 | 427 | 2/28/2025 |
| 3.0.0-pre19 | 685 | 1/16/2025 |
| 3.0.0-pre18 | 214 | 1/16/2025 |
| 3.0.0-pre17 | 403 | 12/15/2024 |
| 3.0.0-pre16 | 517 | 11/22/2024 |
| 3.0.0-pre15 | 265 | 11/21/2024 |
| 3.0.0-pre14 | 200 | 11/21/2024 |
| 3.0.0-pre13 | 249 | 11/21/2024 |
| 3.0.0-pre12 | 238 | 11/20/2024 |
| 3.0.0-pre11 | 231 | 11/16/2024 |
| 3.0.0-pre10 | 290 | 11/14/2024 |
### Added
- Add unit tests for `Reconciler.update`, covering that it forwards exactly one diff to `IViewNode.ApplyDiff`, correctly reports scalar-attribute added/unchanged/changed cases, and handles a missing previous widget and an attribute-less widget pair (Repo Assist, #1341).
- Add unit tests covering `WidgetDiff.ScalarChanges` diffing (Added/Removed/Updated cases, empty prev/next, and the `SkipRepeatingScalars` duplicate-key behavior) (Repo Assist, #1311).
- Add unit tests for `WidgetDiff.EnvironmentChanges`, covering empty prev/next, all-Added/all-Removed cases, `Updated` on differing values, no-op on identical values, disjoint key sets, and the `SkipRepeatingScalars` duplicate-key dedup behavior (Repo Assist, #1312).
- Add unit tests for `WidgetDiff.WidgetChanges`, covering Added/Removed/Updated/ReplacedBy cases, empty prev/next, no-op on identical widgets, `canReuseView` true/false branching, and disjoint attribute sets (Repo Assist, #1316).
- Add unit tests for `WidgetDiff.WidgetCollectionChanges` and `WidgetDiff.WidgetCollectionItemChanges` diffing, covering attribute-level added/removed/updated collection attributes and item-level insert/replace/update/remove behavior for collections of differing lengths (Repo Assist, #1332).
### Changed
- Simplify `Cmd.map`'s closure composition to avoid allocating an extra intermediate function per effect on every call (Repo Assist, #1357).
- Implement `CollectionBuilder.YieldFrom` using `MutStackArray1.addMut` directly (addressing a `TODO` left in the code), avoiding the intermediate `Seq.map`/`Seq.toArray` allocations previously used to compile a sequence of widgets (Repo Assist, #1357).
- Revise the Windows development instructions in the MAUI tutorial and get-started guide, the MAUI/Avalonia tutorials and get-started guides, and the migration guide, and update the website index page and header.
- Change the MAUI template (`Fabulous.MauiControls.Templates`) to generate an unpackaged Windows project by default: `NewApp.fsproj` now sets `WindowsPackageType=None` with the FS0226 workaround (`WindowsAppSdkUndockedRegFreeWinRTInitialize=false`), and `Properties/launchSettings.json` uses the `Project` command instead of `MsixPackage`. F5 debugging in Visual Studio and `dotnet run` now work on Windows without manual edits. This only affects projects created with this template version or later; projects generated earlier keep their current setup and can be converted by hand as described in the MAUI tutorial. To use MSIX packaging in a new project, set `WindowsPackageType=MSIX` and use `MsixPackage` in `launchSettings.json` (#1408, #1409).
- Update the MAUI tutorial for the unpackaged Windows default: keep the manual conversion steps for projects created before 10.0.4, fix the "Why not packaged (MSIX)?" anchor links, and document how to switch back to a packaged build (#1410).
- Update the `FSharp.Maui.WinUICompat` README to reflect that the Fabulous MAUI template now generates an unpackaged Windows project by default, while the stock MAUI template and earlier Fabulous templates still use `MsixPackage` (#1412).
- Change the MAUI samples to build as unpackaged Windows applications, matching the updated MAUI template: each sample's `.fsproj` now sets `WindowsPackageType=None` with the FS0226 workaround, and `Properties/launchSettings.json` uses the `Project` command instead of `MsixPackage` (Repo Assist, #1411, #1413).
### Fixed
- Correct the `Cmd` module migration section in `docs/guides/migration.md` (Repo Assist, #1391).