Home
Softono

Fit Html

Open source TypeScript
114
Stars
2
Forks
9
Issues
8
Watchers
5 years
Last Commit

 About Fit Html

πŸ’ͺ Combining web components + lit-html + redux (3KB)

Platforms

Web Self-hosted

Languages

TypeScript

Links

Need Help Installing Fit Html?

We provide expert installation service for this software. Our team will install, configure, and secure Fit Html on your server. plans start at just $30.

πŸ’ͺ fit-html

npm Travis Bundle Size Greenkeeper badge

3KB web components + lit-html + redux library without bloat.

Overview

fit-html is a combination of lit-html, web components and redux bringing efficient rendering and a functional application architecture together. Yet, the total size of the framework is below 3KB, including dependencies.

Small Example

You need the following:

import { connect, withStore } from 'fit-html';
import { html } from 'lit-html/lib/lit-extended';
import { createStore } from 'redux';

Set up redux store:

const todos = (state = [], action) => {
  switch (action.type) {
    case 'ADD_TODO':
      return state.concat([action.text]);
    default:
      return state;
  }
};

const store = createStore(todos, ['Use Redux']);

Define actions and view:

function addTodo() {
  return {
    type: 'ADD_TODO',
    text: `Hello ${Math.random()}`
  };
}

const render = ({ addTodo, todos }) => html`
  <ul>
    ${todos.map(text => html`<li>${text}</li>`)}
  </ul>

  <button on-click="${addTodo}">
    Add
  </button>
`;

const TodosApp = connect(
  state => ({ todos: state }),
  { addTodo }
)(render);

// Define the custom element.
//
// The withStore mixin is only required for the root element of your
// app. All other πŸ’ͺ-elements will get the redux store from that element.
customElements.define('todo-app', withStore(store)(TodosApp));

index.html:

<html>
  <head>
    <title>My cool πŸ’ͺ-html app</title>
  </head>
  <body>
    <todo-app></todo-app>
  </body>
</html>

Please see https://github.com/Festify/fit-html-demo for more and larger examples.

Compatibility

πŸ’ͺ-html is written for use with evergreen browsers. Not so much for Internet Explorer (though we strive to become compatible with IE11 once lit-html itself is).

License

MIT