Code Monkey home page Code Monkey logo

build's Introduction

Skate

Build Status Downloads per month Join the chat at https://gitter.im/skatejs/skatejs Follow @skate_js on Twitter

Skate is a functional reactive abstraction over the web component standards as a set of packages that enables you to write small, fast and scalable web components using popular view libraries such as React, Preact and LitHTML.

  • ๐ŸŒ Cross-framework compatible components.
  • โš›๏ธ Render components using your favourite view library, or none at all.
  • ๐Ÿ‘‘ Guided conventions for best-practices when reflecting between, and reacting to attributes, properties and events.
  • ๐ŸŒŸ Full TypeScript support.
  • ๐Ÿ“š Docs https://skatejs.netlify.com.

Getting started

The simplest way to get up and running is to start with a pre-configured element such as @skatejs/element-lit-html.

npm i @skatejs/element-lit-html

Simple example

import Element, { html } from '@skatejs/element-lit-html';

export default class extends Element {
  static get props() {
    return {
      name: String
    };
  }
  render() {
    return html`
      Hello, ${this.name}!
    `;
  }
}

Other examples

  1. Todo list

Cli

There's a CLI to get you up and running: https://skatejs.netlify.com/packages/cli.

$ npm i -g @skatejs/cli
$ skatejs

Polyfills

Skate builds upon the Custom Elements and the Shadow DOM standards. It is capable of operating without the Shadow DOM โ€” it just means you don't get any encapsulation of your component's HTML or styles. It also means that it's up to you to provide a way to project content (i.e. <slot>). It's highly recommended you use Shadow DOM whenever possible.

Though most modern browsers support these standards, some still need polyfills to implement missing or inconsistent behaviours for them.

For more information on the polyfills, see the web components polyfill documentation, emphasis on the caveats.

Browser Support

Skate supports all evergreens and IE11, and is subject to the browser support matrix of the polyfills.

Backers

Support us with a monthly donation and help us continue our activities. Become a backer!

Sponsors

Become a sponsor and get your logo on our README on Github with a link to your site. Become a sponsor!

build's People

Contributors

adevnadia avatar bengummer avatar bgummer-atlassian avatar bqx avatar greenkeeperio-bot avatar hotell avatar joscha avatar jpnelson avatar lukebatchelor avatar stevemao avatar treshugart avatar zzarcon avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

build's Issues

Bower install broken

We recently updated the build to add dist/ to the .gitignore but didn't add a build step to add that to the tag, or publish it somehow. This needs to be fixed for bower consumers.

See skatejs/named-slots#83 for details.

add jsdom to the list of browsers and run by default locally

JSDOM is a fairly common environment to run tests in and it is missing certain features such as SVGElement, so it's important that we ensure tests pass when run in it as we shouldn't place restrictions on our users when this is a reasonable thing form them to do.

Since JSDOM is quick to boot and run tests in, I propose this be made the default environment, especially since it doesn't add clutter by starting browsers. Browsers are still run in CI, as well as JSDOM and you can specify which browsers you want to run if you don't want to run them in JSDOM anyway.

Use commitizen + semantic release

I'd use the guide here:
https://github.com/commitizen/cz-cli with conventional changelog

and after that's set up, the default set up for semantic release should read that commit log and make releases.

https://github.com/semantic-release/semantic-release with the conventional changelog commit analyzer should do the actual releases.

There'd need to be some travis-ci integration to enable it, @joscha has set up the atlassian/lerna-semantic-release to release on travis-ci with semantic-release and commitizen, so he should know what to do there. That said, from what I've seen, the semantic-release guide is pretty easy to set up travis-ci with. We can use the pre and post steps directly from semantic-release.

I'd use as much of the defaults as possible. They're pretty well set up for github, we could generate releases and release notes in the same way.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.