wsf-xxv
CSS. Refactoring CSS, a series by Adrian Bece: Introduction · Strategy, Regression Testing And Maintenance · Optimizing Size And Performance¹ / The world of CSS transforms, a tutorial by Josh W. Comeau / Smooth Shadow, a tool by Philipp Brumm to create a layered CSS box-shadow
JavaScript / Web Components / React. How To Build Resilient JavaScript UIs by Callum Hart / About Web Components, a history by Andrea Giammarchi / Handling properties in custom element upgrades by Nolan Lawson / React Children And Iteration Methods by Arihant Verma / Three Buggy React Code Examples and How to Fix Them by Hugh Haworth
Accessibility. A Deep Dive on Skipping to Content by Paul Ratcliffe / Creating An Accessible Dialog From Scratch by Kitty Giraudel
Performance. Making Reasonable Use of Computer Resources / Improving the responsiveness in text inputs by Nolan Lawson / A performance-focused workflow based on Google tools by Antoine Bisch and Garima Mimani
Tools / Resources. Moved some of my projects to esbuild, loving it so far; it feels knowable and making plugins for it is a breeze / A first release candidate for Parcel 2 was just released / useful-forks and active-forks, two tools to find the most active forks of a GitHub repository / Coding with character by Doug Wilson / Open Type Cookbook, an introduction to OpenType features / Visualizing a codebase by Amelia Wattenberger / Building Developer Tools, a collection of notes by Kunal Bhalla
Parsing things. Make a Markdown Parser with OhmJS by Josh Marinacci
Reading / Writing / Publishing. 640 Pages in 15 Months, Robert Nystrom on preparing a physical version of his Crafting Interpreters book / Buy Music Club, a place for creating and browsing lists of independent music purchasable on Bandcamp
Creative coding. Procedurally generated fish by Lingdong Huang / Constraint Systems, a collection of experimental web-based creative tools by Grant Custer
Today I learned
Store as global variable option. A definite improvement over doing window.XXX = someObject
by hand throughout the code.
require.context()
. This came in handy for an icon catalog I was working on in Storybook.js:
// all-icons.js
let ctx = require.context('svgs', true, /\.svg$/);
module.exports = ctx.keys().forEach(k => ctx(k));
Šime Vidas) The document.activeElement
is not always focused. The Document.hasFocus()
method lets you confirm that it is.
¹ Added Aug 31, 2021 after publishing.