All Projects → GrosSacASac → Dom99

GrosSacASac / Dom99

Licence: bsl-1.0
Extend html with directives

Programming Languages

javascript
184084 projects - #8 most used programming language
declarative
70 projects

Projects that are alternatives of or similar to Dom99

CalDOM
An agnostic, reactive & minimalist (3kb) JavaScript UI library with direct access to native DOM.
Stars: ✭ 176 (+375.68%)
Mutual labels:  lightweight, dom, custom-elements
Switzerland
🇨🇭Switzerland takes a functional approach to Web Components by applying middleware to your components. Supports Redux, attribute mutations, CSS variables, React-esque setState/state, etc… out-of-the-box, along with Shadow DOM for style encapsulation and Custom Elements for interoperability.
Stars: ✭ 261 (+605.41%)
Mutual labels:  component, custom-elements
lego
🚀 Web-components made lightweight & Future-Proof.
Stars: ✭ 69 (+86.49%)
Mutual labels:  dom, custom-elements
Cosha
Colorful shadows for your images. 🎨
Stars: ✭ 988 (+2570.27%)
Mutual labels:  browser, dom
tsdom
Fast, lightweight TypeScript DOM manipulation utility
Stars: ✭ 16 (-56.76%)
Mutual labels:  lightweight, dom
crab
JavaScript library for building user interfaces with Custom Elements, Shadow DOM and React like API
Stars: ✭ 22 (-40.54%)
Mutual labels:  dom, custom-elements
Snuggsi
snuggsi ツ - Easy Custom Elements in ~1kB
Stars: ✭ 288 (+678.38%)
Mutual labels:  custom-elements, dom
Termly.js
Simple, Extensible, Hackable and Lightweight Javascript Browser Terminal Simulator!
Stars: ✭ 56 (+51.35%)
Mutual labels:  lightweight, browser
Three Elements
Web Components-powered custom HTML elements for building Three.js-powered games and interactive experiences. 🎉
Stars: ✭ 331 (+794.59%)
Mutual labels:  custom-elements, dom
Nanocomponent
🚃 - create performant HTML components
Stars: ✭ 355 (+859.46%)
Mutual labels:  component, dom
Lulumi Browser
Lulumi-browser is a lightweight browser coded with Vue.js 2 and Electron.
Stars: ✭ 367 (+891.89%)
Mutual labels:  lightweight, browser
esl
Lightweight and flexible UI component library based on web components technology for creating basic UX modules
Stars: ✭ 53 (+43.24%)
Mutual labels:  lightweight, custom-elements
Maquette
Pure and simple virtual DOM library
Stars: ✭ 729 (+1870.27%)
Mutual labels:  lightweight, dom
modulor-html
Missing template engine for Web Components
Stars: ✭ 36 (-2.7%)
Mutual labels:  dom, custom-elements
Web-Map-Custom-Element
A custom <mapml-viewer> and <layer-> element suite
Stars: ✭ 49 (+32.43%)
Mutual labels:  dom, custom-elements
Hyperhtml
A Fast & Light Virtual DOM Alternative
Stars: ✭ 2,872 (+7662.16%)
Mutual labels:  lightweight, dom
Xmpp.js
XMPP for JavaScript
Stars: ✭ 2,006 (+5321.62%)
Mutual labels:  component, browser
Browser Kit
The BrowserKit component simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically.
Stars: ✭ 2,563 (+6827.03%)
Mutual labels:  component, browser
Wpt
Test suites for Web platform specs — including WHATWG, W3C, and others
Stars: ✭ 3,573 (+9556.76%)
Mutual labels:  browser, dom
React Select Search
⚡️ Lightweight select component for React
Stars: ✭ 379 (+924.32%)
Mutual labels:  lightweight, component

dom99

npm bundle size minified + gzip npm Chat on Miaou


What is dom99 ?

dom99 is a JavaScript framework focused to make web development faster. Select HTML elements, add event listeners, synchronize state with the view, clone HTML templates with your data and insert them directly in the document.

Changelog

Installation

npm install dom99

Basic Use

Data-binding

<!-- The input and the paragraph as well as the js variable always have the same value -->

<input data-variable="text">
<p data-variable="text"></p>

<script>
    d.feed({text : "Hello dom99"});
    d.start();
    console.log(d.variables.text);
</script>

Design philosophy

Optimized for page-load

By default dom99 is optimized for first page load, that means the size is small.

HTML for mark-up, JS for logic

Get up an running fast. dom99 does not attempt to invent for the nth time how to write if statements and for loops inside HTML. Put logic in JS, and mark-up that you already know in HTML. HTML being used when sufficient we respect the minimal responsibility principle.

Separation of concerns

Designers and Developers can work on the same files. Elements in the mark-up linked to the DOM use data-* instead of the overused class and id. The benefits to this approach is that the developers can safely add data-attributes to stylized components without breaking the styles, and the designers can safely add classes and ids without breaking anything.

Easy to learn

Get up an running fast. Documentation Use a premade starter pack create-dom99-app.

Work with the Web platform

dom99 is a web framework and is an extension to web standards HTML, CSS and JS, and does not intent to be a replacement.

Zero-second compile time

dom99 can be used in a zero-second compile time development set-up with ES-modules.

No Virtual DOM

No virtual dom is used for maximum possible performance.

Read chrismorgan about DOM and VDOM on HN.

Unopinionated

dom99 is unopinionated. Bigger frameworks can be built on top of it. That means you can chose your own architecture, state management system, CSS system etc

Complete Documentation

Locally found in documentation/documentation-original.html

Examples

Local examples documentation/examples

JSON, YAML, TOML, INI Converter

Graphs

HTML Composition

<!--
Define the template for an user
every user has a picture, a short biography, and a contact button
-->
<template data-template="user-element">
    <img data-variable="picture">
    <p data-variable="bio">SHORT BIO</p>
    <button>Contact</button>
</template>

<!--
The list variable name is "users" and the template used is "user-element"
native html elements can also be used to display a list
-->
<div data-list="users" data-use="user-element"></div>
<script type="module">
    import * as d from "./node_modules/dom99/built/dom99.es.js";

    d.feed({users :
        [
            {
                picture: "usera.jpg",
                bio: "Loves biking and skating"
            },
            {
                picture: "userb.jpg",
                bio: "Drinks tons of café."
            }
        ]
    });
    d.start();
</script>
HTML Result

<div data-list="*users-user-element">
    <img data-variable="*picture" alt="user-picture" src="usera.jpg">
    <p data-variable="*bio">Loves biking and skating</p>
    <button>Contact</button>

    <img data-variable="*picture" alt="user-picture" src="userb.jpg">
    <p data-variable="*bio">Drinks tons of café.</p>
    <button>Contact</button>
</div>

Discussion

Chat on Miaou

Issues reports

Contributing

Contributing and things to do

Dev

npm run build-all to run all scripts in package.json in one go

open tests/specification/SpecRunner.html to run unit tests

License

Boost License

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].