postcss-icon
v8.0.1
Published
PostCSS plugin which allows you to quickly add styles to css icons
Downloads
22
Maintainers
Readme
postcss-icon
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:
- postcss-icon.material-design (count icons : 932) result demo
- postcss-icon.font-awesome-v4 (count icons : 786) result demo
Css only icons:
- postcss-icon.cssicon (count icons : 192) result demo
- postcss-icon.icono (count icons : 131) result demo
- postcss-icon.rosa (count icons : 78) result demo
- postcss-icon.airpwn (count icons : 39) result demo
- postcss-icon.stiffi (count icons : 34) result demo
- postcss-icon.joshnh (count icons : 24) result demo
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% |