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
Sep 8, 2024
Mar 1, 2025
Sep 10, 2024
Jan 4, 2025
Feb 23, 2025
Oct 19, 2020
Mar 15, 2025
Mar 15, 2025
Jan 5, 2025
Sep 8, 2024
Sep 9, 2024
Aug 11, 2024
Dec 14, 2024
Mar 15, 2025
Mar 15, 2025
Jan 30, 2022
Jan 7, 2025
Jan 7, 2025
Jan 5, 2025
Dec 14, 2024
Mar 15, 2025
Sep 9, 2024
Nov 26, 2020
Nov 23, 2023
Mar 9, 2025
Mar 15, 2025
Sep 9, 2024

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
gem Gem core
gem-devtools Browser debugging tool for Gem
gem-analyzer Gem element analyzer, which can automatically generate documents
gem-book Documentation site builder created using Gem
duoyun-ui UI library created using Gem
gem-port Export Gem elements as React/Vue/Svelte components
gem-examples Gem and DuoyunUI examples
ts-gem-plugin Gem language service plugin for TypeScript
swc-plugin-gem Building plugin for SWC
zed-plugin-gem Zed extension
vscode-gem-plugin VSCode extension

Roadmap.

Contribution

Fork repo, submit PR