css-font
![Travis Build Status](https://camo.githubusercontent.com/a82f5208650c3b4565db13f734535db958a12a4c0168ca623a9c57c9ca642b6f/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f64792f6373732d666f6e742e7376673f6c6162656c3d6275696c64)
Parse or stringify the CSS font property string.
Usage
var font = require('css-font');
var obj = font.parse('small-caps 1rem/1.2 "Roboto Condensed", sans-serif');
/*
{
size: '1rem',
lineHeight: 1.2,
variant: 'small-caps',
family: ['Roboto Condensed', 'sans-serif']
}
*/
font.stringify(obj)
// '1rem "Roboto Condensed", sans-serif'
See the tests for more scenarios.
API
obj = font.parse(str)
Return object with font properties from the CSS font string. Detected properties:
Property | Meaning |
---|---|
style |
Font-style detected by css-font-style-keywords . |
variant |
Font-variant, one of normal or small-caps . |
weight |
Font-weight detected by css-font-weight-keywords . |
stretch |
Font-stretch detected by css-font-stretch-keywords . |
size |
Font-size detected by css-font-size-keywords . |
lineHeight |
Line-height value. |
family |
Font-family array of values. |
str = font.stringify(obj)
Return string from the object with font properties by the CSS font syntax.
Stringified properties:
Property | Meaning |
---|---|
style , fontStyle , distrinction |
Font-style value. |
variant , fontVariant , capitalization |
Font-variant value, one of normal or small-caps . |
weight , fontWeight |
Font-weight value, one of the set of weights (see above). |
stretch , fontStretch , width |
Font-stretch value, one of the set (see above). |
size fontSize , height |
Font-size value, number or a string. Number is considered a px units. If undefined, 1rem is used. |
lineHeight , leading |
Line-height value, number or string. Number is considered a unitless ratio value. |
family , fontFamily , face |
Font-family, string or a list with strings. Not default strings are wrapped to quotes. |
system |
Reserved system word. |
Testing
$ npm test
This will run tests and generate a code coverage report. Anything less than 100% coverage will throw an error.
Acknowledgement
- Jed Mao for parse-css-font and set of related CSS packages.
Similar
License
© 2018 Dmitry Yv. MIT License
Development supported by plot.ly.