Skip to content
CAI
Software that uses CAICheck a score

fable-hub/Feliz.Bulma

47.2

Weak · 3 October 2026

18.9k

lines of production code

F#

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a F\# UI component library that provides Feliz bindings for the Bulma CSS framework. It exposes a collection of reusable interface elements, including form controls, layout aids, and interactive widgets, designed for use in web applications compiled via Fable. The project also includes a dedicated CLI tool to manage the build, documentation generation, and NuGet package publishing processes for the library and its extensions.

How it got here

2019 — Feliz 3 and Fable 5 migration

6 changes.

The project underwent a major infrastructure overhaul, migrating to Feliz 3 and Fable 5 while restructuring the repository with a centralized build system and package management. This period also saw the introduction of several new UI components, including QuickView, Checkradio, and Popover, alongside updates to the core Bulma dependency.

2020–2025 — Feliz 3 and Fable 5 migration

9 changes.

The project underwent a comprehensive migration to Feliz 3 and Fable 5, requiring breaking changes across multiple components such as PageLoader, TagsInput, Slider, and Timeline. This period also saw the introduction of new UI components including Switch, Badge, and enhanced features for DateTimePicker, alongside the adoption of a new .NET 8 CLI build system and automated commit validation.

Features

Feliz.Bulma.Switch component introduced with Bulma styling support

This change introduces the new \Feliz.Bulma.Switch\ component, providing a checkbox-style switch control styled with Bulma CSS classes. The implementation includes modifiers for size variants (small, medium, large), visual styles (thin, rounded, outlined), and direction (RTL). It depends on \Feliz.Bulma\ version 3.x and is built on Feliz 2.4.0 and Fable 3.2.7, as indicated by the dependency lock file.

src/Feliz.Bulma.Switch · high confidence

Introduce Feliz.Bulma.Badge component

Adds the new \Feliz.Bulma.Badge\ library, providing a F\# component to render Bulma badge elements. The implementation exposes a \Badge.badge\ function that accepts string or integer content, and a \badge\ module for styling modifiers such as \isOutlined\, \isTopLeft\, and \isRight\. This component is built on Feliz 3 and Fable 5, requiring Feliz.Bulma version 3.

src/Feliz.Bulma.Badge · high confidence

New CLI build system with docs and publish commands

The build tooling has been restructured into a new .NET 8 CLI application using Spectre.Console.Cli. This introduces two main commands: 'docs', which builds documentation using Fable and Vite, and 'publish', which validates projects, generates changelogs, pushes NuGet packages, and commits release changes. The system relies on the EasyBuild.Tools library (v6.0.0) and includes a workspace abstraction for file paths.

src/Build · high confidence

New Checkradio component and Bulma modifiers

This release introduces a new Checkradio component for Feliz.Bulma, allowing users to render checkboxes and radio buttons with the Bulma 'is-checkradio' class. It also adds a set of modifiers (such as size variants like isSmall/isMedium/isLarge, isCircle, isBlock, and styling options like hasNoBorder) to customize the appearance of these inputs. Additionally, the package has been updated to depend on Feliz 3 and Fable 5, requiring users to upgrade their core dependencies to maintain compatibility.

src/Feliz.Bulma.Checkradio · high confidence

Architecture

Repository restructuring and new build system

The project has been reorganized with a new build system and documentation architecture. This includes the addition of a centralized build script (using a Fake build project), a new .editorconfig for consistent code formatting, and a Directory.Build.props file that enables central package management for FSharp.Core. The solution file has been updated to include multiple new extension projects (such as QuickView, Tooltip, Checkradio, Popover, PageLoader, Switch, Divider, Badge, Slider, Timeline, and TagsInput) alongside a Docs project, reflecting a shift to a multi-project structure.

(repo-wide) · high confidence

Behavioural changes

DateTimePicker now supports text input and custom date formatting

The DateTimePicker component now allows users to type dates directly into the input field, with the selection triggering the onDateSelected event immediately upon update. It also introduces new onTextChanged and onTextInputBlur events to handle input state changes, and adds a dateFormat prop to customize how dates are displayed. Additionally, clicking outside the calendar now updates the datetime value, and the picker can be configured to close automatically after a selection.

src/Feliz.Bulma.DateTimePicker · high confidence

Enforced commit message validation and F\# code formatting

The project now automatically validates commit messages against a defined schema and formats F\# source files before every commit. When you commit, the system runs a commit linter to ensure messages follow the required structure, and it uses Fantomas to format any staged .fs, .fsx, or .fsi files, ensuring consistent code style without manual intervention.

.husky · high confidence

Feliz.Bulma v5.0.0: Upgrade to Feliz 3 and Fable 5

This release upgrades the library to Feliz 3 and Fable 5, introducing breaking changes that require updating your project's dependencies. The internal implementation has been refactored to use the new Feliz APIs, including the migration from \Interop.mkAttr\ to \PropHelper.mkAttr\ in property builders and a restructuring of the class-combination logic in \ElementBuilders\ to use \List\ operations instead of \Seq\. Additionally, the \Layout.fs\ module has been removed, and the \paket.references\ file has been deleted in favor of the new \packages.lock.json\ dependency management.

