Bookmarks

Val Town

Really interesting experiment in lambda-like functions. "Val"s are written in JS, and can be called as a JSON API. Each val (written in JS) can "call" other vals (authored by you or others) via a global naming system. You can then "stack up" small bits of functionality across many vals.

May 2023
Boxy SVG Editor

Neat-looking web app for editing SVG files in a visual editor (similar to Illustrator etc). Freemium model, seems like saving files to disk is included in the free plan.

May 2023
Introducing Signals

Preact article introducing an alternative state mechanism to Hooks. As I understand it they wrap a value, providing a setter that can trigger re-renders. The main argument in their favour seems to be that they don't need memoisation as the "wrapper" itself doesn't change - only the value contained within. Preact takes this further by building Signal optimisations directly into the update cycle, allowing a Signal change to bypass VDOM diffing and just update the DOM directly.

May 2023
ThumbHash

Useful little library from the author of ESBuild that generates a fast-loading but blurry & small image from an existing image. These can then be used as placeholder image to get perceived fast page loads. It claims to produce more detailed images for the same size, and more accurate colours.

May 2023
benbrown/shuttlecraft: a single user activitypub server - join the federation!

Github project to run a simplified ActivityPub/Mastodon server for single user, as opposed to the full-blown Mastodon server. Written in Node and designed to be run via services like Glitch.

May 2023
Keyboard shortcuts need modifier keys

Article pointing out that WCAG specifies that all keyboard shortcuts must be triggered with a modifier key (Cmd/Ctrl) to be accessible. There are 3 exceptions: if you can turn off the functionality; remap the keys or if the shortcut is only active in a limited case (e.g. while a select is open).

May 2023
The navigation timing API includes the type of the current navigation

Interesting little tip, showing that you can detect whether a page was loaded due to clicking a link, reloading, back/forward or pre-rendered.

May 2023
OKRs are hard

A breakdown of some pitfalls with OKRs, specifically around key results. Balanced by positive points about why OKRs are useful, namely that they force you to sit down and think about your strategy.

May 2023
Dark Mode via a Smallish Script in the Head, Avoiding FART

Great solution to the dark mode toggle problem.

May 2023
Bringing Together Keyboard-only and Click-based UI Tests with keyboard-testing-library

Interesting concept that builds on the ideas of testing-library to encourage tests for mouse-based _and_ keyboard-based interactions on the same controls (e.g. activating the submit button in a form).

May 2023
Unicode Text Analyzer | FontSpace

A fun little tool for breaking down unicode characters into their underlying codepoints. Great to showing how emojis are structured.

May 2023
Accessibility (ARIA) Notification API

Proposed spec for an API for notifying assistive technology (e.g. screen readers), which seems to be much improved over using aria-live regions.

May 2023
Chrome Developers: Monitor your web application with the Reporting API

Fairly broad intro the Reporting API that is built into browsers, which is mostly focused on Content-Security-Policy violations, but has a bit of detail on crash reporting that I wasn't aware was possible. The crash reporting is probably worth investigating, as these can be difficult to debug. Just not very clear what data is sent in a crash report, nor how to reproduce a crash for testing purposes.

May 2023
Ahmad Shadeed: CSS Text balancing with text-wrap:balance

Article explaining the new text-wrap: balance CSS property

May 2023
Rach Smith: Recreating the title effect from creativesouth.com

Nice visual "waves" effect using some CSS transforms and linear interpolation in JS.

May 2023
Suspense library for React

A really interesting library that provides an API to simplify data loading and caching, for use with React Suspense.

May 2023
Pixel Perfect Mac App

A macOS app that "fixes" blurry or small text in other apps that have been converted from iOS. I did try this on Timery, which has small font and it didn't seem to work there, but this may be because Timery has made some Mac-specific changes.

May 2023
HTML Standard

TIL about implicit submissions on HTML forms: Quite a few surprising behaviours fall out of this…

August 2022
SVGcode

Tool that converts raster images to SVG

May 2022