Skip to content

A web-component library for commonjs based on rivet

License

Notifications You must be signed in to change notification settings

nodys/elastomer

Repository files navigation

elastomer

js-standard-style travis npm downloads

A web-component library for commonjs based on rivet

Overview

ALPHA version - incomplete doc / incomplete tests

  • Create web-components in commonjs
  • Elastomer is like a light polymer + rivets

Getting Started

Install the module with: npm install elastomer --save

Getting Started

'use strict'
const elastomer = require('nova-elastomer')

require('nova-elastomer/webcomponents-lite.js') // Optional

class Foobar extends elastomer.HTMLElastomer {
  initialize (elasto) {
    elasto.html = `
    <h2>{{title}}</h2>
    <ul>
      <li nv-each-item="list">{{item.label}}</li>
    </ul>
    <content></content>`
    elasto.css = `:host {}`
  }

  link (scope, elasto) {
    scope.list = [
      { label: 'A' },
      { label: 'B' }
    ]
    elasto.mapAttribute('title')
  }
}

module.exports = elastomer('nova-foobar', { prototype: Foobar.prototype })

Now you can use the new <nova-foobar> tag

<div>
  <nova-foobar title="Hello world">
    <p>The future is now</p>
  </nova-foobar>
</div>

The pseudo-dom produced looks like:

<div>
  <nova-foobar title="Hello world">
    <h2>Hello world</h2>
    <ul>
      <li>A</li>
      <li>B</li>
    </ul>
    <p>The future is now</p>
  </nova-foobar>
</div>

License: MIT

js-standard-style

About

A web-component library for commonjs based on rivet

Resources

License

Stars

Watchers

Forks

Packages

No packages published