Skip to content
This repository has been archived by the owner on Aug 31, 2020. It is now read-only.

Latest commit

 

History

History
76 lines (53 loc) · 3.14 KB

File metadata and controls

76 lines (53 loc) · 3.14 KB

MoleculeLitExtended · GitHub license npm version Build Status Greenkeeper badge

Molecule logo

Build Status Coverage Version License Greenkeeper badge

Overview

Molecule is a JavaScript library for building user interfaces using web components.

This package provides a base class for creating Custom Elements that renders using lit-html's lit-extended template engine.

Installation

The @moleculejs/molecule-lit-extended package can be installed using npm or yarn:

npm install --save @moleculejs/molecule-lit-extended
yarn add @moleculejs/molecule-lit-extended

Documentation

See the full documentation at MoleculeJS.org.

Examples

Let's start with a simple Example:

class HelloWorld extends MoleculeLitExtended.Element {
  static get properties() {
    return {
      name: String,
      attribute: true,
      value: 'John Doe',
    };
  }
  render({ name }) {
    html`
      <div>Hello ${name}</div>
    `;
  }
}

customElements.define('hello-world', HelloWorld);

This creates a new Custom Element called hello-world, which can now be used anywhere in your application using <hello-world>.

This new element will also keep the property name in sync with the attribute name, meaning that the element will look like this in the DOM:

<hello-world name="John Doe"></hello-world>

If you change the attribute or the property, both will be kept in sync and the element will be rerendered.

Premade Base Classes

There are several other base classes for Molecule with different rendering methods, like lit-html or JSX. A complete list of official packages for Molecule can be found in the full documentation

Contributing

Coming soon!