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

Kotlin Weekly #441

Sunday, January 12, 2025

ISSUE #441 12th of January 2025 Announcements Become a KotlinConf 2025 volunteer! The KotlinConf has started a Call for Volunteers to help out at the conference in May! If you are interested, check out

Healthy life, Meta's AI and legibility

Saturday, January 11, 2025

Neologism #25, 11.01.2024 ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏

Daily Coding Problem: Problem #1665 [Medium]

Saturday, January 11, 2025

Daily Coding Problem Good morning! Here's your coding interview problem for today. This problem was asked by LinkedIn. A wall consists of several rows of bricks of various integer lengths and

📊 Every Smartphone I've Ever Owned, Ranked — This Tiny Smart Remote Is the Most Exciting Thing at CES

Saturday, January 11, 2025

Also: 5 Android Notification Features to Make Your Day Easier, and More! How-To Geek Logo January 11, 2025 Did You Know On March 12, 1951, a curious thing happened. In the United States and the United

Ranked | The Top Grossing Movies Worldwide in 2024 🎬

Saturday, January 11, 2025

Established IP dominated the 2024 box office, with top films mostly being sequels, spin-offs, or franchise continuations. View Online | Subscribe | Download Our App FEATURED STORY Ranked: Top Grossing

📖 Your Step-by-Step Guide to Securing AI in the Enterprise

Saturday, January 11, 2025

January 11, 2025 | Read Online Subscribe | Advertise Good Morning. Welcome to this special edition of The Deep View, brought to you in collaboration with Tines. When it comes to adopting AI securely,

🐍 New Python tutorials on Real Python

Saturday, January 11, 2025

Hey there, There's always something going on over at Real Python as far as Python tutorials go. Here's what you may have missed this past week: Iterators and Iterables in Python: Run Efficient

Life Update: Me. In Shorts. In Antarctica [Pics Inside 🧊]

Saturday, January 11, 2025

And yes, I jumped in. It taught me a lot 😅 ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏

Google Researcher Uncovers Zero-Click Exploit Targeting Android Devices

Saturday, January 11, 2025

THN Daily Updates Newsletter cover The Kubernetes Book: Navigate the world of Kubernetes with expertise , Second Edition ($39.99 Value) FREE for a Limited Time Containers transformed how we package and

📧 Working with LLMs in .NET using Microsoft.Extensions.AI

Saturday, January 11, 2025

​ Working with LLMs in .NET using Microsoft․Extensions․AI Read on: m​y website / Read time: 6 minutes The .NET Weekly is brought to you by: ​Transform your database performance with RavenDB​: