0.1.4 • Published 4 years ago

@imedadel/cxs v0.1.4

Weekly downloads
6
License
MIT
Repository
github
Last release
4 years ago

cxs

Fastest and smallest CSS-in-JS library. Only 0.4kb

This fork of cxs gets rid of some features that I do not need in my project and uses some "tricks" to achieve a slightly better performance.

const className = cxs({ color: 'tomato' })

Install

yarn add cxs

# or using npm
npm i cxs

Usage

cxs works with any framework, but this example uses React for demonstration purposes.

import React from 'react'
import cxs from 'cxs'

const Box = (props) => {
  return (
    <div {...props} className={className} />
  )
}

const className = cxs({
  padding: '32px',
  backgroundColor: 'tomato'
})

export default Box

Pseudoclasses

const className = cxs({
  color: 'tomato',
  ':hover': {
    color: 'black'
  }
})

Media Queries

const className = cxs({
  fontSize: '32px',
  '@media screen and (min-width: 40em)': {
    fontSize: '48px'
  }
})

Child Selectors

const className = cxs({
  color: 'black',
  ' > a': {
    color: 'tomato'
  }
})

API

cxs(style)

Accepts a styles object returns a className string.

Note: contrary to the original cxs, this fork accepts only one object as argument.

Vendor prefixes

cxs does not handle vendor prefixing to keep the module size at a minimum.

Benchmarks

new_cxs is currently the fastest :)

inline-styles x 1,949 ops/sec ±11.38 % (69 runs sampled)
cxs x 3,548 ops/sec ±3.45% (78 runs sampled)
new_cxs x 5,178 ops/sec ±2.89% (80 runs sampled)
emotion x 2,716 ops/sec ±4.37% (76 runs sampled)
styled-components x 45.08 ops/sec ±26.64% (18 runs sampled)
0.1.4

4 years ago

0.1.3

4 years ago

0.1.2

4 years ago

0.1.1

4 years ago

0.1.0

4 years ago