lightningcss
PostCSS
lightningcss | PostCSS | |
---|---|---|
11 | 86 | |
5,966 | 28,210 | |
2.0% | 0.2% | |
8.7 | 8.8 | |
6 days ago | 5 days ago | |
Rust | TypeScript | |
Mozilla Public License 2.0 | MIT License |
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.
lightningcss
-
I'm fed up with it, so I'm writing a browser
Would you consider using some libraries in your project? There are lots of good ones in the Rust ecosystem, and many of them are not part of any existing browsers.
For example:
- https://github.com/servo/html5ever (HTML parsing - note: this is used in Servo)
- https://github.com/parcel-bundler/lightningcss (CSS parsing)
- https://github.com/DioxusLabs/taffy (web layout)
- https://github.com/pop-os/cosmic-text (text layout and rendering)
Obviously you should be free to work on whatever you like, but just as a benchmark on the scope of your project: I spent ~6 months implementing just the CSS Grid algorithm in Taffy last year. An entire browser from literal scratch is probably a 10 year project for one person.
- LightningCSS Benchmark
-
We're building a browser when it's supposed to be impossible
Libraries for a lot of this stuff exist (albeit in many cases not very mature yet):
- https://github.com/pop-os/cosmic-text does text layout (which Taffy explicitly considers out of scope)
- https://github.com/AccessKit/accesskit does accessibility
- https://github.com/servo/rust-cssparser does value-agnostic CSS parsing (it will parse the general syntax but leaves value parsing up to the user, meaning you can easily add support for whatever properties you what). Libraries like https://github.com/parcel-bundler/lightningcss implement parsing for the standard css properties.
- There are crates like https://github.com/BurntSushi/bstr and https://docs.rs/wtf8/latest/wtf8/ for working with non-unicode text
We are planning to add a C API to Taffy, but tbh I feel like C is not very good for this kind of modularised approach. You really want to be able to expose complex APIs with enforced type safety and this isn't possible with C.
-
Help with "returns a value referencing data owned by the current function"
Background: I encountered this problem using lightningcss.
-
On Using Rust in Parcel and Vitest
You can do it - that's actually exactly what my project is doing. I have a single repository with a Rust project, that builds the .wasm file (+ .d.ts + .js) using wasm-pack, and a Node.js project, that uses this .wasm file. There's no problem in packing that and exposing as a npm package. See parcel-bundler/lightningcss for a full blown example (it's not using wasm-pack but builds the Rust project directly).
- An fast CSS parser, transformer, bundler, and minifier written in Rust
- Parcel-Css - A CSS parser, transformer, and minifier written in Rust.
- ParcelCSS – A CSS parser, transformer, and minifier written in Rust
-
Parcel CSS: A new CSS parser, compiler, and minifier
Initial commit, 9 Oct 2021. That is pretty new.
PostCSS
-
PostCSS - my initial experience
the plugins in the official PostCSS website were old like IE6 or the marquee tag, and
-
Dark Mode with SvelteKit, a Blog Post
Hello internet. I just published a new blog post on how to implement dark mode with SvelteKit, optionally with PostCSS and TailwindCSS:
-
11 Ways to Optimize Your Website
There are many frontend tools available for this purpose. For example, PostCSS is a popular CSS processor that can combine and minimize your code. With the right plugin, it can even fix your code for compatibility issues, making sure your CSS styles work for all browsers.
-
Styling React 2023 edition
I use PostCSS to extend CSS’s features and to add a few things that make writing styles a little more convenient, but it could easily be swapped for another preprocessor like Sass or vanilla CSS. It’s up to you. You can view my PostCSS config here.
-
Abstract Syntax Trees and Practical Applications in JavaScript
Code transpilation isn't specific to JavaScript, You can also add a level of transformation to your CSS source using tools like post-css. Most languages with a fairly mature ecosystem will probably have some tools to help with code transformation.
-
Native CSS nesting now supported by all major browsers!
In large projects, it is still a good idea to use PostCSS, which will translate new CSS features to something that browsers understand today.
- Unicode-range CSS is working wrong in Safari browser?
-
Let's Make Learning Frontend Great Again!
LiveCodes provides many of the commonly used developer tools. These include Monaco editor (that powers VS Code), Prettier, Emmet, Vim/Emacs modes, Babel, TypeScript, SCSS, Less, PostCSS, Jest and Testing Library, among others. All these tools run seamlessly in the browser without any installations or configurations. It feels like a very light-weight version of your own local development environment including the keyboard shortcuts, IntelliSense and code navigation features.
-
How to setup a simple static website using Svelte (with login)
Usually, one of the first things I do on creating a new web app is to throw a UI library in to help style components. There are several UI libraries that can be used by Svelte, but in this case I went with daisyUI because it's a fairly popular UI library which includes tailwind. To install daisyUI, you first need to install tailwind. There's a few different ways to do this (such as this guide), but the easiest way I've found is the following command, which also adds PostCSS and AutoPrefixer:
-
Vanilla+PostCSS as an Alternative to SCSS
Vanilla CSS has taken a similar path with ambitious working drafts, better browser support, and PostCSS to fill the gap for user agents lagging behind. So why is Sass/SCSS still so popular? Maybe we go so used to it that we might have forgotten what problems it was meant to solve in the first place.
What are some alternatives?
swc - Rust-based platform for the Web
styled-components - Visual primitives for the component age. Use the best bits of ES6 and CSS to style your apps without stress 💅
rust-cssparser - Rust implementation of CSS Syntax Level 3
emotion - 👩🎤 CSS-in-JS library designed for high performance style composition
parse5 - HTML parsing/serialization toolset for Node.js. WHATWG HTML Living Standard (aka HTML5)-compliant.
esbuild - An extremely fast bundler for the web
x-ray - The next web scraper. See through the <html> noise.
Tailwind CSS - A utility-first CSS framework for rapid UI development.
excel-stream
purgecss - Remove unused CSS
ref - Turn Buffer instances into "pointers"
JSS - JSS is an authoring tool for CSS which uses JavaScript as a host language.