This is a work in progress and not recommended for production
With PostCSS Custom Values you can create your own CSS values such as keywords and units.
/* Create a keyword which can be used with any property */@value long { value: 500px;}; /* Create a keyword restricted to certain properties */@value small property(padding, margin) { value: 20px;};@value small property(font-size) { value: 12px;}; /* Create a custom unit using <tokens> */@value <number>gu { value: calc($0 * 4px);}; .example { position: absolute; top: long; width: long; font-size: small; padding: small; margin: 5gu 10px 10gu 1em;}
Output:
Tokens
Tokens can be placed anywhere within the value identifier.
@value layout_<side> {...}@value <number>gu {...}@value _<integer>_ {...}
Data is captured by the token and can be used to calculate the value by referencing it using $0
.
@value space_<integer> { value: calc($0 * 10px);}
Below are a list of the currently available tokens.
Key | Description |
---|---|
<number> |
Any number including decimal points and negative numbers |
<integer> |
Only whole numbers including negative integers |
<side> |
top, right, bottom or left |
Setup
npm install postcss-custom-values --save-dev