postcss-icon

PostCSS plugin which allows you to quickly add styles to css icons

Usage no npm install needed!

<script type="module">
  import postcssIcon from 'https://cdn.skypack.dev/postcss-icon';
</script>

README

postcss-icon

postcss-icon

npm npm download count postcss-icon AppVeyor Travis

PostCSS plugin that adds css icons from Icon sets

Now you do not need to connect the entire style library for css icons.

Ison sets:

Font icons:

Css only icons:

Install for postcss

# the plugin
yarn add postcss-icon

# and the icon set you need
yarn add postcss-icon.material-design
yarn add postcss-icon.font-awesome-v4
yarn add postcss-icon.cssicon
yarn add postcss-icon.icono
yarn add postcss-icon.rosa
yarn add postcss-icon.airpwn
yarn add postcss-icon.stiffi
yarn add postcss-icon.joshnh

Input:

.icon.bad-name {
  @icon: 404-not-found-name;
}
.icon {
  color: gold;
  @icon: prefix-name;
}

Output:

@font-face {
  /*  */
} /* added if you use font icon set */

.icon.bad-name {
  /* @icon: 404-not-found-name */
}
.icon::after {
  content: "";
  /* ... */
}
/* after  before  i  span */
.icon {
  color: #000;
  width: 20px;
  heigth: 20px;
  /* ... */
  color: gold;
}

Usage (more examples)

const { resolve } = require("path");
const postcss = require("postcss");
const postcssIcon = require("postcss-icon");

const fontSetOptions = {
  inline: ["woff2"],
  path: resolve(__dirname, "./public/assets/fonts/"), // folder to save all font files. Required absolute path!
  formats: ["woff2", "woff" /*, "ttf", "svg", "eot"*/],
  filename: "[css-name]-[set-name].[hash:4].[ext]",
  url({ cssFile, fontName, hash }) {
    // function help fix url resolve
    // const urlWithQueryHash = `../fonts/${fontName}?v=${hash.substr(0, 5)}`;
    // const exmapleResolveUrl = `../fonts/${fontName}`;
    return fontName;
  }
};
// example for all icon Set
postcss(
  postcssIcon({
    "postcss-icon.material-design": {
      ...fontSetOptions,
      prefix: "md-"
    },
    "postcss-icon.font-awesome-v4": {
      ...fontSetOptions,
      prefix: "fa-"
    },
    "postcss-icon.cssicon": { prefix: "cssicon-" },
    "postcss-icon.icono": { prefix: "icono-" },
    "postcss-icon.rosa": { prefix: "rose-" },
    "postcss-icon.airpwn": { prefix: "airpwn-" },
    "postcss-icon.stiffi": { prefix: "stiffi-" },
    "postcss-icon.joshnh": { prefix: "joshnh-" }
  })
);

Options

Formats Support table (2018-1-15):

Type Support
woff2 87.58%
woff 96.09%
ttf 96.47%
svg 15.75%
eot 2.67%