Skip to content
/ fui Public

A functional UI framework and rendering engine with an impossibly small footprint

License

Notifications You must be signed in to change notification settings

iainjreid/fui

Repository files navigation

What’s this all about?

Fui is a fresh take on the traditional frontend framework, it’s simple to use, has a tiny footprint, and is blazingly fast!

Under the hood, Fui is built using functional concepts, elements you build are referentially transparent, so wherever or however you create them they'll always be the same.

Checkout this repository for a demo!

Features

At its center, Fui plays host to a simple AST engine; a respectably lightweight one, written in highly compressible and optimised code, weighing in at just 396 bytes.

Elements are composed using simple JavaScript functions, so there's no need for JSX, or even HTML for that matter. Using elements is simply a case of importing the composition, and then invoking it.

const { div } = require("@emphori/fui/html");

// A possible component
const myWrapper = div.attr("class", "wrapper");

// Generate the DOM element
const elem = myWrapper();

// Append the element
document.body.appendChild(elem);

FAQ

Why is this not written in TypeScript?

There's rational behind not using TS for this project, simply put, the need to easily document the possible values exposed by a Proxy isn't currently met by the tooling provided.

License

This project is released under the MIT License. Enjoy responsibly ✌️