PostCSS Short
PostCSS Short lets you use advanced shorthand properties in CSS.
PostCSS Short has been featured in Smashing Magazine. I hope all of these shorthands are useful and clear to first-time lookers. I hope they improve the readability of your stylesheets and save you development time along the way. Thank you so much for your support.
Features
Size
Declare width
and height
together with size
.
/* before */
.icon {
size: 48px;
}
/* after */
.icon {
width: 48px;
height: 48px;
}
Margin and Padding
Avoid clobbering previous margin
or padding
values with a skip token.
/* before */
.frame {
margin: * auto;
}
/* after */
.frame {
margin-right: auto;
margin-left: auto;
}
Position
Declare top
, right
, bottom
, and left
values in position
. Just like before, omit sides with a skip token.
/* before */
.banner {
position: fixed 0 0 *;
}
/* after */
.banner {
position: fixed;
top: 0;
right: 0;
left: 0;
}
Color
Declare color
and background-color
together.
/* before */
.canvas {
color: #abccfc #212231;
}
/* after */
.canvas {
color: #abccfc;
background-color: #212231;
}
Overflow
Declare individual x
and y
values in overflow
. Omit sides with a skip
token.
/* before */
.scrollable {
overflow: * auto;
}
/* after */
.scrollable {
overflow-y: auto;
}
Border
Omit sides within border-
properties and fully define individual values on the border
property.
/* before */
.container {
border: 1px 2px / * / #343434;
}
.container--variation {
border-width: * * 3px;
}
/* after */
.container {
border-width: 1px 2px;
border-color: #343434;
}
.container--variation {
border-bottom-width: 3px;
}
Border Radius
Declare border-radius
properties using the clockwise syntax.
/* before */
.container {
border-bottom-radius: 10px;
}
/* after */
.container {
border-bottom-left-radius: 10px;
border-bottom-right-radius: 10px;
}
Font Size
Declare font-size
and line-height
together.
/* before */
.heading {
font-size: 1.25em / 2;
}
/* after */
.heading {
font-size: 1.25em;
line-height: 2;
}
Font Weight
Declare font-weight
with common names.
/* before */
p {
font-weight: light;
}
/* after */
p {
font-weight: 300;
}
Usage
Add PostCSS Short to your project:
npm install postcss-short --save-dev
Use PostCSS Short to process your CSS:
const postcssShort = require('postcss-short');
postcssShort.process(YOUR_CSS /*, processOptions, pluginOptions */);
Or use it as a PostCSS plugin:
const postcss = require('postcss');
const postcssShort = require('postcss-short');
postcss([
postcssShort(/* pluginOptions */)
]).process(YOUR_CSS /*, processOptions */);
PostCSS Short runs in all Node environments, with special instructions for:
Node | PostCSS CLI | Webpack | Create React App | Gulp | Grunt |
---|
Plugins
PostCSS Short is powered by the following plugins:
- PostCSS Short Border
- PostCSS Short Border Radius
- PostCSS Short Color
- PostCSS Short Font-Size
- PostCSS Short Overflow
- PostCSS Short Position
- PostCSS Short Size
- PostCSS Short Spacing
- PostCSS Font Weights
Some of these plugins have more features than are described here.
Options
features
Each pluginโs options may be configured by targeting the pluginโs namespace. Any plugin may be disabled by setting the pluginโs options as false.
postcssShort({
features: {
'font-size': {
prefix: 'x'
},
'position': false
}
});
prefix
The prefix
option defines a prefix required by properties being transformed.
Wrapping dashes are automatically applied, so that x
would transform
-x-border
.
postcssShort({ prefix: 'x' });
.example-1 {
-x-border-color: blue blue *;
-x-color: * #fafafa;
}
/* becomes */
.example-1 {
border-top-color: blue;
border-right-color: blue;
border-left-color: blue;
background-color: #fafafa;
}
skip
The skip
option defines the skip token used to ignore portions of the
shorthand.
postcssShort({ skip: '-' });
.example-1 {
border-color: blue blue -;
color: - #fafafa;
}
/* becomes */
.example-1 {
border-top-color: blue;
border-right-color: blue;
border-left-color: blue;
background-color: #fafafa;
}