11** Alpha**
2- | [ source code on GitHub] ( https://github.com/jaandrle/deka-dom-el )
3- | [ * mirrored* on Gitea] ( https://gitea.jaandrle.cz/jaandrle/deka-dom-el )
4- | [ ![ git3moji] ( https://img.shields.io/badge/git3moji%E2%80%93v1-%E2%9A%A1%EF%B8%8F%F0%9F%90%9B%F0%9F%93%BA%F0%9F%91%AE%F0%9F%94%A4-fffad8.svg?style=flat-square )] ( https://robinpokorny.github.io/git3moji/ ) <!-- editorconfig-checker-disable-line -->
5-
6- <p align =" center " >
7- <img src="docs/assets/logo.svg" alt="Deka DOM Elements Logo" width="180" height="180">
8- </p >
9-
10- # Deka DOM Elements (dd\< el\> or DDE)
2+ | [ Docs] ( https://jaandrle.github.io/deka-dom-el " Official documentation and guide site ")
3+ | [ NPM] ( https://www.npmjs.com/package/deka-dom-el " Official NPM package page ")
4+ | [ GitHub] ( https://github.com/jaandrle/deka-dom-el " Official GitHub repository ")
5+ ([ * Gitea* ] ( https://gitea.jaandrle.cz/jaandrle/deka-dom-el " GitHub repository mirror on my own Gitea instance ") )
116
127*** Vanilla for flavouring — a full-fledged feast for large projects***
138
14- * …use simple DOM API by default and library tools and logic when you need them*
15-
169``` javascript
1710// 🌟 Reactive component with clear separation of concerns
1811document .body .append (
1912 el (EmojiCounter, { initial: " 🚀" })
2013);
2114
2215function EmojiCounter ({ initial }) {
23- // ✨ State - Define reactive data
16+ // ✨ - Define reactive data
2417 const count = S (0 );
2518 const emoji = S (initial);
19+ const textContent = S (() => ` Hello World ${ emoji .get ().repeat (count .get ())} ` );
2620
27- /** @param {HTMLOptionElement} el */
28- const isSelected = el => (el .selected = el .value === initial);
29-
30- // 🔄 View - UI updates automatically when signals change
21+ // 🔄 - UI updates automatically when signals change
3122 return el ().append (
32- el (" p" , {
33- className: " output" ,
34- textContent: S (() =>
35- ` Hello World ${ emoji .get ().repeat (count .get ())} ` ),
36- }),
23+ el (" p" , { textContent, className: " output" }),
3724
38- // 🎮 Controls - Update state on events
25+ // 🎮 - Update state on events
3926 el (" button" , { textContent: " Add Emoji" },
40- on (" click" , () => count .set (count .get () + 1 ))
27+ on (" click" , () => count .set (count .get () + 1 )),
4128 ),
4229
43- el (" select" , null , on .defer (el => el .value = initial),
44- on (" change" , e => emoji .set (e .target .value ))
30+ el (" select" , null ,
31+ on .defer (el => el .value = initial),
32+ on (" change" , e => emoji .set (e .target .value )),
4533 ).append (
4634 el (Option, " 🎉" ),
4735 el (Option, " 🚀" ),
@@ -53,6 +41,13 @@ function Option({ textContent }){
5341 return el (" option" , { value: textContent, textContent });
5442}
5543```
44+ * …use simple DOM API by default and library tools and logic when you need them*
45+
46+ <p align =" center " >
47+ <img src="docs/assets/logo.svg" alt="Deka DOM Elements Logo" width="180" height="180">
48+ </p >
49+
50+ # Deka DOM Elements (dd\< el\> or DDE)
5651
5752Creating reactive elements, components, and Web Components using the native
5853[ IDL] ( https://developer.mozilla.org/en-US/docs/Glossary/IDL ) /JavaScript DOM API enhanced with
@@ -64,19 +59,21 @@ Creating reactive elements, components, and Web Components using the native
6459- ☑️ ** Lightweight** — ~ 10-15kB minified (original goal 10kB) with ** zero** /minimal dependencies
6560- ✅ ** Declarative & functional approach** for clean, maintainable code
6661- ✅ ** Signals and events** for reactive UI
62+ - ✅ ** Auto-releasing resources** for memory management but nice development experience
6763- ✅ ** Memoization for performance** — optimize rendering with intelligent caching
68- - ✅ ** Optional build-in signals** with support for custom reactive implementations (#39 )
69- - ✅ ** Server-side rendering** support via [ jsdom] ( https://github.com/jsdom/jsdom )
64+ - ☑️ ** Optional build-in signals** with support for custom reactive implementations (#39 )
65+ - ☑️ ** Server-side rendering** support via [ jsdom] ( https://github.com/jsdom/jsdom )
7066- ✅ ** TypeScript support**
71- - ☑️ ** Support for debugging with browser DevTools** without extensions
67+ - ✅ ** Support for debugging with browser DevTools** without extensions
7268- ☑️ ** Enhanced Web Components** support
7369
7470## Getting Started
7571
76- ### Documentation
72+ ### Quick Links
7773
7874- [ ** Documentation and Guide** ] ( https://jaandrle.github.io/deka-dom-el )
7975- [ ** Examples** ] ( https://jaandrle.github.io/deka-dom-el/p15-examples.html )
76+ - [ ** Changelog** ] ( https://github.com/jaandrle/deka-dom-el/releases )
8077
8178### Installation
8279
@@ -87,7 +84,7 @@ npm install deka-dom-el --save
8784…or via CDN / Direct Script:
8885
8986For CDN links and various build formats (ESM/IIFE, with/without signals, minified/unminified), see the [ interactive
90- format selector] ( https://jaandrle.github.io/deka-dom-el/ ) on the documentation site.
87+ format selector] ( https://jaandrle.github.io/deka-dom-el/#h-getting-started ) on the documentation site.
9188
9289``` html
9390<!-- Example with IIFE build (creates a global DDE object) -->
@@ -141,9 +138,9 @@ get started, coding standards, commit guidelines, and the pull request process.
141138 interfaces or HTML code.
142139- [ pota] ( https://pota.quack.uy/ ) — small and pluggable Reactive Web Renderer. It's compiler-less, includes an html
143140 function, and a optimized babel preset in case you fancy JSX.
144- - [ jaandrle/dollar_dom_component] ( https://github.com/jaandrle/dollar_dom_component ) —
145- Functional DOM components without JSX/virtual DOM
146141- [ TarekRaafat/eleva] ( https://github.com/TarekRaafat/eleva ) — A minimalist, lightweight, pure vanilla JavaScript
147142 frontend runtime framework.
148143- [ didi/mpx] ( https://github.com/didi/mpx ) — Mpx,一款具有优秀开发体验和深度性能优化的增强型跨端小程序框架
149144- [ mxjp/rvx] ( https://github.com/mxjp/rvx ) — A signal based frontend framework
145+ - [ jaandrle/dollar_dom_component] ( https://github.com/jaandrle/dollar_dom_component ) —
146+ Functional DOM components without JSX/virtual DOM (my old library)
0 commit comments