1.0.0 • Published 10 years ago

j2c-math v1.0.0

Weekly downloads
1
License
MIT
Repository
github
Last release
10 years ago

j2c-math

A j2c companion library to do math on CSS lengths like 2em or 20%.

Join the chat at https://gitter.im/j2css/j2c Build Status bitHound Overalll Score

Installation

$ npm install --save j2c-math

Usage

import {length} form 'j2c-math';
import j2c from 'j2c';

let baseWidth = length('4em');
let pageWidth = baseWidth.mul(10);        // base * 10, returns a new object.
let navWidth  = baseWidth.mul(2);         // base * 2
let mainWidth = pageWidth.sub(navWidth);  // page - side

// j2c treats these objects as values.

sheet = j2c.sheet({
    " body": {
        margin: '0 auto',
        width: baseWidth,

        " nav": {
            float: 'left',
            width: sideWidth
        },
        " main": {
            float: 'left',
            width: mainWidth
        }
    }
})

Becomes

body {
    margin: 0 auto;
    width: 40em;
}
body nav{
    float: left;
    width: 8em;
}
body main{
    float: left;
    width: 32em;
}

Factory

let len = length('2em') // returns a Length object.

The length factory takes as input strings representing CSS lengths, like '2em', '3%'. and returns a new Length object, which is immutable.

Methods

The following methods are supported; they all return a new value:

len.add(another: length|string) : length

If another is a string it must represent a length.

Units must match.

en.sub(another: length|string) : length

As above.

len.mul(n: number|string) : length

If n is a string, it must represent a number, not a length.

len.div(n: number|string) : length

Likewise.

Division by 0 throws.

len.div(another: length|string) : number

Units must match.

Division by 0 throws.

len.toString() and len.valueOf()

Return the corresponding length as a string. j2c actually uses .valueOf() under the hood to get the String representation.

console.log('' + length('6em').div(3)); // '2em'

License: MIT

1.0.0

10 years ago

1.0.0-pre.11

10 years ago

1.0.0-pre.10

10 years ago

1.0.0-pre.9

10 years ago

1.0.0-pre.8

10 years ago

1.0.0-pre.7

10 years ago

1.0.0-pre.6

10 years ago

1.0.0-pre.5

10 years ago

1.0.0-pre.4

10 years ago

1.0.0-pre.3

10 years ago

1.0.0-pre.2

10 years ago

1.0.0-pre.1

10 years ago

1.0.0-pre.0

10 years ago