Cookie Consent by TIBET




If you're having problems with TIBET this guide may help. If you don't see an answer to your problem here, you can also take advantage of the following support resources:

We'll try to get you an answer.








npm cb() never called

If you already have a recent version of Node.js installed you should have a valid version of npm. We suggest using at least npm 5.x.

If you see errors from any npm-based operations mentioning cb() never called! you'll want to perform the appropriate steps for your operating system. See this npm troubleshooting topic for more.

Installing From Git

A common issue when deciding to install TIBET via Git is that the Git-based installation and npm installation can conflict. The solution is to be sure to uninstall any npm version of TIBET you've installed, then install following the instructions for Git installation.


Custom Tag Rule Does Not Apply

If you're using custom tags in TIBET there are two variations to deal with: leaving the tag in XML form, and converting it to an XHTML tag with a tibet:tag attribute. Each requires a specific syntax for CSS rules to apply correctly

XHTML tags must include a [tibet|tag="{{ns:tagname}}"] qualifier:

In the sample here we assume a project name of hello. This rule will apply to a div element containing the tibet:tag value identifying it as the hello:app tag:

div[tibet|tag="hello:app"] {

XML tags must have an associated @namespace declaration:

For tags you leave in their XML form your style sheet(s) must include a matching @namespace CSS directive. For example, if you have tags in the hello namespace you need a directive similar to:

@namespace hello url(urn:app:hello);

Note that you can use any valid URI here at long as it's consistent with any other registrations you may use for that particular namespace. TIBET defaults to using a simple URN of the form urn:app:{{namespace}} at project creation.

Custom Tag Does Not Display

XML tags require a 'display' declaration

By default your XML tags do not have a default display value such as block, inline, etc. like XHTML tags do. To get your tags to display correctly be sure that each tag has at least one related rule that will assign a display value:

hello|app {
    display: block;

Custom Tag Ignoring Class

Use [class~=classname] for XML tag class rules

XML tags treat class as just another attribute so use attribute selector syntax rather than the standard HTML sugar. NOTE that it's best to use the "contains" syntax via ~=:

hello|button[class~="active"] {
    border: 1px solid red;


Packager Fails To Complete

The current TIBET packager doesn't like '%%' and rewrites them into strange combinations, so break up sequences using a '+' such as:

Change this:


To this:

"%" + "%"