Skip to content
/ gem Public

💎 Lightweight WebApp development library using custom elements

License

Notifications You must be signed in to change notification settings

mantou132/gem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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