οΏ½?οΏ½ One of the four nominated projects to the "Breakthrough of the year" category of Open Source Award in 2019
hybrids is a UI library for creating web components with unique declarative and functional approach based on plain objects and pure functions.
- The simplest definition β just plain objects and pure functions - no
classandthissyntax - No global lifecycle β independent properties with own simplified lifecycle methods
- Composition over inheritance β easy re-use, merge or split property descriptors
- Super fast recalculation β smart cache and change detection mechanisms
- Global state management - model definitions with support for external storages
- Templates without external tooling β template engine based on tagged template literals
- Developer tools included β HMR support out of the box for a fast and pleasant development
Quick Look
Add the hybrids npm package to your application, import required features, and define your custom element:
import { html, define } from 'hybrids';
export function increaseCount(host) {
host.count += 1;
}
export const SimpleCounter = {
count: 0,
render: ({ count }) => html`
<button onclick="${increaseCount}">
Count: ${count}
</button>
`,
};
define('simple-counter', SimpleCounter);Use the custom element in HTML document:
<simple-counter count="10"></simple-counter>Click and play with
<simple-counter>example:
Documentation
The project documentation is available at the hybrids.js.org site.
License
hybrids is released under the MIT License.

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.
