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.
Declare width
and height
together with size
.
/* before */
.icon {
size: 48px;
}
/* after */
.icon {
width: 48px;
height: 48px;
}
Avoid clobbering previous margin
or padding
values with a skip token.
/* before */
.frame {
margin: * auto;
}
/* after */
.frame {
margin-right: auto;
margin-left: auto;
}
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;
}
Declare color
and background-color
together.
/* before */
.canvas {
color: #abccfc #212231;
}
/* after */
.canvas {
color: #abccfc;
background-color: #212231;
}
Declare individual x
and y
values in overflow
. Omit sides with a skip
token.
/* before */
.scrollable {
overflow: * auto;
}
/* after */
.scrollable {
overflow-y: auto;
}
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;
}
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;
}
Declare font-size
and line-height
together.
/* before */
.heading {
font-size: 1.25em / 2;
}
/* after */
.heading {
font-size: 1.25em;
line-height: 2;
}
Declare font-weight
with common names.
/* before */
p {
font-weight: light;
}
/* after */
p {
font-weight: 300;
}
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 |
---|
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.
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
}
});
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;
}
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;
}