Fuaran.UI.Renderer.Core 0.35.0

Prefix Reserved
dotnet add package Fuaran.UI.Renderer.Core --version 0.35.0
                    
NuGet\Install-Package Fuaran.UI.Renderer.Core -Version 0.35.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="Fuaran.UI.Renderer.Core" Version="0.35.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Fuaran.UI.Renderer.Core" Version="0.35.0" />
                    
Directory.Packages.props
<PackageReference Include="Fuaran.UI.Renderer.Core" />
                    
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 Fuaran.UI.Renderer.Core --version 0.35.0
                    
#r "nuget: Fuaran.UI.Renderer.Core, 0.35.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 Fuaran.UI.Renderer.Core@0.35.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=Fuaran.UI.Renderer.Core&version=0.35.0
                    
Install as a Cake Addin
#tool nuget:?package=Fuaran.UI.Renderer.Core&version=0.35.0
                    
Install as a Cake Tool

Fuaran.UI.Renderer.Core

The emission-agnostic render spine for the Fuaran UI language. This package holds the parity-critical logic that every Fuaran renderer — the Feliz/React client renderer (Fuaran.UI.Renderer) and the Feliz.ViewEngine server renderer (Fuaran.UI.Renderer.Server) — must compute identically, factored out so the two backends consume one source of truth instead of forking it.

No Feliz, no Fable.React, no React — this is the spine, not a renderer. Under dotnet build the only package dependency is FSharp.Core (plus the typed tree, Fuaran.UI). Fable.Core is referenced solely for Formatting.fs's #if FABLE_COMPILER Intl interop (the browser locale-formatting path); the .NET build excludes that branch entirely, so the server renderer consumes a pure-.NET assembly. Same Fable-portable posture as Fuaran.UI.LayoutObserver. Everything here runs in a pure-.NET context and transpiles cleanly under Fable.

What's in here

Module Role
Fuaran.UI.Renderer.Sanitize Render-time injection-safety floor — ExtraAttributes allowlist, URL-scheme gate, markdown raw-HTML sweep.
Fuaran.UI.Renderer.Theme Semantic class-name vocabulary (nodeClassName / kindClass / toneVar / weightVar / emphasisVar / motionVar) + the Theme → CSS-variable projection + JSON round-trip.
Fuaran.UI.Renderer.Formatting Locale-aware value formatting for Binding.Format (Intl on Fable, System.Globalization fallback on .NET).
Fuaran.UI.Renderer.BindingResolver Resolves a typed Binding<'T> against BindingSources to a Resolution<'T> — the resolution that drives every data-bound component's state-slot dispatch.
Fuaran.UI.Renderer.Accessibility Projects a Node.Accessibility trait to (attr-name, attr-value) pairs (the renderer-neutral aria/role attribute set).
Fuaran.UI.Renderer.Ids Deterministic correlation ids (deterministicCorrelationId) so identical trees render byte-identical output — cache-stable + SSR/hydration-parity-safe — plus a randomCorrelationId escape hatch.

Namespace-preservation guarantee

The four modules extracted from Fuaran.UI.Renderer (Sanitize, Theme, Formatting, BindingResolver) keep their original Fuaran.UI.Renderer.* module names. Fuaran.UI.Renderer takes a package reference on this assembly, so any consumer that imported Fuaran.UI.Renderer.Sanitize / .Theme / .Formatting / .BindingResolver sees no source change — the modules simply live in a different assembly now. Render.accessibilityAttributes is re-exported from Fuaran.UI.Renderer for the same reason.

This is the prerequisite extraction (Phase 138) for the Wave 18 SSR + isomorphic hydration work: the server renderer reuses this spine without pulling Fable.

Product Compatible and additional computed target framework versions.
.NET 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 (8)

Showing the top 5 NuGet packages that depend on Fuaran.UI.Renderer.Core:

Package Downloads
Fuaran.UI.Charts

Fuaran chart lowering — the render-time Chart → Drawing layout engine (bar / line): a bounded, deterministic ChartSpec + data → canonical Drawing subtree (scales, ticks, axes, gridlines, legend, series geometry). Chart stays a semantic wire kind; this is the reference lowering the other hosts conform to. FSharp.Core + Renderer.Core only, Fable-portable. Apache-2.0 licensed.

Fuaran.UI.Renderer

Fuaran renderer – Fable + React + Feliz. Every string-to-DOM seam carries a declared sanitisation posture (SANITIZATION.md states it seam by seam): an allowlisted URL-scheme floor on href/src that also rejects the protocol-relative spellings, a positive character gate on extra-attribute names, and a raw-HTML floor over rendered markdown. Interactive dispatch fails closed – a shipped runtime denies until the host grants, and the permissive posture is reached by name. Apache-2.0 licensed.

Fuaran.UI.Renderer.Server

Fuaran server-side renderer — turns a Node tree into an HTML string on plain .NET (no React, no Fable) via Feliz.ViewEngine, for SEO surfaces with no client-runtime requirement. Class + ARIA parity with the Feliz client renderer (shared Fuaran.UI.Renderer.Core spine), and the same declared sanitisation posture (SANITIZATION.md) – with the attribute-name gate re-checked at the emission site, since HTML offers no escape for an illegal character in an attribute name and a string renderer has no library validation to fall back on. Apache-2.0 licensed.

Fuaran.UI.ServerDriven

Fuaran server-driven interactivity — the transport-agnostic core for the third client tier (HTMX / LiveView / Blazor-Server-shaped): the closure-free DomPatch + ClientEffect wire vocabularies the generic JS shim applies, the TreeOp→DomPatch lowering, the per-connection driver, and the IFuaranLiveChannel transport seam. Keep the Elmish update loop on the server; ship ~nothing to the browser. No platform-SDK dependency. Apache-2.0 licensed.

Fuaran.UI.Giraffe

Fuaran SSR host-integration adapter for Giraffe / ASP.NET (Phase 162). Turns "render this Node tree as a crawlable page" into one HttpHandler call: a typed DocumentShell (title / meta / canonical / OG+Twitter / JSON-LD / stylesheet+script refs) composed around the body fragment Renderer.Server emits, plus a deterministic strong-ETag/304 + render-cache seam (IFuaranRenderCache) for high-fan-out SEO surfaces. Giraffe is isolated to this package — the language tier and Renderer.Server stay Giraffe-free. Apache-2.0 licensed.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.35.0 109 8/24/2026
0.32.0 142 8/23/2026
0.31.0 184 8/21/2026
0.30.0 166 8/21/2026
0.29.0 178 8/19/2026
0.28.0 171 8/18/2026
0.27.0 159 8/18/2026
0.26.0 179 8/18/2026
0.18.0 159 8/10/2026
0.15.0 152 8/9/2026
0.12.0 186 7/31/2026
0.11.0 167 7/30/2026
0.10.0 222 7/29/2026
0.6.0 181 7/27/2026
0.4.0 184 7/26/2026
0.3.0 194 7/24/2026