{"id":28352,"date":"2016-11-01T23:01:33","date_gmt":"2016-11-01T15:01:33","guid":{"rendered":"https:\/\/www.hongkiat.com\/blog\/?p=28352"},"modified":"2022-09-21T17:31:36","modified_gmt":"2022-09-21T09:31:36","slug":"css-post-processors-tips-resources","status":"publish","type":"post","link":"https:\/\/www.hongkiat.com\/blog\/css-post-processors-tips-resources\/","title":{"rendered":"CSS Post-Processors For Beginners: Tips and Resources"},"content":{"rendered":"<p><strong>CSS pre-processing<\/strong> is a concept that most web developers have already learned or read about. We\u2019ve covered CSS preprocessing <a href=\"https:\/\/www.hongkiat.com\/blog\/sass-vs-less\/\">in great detail<\/a> to help developers get up to speed on this prevalent technology. But what about <strong>post-processors<\/strong>?<\/p>\n<p>These relatively new tools are similar in the sense that they <strong>affect the web development workflow<\/strong>, however they operate on the <strong>other side of CSS development<\/strong> (\u201cpost\u201d development).<\/p>\n<p>In this post, I\u2019d like to introduce the <strong>basics of post-processing<\/strong>, how it works, why you\u2019d use it, and share a few libraries\/tools you can use to up your CSS game with post-processing.<\/p>\n<p class=\"note\"><strong>Read Also:<\/strong> <a target=\"_blank\" href=\"https:\/\/www.hongkiat.com\/blog\/getting-started-saas\/\" rel=\"noopener\">Getting Started with Sass<\/a><\/p>\n<h2>Post vs. pre-processing<\/h2>\n<p>The <strong>pre-processing revolution<\/strong> happened when <strong>Sass\/LESS hit the scene<\/strong>. These tools allow developers to use variables, loops, functions, and mixins within CSS. This almost makes basic CSS development <strong>similar to a programming language<\/strong> with extended functionality.<\/p>\n<p><strong>Post-processing<\/strong> happens after you already produced the plain CSS, and want to <strong>extend it further<\/strong> through automation. This can include <strong>extending class selectors<\/strong>, or <strong>auto-appending prefixes<\/strong> for certain CSS properties.<\/p>\n<p>Generally speaking, pre-processing has its <strong>own stylesheet languages<\/strong>, such as <a href=\"https:\/\/sass-lang.com\/\" target=\"_blank\" rel=\"noopener\">Sass<\/a> and <a href=\"https:\/\/lesscss.org\/\" target=\"_blank\" rel=\"noopener\">LESS<\/a>, that <strong>convert into pure CSS<\/strong>. Post-processing takes that basic CSS, and <strong>applies automation\/repetition<\/strong>.<\/p>\n<figure><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/assets.hongkiat.com\/uploads\/css-post-processors-tips-resources\/01-postprocessing-preprocessing-css.jpg\" alt=\"CSS Processing Diagram\" width=\"700\" height=\"272\"><figcaption><a href=\"https:\/\/medium.com\/@ddprrt\/deconfusing-pre-and-post-processing-d68e3bd078a3\" target=\"_blank\" rel=\"noopener nofollow\">IMAGE: Medium.com<\/a><\/figcaption><\/figure>\n<p>Here\u2019s a quote from a<a href=\"https:\/\/medium.com\/@ddprrt\/deconfusing-pre-and-post-processing-d68e3bd078a3\" target=\"_blank\" rel=\"noopener nofollow\"> post<\/a> which is also the source of the image above. I think the author <strong>Stefan Baumgartner<\/strong> sums the difference up brilliantly.<\/p>\n<p class=\"note\">\u201c[Preprocessors] take a language that compiles to CSS. And [Postprocessors] align and refurbish CSS to have the best possible outcome for today\u2019s browsers.\u201d<\/p>\n<p>In a way, both of these seem like automation tools, just working in different ways. For instance, a common pain solved by post-processing is to <strong>auto-append prefixes for newer CSS3 properties<\/strong>.<\/p>\n<p>But this can also be done in Sass with extensions. <strong>So is there really a difference?<\/strong> Here\u2019s another great quote from the same  post:<\/p>\n<p class=\"note\">\u201cPre-processors\u201d and \u201cpost-processors\u201d don\u2019t exist. They are CSS processors taking care of both authoring and optimization features.<\/p>\n<p>While this may be true in a theoretical sense, the web development community still creates a divide between these tools. For this reason, I would highly recommend to frontend developers to at least read about post-processors and to know what they can do.<\/p>\n<h2>Fit post-processing into your workflow<\/h2>\n<p>Almost everyone references <strong><a href=\"https:\/\/postcss.org\/\" target=\"_blank\" rel=\"noopener\">PostCSS<\/a><\/strong> as the definitive resource for post-processing. However the PostCSS team has openly admitted <a href=\"https:\/\/twitter.com\/PostCSS\/status\/626046993006239744\" target=\"_blank\" rel=\"noopener\">on Twitter<\/a> to <strong>changing their title<\/strong> because the verbiage doesn\u2019t quite make sense anymore.<\/p>\n<p>PostCSS is no longer just a pre-CSS or post-CSS tool. It can actually <strong>work in both areas<\/strong>! This further explains the quote from earlier stating that all CSS tools boil down to one thing \u2014 <strong>processing<\/strong>.<\/p>\n<figure><a href=\"https:\/\/postcss.org\/\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/assets.hongkiat.com\/uploads\/css-post-processors-tips-resources\/02-postcss-homepage.jpg\" alt=\"PostCSS Home Page\" width=\"793\" height=\"683\"><\/a><\/figure>\n<p>PostCSS uses JavaScript plugins to <strong>automate your CSS workflow<\/strong>, and you can even write your own JS plugin to extend the PostCSS library. If you want to get started with PostCSS check out this <a href=\"https:\/\/www.smashingmagazine.com\/2015\/12\/introduction-to-postcss\/\" target=\"_blank\" rel=\"noopener\">intro tutorial<\/a> on Smashing Magazine. If you already use and understand Sass, then you\u2019ll pick up Post CSS quickly.<\/p>\n<p class=\"note\"><strong>Read Also:<\/strong> <a target=\"_blank\" href=\"https:\/\/www.hongkiat.com\/blog\/postcss-plugins\/\" rel=\"noopener\">10 Awesome PostCSS Plugins to Make You a CSS Wizard<\/a><\/p>\n<p>To build your own pre\/post CSS processing workflow, start by <strong>making a list of your pain points<\/strong>, such as:<\/p>\n<ul>\n<li>auto-prefixing CSS gradients<\/li>\n<li>auto-organization for CSS rules<\/li>\n<li>appending polyfills for certain properties<\/li>\n<li>generating image dimensions for background images<\/li>\n<\/ul>\n<p>Note that all of these things can be done <strong>in both pre and post-processing<\/strong>. It\u2019s important to realize that CSS pre\/post-processing is quickly merging to become <strong>one in the same thing<\/strong>.<\/p>\n<p>Instead of breaking down your goals into different stages of processing, it\u2019s better to <strong>list them as objectives<\/strong>, then go on a <strong>search for the right tools<\/strong>.<\/p>\n<h2>Best post-processing tools<\/h2>\n<p>I\u2019ve tried to avoid mentioning extensions in this section, as Sass & PostCSS has so many things to choose from. Honestly you could <strong>get by with just those libraries<\/strong>, but I also want to offer some <strong>alternatives for more specific solutions<\/strong>.<\/p>\n<h3><a href=\"https:\/\/bestwebhostingaustralia.org\/blesscss\/\" target=\"_blank\" rel=\"noopener\">Bless<\/a><\/h3>\n<p>I remember when Internet Explorer 6 was still a nuisance, and it\u2019s nice to know IE development has improved \u2014 but not by much. While I\u2019d love to tell you IE usage is basically gone, this just <a href=\"https:\/\/www.w3counter.com\/globalstats.php\" target=\"_blank\" rel=\"noopener\">doesn\u2019t seem to be true<\/a>.<\/p>\n<p>Thankfully, <a href=\"https:\/\/bestwebhostingaustralia.org\/blesscss\/\" target=\"_blank\" rel=\"noopener\">Bless CSS<\/a> is a solution that <strong>detects potential IE-related problems<\/strong> in your CSS, and creates solutions with post-processing. It runs on Node.js, so it fits well into the typical NPM\/Gulp workflow.<\/p>\n<figure><a href=\"https:\/\/bestwebhostingaustralia.org\/blesscss\/\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/assets.hongkiat.com\/uploads\/css-post-processors-tips-resources\/04-bless-css-homepage.jpg\" alt=\"Bless CSS Home Page\" width=\"952\" height=\"529\"><\/a><\/figure>\n<h3><a href=\"https:\/\/cssnext.github.io\/\" target=\"_blank\" rel=\"noopener\">CSSNext<\/a><\/h3>\n<p>Here\u2019s a really cool library that allows you to <strong>build CSS with more advanced functionality<\/strong> that\u2019s currently not supported. The <a href=\"https:\/\/cssnext.github.io\/\" target=\"_blank\" rel=\"noopener\">CSSNext<\/a> library includes <strong>support for odd CSS4 functions<\/strong>, such as <a href=\"https:\/\/drafts.csswg.org\/css-color\/#grays\" target=\"_blank\" rel=\"noopener\"><code>gray()<\/code><\/a>, that are currently only present in W3C drafts.<\/p>\n<figure><a href=\"https:\/\/cssnext.github.io\/\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/assets.hongkiat.com\/uploads\/css-post-processors-tips-resources\/05-css-next-homepage.jpg\" alt=\"CSSNext Home Page\" width=\"1282\" height=\"534\"><\/a><\/figure>\n<p>I don\u2019t think every developer will need this library. It\u2019s very specific, and won\u2019t solve day-to-day problems, however it can give you a <strong>taste of upcoming CSS4 specs<\/strong> while converting the syntax down to modern CSS3.<\/p>\n<h3><a href=\"https:\/\/stylecow.github.io\/\" target=\"_blank\" rel=\"noopener\">Stylecow<\/a><\/h3>\n<p>If <strong>browser support<\/strong> is an issue for you, then <a href=\"https:\/\/stylecow.github.io\/\" target=\"_blank\" rel=\"noopener\">Stylecow<\/a> is a necessity. This powerful library allows you to develop CSS <strong>just for your favorite browser<\/strong>. Then, you can run the command line tool through Node, and your CSS will be <strong>updated for all browsers you want to support<\/strong>.<\/p>\n<p>You can download Stylecow <a href=\"https:\/\/github.com\/stylecow\/stylecow\" target=\"_blank\" rel=\"noopener\">from GitHub<\/a>, and it comes with some incredibly detailed <a href=\"https:\/\/github.com\/stylecow\/stylecow\/wiki\" target=\"_blank\" rel=\"noopener\">documentation<\/a>.<\/p>\n<figure><a href=\"https:\/\/stylecow.github.io\/\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/assets.hongkiat.com\/uploads\/css-post-processors-tips-resources\/06-stylecow-css-styles-nodejs.jpg\" alt=\"Stylecow Home Page\" width=\"700\" height=\"508\"><\/a><\/figure>\n<h3><a href=\"https:\/\/projects.verou.me\/prefixfree\/\" target=\"_blank\" rel=\"noopener\"><code>-prefix-free<\/code><\/a><\/h3>\n<p>Lastly I want to share the <a href=\"https:\/\/projects.verou.me\/prefixfree\/\" target=\"_blank\" rel=\"noopener\"><code>-prefix-free<\/code><\/a> library that\u2019s also a beloved tool for CSS development, as it allows you to <strong>use unprefixed CSS properties<\/strong>. Everyone wants to use modern CSS properties, such as animations & gradients, but nobody wants to copy\/paste verbose code manually.<\/p>\n<p>With this plugin, you don\u2019t even have to run your CSS through a postprocessor on your computer. It can also work as a browser include that runs on the user\u2019s computer to <strong>automatically update CSS files<\/strong>.<\/p>\n<figure><a href=\"https:\/\/projects.verou.me\/prefixfree\/\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/assets.hongkiat.com\/uploads\/css-post-processors-tips-resources\/07-prefix-free-tool-homepage.jpg\" alt=\"-prefix-free Home Page\" width=\"911\" height=\"525\"><\/a><\/figure>\n<p><a href=\"https:\/\/github.com\/postcss\/autoprefixer\" target=\"_blank\" rel=\"noopener\">Autoprefixer<\/a>, which is part of the PostCSS library, is probably even a better choice for <strong>local post-processing<\/strong>. That\u2019s why I said before that if you use either LESS or Sass along with PostCSS, then you\u2019ll have everything you need for an impressive CSS development workflow.<\/p>\n<h2>Wrapping Up<\/h2>\n<p>Post-processing is more of a catchphrase than a real technology, although it does have its place in the CSS workflow, as <strong>the entire process of writing modern CSS has been dramatically enhanced by these tools<\/strong>. I can only recommend that developers dig deeper to find whatever works best for them.<\/p>\n<p>If you\u2019re looking for even more info on post-processing, take a peek at these related articles:<\/p>\n<ul>\n<li><a href=\"https:\/\/alistapart.com\/column\/what-will-save-us-from-the-dark-side-of-pre-processors\" target=\"_blank\" rel=\"noopener\">What Will Save Us from the Dark Side of CSS Pre-Processors?<\/a><\/li>\n<li><a href=\"https:\/\/bigbitecreative.com\/a-look-into-writing-future-css-with-postcss-cssnext\/\" target=\"_blank\" rel=\"noopener\">A look into writing future CSS with PostCSS and cssnext<\/a><\/li>\n<li><a href=\"https:\/\/softwareengineering.stackexchange.com\/questions\/261993\/css-preprocessing-sass-or-less-vs-css-postprocessing\" target=\"_blank\" rel=\"noopener nofollow\">CSS Preprocessing (SASS or LESS) vs CSS Postprocessing<\/a><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>CSS pre-processing is a concept that most web developers have already learned or read about. We\u2019ve covered CSS preprocessing in great detail to help developers get up to speed on this prevalent technology. But what about post-processors? These relatively new tools are similar in the sense that they affect the web development workflow, however they&hellip;<\/p>\n","protected":false},"author":18,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[352],"tags":[510,511],"topic":[4520],"class_list":["entry-content","is-maxi"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v22.8 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>CSS Post-Processors For Beginners: Tips and Resources - Hongkiat<\/title>\n<meta name=\"description\" content=\"CSS pre-processing is a concept that most web developers have already learned or read about. We&#039;ve covered CSS preprocessing in great detail to help\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.hongkiat.com\/blog\/css-post-processors-tips-resources\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"CSS Post-Processors For Beginners: Tips and Resources\" \/>\n<meta property=\"og:description\" content=\"CSS pre-processing is a concept that most web developers have already learned or read about. We&#039;ve covered CSS preprocessing in great detail to help\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hongkiat.com\/blog\/css-post-processors-tips-resources\/\" \/>\n<meta property=\"og:site_name\" content=\"Hongkiat\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/hongkiatcom\" \/>\n<meta property=\"article:published_time\" content=\"2016-11-01T15:01:33+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-09-21T09:31:36+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/assets.hongkiat.com\/uploads\/css-post-processors-tips-resources\/01-postprocessing-preprocessing-css.jpg\" \/>\n<meta name=\"author\" content=\"Jake Rocheleau\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@hongkiat\" \/>\n<meta name=\"twitter:site\" content=\"@hongkiat\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jake Rocheleau\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/css-post-processors-tips-resources\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/css-post-processors-tips-resources\\\/\"},\"author\":{\"name\":\"Jake Rocheleau\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#\\\/schema\\\/person\\\/966b2daea15283b4145e71aa98a82c2a\"},\"headline\":\"CSS Post-Processors For Beginners: Tips and Resources\",\"datePublished\":\"2016-11-01T15:01:33+00:00\",\"dateModified\":\"2022-09-21T09:31:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/css-post-processors-tips-resources\\\/\"},\"wordCount\":1092,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/css-post-processors-tips-resources\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/assets.hongkiat.com\\\/uploads\\\/css-post-processors-tips-resources\\\/01-postprocessing-preprocessing-css.jpg\",\"keywords\":[\"Web Designers\",\"Web Developers\"],\"articleSection\":[\"Web Design\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/css-post-processors-tips-resources\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/css-post-processors-tips-resources\\\/\",\"url\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/css-post-processors-tips-resources\\\/\",\"name\":\"CSS Post-Processors For Beginners: Tips and Resources - Hongkiat\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/css-post-processors-tips-resources\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/css-post-processors-tips-resources\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/assets.hongkiat.com\\\/uploads\\\/css-post-processors-tips-resources\\\/01-postprocessing-preprocessing-css.jpg\",\"datePublished\":\"2016-11-01T15:01:33+00:00\",\"dateModified\":\"2022-09-21T09:31:36+00:00\",\"description\":\"CSS pre-processing is a concept that most web developers have already learned or read about. We've covered CSS preprocessing in great detail to help\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/css-post-processors-tips-resources\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/css-post-processors-tips-resources\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/css-post-processors-tips-resources\\\/#primaryimage\",\"url\":\"https:\\\/\\\/assets.hongkiat.com\\\/uploads\\\/css-post-processors-tips-resources\\\/01-postprocessing-preprocessing-css.jpg\",\"contentUrl\":\"https:\\\/\\\/assets.hongkiat.com\\\/uploads\\\/css-post-processors-tips-resources\\\/01-postprocessing-preprocessing-css.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/css-post-processors-tips-resources\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"CSS Post-Processors For Beginners: Tips and Resources\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/\",\"name\":\"Hongkiat\",\"description\":\"Tech and Design Tips\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#organization\",\"name\":\"Hongkiat.com\",\"url\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/wp-content\\\/uploads\\\/hkdc-logo-rect-yoast.jpg\",\"contentUrl\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/wp-content\\\/uploads\\\/hkdc-logo-rect-yoast.jpg\",\"width\":1200,\"height\":799,\"caption\":\"Hongkiat.com\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/hongkiatcom\",\"https:\\\/\\\/x.com\\\/hongkiat\",\"https:\\\/\\\/www.pinterest.com\\\/hongkiat\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#\\\/schema\\\/person\\\/966b2daea15283b4145e71aa98a82c2a\",\"name\":\"Jake Rocheleau\",\"description\":\"Jake is a writer and designer with over 10 years experience working on the web. He writes about user experience design and cool resources for designers\",\"sameAs\":[\"https:\\\/\\\/www.hongkiat.com\"],\"url\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/author\\\/jake\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"CSS Post-Processors For Beginners: Tips and Resources - Hongkiat","description":"CSS pre-processing is a concept that most web developers have already learned or read about. We've covered CSS preprocessing in great detail to help","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.hongkiat.com\/blog\/css-post-processors-tips-resources\/","og_locale":"en_US","og_type":"article","og_title":"CSS Post-Processors For Beginners: Tips and Resources","og_description":"CSS pre-processing is a concept that most web developers have already learned or read about. We've covered CSS preprocessing in great detail to help","og_url":"https:\/\/www.hongkiat.com\/blog\/css-post-processors-tips-resources\/","og_site_name":"Hongkiat","article_publisher":"https:\/\/www.facebook.com\/hongkiatcom","article_published_time":"2016-11-01T15:01:33+00:00","article_modified_time":"2022-09-21T09:31:36+00:00","og_image":[{"url":"https:\/\/assets.hongkiat.com\/uploads\/css-post-processors-tips-resources\/01-postprocessing-preprocessing-css.jpg","type":"","width":"","height":""}],"author":"Jake Rocheleau","twitter_card":"summary_large_image","twitter_creator":"@hongkiat","twitter_site":"@hongkiat","twitter_misc":{"Written by":"Jake Rocheleau","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hongkiat.com\/blog\/css-post-processors-tips-resources\/#article","isPartOf":{"@id":"https:\/\/www.hongkiat.com\/blog\/css-post-processors-tips-resources\/"},"author":{"name":"Jake Rocheleau","@id":"https:\/\/www.hongkiat.com\/blog\/#\/schema\/person\/966b2daea15283b4145e71aa98a82c2a"},"headline":"CSS Post-Processors For Beginners: Tips and Resources","datePublished":"2016-11-01T15:01:33+00:00","dateModified":"2022-09-21T09:31:36+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hongkiat.com\/blog\/css-post-processors-tips-resources\/"},"wordCount":1092,"commentCount":1,"publisher":{"@id":"https:\/\/www.hongkiat.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.hongkiat.com\/blog\/css-post-processors-tips-resources\/#primaryimage"},"thumbnailUrl":"https:\/\/assets.hongkiat.com\/uploads\/css-post-processors-tips-resources\/01-postprocessing-preprocessing-css.jpg","keywords":["Web Designers","Web Developers"],"articleSection":["Web Design"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.hongkiat.com\/blog\/css-post-processors-tips-resources\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.hongkiat.com\/blog\/css-post-processors-tips-resources\/","url":"https:\/\/www.hongkiat.com\/blog\/css-post-processors-tips-resources\/","name":"CSS Post-Processors For Beginners: Tips and Resources - Hongkiat","isPartOf":{"@id":"https:\/\/www.hongkiat.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hongkiat.com\/blog\/css-post-processors-tips-resources\/#primaryimage"},"image":{"@id":"https:\/\/www.hongkiat.com\/blog\/css-post-processors-tips-resources\/#primaryimage"},"thumbnailUrl":"https:\/\/assets.hongkiat.com\/uploads\/css-post-processors-tips-resources\/01-postprocessing-preprocessing-css.jpg","datePublished":"2016-11-01T15:01:33+00:00","dateModified":"2022-09-21T09:31:36+00:00","description":"CSS pre-processing is a concept that most web developers have already learned or read about. We've covered CSS preprocessing in great detail to help","breadcrumb":{"@id":"https:\/\/www.hongkiat.com\/blog\/css-post-processors-tips-resources\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hongkiat.com\/blog\/css-post-processors-tips-resources\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hongkiat.com\/blog\/css-post-processors-tips-resources\/#primaryimage","url":"https:\/\/assets.hongkiat.com\/uploads\/css-post-processors-tips-resources\/01-postprocessing-preprocessing-css.jpg","contentUrl":"https:\/\/assets.hongkiat.com\/uploads\/css-post-processors-tips-resources\/01-postprocessing-preprocessing-css.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hongkiat.com\/blog\/css-post-processors-tips-resources\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hongkiat.com\/blog\/"},{"@type":"ListItem","position":2,"name":"CSS Post-Processors For Beginners: Tips and Resources"}]},{"@type":"WebSite","@id":"https:\/\/www.hongkiat.com\/blog\/#website","url":"https:\/\/www.hongkiat.com\/blog\/","name":"Hongkiat","description":"Tech and Design Tips","publisher":{"@id":"https:\/\/www.hongkiat.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.hongkiat.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.hongkiat.com\/blog\/#organization","name":"Hongkiat.com","url":"https:\/\/www.hongkiat.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hongkiat.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.hongkiat.com\/blog\/wp-content\/uploads\/hkdc-logo-rect-yoast.jpg","contentUrl":"https:\/\/www.hongkiat.com\/blog\/wp-content\/uploads\/hkdc-logo-rect-yoast.jpg","width":1200,"height":799,"caption":"Hongkiat.com"},"image":{"@id":"https:\/\/www.hongkiat.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/hongkiatcom","https:\/\/x.com\/hongkiat","https:\/\/www.pinterest.com\/hongkiat\/"]},{"@type":"Person","@id":"https:\/\/www.hongkiat.com\/blog\/#\/schema\/person\/966b2daea15283b4145e71aa98a82c2a","name":"Jake Rocheleau","description":"Jake is a writer and designer with over 10 years experience working on the web. He writes about user experience design and cool resources for designers","sameAs":["https:\/\/www.hongkiat.com"],"url":"https:\/\/www.hongkiat.com\/blog\/author\/jake\/"}]}},"jetpack_featured_media_url":"https:\/\/","jetpack_shortlink":"https:\/\/wp.me\/p4uxU-7ni","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/posts\/28352","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/users\/18"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/comments?post=28352"}],"version-history":[{"count":3,"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/posts\/28352\/revisions"}],"predecessor-version":[{"id":62409,"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/posts\/28352\/revisions\/62409"}],"wp:attachment":[{"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/media?parent=28352"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/categories?post=28352"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/tags?post=28352"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/topic?post=28352"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}