mantou132 / gem

πŸ’Ž Lightweight WebApp development library using custom elements

Home Page:https://gemjs.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Gem

Read in other languages: English | δΈ­ζ–‡

Create custom elements, bind data, route switching, and quickly develop WebApps based on custom elements. Stripped from mt-music-player.

Features

  • Lightweight: The whole librarie is divided into three modules (custom elements, global data management, routing), you can choose whether to use the built-in custom elements, all the content is packaged together and only 15kb(br compression).

  • Simple: There is no new syntax, everything is HTML, CSS, JavaScript. There is no superfluous concept, only "Observe" is needed to create reactive custom elements;

  • High performance: The template engine uses lit-html, bundle size, performance of addition, deletion, modification, and memory usage are better than React and Vue, here is the performance comparison between lit-html and React and Vue;

  • Asynchronous rendering: which will avoid blocking the main thread for a long time when continuously rendering (such as creating a list) of element, providing a smooth user experience;

Document

Project Packages

Package Description
packages/gem Gem core
packages/gem-devtools Browser debugging tool for Gem
packages/gem-analyzer Gem element analyzer, which can automatically generate documents
packages/gem-book Documentation site builder created using Gem
packages/duoyun-ui UI library created using Gem
packages/gem-port Export Gem elements as React/Vue/Svelte components
packages/gem-examples Gem and DuoyunUI examples

Contribution

Fork repo, submit PR

About

πŸ’Ž Lightweight WebApp development library using custom elements

https://gemjs.org

License:MIT License


Languages

Language:TypeScript 97.5%Language:JavaScript 2.3%Language:HTML 0.2%