If you're not aware of Fable, and/or are new to F#, then I suggest you visit their website to familiarise yourself with the technology.
Introduction
Partas.Solid
is a plugin for the F# to JS transpiler Fable
.
Partas.Solid differs from other front end plugins in F# in its overarching goal:
To define a DSL that allows building HTML/JSX trees for native, imported, and user defined components
What this means
- You can define a component and use it within the same DSL
This means User defined components are indistinguishable from native or library imported components in their usage. Forming DOM trees is consistently uniform in syntax, making it easier to read, understand, refactor, and use.
- When creating a UI element, you can inherit the ability to receive children or not, have classes, have event signatures, all by interfacing a single type. No need to overload. No need to define optional signatures. Just go.
- Creating components with optional properties/attributes are as intuitive as the source material.
These are unique goals for Partas.Solid.
Contents
This documentation is organised (or disorganised) in the following manner:
- About
- Context/History of the plugin/fork
- Advantages of JSX
- Documentation
- Features of the Plugin and general introduction to Solid-JS
- Bindings and signatures for bindings where relevant
- Dev
- Minor plugin details (the source is better documented)
- Troubleshooting
Further examples and recipes are to come.
A separate section is available for the Ecosystem
Getting Started
Benefits of JSX Output
Learn More About Us
Isn't this Oxpecker.Solid?
Partas.Solid is an opinionated fork of Lanayx's Oxpecker.Solid, the plugin aggressively transforms the Fable AST to produce Solid-js compatible JSX with lots of syntactic sugar sprinkled in for a smooth developer experience.
There are fundamental differences with the goals of each plugin, which is why the fork exists. Where possible, everything is done to simultaneously support and contribute to Oxpecker.Solid.
Last updated: 7/9/25, 7:54 PM