Web Tools #476 - Classes, Frameworks, Jamstack, Uncats

Web Tools Weekly
WEB VERSION
Tools for Web Developers

Issue #476 • September 1, 2022

Advertisement
Scout: Powerful Application Monitoring
Easily analyze increased response time with intuitive dashboards that help you drill down into individual endpoints, requests, paths, and users tied to your slow-downs. Scout quickly shows you the exact endpoint causing the issue.

Start a Free Trial!
Scout APM

Almost every CSS framework available for use today takes advantage of HTML/CSS classes. But developer Keith Cirkel is attempting to make all those frameworks obsolete with his controversial article: CSS Classes considered harmful.

As soon as I saw the title, I immediately said to myself, "Oh great, another old-school expert claiming we should use IDs and descendant selectors for styling more." But that's not at all what this is about and I have to admit, I'm intrigued by his thought process.

First of all, Keith provides a really nice history lesson to show how CSS classes (or more accurately, HTML class attributes) came to be. During that section, I like the following comparison:

"Conceptually you could think of these as classical inheritance (so class Card extends Div) - inherit the semantics and base styles of div while making a re-usable style for a Card class."

This lays the groundwork for a discussion of the weaknesses of using classes in different ways, including BEM, various forms of OOCSS, CSS Modules, and even atomic CSS. He discusses many of the supposed drawbacks of atomic CSS.

BEM classes

An example of BEM-style classes in CSS

He sums things up by explaining:

"The key issue with all of these solutions is that they centre around the class property as the only way to represent the state of an object. Classes, being a list of arbitrary strings, have no key-values, no private state, no complex types (which also means IDE support is quite limited) and rely on custom DSLs like BEM just to make them slightly more usable."

He then presents his solution to the problem, which is based around HTML attributes — specifically custom data-* attributes — and custom HTML tag names.

He expands on the benefits of his solution fairly well, so you should check out the full post. I'm still taking the time to grasp the concepts he presents, but I definitely think there's some validity to his solution. I've never really had a problem with using attribute selectors as an alternative to classes, so this is something to look into that might change how we write CSS in the future.

Now on to this week's tools!
 

Front-end Frameworks

Scout: Powerful Application Monitoring
Easily analyze increased response time with intuitive dashboards that help you drill down into individual endpoints, requests, paths, and users tied to your slow-downs. Scout quickly shows you the exact endpoint causing the issue.     SPONSORED 

