npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

dom99

v26.1.1

Published

Extend html with directives

Downloads

54

Readme

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>

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