Skip to content
This repository
Fetching contributors…


Cannot retrieve contributors at this time

file 75 lines (45 sloc) 3.063 kb

X-Tag - Custom Elements for Modern Browsers

Current version: 0.9.4

Build Status

Selenium Test Status

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

Based on the current W3 Web Components draft, X-Tag enables the custom element portion of the proposal. Custom elements let you register new tags/elements with the parser, so they are recognized and inflated with special abilities you define.

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

X-Tag (excluding third-party icons or images) is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at

Getting started

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
grunt polyfill  # rebuilds polyfill file
grunt build     # outputs x-tag-core.js and x-tag-core.min.js to ./dist

If you are interested in building your own custom elements, you can use our web-component-stub as a starting point.


If you already have cloned the library and want to update to the latest changes, do:

cd x-tag-core
git pull origin master
git submodule update
npm install
grunt polyfill
grunt build

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.


Jasmine tests via grunt are not working yet, please open test/index.html in your browser to see if everything passes.

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

grunt build

and both x-tag-core.js and x-tag-core.min.js will be rebuilt and placed in the ./dist directory.

Creating your own web components

To learn more about X-Tags visit

To create your own component, use our web-component-stub.

Share your components by adding them to the Custom Elements Registry or Bower.

Something went wrong with that request. Please try again.