Zaid-Ajaj/Feliz


A fresh retake of the React API in Fable and a collection of high-quality components to build React applications in F#, optimized for happiness

https://zaid-ajaj.github.io/Feliz/

License: MIT

Language: F#

Keywords: dsl, elmish-applications, fable, feliz, fsharp, html, react, type-safe


Feliz Nuget Build status

A fresh retake of the React API in Fable, optimized for happiness.

Here is how it looks like:

module App

open Feliz

[<ReactComponent>]
let Counter() =
    let (count, setCount) = React.useState(0)
    Html.div [
        Html.button [
            prop.style [ style.marginRight 5 ]
            prop.onClick (fun _ -> setCount(count   1))
            prop.text "Increment"
        ]

        Html.button [
            prop.style [ style.marginLeft 5 ]
            prop.onClick (fun _ -> setCount(count - 1))
            prop.text "Decrement"
        ]

        Html.h1 count
    ]

open Browser.Dom

let root = ReactDOM.createRoot(document.getElementById "root")
root.render(Counter())

Features

  • Consistent, lightweight formatting: no more awkward indentation using two lists for every element.
  • Discoverable attributes with no more functions, Html attributes or css properties globally available so they are easy to find.
  • Proper documentation: each attribute and CSS property
  • Full React API support: Feliz aims to support the React API for building components using hooks, context and more.
  • Fully Type-safe: no more Margin of obj but instead utilizing a plethora of overloaded functions to account for the overloaded nature of CSS attributes, covering 90% of the CSS styles, values and properties.
  • Included color list of most commonly used Html colors in the colors module.
  • Compatible with the current React DSL used in applications.
  • Compatible with Femto.
  • Approximately Zero bundle size increase where everything function body is erased from the generated javascript unless you actually use said function.

Quick Start

dotnet new -i Feliz.Template
dotnet new feliz -n MyProject
cd MyProject
npm install
npm start

Documentation

Feliz has extensive documentation at https://zaid-ajaj.github.io/Feliz with live examples along side code samples, check them out and if you have any question, let us know!

Project Statistics

Sourcerank 15
Repository Size 11.6 MB
Stars 544
Forks 82
Watchers 21
Open issues 56
Dependencies 34
Contributors 68
Tags 0
Created
Last updated
Last pushed

Top Contributors See all

Zaid Ajaj Cody Johnson dependabot[bot] Alfonso Garcia-Caro Linus Vettiger Christer van der Meeren Andrew Sutton Tony Williams Maxime Mangel zanaptak Mona Panchaud Bastiaan Zuurendonk Jonas Boesch Dag Brattli Dashie Micah kerams dawe CallumVass Simon Kamlet

Packages Referencing this Repo

Feliz
A fresh retake of the React API in Fable, optimized for happiness
Latest release 2.9.0 - Updated - 544 stars
Feliz.Recharts
Recharts bindings based on the Feliz API
Latest release 4.3.0 - Updated - 544 stars
Feliz.PigeonMaps
pigeon-maps bindings based on the Feliz API
Latest release 3.0.0 - Updated - 544 stars
Feliz.Popover
react-popover bindings based on the Feliz API
Latest release 3.0.0 - Updated - 544 stars
Feliz.Markdown
React-Markdown bindings based on the Feliz API
Latest release 2.4.0 - Updated - 544 stars
Feliz.UseDeferred
Hooks for dead-simple data fetching with Feliz
Latest release 2.0.0 - Updated - 544 stars
Feliz.UseElmish
useElmish hooks to build Elmish components as React components
Latest release 2.5.0 - Updated - 544 stars
Feliz.UseMediaQuery
useMediaQuery hooks to build responsive websites
Latest release 1.5.0 - Updated - 544 stars
Feliz.CompilerPlugins
Provides compile-time transformation for React components
Latest release 2.2.0 - Updated - 544 stars
Feliz.Svelte
Package Description
Latest release 0.7.0 - Updated - 544 stars
Feliz.SvelteComponent
Package Description
Latest release 0.7.0 - Updated - 544 stars
Feliz.SelectSearch
react-select-search bindings based on the Feliz API
Latest release 3.1.0 - Updated - 544 stars
Feliz.Kawaii
react-kawaii bindings based on the Feliz API
Latest release 2.0.0 - Updated - 544 stars
Feliz.Listeners
Package Description
Latest release 1.1.0 - Updated - 544 stars
Feliz.Delay
Adds easy to use delayed rendering
Latest release 1.0.0 - Updated - 544 stars
Feliz.Template
Feliz application template to quickly get started
Latest release 4.5.0 - Updated - 544 stars
Feliz.RoughViz
Feliz binding for the rough-viz library
Latest release 2.0.0 - Updated - 544 stars

Something wrong with this page? Make a suggestion

Last synced: 2024-10-26 01:35:54 UTC

Login to resync this repository