Web Tools #422 - CSS Modules, JS Libraries, Build Tools, React Native

Web Tools Weekly
WEB VERSION
Tools for Web Developers

Issue #422 • August 19, 2021

Advertisement
Web Scraping API
Extract the data you need with scrapestack’s powerful web scraping API.

Get Your Free API Key!
Web Scraping API

In case you missed it, the HTML/DOM spec is introducing something called CSS Module Scripts, as outlined in this pull request on the WHATWG GitHub repo.

Dan Clark of the MS Edge team explains:

"This change extends the ES Script Modules system to include CSS module scripts. These will allow web developers to load CSS into a component definition in a manner that interacts seamlessly with other module script types."

The explainer document that he links to in that PR goes over some of the reasons CSS modules are needed (like we need a reason!) in the current landscape where many devs are doing module-based CSS:

  • Problems occur when using a `style` element in document scope or in shadow root
  • Inlined CSS text as a string in JavaScript has performance issues
  • Using fetch() to insert CSS makes things overly complex
The document then gives the following example code demonstrating how a CSS module will look (it's more or less the same as ES modules):
 
import styles from "./styles.css" assert { type: "css" };

document.adoptedStyleSheets = [
  ...
document.adoptedStyleSheets, styles
];

As you can see, the one difference is the assert statement, which the doc explains:

"CSS modules will be imported using the same import statements currently used for other ES modules, with the addition of an import assertion module type check."

I'm sure you'll agree this is all great news. So far, implementation of the feature has started with Chromium behind a flag (which means all Chromium-based browsers, including Edge and Brave) and it's being discussed for Firefox and Safari as well.

It does seem a little strange, as others have pointed out, that this feature is going to be part of the HTML/DOM spec rather than the ECMAScript spec. Nonetheless, it's certainly something to keep an eye on. I wonder how many CSS-in-JS or similar tools will become obsolete when this feature is ready for production?

Now on to this week's tools!
 

 

JavaScript Libraries and Frameworks

Web Scraping API
Extract the data you need with scrapestack’s powerful web scraping API. Get Your Free API Key!   sponsored 

Pancake
A lightweight, fast, and easy-to-use HTML5 2D game framework powered by HTML Canvas.

Turf
A JavaScript library for spatial analysis that includes traditional spatial operations, helper functions for creating GeoJSON data, and data classification and statistics tools.

Baileys
A lightweight full-featured TypeScript/JavaScript WhatsApp Web API.

Tempura
A fast, customizable, and lightweight template engine with syntax similar to Handlebars.

Tempura

CalDOM
An agnostic, reactive, and minimalist (3kb) JavaScript UI library with direct access to the native DOM.

VibeJS
A small (under 14kb minified) component-based library for building user interfaces, with built-in drag-and-drop.

AdonisJS
A fully featured web framework for Node.js that includes everything you need to create a fully functional web app or an API server.

Solid
A declarative, efficient, and flexible JavaScript library for building user interfaces.

Handsfree.js
Quickly integrate face, hand, and/or pose tracking to your front-end projects in a snap.

txiki.js
A tiny JavaScript runtime built with QuickJS and libuv.

On the Release Radar:

Build Tools, Bundlers, etc.

The Reshape
Stay up to date with AI 🤖 & Data Science 📊 by reading top-notch articles. We are the first to spot hot news (data proven!). At the same time, we scour the Internet to find the most overlooked publications. Get a package of both in a concise form delivered straight to your inbox for free 📬.   sponsored 

eslint-nibble
Gives you a quick overview of your failing ESLint rules then shows you the detailed error reports for one rule at a time.

Webpack Stats Diff
GitHub action to print Webpack stat diffs in your pull requests.

Fiddly
Create beautiful and simple HTML pages from your Readme.md files.

Next.js + graphql-let plugin
Frictionless automatic GraphQL TypeScript generation setup for Next.js.

RisXSS
Eradicate all XSS flaws of your React or Vue application using a single ESLint rule.

Ship.js
Automated, asynchronous, and collaborative release management for your JavaScript apps.
 
Ship.js

Juke
A build tool for Node.js apps, inspired by a .NET build tool with a similar name.

Storybook Builder for Vite
An experimental plugin to run and build Storybooks with Vite.

Deno Deploy
A globally distributed JavaScript VM that runs JavaScript, TypeScript, and WebAssembly at the edge, worldwide.

yaup
An unopinionated esbuild CLI with a minimal API for easier maintenance.

Serverless Next.js Component
A zero configuration Next.js serverless component for AWS Lambda@Edge aiming for full feature parity.

React Native and Mobile Tools

The Reshape
Stay up to date with AI 🤖 & Data Science 📊 by reading top-notch articles. We are the first to spot hot news (data proven!). At the same time, we scour the Internet to find the most overlooked publications. Get a package of both in a concise form delivered straight to your inbox for free 📬.   sponsored 

React Native Notifications
Handle all the aspects of push notifications for your app, including remote and local notifications, interactive notifications, silent notifications, and more.

rnsvg-generator
Convert any SVG file into a programmable React Component that's compatible with react-native-svg.

Sentry SDK for React Native
Official React Native SDK for Sentry, the app monitoring and error tracking service.

Hotpot
A one-stop site for creating and downloading graphics and templates for device mockups, app screenshots, and lots more.

react-native-zoomable-view
A view component for React Native with pinch to zoom, tap to move and double tap to zoom capability. Zooms images, text, and complex nested views.

react-native-progress
Progress indicators and spinners for React Native using React Native SVG.

React Native Easing Gradient
Create smooth gradients in React Native using easing functions to avoid linear gradients with hard edges.

react-native-popable
Popover and tooltips component for React Native, built in TypeScript.
 
react-native-popable

React Native Numpad
A simple React Native number pad for quickly updating multiple number inputs.

react-native-collapsible-tab-view
A cross-platform Collapsible Tab View component for React Native.

react-native-dialog
A flexible pure JavaScript React-Native dialog that follows the native UI guidelines closely.

FlutterFlow
Build Flutter apps visually using a drag-and-drop interface that includes a decent free plan.

Commercial Apps and Classifieds

This is a new section of the newsletter that contains brief links to commercial (non-free) apps and paid classifieds. You can submit a link for consideration or you can buy a classified link (will be marked "ad").

Swetrix - Privacy-friendly, advanced, and customizable analytics platform.

BugBug.io - Automated browser testing and QA with no code.

JavaScript E-Books Bundle - 3 JavaScript E-Books for $9 USD (50% off).  ad 

Lemon - Alternative and intuitive UI for AWS.

Slip - Platform to create and sell interactive programming courses.
 

A Tweet for Thought

One of the first ever Tweets I saved for this section of the newsletter, but never used is this absolute classic Facebook screenshot that I have no idea if it's real but who cares because it's funny.

A Tweet for Thought
 

Send Me Your Tools!

Made something? Send links via Direct Message on Twitter @WebToolsWeekly (details here). No tutorials or articles, please. If you have any suggestions for improvement or corrections, feel free to reply to this email.
 

Before I Go...

Code House claims to be the world's biggest storehouse of developer cheatsheets. Don't know if it's true but worth a visit.

Thanks to everyone for subscribing and reading!

Keep tooling,
Louis
@WebToolsWeekly

Want to get notified of new issues via Twitter, Telegram, or Messenger? You can sign up using a service called Reachme.

Support this newsletter:
PayPal.me  Patreon / GitHub Sponsors  E-Books / Buy Me a Coffee

Older messages

Web Tools #421 - VS Code, Testing Tools, React

Friday, August 13, 2021

Web Tools Weekly WEB VERSION Issue #421 • August 12, 2021 The following intro is a paid product review for Clerk, an authentication and user management service for Next.js, React, and JavaScript apps.

Web Tools #420 - CSS Tools, Front-end Frameworks, Uncats

Thursday, August 5, 2021

Web Tools Weekly WEB VERSION Issue #420 • August 5, 2021 Advertisement Stock Market Data API The marketstack API offers free stock data in JSON for various ticker symbols. Access real-time and

Web Tools #419 - Icons/SVG, Build Tools, JS Utilities

Thursday, July 29, 2021

Web Tools Weekly WEB VERSION Issue #419 • July 29, 2021 Advertisement Store. Optimize. Deliver Images with ImageKit.io What's the best image format for a website? What about the size? How do I

Web Tools #415 - JS Libraries, JSON/DB, React Tools

Friday, July 23, 2021

Web Tools Weekly WEB VERSION Issue #415 • July 1, 2021 Advertisement TLDR Newsletter - Byte Sized News for Busy Techies TLDR is a free daily newsletter with links and TLDRs of the most interesting

Web Tools #418 - VS Code, Front-end Frameworks, Uncats

Thursday, July 22, 2021

Web Tools Weekly WEB VERSION Issue #418 • July 22, 2021 Advertisement IP Geolocation API Identify a visitor's location based on their IP address with ipapi.com. This reverse IP lookup supports IPv4

You Might Also Like

a16z’s Infrastructure team gets a new general partner

Friday, April 19, 2024

Post News is shutting down and Wall Street isn't feeling a Salesforce-Informatica pairing View this email online in your browser By Christine Hall Friday, April 19, 2024 Image Credits: Andreessen

New Roundtable! Additive for Mass Production Applications

Friday, April 19, 2024

The Outlook for the Future View this email in your browser engineering.com Roundtable - Additive for Mass Production Applications: The Outlook for the Future 6 Considerations for Choosing the Right

📷 What to Know About Macro Photography — Why You Should Buy a Budget Motherboard

Friday, April 19, 2024

Also: How to Automatically Highlight Values in Excel, and More! How-To Geek Logo April 19, 2024 📩 Get expert reviews, the hottest deals, how-to's, breaking news, and more delivered directly to your

Is the wind going out of the AI sails?

Friday, April 19, 2024

Rippling vacuums up venture capital and Ramp bags more millions View this email online in your browser By Haje Jan Kamps Friday, April 19, 2024 Image Credits: Getty Images / Carol Yepes Welcome to

Llama 3 is out - Weekly News Roundup - Issue #463

Friday, April 19, 2024

Plus: brand-new, all-electric Atlas; AI Index Report 2024; Microsoft pitched GenAI tools to US military; Humane AI Pin reviews are in; debunking Devin; and more! ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏

Daily Coding Problem: Problem #1417 [Easy]

Friday, April 19, 2024

Daily Coding Problem Good morning! Here's your coding interview problem for today. This problem was asked by Wayfair. You are given a 2 x N board, and instructed to completely cover the board with

Charted | How Hard Is It to Get Into an Ivy League School? 🎓

Friday, April 19, 2024

We detail the admission rates and average annual cost for Ivy League schools, as well as the median SAT scores required to be accepted. View Online | Subscribe Presented by: Discover the motivations

Dark Matter & Tortured Poets

Friday, April 19, 2024

New music releases aren't what they used to be -- for good and bad. Dark Matter & Tortured Poets By MG Siegler • 19 Apr 2024 View in browser View in browser New music releases in 2024 are a

Impact of AI on Product Management

Friday, April 19, 2024

​ Impact of AI on Product Management The rise of the AI Product Manager. Product managers have always championed customer's needs. However, with AI, the job requires new technical and ethical

⚙️ Zuck has entered the chat(bot)

Friday, April 19, 2024

Plus: AI video's coming to mobile! ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