1.2.0 • Published 6 years ago
css-font v1.2.0
css-font
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.
License
© 2018 Dmitry Yv. MIT License
Development supported by plot.ly.