src/Feliz.Bulma · high confidence

Feliz.Bulma.PageLoader upgraded to Feliz 3 and Fable 5

The PageLoader component has been updated to target Feliz 3 and Fable 5, introducing breaking changes that require users to upgrade their underlying Feliz and Fable dependencies. This release also includes a new CHANGELOG.md file to track version history and updates to the internal Modifiers and PageLoader modules to align with the new framework APIs.

src/Feliz.Bulma.PageLoader · high confidence

Feliz.Bulma.QuickView: New QuickView component and dependency update to Feliz 3/Fable 5

This release introduces the new QuickView component, providing a set of F\# bindings for Bulma's quick-view UI pattern (header, body, block, and footer elements) via the \QuickView\ type in \QuickView.fs\ and the \isActive\ modifier in \Modifiers.fs\. Additionally, the package has been updated to depend on Feliz 3 and Fable 5 (version 4.0.0), which is a breaking change requiring users to upgrade their underlying Feliz and Fable versions.

src/Feliz.Bulma.QuickView · high confidence

Feliz.Bulma.Slider v4.0.0 requires Feliz 3 and Fable 5

The Feliz.Bulma.Slider component has been updated to version 4.0.0, introducing a breaking change that requires upgrading the underlying Feliz library to version 3 and the Fable compiler to version 5. This update also includes the introduction of new modifier attributes for the slider component, such as \isVertical\, \isCircle\, \isFullWidth\, and size variants (\isSmall\, \isMedium\, \isLarge\), allowing users to customize the slider's orientation and appearance. Users must ensure their project dependencies are aligned with these new major versions to maintain compatibility.

src/Feliz.Bulma.Slider · high confidence

Feliz.Bulma.TagsInput v4.0.0: Upgrade to Feliz 3 and Fable 5

The TagsInput component has been updated to require Feliz 3 and Fable 5, marking a major version bump (v4.0.0) that introduces breaking changes for existing users. This upgrade aligns the library with the latest runtime and UI framework versions, ensuring compatibility with modern Fable/Feliz ecosystems while potentially requiring consumers to update their own dependency trees.

src/Feliz.Bulma.Divider, src/Feliz.Bulma.TagsInput · high confidence

Feliz.Bulma.Timeline v4.0.0: Upgrade to Feliz 3 and Fable 5 with timeline header support

This release upgrades the library to require Feliz 3 and Fable 5, introducing breaking changes for existing users. It adds support for rendering timelines without headers via the new \noHeaders\ modifier on the timeline element. The package now depends on Feliz.Bulma version 3.0.0.

src/Feliz.Bulma.Timeline · high confidence

Introduce Bulma Popover component and upgrade to Feliz 3 / Fable 5

This release adds a new Popover component to the library, providing \popover\ and \content\ builders along with modifier classes for trigger states and positioning (top, right, bottom, left) to help users render Bulma-style popovers. It also includes a breaking upgrade to Feliz 3 and Fable 5, which requires users to update their underlying framework dependencies to maintain compatibility.

src/Feliz.Bulma.Popover · high confidence

Dependencies

Feliz.Bulma upgrades to Bulma 1.0 and centralizes dependency management

The Feliz.Bulma library and its extension packages (Badge, Checkradio, DateTimePicker, Divider, PageLoader, Popover, QuickView, Slider, Switch, TagsInput, Timeline, Tooltip) have been updated to depend on Bulma 1.0.4. This change is supported by a migration to a centralized package versioning system via Directory.Packages.props, which defines Feliz 3.3.1, Fable 5.0.0, and FSharp.Core 6.0.0, and the removal of the legacy Paket dependency files (paket.dependencies and paket.lock).

(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 54 → 47 (-6.7)
  • Rubric changed (rubric-2026.09.13 → rubric-2026.10.1) — scores are not directly comparable.

Lenses

  • Code Health 94 → 93 (-0.8)
  • Architecture 99 → 91 (-8.1)
  • Maturity 49 → 49 (+0.0)
  • Readiness 39 → 39 (+0.0)
  • Security 76 → 79 (+3.0)
  • Accessibility 40 (new)

Resolved (3)

  • Documentation: no contributor guidance (README.md)
  • Documentation: no usage examples (README.md)
  • Off-boarding risk: anonymized user #1

New (4)

  • FileTooLong: Feliz.Bulma.DateTimePicker/DateTime.fs (src/Feliz.Bulma.DateTimePicker/DateTime.fs)
  • High CVE: [GHSA redacted] (package-lock.json)
  • Off-boarding risk: anonymized user #1
  • Projects may be oversized for their cohesion

Architecture

  • Containers 0 added · 0 removed · contexts 1 added · 0 removed · edges 0 added · 0 removed

Added bounded contexts (1)

  • Docs

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

fable-hub/Feliz.Bulma 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 0721d04a4059dc2218b9ce7ebbbaab87ca00e619 — 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-4f4226d619ea.