Alternatives to PostCSS logo

Alternatives to PostCSS

Stylus, Sass, CSS Modules, Less, and node-sass are the most popular alternatives and competitors to PostCSS.
1.9K
537
+ 1
49

What is PostCSS and what are its top alternatives?

PostCSS is a tool for transforming CSS with JS plugins. These plugins can support variables and mixins, transpile future CSS syntax, inline images, and more.
PostCSS is a tool in the CSS Pre-processors / Extensions category of a tech stack.
PostCSS is an open source tool with 28.1K GitHub stars and 1.5K GitHub forks. Here’s a link to PostCSS's open source repository on GitHub

Top Alternatives to PostCSS

  • Stylus
    Stylus

    Stylus is a revolutionary new language, providing an efficient, dynamic, and expressive way to generate CSS. Supporting both an indented syntax and regular CSS style. ...

  • Sass
    Sass

    Sass is an extension of CSS3, adding nested rules, variables, mixins, selector inheritance, and more. It's translated to well-formatted, standard CSS using the command line tool or a web-framework plugin. ...

  • CSS Modules
    CSS Modules

    It is a CSS file in which all class names and animation names are scoped locally by default. The key words here are scoped locally. With this, your CSS class names become similar to local variables in JavaScript. It goes into the compiler, and CSS comes out the other side. ...

  • Less
    Less

    Less is a CSS pre-processor, meaning that it extends the CSS language, adding features that allow variables, mixins, functions and many other techniques that allow you to make CSS that is more maintainable, themable and extendable. ...

  • node-sass
    node-sass

    It is a library that provides binding for Node.js to LibSass, the C version of the popular stylesheet preprocessor, Sass. It allows you to natively compile .scss files to css at incredible speed and automatically via a connect middleware. ...

  • styled-components
    styled-components

    Visual primitives for the component age. Use the best bits of ES6 and CSS to style your apps without stress 💅 ...

  • Webpack
    Webpack

    A bundler for javascript and friends. Packs many modules into a few bundled assets. Code Splitting allows to load parts for the application on demand. Through "loaders" modules can be CommonJs, AMD, ES6 modules, CSS, Images, JSON, Coffeescript, LESS, ... and your custom stuff. ...

  • Autoprefixer
    Autoprefixer

    It is a CSS post processor. It combs through compiled CSS files to add or remove vendor prefixes like -webkit and -moz after checking the code. ...

PostCSS alternatives & related posts

Stylus logo

Stylus

441
409
331
Expressive, robust, feature-rich CSS language built for nodejs
441
409
+ 1
331
PROS OF STYLUS
  • 69
    Simple
  • 54
    Indented syntax
  • 38
    Efficient
  • 33
    Built for node.js
  • 32
    Open source
  • 24
    Expressive
  • 21
    Maintainable
  • 17
    Feature-rich
  • 13
    Better than CS
  • 6
    Variables
  • 5
    Functions
  • 3
    @extend directive
  • 2
    Contempt for curly brackets
  • 2
    Very clean
  • 2
    Mixins
  • 2
    Is Easy
  • 2
    No colons, semi-colons or even curly braces
  • 1
    Its unique
  • 1
    Dynamic selectors
  • 1
    Scriptable
  • 1
    Easy Efficiently
  • 1
    Transparent
  • 1
    Supports orthogonal architecture
