A library of component styles made with PostCSS


stars 🌟issues ⚠️updated 🛠created 🐣size 🏋️‍♀️
00Aug 9, 2018Apr 18, 2017Minified + gzip package size for alloycss in KB


AlloyCSS Core

Quick start

In your command line application, you will want to install the necessary tools to start working on the UI framework. Make sure your other projects are at the same level for synced releases.


Note: Yarn only applies to you if your only using this framework, otherwise figwheel will install all the npm packages for you

  • Soon Download the latest release
  • Clone the repo: git clone
  • Install npm
  • Install with yarn


If you're actively working on changing CSS rules in this library, you will want to clone this repository and run these commands:

npm i -g gulp
npm i
gulp watch


For now, I think a PR for version bump is good enough.


Make sure to add these things to your layout file. Optionally, for legacy browser support of HTML5 and layout, you can import modernizr/cdn into your head section.

<html class="s-app"> <!-- App scope class-->
  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"> <!-- This enables smaller devices to view this site responsively -->
  <link rel="stylesheet" href="/path/to/main.css"> <!-- This is the main stylesheet -->

To continue on the path of layout, refer to the example layout section in the CSS Guide.


This UI framework consists of multiple UI layers that serve their own purposes.

<div class="u-row u-center">
<div class="u-row u-center">
  <a href="#elements">Elements</a>
<div class="u-row u-center">
  <button class="c-button c-button--large">Components</button>
<div class="u-row u-center">
  <span class="c-button-group__label"><strong>Objects</strong></span>
  <div class='c-button-group--toggle'>
    <button class='c-button c-button--small'>Component</button>
    <button class='c-button c-button--small c-button--text'>Element</button>


Synopsis - Give developers more knowledge about how the classes behave in a non-relative sense: BEM + ITCSS = BEMIT


More Transparent UI Code with Namespaces

BEMIT: Taking the BEM Naming Convention a Step Further


.namespace-block__element--modifier\@media { }


/* Object */
.o-object-name[<element>/<modifier>] {}

/* Component */
.c-component-name[<element>/<modifier>] {}

/* Utility */
.u-utility-name {}

/* Theme */
.t-theme-name {}

/* Scope */
.s-scope-name {}

/* State */
.[is/has]-state {}

/* Hack */
._<namespace>hack-name {}

/* Javascript */
.js-component-name {}

/* Quality Assurance */
.qa-node-name {}

Responsive Suffixes


.o-object-name\@sm {}
.o-object-name\@md {}
.o-object-name\@lg {}

Media type

.u-utility-name\@print {}

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from