3.0.0-beta.2 • Public • Published

Kano Web Components

A library of shared elements and behaviors for the Kano ecosystem

Docs & demo

Used in: Kano Code, Kano World (new codebase)


After cloning the repo, install the dependencies in the main folder:

git clone git@github.com:KanoComputing/web-components.git
cd web-components
bower install

The components refer to their bower dependencies outside of their environment i.e. ../ and ../../. This is because web-components is meant to be a bower dependency itself. E.g. <link rel="import" href="../../iron-image/iron-image.html"> Therefore, a good practice is using Polyserve [link] that serves the component folders under ./bower_components/.

Polyserve's default port is 8080 and the components are accessible at http://localhost:8080/components/web-components/{componentName}.

For example, the kano-auth demo-page would be http://localhost:8080/components/web-components/kano-auth/demo/index.html.

To use the local version of web-components as a bower dependency, type bower link in the web-components folder and then bower link web-components in the project folder where you want to use it. Be aware though that Gulp can't handle symlinks (in which case manual copy-pasting of the dependency folder offers a solution).

Releasing on Github

When a new release is due, you can update the release in the Kano Web Components repository [link].

Migration to Polymer 2.x

Listed here are all the components defined in this repository. Initally developed using Polymer 1.x, we now intent to move progressively towards Polymer 2.x.

To work on the migration, use the bower-2.x.json file and rename it to bower.json (backing up the original bower.json). Clean and reinstall your bower dependencies. This will update all the third party libraries to their 2.x version. The imports for a 1.x element will now point to the Polymer compatibility layer for 2.x

This list indicates the status of the migration:

hyb = hybrid

[hyb] kano-api-client-behavior [hyb] kano-drop-down [hyb] kano-modal [hyb] kano-progress-api-behavior [hyb] kano-share [hyb] kano-step [hyb] kano-user-summary [hyb] kano-auth [hyb] kano-drop-down-item [hyb] kano-nav [hyb] kano-progress-bar [hyb] kano-share-card [hyb] kano-style [hyb] kano-cart [hyb] kano-gamification [hyb] kano-nav-bar-icons [hyb] kano-project-card [hyb] kano-share-feed [hyb] kano-tracking [hyb] kano-circle-progress [hyb] kano-glint-animation [hyb] kano-notifications [hyb] kano-reward-modal [hyb] kano-share-stats [hyb] kano-user-badge [hyb] kano-circle-spinner [hyb] kano-icons [hyb] kano-particle-burst [hyb] kano-secondary-links [hyb] kano-share-wrapper [hyb] kano-user-menu [hyb] kano-alert (Breaking change: As of shadow DOM v1, the slotted selector can only style top level elements. To style the buttons inside a kano-alert component, place them at the top level) [hyb] kano-comment-report [hyb] kano-lightboard-preview [hyb] kano-primary-links [hyb] kano-session [hyb] kano-sound-player-behavior [hyb] kano-user-stats

Usual issues experienced with the kano components:

  • style tag being outside of the template (A warning will be generated)
  • @apply(--whatever) => @apply --whatever
  • in demos: wrap style is="custom-style" in a custom-style element (web-components v1 spec)

Package Sidebar


npm i @kano/web-components

Weekly Downloads






Unpacked Size

3.37 MB

Total Files


Last publish


  • jielijieli
  • ellenw3lsh
  • camuskano
  • alexfiennes
  • kanocomputing
  • rpazdera
  • jamie_old_plantain