stylus VS Snowpack

Compare stylus vs Snowpack and see what are their differences.

stylus

Expressive, robust, feature-rich CSS language built for nodejs (by stylus)

Snowpack

ESM-powered frontend build tool. Instant, lightweight, unbundled development. ✌️ [Moved to: https://github.com/FredKSchott/snowpack] (by withastro)
SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
surveyjs.io
featured
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
stylus Snowpack
26 69
11,170 19,787
0.1% -
6.8 8.4
about 16 hours ago about 2 years ago
JavaScript JavaScript
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

stylus

Posts with mentions or reviews of stylus. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-02-15.
  • Future of CSS: Functions and Mixins
    3 projects | dev.to | 15 Feb 2024
    Traditionally CSS lacked features such as variables, nesting, mixins, and functions. This was frustrating for Developers as it often led to CSS quickly becoming complex and cumbersome. In an attempt to make code easier and less repetitive CSS pre-processors were born. You would write CSS in the format the pre-processor understood and, at build time, you'd have some nice CSS. The most common pre-processors these days are Sass, Less, and Stylus. Any examples I give going forward will be about Sass as that's what I'm most familiar with.
  • Why Use Sass?
    5 projects | dev.to | 29 Jul 2023
    Stylus
  • Quick Guide To CSS Preprocessors
    3 projects | dev.to | 21 Nov 2022
    The Stylus is built on Node.js. It differs from Sass and Less, which are more opinionated to the syntax; the stylus allows you to omit semicolons, colons, and braces if you want at any time. Another cool feature is that the stylus has a property lookup feature. You can do that easily if you set property X relative to property Y's value. The stylus can be more concise because of its flexibility, but it depends on your preferred syntax.
  • Install Angular
    3 projects | dev.to | 13 Nov 2022
    ng new test1 ? Would you like to add Angular routing? Yes ? Which stylesheet format would you like to use? > CSS SCSS [ http://sass-lang.com ] SASS [ http://sass-lang.com ] LESS [ http://lesscss.org ] Stylus [ http://stylus-lang.com ]
  • Is there a way to shorten .contactform h2,… and to say something like .contactform (h2, ul, label)?
    3 projects | /r/webdev | 9 Nov 2022
    first of all, quit using css. get on board Stylus @ https://stylus-lang.com/
  • What I’ve Learned from Users
    1 project | news.ycombinator.com | 20 Sep 2022
  • Is a bracket within a bracket possible? (HTML/CSSS)
    4 projects | /r/HTML | 13 Aug 2022
    The term you are looking for is "nesting". CSS currently does not support it. But there is a draft being worked on. No browser currently supports it, though. Most CSS Pre- or Postprocessors like Sass, Less, Stylus, PostCSS support nesting.
  • Create own default plugin to NX workspace
    8 projects | dev.to | 27 May 2022
    // schema.json { "$schema": "http://json-schema.org/schema", "cli": "nx", "$id": "ReactLibrary", "title": "", "type": "object", "properties": { "name": { "type": "string", "description": "Library name", "$default": { "$source": "argv", "index": 0 }, "x-prompt": "What name would you like to use for the library?", "pattern": "^[a-zA-Z].*$" }, "directory": { "type": "string", "description": "A directory where the lib is placed.", "alias": "dir" }, "domain": { "description": "Domain where this library belongs.", "type": "string", "default": "none", "alias": "dom", "x-prompt": { "message": "Which domain this library belongs?", "type": "list", "items": [ { "value": "web", "label": "Web" }, { "value": "common", "label": "Common" } ] } }, "scope": { "type": "string", "description": "A scope for the lib.", "alias": "sc" }, "type": { "description": "Library type", "type": "string", "alias": "t", "x-prompt": { "message": "Select library type?", "type": "list", "items": [ { "value": "data", "label": "Data" }, { "value": "model", "label": "Model" }, { "value": "util", "label": "Util" }, { "value": "feature", "label": "Feature" }, { "value": "ui", "label": "Ui" } ] } }, "style": { "description": "The file extension to be used for style files.", "type": "string", "default": "none", "alias": "s", "x-prompt": { "message": "Which stylesheet format would you like to use?", "type": "list", "items": [ { "value": "css", "label": "CSS" }, { "value": "scss", "label": "SASS(.scss) [ http://sass-lang.com ]" }, { "value": "styl", "label": "Stylus(.styl) [ http://stylus-lang.com ]" }, { "value": "less", "label": "LESS [ http://lesscss.org ]" }, { "value": "styled-components", "label": "styled-components [ https://styled-components.com ]" }, { "value": "@emotion/styled", "label": "emotion [ https://emotion.sh ]" }, { "value": "styled-jsx", "label": "styled-jsx [ https://www.npmjs.com/package/styled-jsx ]" }, { "value": "none", "label": "None" } ] } }, "linter": { "description": "The tool to use for running lint checks.", "type": "string", "enum": ["eslint", "tslint"], "default": "eslint" }, "unitTestRunner": { "type": "string", "enum": ["jest", "none"], "description": "Test runner to use for unit tests.", "default": "jest" }, "skipFormat": { "description": "Skip formatting files.", "type": "boolean", "default": false }, "skipTsConfig": { "type": "boolean", "default": false, "description": "Do not update `tsconfig.json` for development experience." }, "pascalCaseFiles": { "type": "boolean", "description": "Use pascal case component file name (e.g. `App.tsx`).", "alias": "P", "default": false }, "routing": { "type": "boolean", "description": "Generate library with routes." }, "appProject": { "type": "string", "description": "The application project to add the library route to.", "alias": "a" }, "publishable": { "type": "boolean", "description": "Create a publishable library." }, "buildable": { "type": "boolean", "default": false, "description": "Generate a buildable library." }, "importPath": { "type": "string", "description": "The library name used to import it, like `@myorg/my-awesome-lib`." }, "component": { "type": "boolean", "description": "Generate a default component.", "default": true }, "js": { "type": "boolean", "description": "Generate JavaScript files rather than TypeScript files.", "default": false }, "globalCss": { "type": "boolean", "description": "When `true`, the stylesheet is generated using global CSS instead of CSS modules (e.g. file is `*.css` rather than `*.module.css`).", "default": false }, "strict": { "type": "boolean", "description": "Whether to enable tsconfig strict mode or not.", "default": true }, "setParserOptionsProject": { "type": "boolean", "description": "Whether or not to configure the ESLint `parserOptions.project` option. We do not do this by default for lint performance reasons.", "default": false }, "standaloneConfig": { "description": "Split the project configuration into `/project.json` rather than including it inside `workspace.json`.", "type": "boolean" }, "compiler": { "type": "string", "enum": ["babel", "swc"], "default": "swc", "description": "Which compiler to use." } }, "required": ["name", "type", "scope", "domain"] }
  • Add BootstrapVue to VuePress
    4 projects | dev.to | 25 Jan 2022
    Finally we need to load the bootstrap css. VuePress ships with stylus by default now, but we can still import css into our stylus file at .vuepress/styles/index.styl
  • Scss/Sass - Is this something I should try and learn before landing my first job, or is vanilla CSS enough?
    2 projects | /r/Frontend | 23 Jan 2022
    Uhh... yeah. But if you want to omit the braces and semicolons you can check this preprocessor https://stylus-lang.com You will enjoy the landing page, LoL. Maybe even get motivated.

Snowpack

Posts with mentions or reviews of Snowpack. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-03-25.
  • How to replace webpack & babel with Vite on a legacy React Typescript project
    11 projects | dev.to | 25 Mar 2022
    Then there was Webpack which seemed like it would be around for a while. Even after things like Parcel and Snowpack came on the scene people still recommended Webpack. I mean, it's still the backbone of create-react-app. An then, Vite was released.
  • State of the Web: Bundlers & Build Tools
    17 projects | dev.to | 23 Jan 2022
    Unbundled development utilizes native ESM support in browsers to offer an ultra-fast development experience. Unlike a traditional bundler which bundles everything in development, unbundled development transforms the code and rewrites import paths to the ESM compliant file path without bundling your code. Additionally, most bundlers that do this pre-bundle dependencies because that decreases the number of imports needed, and dependencies are unlikely to change often. The two most prominent bundlers that utilize unbundled development are Vite and Snowpack. Snowpack, created in 2019, was the first bundler to have an unbundled development experience. However, while Snowpack was popular for some time, this did not last forever. In 2020, the team behind Vue created Vite. Vite has many advantages over Snowpack, like the ease of use, speed, better optimization, and more. Additionally, popular projects like SvelteKit adopted Vite instead of Snowpack. All of this helped Vite pass Snowpack in downloads, and it now has more than 10x downloads compared to Snowpack. In fact, even Astro, a project created by the team behind Snowpack (be on the lookout for an article about Astro), is now using Vite. Overall, if you want fast, unbundled development, I recommend Vite.
  • What are the new and exciting tech for React projects for 2022?
    16 projects | /r/reactjs | 5 Jan 2022
    I've been hearing good things about snowpack and have been wanting to give it a go myself as an alternative to webpack/babel
  • Converting to Vite (Part 1)
    4 projects | dev.to | 5 Jan 2022
    So how did we get here? Well, it's a good thing to describe alternatives considered when you add issues to a repo! Months ago, @0vortex described in Issue #1131 some opportunities for dependency updates that would require version 5 of webpack with our webpack configuration, and warned that the dependency management would probably be tricky. I fixated on an alternative that he mentioned about converting the project to use Snowpack. I had wanted to learn more about bundling tools, so I took a few days here and there after Thanksgiving and got Open Sauced mostly working with it (see PR #1320).
  • npx create-react-app not working -- everything is deprecated
    5 projects | /r/react | 11 Dec 2021
  • React 101: The Basics
    12 projects | dev.to | 30 Nov 2021
    I have written a post about setting up a React project using Parcel as a bundler which can give a more detailed walkthrough about getting a React application up and running from scratch. There are multiple ways to do this but some of the more common build tools include Webpack, Parcel, and Snowpack.
  • SolidJS on Snowpack – Quick Dev Guide
    2 projects | dev.to | 17 Nov 2021
    For more information about this issue, check these issue tickets: Issue 2998, Issue 3219, Issue 3243
  • Etsy’s Journey to TypeScript
    6 projects | news.ycombinator.com | 16 Nov 2021
    The number of transforms that Babel is doing with an "evergreen" config ("last 2 browser versions") at this point is effectively miniscule. It's a massive toolchain for what increasing turns out to be a minimal amount of actual work. "Last 2 Browser Versions" is effectively everything through ES2019 at this point which covers almost all of the "modern JS syntax". If you aren't using custom transforms you might not be transforming anything that matters in Babel in 2021. I've seen a bunch of projects with huge Babel pipelines where the only actual transform was Typescript's type removal and at that point, if your codebase is entirely Typescript, Typescript has all the downlevel transforms you need "baked in" (and arguably a little bit cleaner and simpler to Babel's kitchen sink but also still somehow millions of plugins approach) and it's just setting Typescript's compile option to the ES level you are most comfortable with. (In 2021 that may even be as high as { "target": "es2019" } or higher in your tsconfig.json and even there Typescript's not going to even need to downlevel much.) Typescript can also transform TSX/JSX to JS without the need of Babel, if you are using React.

    Even ES2015 modules which some people still think is the big reason to keep Babel around: a) has full Browser support if you use type="module", but most people still want to pack their JS because just about no one is assuming HTTP/2 or HTTP/3 yet, and b) Babel has never done module format transforms, that's always been the domain of your packer (webpack, parcel, rollup, snowpack, what have you).

    If you are updating your project stack in 2021 right now my personal top recommendation is that I really like the approach of snowpack (https://www.snowpack.dev/): ES2105 modules with dev experience (which is great), great Typescript support, and a simpler overall config experience than most other options right now. (It uses esbuild under the hood rather than babel for dev and basic transforms/bundling. It can optionally piggy back webpack and parcel for Production bundling that needs more "power".) Especially that <script type='module"> dev experience feels great now (with Hot Module Reloading too) versus waiting for a full bundle even for dev builds.

  • Build your own component library with Svelte
    10 projects | dev.to | 9 Nov 2021
    SvelteKit uses Vite under the hood, which is quite surprising, as Sapper and most tools are developed using Snowpack. Vite 2 is framework-agnostic and designed with SSR at its core.
  • Angular Is Rotten to the Core
    9 projects | news.ycombinator.com | 4 Nov 2021
    I've had some success with npm, snowpack, mocha, typescript as that sort of stack for more "vanilla" efforts that feel rather more "modern". I think mocha is easier and cleaner than jest. I like keeping all of my transpilation to just Typescript without needing a massive Babel install/pipeline. snowpack (https://www.snowpack.dev/) right now I think is in a sweet spot of a better "ES Module native" developer experience than webpack and has better defaults when left unconfigured. (So much so that while there are snowpack templates/generators provided by the project I mostly don't use them other than for reference.)

What are some alternatives?

When comparing stylus and Snowpack you can also consider the following projects:

Tailwind CSS - A utility-first CSS framework for rapid UI development.

vite - Next generation frontend tooling. It's fast!

PostCSS - Transforming styles with JS plugins

Rollup - Next-generation ES module bundler

stylelint - A mighty CSS linter that helps you avoid errors and enforce conventions.

parcel - The zero configuration build tool for the web. 📦🚀

SCSS

esbuild - An extremely fast bundler for the web

awesome-lit-html - A curated list of awesome Lit resources.

gulp - A toolkit to automate & enhance your workflow

emotion - 👩‍🎤 CSS-in-JS library designed for high performance style composition

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