Learn about our RFC process, Open RFC meetings & more.Join in the discussion! »


1.1.5 • Public • Published


The JS library to unit test CSS. CSS code coverage reports NOW included!

Why kandinski.js

Why not! The main goal of kandinski.js is to use the power and stability of TDD to test your Application CSS and avoid unexpected issues or regression.


$ yarn add kandinskijs

Usage overview

const kisk = require("kandinskijs");
describe("component css test", function() {
  const url = "https://siteurl.com";
  const localCssPath = "path/local.css";
  before(async function() {
    await kisk.init(this, url, localCssPath);
  after(async function() {
    await kisk.destroy();
  context("mobile viewport", function() {
    before(async function() {
      const mobileViewport = { width: 320, height: 1 };
      await kisk.getPage(mobileViewport);
    after(async function() {
      await kisk.page.close();
    it("h2 should have a display: flex", async function() {
      const selector = ".component";
      const cssProperty = "display";
      const display = await kisk.getCSSProperty(page, selector, cssProperty);

Run the demo locally to try it on your local machine.


init - Initialize kandinskijs with the URL you want to test and inject to the downloaded page your local CSS version.

.init(suite, url, cssPath)

destroy - Destroy the kandinskijs instance.


getPage - Get the page with a specific viewport, and set kandinskijs page property.


getCSSProperty - Return the CSS property value associated to querySelector

.getCSSProperty(querySelector, property)

getPctCSSProperty - Return the CSS property value associated to querySelector expressed in percentage, value ammitted for property parameters are [width, height].

.getPctCSSProperty(querySelector, property)

getInnerText - Return the text of the querySelector specified.


cssHelper - Provide helper methods to:

  • convert RGB to hexadecimal
  • convert hexadecimal to RGB
  • convert px value to percentage
.pxToPerc(pxSelector, pxParent)


You can find demo files under /demo folder.

  • index.html contains the HTML to be tested
  • local CSS defined in localBase.css
  • test suite, using kandinskijs, is defined in cssTest.js

start the local server

Open a CLI and execute:

$ yarn run demo-server

run the demo tests

Open another CLI and run CSS unit tests:

$ yarn run demo-test

run the demo code coverage report

$ yarn run demo-report

You will find the the report under **logs/cssKTest/lcov-report/demo/**

The demo test suite uses Mocha & Chai.


Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.


This project is licensed under the MIT License - see the LICENSE.md file for details


npm i kandinskijs

DownloadsWeekly Downloads






Unpacked Size

412 kB

Total Files


Last publish


  • avatar