A web implementation of the Lexicon Experience Language
Clone or download
Latest commit ff53c96 Dec 10, 2018


🏺 Clay · Build Status Coverage Status

Clay is Liferay's web implementation of Lexicon Experience Language. Built with Bootstrap as a foundation, it's comprised of HTML, CSS, and JS.


Clay repository follows the monorepo approach, all the major components that are the pillars of Clay are here in this repository.

Clay Css

The pillar to give colors and structure to Clay, where is the css and examples of HTML markups of the components.

Clay Components

All components that follow clay-css marking and Lexicon use cases, developed on Metal.js with Soy (Closure templates).


Contains the source code and documentation powering clayui.com.

Browser support

Internet Explorer 11 Google Chrome Last 2 Microsoft Edge Latest Mozilla Firefox Last 2 and 52 Opera Latest Safari Last 2 Chrome Android Safari iOS Latest


You can find the Clay documentation on the site.

You can improve by sending pull requests to this repository.


We have several examples on the site. Here's the first one to get you started:

{call ClayButton.render}
    {param label: 'Primary' /}
    {param type: 'button' /}

This example render a "Primary" button on the page, following Lexicon patterns.

You will notice that we use a Soy (Closure templates) template system that is built on top of Metal.js, but if you do not feel comfortable feel free to use WebComponents 😉.

<clay-button label="Primary" type="button"></clay-button>

It will do the same.

Each package contains a page with demos, check.


Clay is available as the clay package in npm for components and for css like clay-css. It is also available on a CDN for components and for css, check. But if you just want the separate components, it's also available in the npm as clay-.

See the Getting Started guide for more information.

Even if your application does not use the framework Metal.js Clay is flexible and can be used as WebComponents see some examples with:


Feel free to open up problems or send pull requests. We will always be looking at these problems and we will be responding whenever possible.

Before opening a issue make sure it exists.

Good First Issues

If you want to contribute to this project and do not know where to start good first issues is a great place to start.



  1. Install NodeJS >= v6.11.0, if you don't have it yet.

  2. Install global dependencies:

[sudo] npm install -g yarn
  1. Install project dependencies:
yarn install
  1. Install dependencies for each package and link them together:
npm run lerna
  1. Build all packages
npm run build
  1. Start a local server on port 4000
npm run start
  1. Run tests:
npm run test


To contribute to the documentation and the site in general, you can try to run locally to test your changes:

  1. Move to the site folder
cd clayui.com
  1. Install dependencies:
yarn install


npm install
  1. Run in development environment
npm run develop

If you want to test in a production environment so that you do not take risks of inconsistencies, in the root folder:

npm run site


Since travis is failing on executing a11y tests due to out of date suid you need to execute npm run pa11y locally before sending any pr to verify we're following accessibility standars.


BSD License © Liferay, Inc.