CONS OF STYLUS
    Be the first to leave a con

    related Stylus posts

    awesomebanana2018
    Shared insights
    on
    PostCSSPostCSSStylusStylusSassSass

    Originally, I was going to start using Sass with Parcel, but then I learned about Stylus, which looked interesting because it can get the property values of something directly instead of through variables, and PostCSS, which looked interesting because you can customize your Pre/Post-processing. Which tool would you recommend?

    See more
    Sass logo

    Sass

    43.3K
    31.1K
    3K
    Syntactically Awesome Style Sheets
    43.3K
    31.1K
    + 1
    3K
    PROS OF SASS
    • 613
      Variables
    • 594
      Mixins
    • 466
      Nested rules
    • 410
      Maintainable
    • 300
      Functions
    • 149
      Modular flexible code
    • 143
      Open source
    • 112
      Selector inheritance
    • 107
      Dynamic
    • 96
      Better than cs
    • 5
      Used by Bootstrap
    • 3
      If and for function
    • 2
      Better than less
    • 1
      Inheritance (@extend)
    • 1
      Custom functions
    CONS OF SASS
    • 6
      Needs to be compiled

    related Sass posts

    Islam Diab
    Full-stack Developer at Freelancer · | 9 upvotes · 167.8K views

    Hi, I want to start freelancing, I have two years of experience in web development, and my skills in web development: HTML CSS JavaScript [basic, Object-Oriented Programming, Document object model, and browser object model] jQuery Bootstrap 3, 4 Pre-processor -> Sass Template Engine with Pug.js Task Runner with Gulp.js and Webpack Ajax JSON JavaScript Unit testing with jest framework Vue.js

    Node.js [Just basic]

    My Skills in Back end development Php [Basic, and Object-Oriented Programming] Database management system with MySql for database relationships and MongoDB for database non-relationships architecture pattern with MVC concept concept of SOLID Unit testing with PHPUnit Restful API

    Laravel Framework

    and version control with GitHub ultimately, I want to start working as a freelancer full time. Thanks.

    See more

    ReactQL is a React + GraphQL front-end starter kit. #JSX is a natural way to think about building UI, and it renders to pure #HTML in the browser and on the server, making it trivial to build server-rendered Single Page Apps. GraphQL via Apollo was chosen for the data layer; #GraphQL makes it simple to request just the data your app needs, and #Apollo takes care of communicating with your API (written in any language; doesn't have to be JavaScript!), caching, and rendering to #React.

    ReactQL is written in TypeScript to provide full types/Intellisense, and pick up hard-to-diagnose goofs that might later show up at runtime. React makes heavy use of Webpack 4 to handle transforming your code to an optimised client-side bundle, and in throws back just enough code needed for the initial render, while seamlessly handling import statements asynchronously as needed, making the payload your user downloads ultimately much smaller than trying to do it by hand.

    React Helmet was chosen to handle <head> content, because it works universally, making it easy to throw back the correct <title> and other tags on the initial render, as well as inject new tags for subsequent client-side views.

    styled-components, Sass, Less and PostCSS were added to give developers a choice of whether to build styles purely in React / JavaScript, or whether to defer to a #css #preprocessor. This is especially useful for interop with UI frameworks like Bootstrap, Semantic UI, Foundation, etc - ReactQL lets you mix and match #css and renders to both a static .css file during bundling as well as generates per-page <style> tags when using #StyledComponents.

    React Router handles routing, because it works both on the server and in the client. ReactQL customises it further by capturing non-200 responses on the server, redirecting or throwing back custom 404 pages as needed.

    Koa is the web server that handles all incoming HTTP requests, because it's fast (TTFB < 5ms, even after fully rendering React), and its natively #async, making it easy to async/await inside routes and middleware.

    See more
    CSS Modules logo

    CSS Modules

    131
    158
    1
    A CSS file in which all class names and animation names are scoped locally by default
    131
    158
    + 1
    1
    PROS OF CSS MODULES
    • 1
      Static rather than compiled at runtime
    CONS OF CSS MODULES
      Be the first to leave a con

      related CSS Modules posts

      Less logo

      Less

      2.9K
      1.2K
      930
      The dynamic stylesheet language
      2.9K
      1.2K
      + 1
      930
      PROS OF LESS
      • 215
        Better than css
      • 177
        Variables
      • 141
        Mixins
      • 99
        Maintainable
      • 79
        Used by bootstrap
      • 55
        Open source
      • 50
        Extendable
      • 43
        Functions
      • 39
        Dynamic
      • 30
        Fast
      • 2
        CSS is valid LESS, very easy to pick up
      CONS OF LESS
        Be the first to leave a con

        related Less posts

        ReactQL is a React + GraphQL front-end starter kit. #JSX is a natural way to think about building UI, and it renders to pure #HTML in the browser and on the server, making it trivial to build server-rendered Single Page Apps. GraphQL via Apollo was chosen for the data layer; #GraphQL makes it simple to request just the data your app needs, and #Apollo takes care of communicating with your API (written in any language; doesn't have to be JavaScript!), caching, and rendering to #React.

        ReactQL is written in TypeScript to provide full types/Intellisense, and pick up hard-to-diagnose goofs that might later show up at runtime. React makes heavy use of Webpack 4 to handle transforming your code to an optimised client-side bundle, and in throws back just enough code needed for the initial render, while seamlessly handling import statements asynchronously as needed, making the payload your user downloads ultimately much smaller than trying to do it by hand.

        React Helmet was chosen to handle <head> content, because it works universally, making it easy to throw back the correct <title> and other tags on the initial render, as well as inject new tags for subsequent client-side views.

        styled-components, Sass, Less and PostCSS were added to give developers a choice of whether to build styles purely in React / JavaScript, or whether to defer to a #css #preprocessor. This is especially useful for interop with UI frameworks like Bootstrap, Semantic UI, Foundation, etc - ReactQL lets you mix and match #css and renders to both a static .css file during bundling as well as generates per-page <style> tags when using #StyledComponents.

        React Router handles routing, because it works both on the server and in the client. ReactQL customises it further by capturing non-200 responses on the server, redirecting or throwing back custom 404 pages as needed.

        Koa is the web server that handles all incoming HTTP requests, because it's fast (TTFB < 5ms, even after fully rendering React), and its natively #async, making it easy to async/await inside routes and middleware.

        See more
        Julien DeFrance
        Principal Software Engineer at Tophatter · | 6 upvotes · 124.9K views
        Shared insights
        on
        BootstrapBootstrapLessLessSassSass
        at

        Which #GridFramework to use? My team and I closed on Bootstrap !

        On a related note and as far as stylesheets go, we had to chose between #CSS, #SCSS, #Sass , Less Finally opted for Sass

        As syntactically awesome as the name announces it.

        See more
        node-sass logo

        node-sass

        89
        145
        0
        Node.js bindings to libsass
        89
        145
        + 1
        0
        PROS OF NODE-SASS
          Be the first to leave a pro
          CONS OF NODE-SASS
          • 1
            Needs Microsoft BuildTools and Python 2.7 to install

          related node-sass posts

          styled-components logo

          styled-components

          2.4K
          599
          12
          Visual primitives for the component age. Use the best bits of ES6 and CSS to style your apps...
          2.4K
          599
          + 1
          12
          PROS OF STYLED-COMPONENTS
          • 11
            Very easy to use and integrate
          • 1
            Huihui
          CONS OF STYLED-COMPONENTS
            Be the first to leave a con

            related styled-components posts

            Johnny Bell

            For Stack Decisions I needed to add Markdown in the decision composer to give our users access to some general styling when writing their decisions. We used React & GraphQL on the #Frontend and Ruby & GraphQL on the backend.

            Instead of using Showdown or another tool, We decided to parse the Markdown on the backend so we had more control over what we wanted to render in Markdown because we didn't want to enable all Markdown options, we also wanted to limit any malicious code or images to be embedded into the decisions and Markdown was a fairly large to import into our component so it was going to add a lot of kilobytes that we didn't need.

            We also needed to style how the markdown looked, we are currently using Glamorous so I used that but we are planning to update this to Emotion at some stage as it has a fairly easy upgrade path rather than switching over to styled-components or one of the other cssInJs alternatives.

            Also we used React-Mentions for tagging tools and topics in the decisions. Typing @ will let you tag a tool, and typing # will allow you to tag a topic.

            The Markdown options that we chose to support are tags: a, code, u, b, em, pre, ul, ol, li.

            If there are anymore tags you'd love to see added in the composer leave me a comment below and we will look into adding them.

            #StackDecisionsLaunch

            See more

            ReactQL is a React + GraphQL front-end starter kit. #JSX is a natural way to think about building UI, and it renders to pure #HTML in the browser and on the server, making it trivial to build server-rendered Single Page Apps. GraphQL via Apollo was chosen for the data layer; #GraphQL makes it simple to request just the data your app needs, and #Apollo takes care of communicating with your API (written in any language; doesn't have to be JavaScript!), caching, and rendering to #React.

            ReactQL is written in TypeScript to provide full types/Intellisense, and pick up hard-to-diagnose goofs that might later show up at runtime. React makes heavy use of Webpack 4 to handle transforming your code to an optimised client-side bundle, and in throws back just enough code needed for the initial render, while seamlessly handling import statements asynchronously as needed, making the payload your user downloads ultimately much smaller than trying to do it by hand.

            React Helmet was chosen to handle <head> content, because it works universally, making it easy to throw back the correct <title> and other tags on the initial render, as well as inject new tags for subsequent client-side views.

            styled-components, Sass, Less and PostCSS were added to give developers a choice of whether to build styles purely in React / JavaScript, or whether to defer to a #css #preprocessor. This is especially useful for interop with UI frameworks like Bootstrap, Semantic UI, Foundation, etc - ReactQL lets you mix and match #css and renders to both a static .css file during bundling as well as generates per-page <style> tags when using #StyledComponents.

            React Router handles routing, because it works both on the server and in the client. ReactQL customises it further by capturing non-200 responses on the server, redirecting or throwing back custom 404 pages as needed.

            Koa is the web server that handles all incoming HTTP requests, because it's fast (TTFB < 5ms, even after fully rendering React), and its natively #async, making it easy to async/await inside routes and middleware.

            See more
            Webpack logo

            Webpack

            43.5K
            27K
            752
            A bundler for javascript and friends
            43.5K
            27K
            + 1
            752
            PROS OF WEBPACK
            • 309
              Most powerful bundler
            • 182
              Built-in dev server with livereload
            • 142
              Can handle all types of assets
            • 87
              Easy configuration
            • 22
              Laravel-mix
            • 4
              Overengineered, Underdeveloped
            • 2
              Makes it easy to bundle static assets
            • 2
              Webpack-Encore
            • 1
              Redundant
            • 1
              Better support in Browser Dev-Tools
            CONS OF WEBPACK
            • 15
              Hard to configure
            • 5
              No clear direction
            • 2
              Spaghetti-Code out of the box
            • 2
              SystemJS integration is quite lackluster
            • 2
              Loader architecture is quite a mess (unreliable/buggy)
            • 2
              Fire and Forget mentality of Core-Developers

            related Webpack posts

            Jonathan Pugh
            Software Engineer / Project Manager / Technical Architect · | 25 upvotes · 2.9M views

            I needed to choose a full stack of tools for cross platform mobile application design & development. After much research and trying different tools, these are what I came up with that work for me today:

            For the client coding I chose Framework7 because of its performance, easy learning curve, and very well designed, beautiful UI widgets. I think it's perfect for solo development or small teams. I didn't like React Native. It felt heavy to me and rigid. Framework7 allows the use of #CSS3, which I think is the best technology to come out of the #WWW movement. No other tech has been able to allow designers and developers to develop such flexible, high performance, customisable user interface elements that are highly responsive and hardware accelerated before. Now #CSS3 includes variables and flexboxes it is truly a powerful language and there is no longer a need for preprocessors such as #SCSS / #Sass / #less. React Native contains a very limited interpretation of #CSS3 which I found very frustrating after using #CSS3 for some years already and knowing its powerful features. The other very nice feature of Framework7 is that you can even build for the browser if you want your app to be available for desktop web browsers. The latest release also includes the ability to build for #Electron so you can have MacOS, Windows and Linux desktop apps. This is not possible with React Native yet.

            Framework7 runs on top of Apache Cordova. Cordova and webviews have been slated as being slow in the past. Having a game developer background I found the tweeks to make it run as smooth as silk. One of those tweeks is to use WKWebView. Another important one was using srcset on images.

            I use #Template7 for the for the templating system which is a no-nonsense mobile-centric #HandleBars style extensible templating system. It's easy to write custom helpers for, is fast and has a small footprint. I'm not forced into a new paradigm or learning some new syntax. It operates with standard JavaScript, HTML5 and CSS 3. It's written by the developer of Framework7 and so dovetails with it as expected.

            I configured TypeScript to work with the latest version of Framework7. I consider TypeScript to be one of the best creations to come out of Microsoft in some time. They must have an amazing team working on it. It's very powerful and flexible. It helps you catch a lot of bugs and also provides code completion in supporting IDEs. So for my IDE I use Visual Studio Code which is a blazingly fast and silky smooth editor that integrates seamlessly with TypeScript for the ultimate type checking setup (both products are produced by Microsoft).

            I use Webpack and Babel to compile the JavaScript. TypeScript can compile to JavaScript directly but Babel offers a few more options and polyfills so you can use the latest (and even prerelease) JavaScript features today and compile to be backwards compatible with virtually any browser. My favorite recent addition is "optional chaining" which greatly simplifies and increases readability of a number of sections of my code dealing with getting and setting data in nested objects.

            I use some Ruby scripts to process images with ImageMagick and pngquant to optimise for size and even auto insert responsive image code into the HTML5. Ruby is the ultimate cross platform scripting language. Even as your scripts become large, Ruby allows you to refactor your code easily and make it Object Oriented if necessary. I find it the quickest and easiest way to maintain certain aspects of my build process.

            For the user interface design and prototyping I use Figma. Figma has an almost identical user interface to #Sketch but has the added advantage of being cross platform (MacOS and Windows). Its real-time collaboration features are outstanding and I use them a often as I work mostly on remote projects. Clients can collaborate in real-time and see changes I make as I make them. The clickable prototyping features in Figma are also very well designed and mean I can send clickable prototypes to clients to try user interface updates as they are made and get immediate feedback. I'm currently also evaluating the latest version of #AdobeXD as an alternative to Figma as it has the very cool auto-animate feature. It doesn't have real-time collaboration yet, but I heard it is proposed for 2019.

            For the UI icons I use Font Awesome Pro. They have the largest selection and best looking icons you can find on the internet with several variations in styles so you can find most of the icons you want for standard projects.

            For the backend I was using the #GraphCool Framework. As I later found out, #GraphQL still has some way to go in order to provide the full power of a mature graph query language so later in my project I ripped out #GraphCool and replaced it with CouchDB and Pouchdb. Primarily so I could provide good offline app support. CouchDB with Pouchdb is very flexible and efficient combination and overcomes some of the restrictions I found in #GraphQL and hence #GraphCool also. The most impressive and important feature of CouchDB is its replication. You can configure it in various ways for backups, fault tolerance, caching or conditional merging of databases. CouchDB and Pouchdb even supports storing, retrieving and serving binary or image data or other mime types. This removes a level of complexity usually present in database implementations where binary or image data is usually referenced through an #HTML5 link. With CouchDB and Pouchdb apps can operate offline and sync later, very efficiently, when the network connection is good.

            I use PhoneGap when testing the app. It auto-reloads your app when its code is changed and you can also install it on Android phones to preview your app instantly. iOS is a bit more tricky cause of Apple's policies so it's not available on the App Store, but you can build it and install it yourself to your device.

            So that's my latest mobile stack. What tools do you use? Have you tried these ones?

            See more
            Simon Reymann
            Senior Fullstack Developer at QUANTUSflow Software GmbH · | 23 upvotes · 4.7M views

            Our whole Vue.js frontend stack (incl. SSR) consists of the following tools:

            • Nuxt.js consisting of Vue CLI, Vue Router, vuex, Webpack and Sass (Bundler for HTML5, CSS 3), Babel (Transpiler for JavaScript),
            • Vue Styleguidist as our style guide and pool of developed Vue.js components
            • Vuetify as Material Component Framework (for fast app development)
            • TypeScript as programming language
            • Apollo / GraphQL (incl. GraphiQL) for data access layer (https://apollo.vuejs.org/)
            • ESLint, TSLint and Prettier for coding style and code analyzes
            • Jest as testing framework
            • Google Fonts and Font Awesome for typography and icon toolkit
            • NativeScript-Vue for mobile development

            The main reason we have chosen Vue.js over React and AngularJS is related to the following artifacts:

            • Empowered HTML. Vue.js has many similar approaches with Angular. This helps to optimize HTML blocks handling with the use of different components.
            • Detailed documentation. Vue.js has very good documentation which can fasten learning curve for developers.
            • Adaptability. It provides a rapid switching period from other frameworks. It has similarities with Angular and React in terms of design and architecture.
            • Awesome integration. Vue.js can be used for both building single-page applications and more difficult web interfaces of apps. Smaller interactive parts can be easily integrated into the existing infrastructure with no negative effect on the entire system.
            • Large scaling. Vue.js can help to develop pretty large reusable templates.
            • Tiny size. Vue.js weights around 20KB keeping its speed and flexibility. It allows reaching much better performance in comparison to other frameworks.
            See more
            Autoprefixer logo

            Autoprefixer

            3.4K
            50
            0
            PostCSS plugin to parse CSS and add vendor prefixes to CSS rules
            3.4K
            50
            + 1
            0
            PROS OF AUTOPREFIXER
              Be the first to leave a pro
              CONS OF AUTOPREFIXER
                Be the first to leave a con

                related Autoprefixer posts