Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

typestyle

typestyle354kMIT2.4.0TypeScript support: included

TypeSafe CSS

readme

TypeStyle

Join the chat at  gitter

Making CSS type safe.

Build Status NPM version Downloads

Writing CSS with TypeStyle will be just as fluent as writing JavaScript with TypeScript.

There are quite a few css in js frameworks out there. This one is different:

  • Provides great TypeScript developer experience.
  • No custom AST transform or module loader support needed.
  • Works with any framework (react, angular2, cyclejs, whatever, doesn't matter).
  • Zero config. Just use.
  • super small (~6k gz)

This project is powered by github 🌟s ^ go ahead and star it please.

Checkout the awesome list of reviews 🌹.

Overview

Quickstart

Use it like you would use CSS modules or CSS in general with webpack etc, but this time you get to use TypeScript / JavaScript!

Install npm install typestyle --save

Use

/** Import */
import {style} from "typestyle";

/** convert a style object to a CSS class name */
const className = style({color: 'red'});

/** Use the class name in a framework of choice */
//  e.g. React
const MyButton =
  ({onClick,children})
    => <button className={className} onClick={onClick}>
        {children}
      </button>
// or Angular2
@Component({
  selector: 'my-component',
  template: `<div class="${className}">Tada</div>`
})
export class MyComponent {}

Guide

We really really want to make CSS maintainable and simple. So we even wrote a free and open source book, covering the super simple core API, a handful of utility styles in csx and tons of other goodness 🌹. Jump to the guide

Video Course

The guide contains everything you need to know. But if you prefer to watch video we have a free course up on egghead.

Why

You are probably here cause you are unhappy with your current workflow. So why not just jump to the guide and give it a go. If you still need reasons we have quite a few.

changelog

2.4.0

Support for prefersColorScheme in Media queries. Ref: https://github.com/typestyle/typestyle/pull/371

2.3.0

2.2.0

2.1.0

2.0.3

Updated free-style to 2.6.1.

2.0.2

typestyle.classes now takes objects. e.g. assert.equal(classes("a", false && "b", "c", { d: false, e: true }, { f: {}, g: null }), "a c e f");. Ref : https://github.com/typestyle/typestyle/pull/332

2.0.0

Migrated types to use the csstype project.

1.7.2

  • Fix : ReferenceError: window is not defined no longer happens when using import 'raf/polyfill';.

1.3.0

  • $debugName is now always respected.

1.1.1

  • CSSProperties strokeDashoffset.
  • CSSProperties strokeLineCap.
  • style and extend safely ignore null and undefined commit

1.1.0

1.0.0

  • Went 1.0 after a month of no new API changes.