breeze-next
An application / authentication starter kit frontend in Next.js for Laravel Breeze (which provides a minimal, simple implementation of all of Laravel's authentication features).

Puppertino
An unofficial framework designed based on the Human Interface Guidelines from Apple for macOS and iOS.

System.css
A design system for building retro interfaces that resemble Apple's System OS, which ran from 1984-1991.

Saas UI
An advanced React component library and starter kit built with Chakra UI to help you build essential SaaS functionality quickly.

Cloudscape
An open source design system for the cloud from the AWS team, offers UI guidelines, front-end components, design resources, and dev tools for building intuitive, engaging, and inclusive user experiences at scale.

Varnish UI
A library of elegant, yet powerful UI components built using Vue and Tailwind, with dark mode support and live demos for all the components in the docs.

Varnish UI

Skeleton
A full-featured component library built with Svelte and Tailwind that allows you to build fast and reactive user interfaces.

Ariakit
A set of React and TypeScript-based components with a strong emphasis on accessibility.

Bedrock UI
A high-performance component library built with TypeScript and SCSS, specifically for building design systems.

secure-electron-template
A security-focused boilerplate and starter kit for building apps using Electron.

Browser Extension Template
A starter kit for building browser extensions, with support for React, Preact, Typescript, and Manifest v3.

The Uncategorizables

Stay up-to-date with CSS
Stay up-to-date with the latest trends in CSS by getting the most relevant and valuable articles and tutorials directly into your inbox. Join more than 30,000 developers and designers and sign up today.   SPONSORED 

browsers.fyi
A quick reference too look up what is the latest version of each major browser, with a link to the latest release notes for each one.

Affine
An open-source, privacy-friendly, next-generation collaborative knowledge base, similar to Notion, Miro, Monday, etc.

Hanko
A Go- and TypeScript-based open-source authentication solution that can do more than just passwords.

Web UI
A set of design templates and app templates for Figma and Adobe XD. Downloads require email address.

Stashpad
A developer notepad that lets you organize and take notes without interrupting your workflow.

Stashpad

grex
Online regex tool to generate a matching regular expression from the test cases you provide.

Whist
A native "cloud-hybrid" web browser with cloud tabs, designed to be crazy fast and light.

privacy.sexy
An open-source tool to enforce privacy and security best-practices on Windows and macOS.

Web Developer
Popular browser extension that adds various useful web developer tools to your browser.

Markwhen
A text-to-timeline tool that allows you to write markdown-ish text that gets converted to a nice looking cascading timeline.

Graphviz
A cross-platform native app to create graph visualizations by converting text-based structural information to diagrams of abstract graphs and networks.
 
👇 FYI — I've moved most IDE-related links to a new, smaller newsletter called  VSCode.Email. This week's issue includes the following:
  • Navigating files and projects in VS Code
  • An extension for advanced JavaScript/TypeScript refactorings
  • How VS Code collects user data
Check the archives for the latest issue, and subscribe for more!

Jamstack, CMS's, etc.

Stay up-to-date with CSS
Stay up-to-date with the latest trends in CSS by getting the most relevant and valuable articles and tutorials directly into your inbox. Join more than 30,000 developers and designers and sign up today.   SPONSORED 

Eleventy Plus Vite
A clean and fast starter kit for Eleventy, powered by Vite and pre- and post-processing using PostCSS and SCSS.

Flamethrower
A blazingly fast 2kb, zero-config router and prefetcher for static sites that makes a static website feel like a blazingly fast SPA.

Capri
A toolkit to allow you to build a component-based static website as if it was a single page app, with no new API to learn, and live CMS previews.

Capri

Eternity
A minimalist Hugo theme with a fresh look, designed for portfolio sites.

SaaS Blocks
A searchable and categorized directory of ready-to-use building blocks and APIs for building SaaS apps.

Payload
An open-source headless CMS and application framework built with TypeScript, Node.js, React, and MongoDB.

is-land
A new performance-focused way to add interactive client-side components to your Eleventy web site.

Sphido
A fast, lightweight, and flexible static site generator build with JavaScript, with no dependencies and works based on two function calls.

Jigsaw
A Laravel-based framework for rapidly building static sites that uses the Laravel Blade templating engine.

On the Release Radar:

Commercial Apps and Classifieds

These are commercial apps (i.e. not free or limited free plan), paid classifieds, and affiliate links.

Locofy – Convert Figma designs into production-ready frontend code.

Primary – Platform to ideate, define, and document design solutions.

Tailwind Weekly – A newsletter that levels up your Tailwind CSS skills.  AD

Baseblock – A base framework for building your design system.

The Sample – Discover newsletters and blogs in your areas of interest. AD

SupaPass – No-code website builder with subscriptions, digital sales, etc.

Tinybird – A serverless analytical backend build low-latency APIs with SQL.
 

A Tweet for Thought

I've never used a vertical monitor, though I know they're popular among programmers. André Staltz shares a new almost square vertical monitor that he feels is a productivity-enhancing upgrade. Something to try maybe?
 
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...

Do you like LinkedIn? Well, if you hate LinkedIn, you'll probably love Viral Post Generator, an AI-based app that helps you write the perfect LinkedIn post.

Thanks to everyone for subscribing and reading!

Keep tooling,
Louis
@WebToolsWeekly
PayPal.me/WebToolsWeekly

Older messages

Web Tools #475 - DOM Examples, CSS Tools, Build, JS Utils

Thursday, August 25, 2022

Web Tools Weekly WEB VERSION Issue #475 • August 25, 2022 Advertisement Retool is the Fast Way to Build Internal Tools Retool offers a component library and app-building framework in one, powerful

Web Tools #474 - JS Libraries, SVG, Git/CLI

Thursday, August 18, 2022

Web Tools Weekly WEB VERSION Issue #474 • August 18, 2022 Advertisement Build Internal Tools 10x Faster with Retool Retool is the fast way for developers to build and share internal tools. Teams at

Web Tools #473 - Frameworks, Testing Tools, Uncats

Friday, August 12, 2022

Web Tools Weekly WEB VERSION Issue #473 • August 11, 2022 Advertisement Meet Filestack: The All-In-One File Handling Service Filestack is the premier service designed to meet all your file handling

Web Tools #472 - Media, SVG, React, JSON, Databases

Thursday, August 4, 2022

Web Tools Weekly WEB VERSION Issue #472 • August 4, 2022 Advertisement Powerful Monitoring, Low Overhead! Easily analyze increased response time with intuitive dashboards that help you drill down into

Web Tools #471 - CSS Articles, JS Utils, Git/CLI, Svelte

Thursday, July 28, 2022

Web Tools Weekly WEB VERSION Issue #471 • July 28, 2022 Advertisement Internal Tools Are Built On Retool Build interfaces fast with 100+ pre-built components. Then customize with JavaScript, SQL, HTML,

You Might Also Like

iOS Dev Weekly – Issue 694

Friday, January 10, 2025

Hopefully you won't see that much difference with receiving this issue, but it's ALL CHANGED behind the scenes! 😱 ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌

Daily Coding Problem: Problem #1664 [Easy]

Friday, January 10, 2025

Daily Coding Problem Good morning! Here's your coding interview problem for today. This problem was asked by Twitter. A permutation can be specified by an array P , where P[i] represents the

Spyglass Dispatch: The Case for a For-Profit OpenAI

Friday, January 10, 2025

RIP Venu • A More Political and Real Time Threads • An OpenAI Auction • Apple's Tough 2025 The Spyglass Dispatch is a newsletter sent on weekdays featuring links and commentary on timely topics

⌨️ 10 Mods to Improve Your Mechanical Keyboard — How to Set Up Quick Share on Windows

Friday, January 10, 2025

Also: Why Are Tech Companies Trying to Sell Me Expensive Clocks? How-To Geek Logo January 10, 2025 Did You Know Famed biologist Charles Darwin and US President Abraham Lincoln were born on the same day

Your best friends in design

Friday, January 10, 2025

​ Working With Designers Product manager & UX designer collaboration guide. How members of your product team work together is just as important as the work itself. A fundamental relationship within

Charted | How Canada Would Rank as the 51st State 📊

Friday, January 10, 2025

Donald Trump has floated the idea that Canada should be the 51st state. Here's how it compares statistically. View Online | Subscribe | Download Our App Presented by: Global X ETFs Power AI's

Pinpointing The Actual Problem 🎯

Friday, January 10, 2025

WordPress accidentally diagnoses its own business problem. Here's a version for your browser. Hunting for the end of the long tail • January 10, 2025 Pinpointing The Actual Problem A blog post from

😱Major Azure Outage in EastUS2, 🚀New AI and Azure Developer CLI Courses, azureedge.net DNS retiring

Friday, January 10, 2025

͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏

iOS Cocoa Treats

Friday, January 10, 2025

View in browser Hello, you're reading Infinum iOS Cocoa Treats, bringing you the latest iOS related news straight to your inbox every week. Adopting Swift 6 across the app codebase I've been

Issue #575: Excalibird, bird’s eye metropolis, and Stimulation Clicker

Friday, January 10, 2025

View this email in your browser Issue #575 - January 10th 2025 Weekly newsletter about Web Game Development. If you have anything you want to share with our community please let me know by replying to