sydsutton/FS.FluentUI
60.2
Adequate · 3 October 2026
39.5k
lines of production code
F#
primary language
2
measurements over time
What this system is
This system is a collection of F\# libraries that provide Feliz-style type-safe bindings for Microsoft's Fluent UI React components and the FullCalendar library. It enables F\# developers to integrate Fluent UI v9 elements, such as data grids and charts, as well as FullCalendar features, directly into their web applications. The project also includes migration shims for transitioning from Fluent UI v8 to v9 and a demo application to validate the bindings.
How it got here
2023 — Initial FS.FluentUI release and tooling migration
9 changes.
This period focused on the initial release of the FS.FluentUI library, providing F\# Feliz-style bindings for Microsoft's Fluent UI React V9 components. The work included establishing the core type system, implementing component wrappers, and creating a V8-to-V9 migration shim. Concurrently, the TestGrounds demo application was restructured to use Vite and target .NET 8, validating the new bindings.
2025 — New library bindings for FullCalendar and Fluent UI Charts
4 changes.
This period focused on introducing initial F\# bindings for the FullCalendar library, establishing foundational domain types and Feliz-style components. It also involved creating and renaming the FS.FluentUI.Charts library to provide comprehensive bindings for the @fluentui/react-charts suite, enabling various chart visualizations in F\# web applications.
Features
Initial domain and utility type definitions for FS.FluentUI
The FS.FluentUI library introduces its foundational type system with the addition of Domain.fs and Utils.fs. These files define the core domain models (such as FieldControlProps, CheckState, and various event data structures) and a comprehensive set of erased interface markers (IFluentProviderProp, IButtonProp, etc.) that serve as the basis for the component API. This establishes the structural contract for the Fluent UI components within this F\# project.
FS.FluentUI · high confidence
Initial release of FS.FluentUI F\# bindings for Fluent UI React
This change introduces the FS.FluentUI library, providing F\# Feliz-style bindings for Microsoft's Fluent UI React V9 components. The release includes a solution structure with core bindings, a V8-to-V9 migration project, and test grounds. It supports a wide range of UI elements including data grids, calendars, pickers, and icons, requiring specific NPM dependencies like @fluentui/react-components and react-window. The library is distributed via NuGet and can be installed using Femto.
(repo-wide) · high confidence
Initial release of FS.FluentUI component bindings
This change introduces the initial set of F\# bindings for the Fluent UI React components library. The new files in src/FS.FluentUI provide type-safe wrappers for core UI elements including FluentProvider, Avatar, Image, Button, and Overflow, along with helper modules for ARIA properties (FelizProps.fs) and icon bundling (BundleIcons.fs). It also includes a JavaScript utility file (DateFormatting.js) to support date formatting defaults for the DatePicker component.
src/FS.FluentUI · high confidence
Initial release of FS.FullCalendar F\# bindings
This change introduces the FS.FullCalendar library, providing F\# bindings for the FullCalendar React component in the style of Feliz. It includes the core Calendar component, a Draggable helper, and a comprehensive set of property types (Props.fs) covering calendar configuration, event handling, and toolbar customization. The package also exposes bindings for various FullCalendar plugins (such as daygrid, timegrid, interaction, and resource-timeline) and integrates with bootswatch themes.
src/FS.FullCalendar · high confidence
Initial release of FS.FullCalendar domain types
This change introduces the initial set of F\# domain types for the FullCalendar library, including core APIs (CalendarApi, ViewApi), event handling structures (EventImpl, DateSelectArg, DropInfo), and resource management types. It provides the foundational type definitions required to interact with FullCalendar's JavaScript API from F\#, covering date ranges, durations, and event mutations.
FS.FullCalendar · high confidence
Initial setup of the F\# FluentUI TestGrounds application
This change introduces the initial structure for the FS.FluentUI.TestGrounds project, providing a basic HTML entry point that loads the Feliz application and includes Bootstrap 5 and Bootstrap Icons via CDN, alongside a new F\# module for tracking Fluent UI icon coverage.
src/FS.FluentUI.TestGrounds/src · high confidence
Introduce F\# bindings for Fluent UI V8 to V9 migration shims
The new \FS.FluentUI.V8toV9\ library provides F\# bindings for the \@fluentui/react-migration-v8-v9\ package, enabling developers to use Fluent UI V9 components alongside existing V8 code. This release adds type definitions for V8/V9 theme palettes and semantic colors, exposes migration shim components like \Stack\ and \StackItem\ via the \Fui\ module, and includes a helper to create V9 brand variants from V8 palettes. It also brings in a comprehensive set of ARIA and HTML property definitions adapted from Feliz to support these migration components.
src/FS.FluentUI.V8toV9 · high confidence
Introduce FS.FluentUI.Charts bindings for Fluent UI React charts
The project has been renamed from FS.FullCalendar to FS.FluentUI.Charts and now provides a comprehensive set of Feliz-style F\# bindings for the @fluentui/react-charts library. This release adds components for Line, Area, Donut, Funnel, Gauge, Gantt, Scatter, HeatMap, Sankey, Sparkline, GroupedVerticalBar, HorizontalBar, HorizontalBarWithAxis, VerticalBar, VerticalStackedBar, Polar, and ChartTable charts, along with supporting utilities like Legends, ResponsiveContainer, DataVizPalette, and getColorFromToken. The bindings include detailed property definitions for data points, styles, and accessibility, enabling users to integrate Fluent UI charting capabilities directly into their F\# web applications.
src/FS.FluentUI.Charts · high confidence
Introduce Fluent UI Charts domain types and bindings
The FS.FluentUI.Charts library now exposes the core domain model for charting, including types for chart data points, axes, legends, accessibility props, and SVG rendering. This establishes the foundational data structures required to bind F\# to the fluentui/react-charting library, enabling the construction of various chart components such as bar, donut, and Gantt charts.
FS.FluentUI.Charts · high confidence
Introduce TestGrounds demo application with Feliz v3 and Fluent UI v9 bindings
The TestGrounds location now provides a new interactive demo application built on Feliz v3, showcasing the updated Fluent UI v9 component bindings. The entry point (Main.fs) demonstrates nested FluentProviders with custom theme tokens, while the test modules (TestGrounds.fs, TestCharts.fs) exercise a wide range of UI components including Accordion, DataGrid, Calendar, and an extensive suite of charting visualizations (Area, Gantt, Funnel, Bar, Pie, etc.), validating the new Feliz-style API surface.
TestGrounds · high confidence
Behavioural changes
Add global styles for calendar and test components
A new global stylesheet (global.scss) has been added to define base layout rules and specific styling for the FullCalendar integration and test utilities. This includes styles for the calendar container, external event draggability, and generic test size classes.
src/FS.FluentUI.TestGrounds/src/styles · high confidence
TestGrounds development server now uses Vite on port 8080
The TestGrounds application has switched its build tooling from Webpack to Vite. This change updates the development experience by configuring the local server to run on port 8080 and utilizing the Vite build system, as evidenced by the new \vite.config.js\ and updated \README.md\ instructions.
src/FS.FluentUI.TestGrounds · high confidence
Dependencies
Dependency updates and project restructuring in TestGrounds and library manifests
The TestGrounds application has been updated to use Vite as the build tool (replacing Webpack) and targets .NET 8, while its npm dependencies have been refreshed to include @fluentui/react-components 9.74.1, @fullcalendar packages 6.1.20, and react 18.3.1. Concurrently, the .NET project manifests for FS.FluentUI, FS.FluentUI.Charts, FS.FluentUI.V8toV9, and FS.FullCalendar have been updated to reference Fable 4.5, Feliz 3.2.0, and FSharp.Core 6.0.1, with version bumps to 4.0.0, 2.0.0, and 2.0.0 respectively. The legacy root FluentUI.fsproj targeting .NET 7.0 has been removed.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 60 → 60 (+0.1)
- Rubric changed (rubric-2026.09.13 → rubric-2026.10.1) — scores are not directly comparable.
Lenses
- Code Health 92 → 92 (+0.0)
- Architecture 97 → 99 (+1.3)
- Maturity 64 → 64 (+0.0)
- Readiness 38 → 38 (+0.0)
- Security 100 → 100 (+0.0)
Resolved (1)
- Documentation: no installation or build instructions (README.md)
New (4)
- Outdated (npm): @fluentui/merge-styles
- Outdated (npm): @fluentui/react-hooks
- Outdated (npm): @fluentui/theme
- Outdated (npm): @fluentui/utilities
Architecture
- Unchanged — 0 containers · 4 contexts · 0 edges
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
sydsutton/FS.FluentUI was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 3 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit ee09b46e854e49f1d1a8d32249dfb9f6c9edfd47 — the exact code this score is about.
- Scored under rubric-2026.10.1 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-351388015767.