npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

postcss-short

v5.0.0

Published

Use advanced shorthand properties in CSS

Downloads

7,409

Readme

PostCSS Short

NPM Version Build Status Support Chat

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:

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;
}