My team shipped the most difficult (and longest) project of my career in the last few weeks. We migrated the frontend bundler for Jira (5M+ src lines) from Webpack to @parceljs, and customers (mostly) didn’t notice.
Lightning CSS v1.21.0 is out! ⚡️
📍 Preserve manual fallback values for old browsers, removing only when safe
📍 Split selector lists when unsupported by targets
📍 Include and exclude options for control over compilation
📍 Ignore non-standard selectors
github.com/parcel-bundler/li…
Parcel is now sponsoring @napi_rs! It's a fantastic tool for building Node modules in Rust that we use extensively in Parcel and Lightning CSS, with much more in the works. Thanks to @Brooooook_lyn for the fantastic work on this project. 😍
opencollective.com/napi-rs
Excited to announce the Lightning CSS visitor API! It lets you build custom CSS transform plugins in JavaScript. ⚡️
🚀 6x faster than postcss
🍱 Fully parsed values for all CSS rules and properties
🌾 Granular API
🪆 Composable
💪 Fully typed
lightningcss.dev/transforms.…
ALT Example code for a custom visitor plugin that replaces a --branding-padding environment variable with a value representing 20px.
Lightning CSS v1.17.0 is out! ⚡️
🪺 Updated nesting syntax
🦋 Rust visitor API for building custom transforms
🖨️ Support for @page margin rules
🗜️ Simplify :is() selector with a single simple argument
📺 Fix media query parenthesization
github.com/parcel-bundler/li…
Parcel's tree shaking now follows re-exports across code splitting, including only necessary exports in each bundle rather than hoisting everything to the root. We've seen this reduce entry bundle size on real world projects by up to 50% when using large component libraries.
ALT Screenshot of code showing example library re-exporting many components such as Button, Checkbox, Switch, etc.
The team at Atlassian has been working on our new production bundling algorithm for over a year, and it's finally ready to become the default! This brings huge performance improvements, and reduced bundle sizes with less duplication and better browser caching.
ALT This results in both smaller bundles and much faster builds. For a very large real-world project with over 60,000 assets, overall build time was reduced from over 25 minutes to 9 minutes (2.7x faster). The total bundle size for the whole project went from 952 MB to 370 MB (2.5x smaller). For comparison, building the same app with webpack takes over 45 minutes.
We've been benchmarking our end-to-end HMR update performance versus other tools.
Parcel is now up to 68% faster than Turbopack, and up to 74% faster than Vite at delivering updates to the browser when you hit save.
Details: github.com/devongovett/parce…
Yesterday we released v1.16.1, which includes bug fixes for nesting, border shorthands, and auto prefixing. Also improved browserslist integration in the CLI!
github.com/parcel-bundler/li…
Early numbers for some optimizations we've been working on for Parcel are looking promising! ⚡️
before: Built in 39.82s
with changes: Built in 4.50s
Numbers from a very large real-world project. Will share more soon! 😃
Really excited about this. I’ve often wanted to manipulate colors programmatically over the years (ala SASS). Happy to see this finally standardized as part of CSS Color Level 5.
w3.org/TR/css-color-5/
Lightning CSS already supports color-mix() too, btw! 😄
ALT color-mix in lch with teal 65%, olive 45%. Output shows rgb fallback and computed lch color.
New release! ⚡️
Lightning CSS now supports relative color syntax, which allows you to adjust colors with math functions! If you've ever wanted to lighten or darken a color, now you can – and a lot more.
Playground: lightningcss.dev/playground/…
Release notes: github.com/parcel-bundler/li…
ALT An input lch color, adjusting slateblue by darkening it 10%. Output shows a hex color, and calculated lch value.
New release! ⚡️
Lightning CSS now supports relative color syntax, which allows you to adjust colors with math functions! If you've ever wanted to lighten or darken a color, now you can – and a lot more.
Playground: lightningcss.dev/playground/…
Release notes: github.com/parcel-bundler/li…
ALT An input lch color, adjusting slateblue by darkening it 10%. Output shows a hex color, and calculated lch value.
Lightning CSS v1.15.0 is out! ⚡️
Includes support for bundling with inline source maps, an option to preserve imports when analyzing deps, fixes for cascade layers, flex shorthand, custom media queries, and more.
github.com/parcel-bundler/li…