Skip to content
The Heart of X-Tag
JavaScript HTML
Branch: master
Clone or download

Latest commit


Type Name Latest commit message Commit time
Failed to load latest commit information.
.vscode alpha cut Mar 26, 2018
dist Fix for custom even firing Feb 27, 2019
plugins 2.0.2-alpha push Apr 1, 2018
polyfills updating v2 for alpha Aug 30, 2017
src Fix for custom even firing Feb 27, 2019
tests beta prep Oct 25, 2018
.gitmodules Updated polyfills, bumped version Jan 5, 2015 Updates to package files and readme Mar 27, 2018
bower.json update package version strings Mar 10, 2019
gulpfile.js adding new dist versions Apr 2, 2018 Switching to MIT license Nov 16, 2015
package-lock.json beta prep Oct 25, 2018
package.json update package version strings Mar 10, 2019

X-Tag - Rocket fuel for component development

Join the chat at

NPM version


This is the repository for the core X-Tag library.

X-Tag is a Microsoft supported, open source, JavaScript library that wraps the W3C standard Web Components family of APIs to provide a compact, feature-rich interface for rapid component development. While X-Tag offers feature hooks for all Web Component APIs (Custom Elements, Shadow DOM, HTML Templates), it only requires Custom Element support to operate. In the absence of native Custom Element support, X-Tag relies on the same set of polyfills Google's Polymer framework uses.

You can find out more about what X-Tag does, where it works, and how to use it, on the project page:

Snag X-Tag from NPM

npm install x-tag

Pull our repo from Github

To get started hacking on X-Tag core:

git clone x-tag-core --recursive
cd x-tag-core
npm install        # installs all the required dependencies using package.json
gulp all     # outputs x-tag-core.js and x-tag-core.min.js to ./dist


If you already cloned the library and want to update your build with changes to Core, do:

cd x-tag-core
git pull origin master
npm install
gulp all

This assumes you just cloned the library and its remote repository is labelled origin. Suppose you had your own fork where your own remote is origin; you should add another remote origin and label it as upstream. Then your git pull line would need to be git pull upstream master instead.


We use Jasmine to test the library, and you can verify it works as expected by opening tests/core/index.html in your browser to run the tests.

Regenerating the distributable build

In the interest of not reinventing the wheel, X-Tag core uses a few existing libraries which get pulled into the project. But distributing a bunch of separate files is not efficient, so we need to generate a single file that contains all this code.

If you make changes on the library and want to regenerate the build, just run

gulp all

and both x-tag-raw.js and x-tag-polyfilled.js will be rebuilt, minified, and placed in the ./dist directory.

Creating your own Web Components

To learn more about X-Tags visit

You can’t perform that action at this time.