Josh Tumath's Avatar

Josh Tumath

@joshtumath.uk

Dev in the BBC Design System team. CSSWG member. Here for CSS nerdery, design systems and Intrinsic Web Design. Also Christian and 日本語学習者. he/him

1,212
Followers
156
Following
734
Posts
07.07.2023
Joined
Posts Following

Latest posts by Josh Tumath @joshtumath.uk

Preview
Terrazzo: tools for token management and code generation Design systems for everyone. MIT Licensed tools for developing and managing design systems. Use the W3C design token format to build multi-platform apps quickly and easily.

I've been learning about terrazzo.app, today, the design tokens tool.

@pow.rs and Nick Tassone, your documentation is an absolute delight to read!! It's just telling you bluntly how to use all of the features; it puts them all in context.

And I love your implementation of DTCG Resolvers!

06.03.2026 17:21 👍 3 🔁 0 💬 0 📌 0
Black and white photo of me smiling at a pub that came out of a Polaroid. The paper is almost rolled up.

Black and white photo of me smiling at a pub that came out of a Polaroid. The paper is almost rolled up.

I thought it was the paparazzi at first but got a nice photo taken by @matuzo.at at #SotB26!

02.03.2026 12:34 👍 10 🔁 0 💬 0 📌 0
Preview
Bruce Lawson's personal site » On Apple’s pinky promises to CMA

Here's the consultation i mentioned at #sotb26 I'm not kidding when I told you that the regularlors love to hear from developers rather than lobbyists. Doesn't need to be structured relost. They simply way to your view. https://brucelawson.co.uk/2026/on-apples-pinky-promises-to-cma/

28.02.2026 21:44 👍 8 🔁 9 💬 0 📌 1

Now that I can look more closely... yeah that actually is a good photo haha. The photo is yours! Do whatever you want with it. 😃

01.03.2026 10:23 👍 2 🔁 0 💬 0 📌 0

Now come every year!

01.03.2026 10:19 👍 0 🔁 0 💬 1 📌 0
Post image Post image

No no no it's all over! The Temporal API has dictated that it is now 5pm and we must head to the pub.

So grateful for this wonderful conference. Where would I be without this conference. I'm so grateful for it. Thank you Dave and the team! #SotB26

28.02.2026 17:27 👍 5 🔁 0 💬 0 📌 0
Post image

We have just voted what enemy to add to the game. We've added AI. 😂

Every time a person uses Claude, the sky now rains tech debt which you have to avoid. 😂 #SotB26

28.02.2026 16:45 👍 2 🔁 0 💬 0 📌 0
Post image Post image Post image

To create an animation of a character idling and running, we can make a sprite sheet and use the step function to jump between each image as part of an animation. #SotB26

28.02.2026 16:39 👍 0 🔁 0 💬 1 📌 0
Post image

It uses the GSAP ticker to give a heartbeat, as it were, to the animations. #SotB26

28.02.2026 16:34 👍 1 🔁 0 💬 1 📌 0
Post image

Cassie sits down to make a game and gives the canvas element a go. There's a rectangular person who can move around. They can jump and fall off the world and die and respawn! #SotB26

28.02.2026 16:30 👍 1 🔁 0 💬 1 📌 0
Post image Post image

Cassie is wondering what to talk about. Jeremy Keith would always say a talk should have a narrative.

She was procrastinating playing Dave the Driver and realised that games are just animations with a narrative structure! 😂

So this is going to be a very interactive talk. #SotB26

28.02.2026 16:28 👍 0 🔁 0 💬 1 📌 0
Post image

Finally we have @cassiecodes.bsky.social who will give us some animation delight with GSAP.

We go on the Way back Machine and laugh at an old guest article on their website saying 'HTML5 is certainly not a flash killer'. 😂 #SotB26

28.02.2026 16:25 👍 0 🔁 0 💬 1 📌 0
Post image Post image

All of the other performance optimisation techniques out there they didn't really need because everything fit in 128 KB!

Performance helps with accessibility, and low socioeconomic backgrounds with cheap and slow devices.

They made something that worked better for everyone. #SotB26

28.02.2026 15:57 👍 1 🔁 1 💬 0 📌 0

Ah ha! Thank you for clarifying!

28.02.2026 15:52 👍 3 🔁 0 💬 0 📌 0
Post image Post image

So they got their images, CSS and JS as small as they could.

Could they minify their HTML? They only used line break characters, removed comments, removed whitespace.

But IE didn't like the code all being on one line so they put a new line in first attribute of each element. #SotB26

28.02.2026 15:50 👍 0 🔁 2 💬 1 📌 1
Post image

They'd also embraced SVGs and used SVGO to compress them. But they'd also mess with the SVGs themselves to see what they could remove without changing how it looked. #SotB26

28.02.2026 15:45 👍 0 🔁 1 💬 1 📌 0
Post image Post image

They realised most of the page size would come from the images, so they'd use TinyPNG. And for JPEG images, they'd double the size of the image and then massively reduce the quality and it's not noticeable. #SotB26

28.02.2026 15:42 👍 0 🔁 1 💬 1 📌 0
Post image

To load a new page on browsers that could run client side JS, they just requested the content of the main area of the page but not the header and footer. Opera Mini just did a normal page load. #SotB26

28.02.2026 15:39 👍 0 🔁 1 💬 1 📌 0
Post image Post image

That kind of page size budget meant they couldn't use any framework. All of them would blow the budget with just the library that powers it.

They made their own library called Whizz. It just did what they needed. #SotB26

28.02.2026 15:37 👍 0 🔁 1 💬 1 📌 0
Post image

And all pages with a cold cache needed to not be over 128KB because this was what you could load reasonably quickly on a 2G GPRS connection.

So no web fonts, etc. #SotB26

28.02.2026 15:33 👍 0 🔁 1 💬 1 📌 0
Post image

They had to use progressive enhancement because Opera Mini did not run client side JS. #SotB26

28.02.2026 15:32 👍 0 🔁 1 💬 1 📌 0
Post image Post image

40% of their users were on these feature phone devices. They used Opera Mini.

So they had rules. They had to support responsive design. Normally you're thinking about 320px wide screens, not 240px. And they also couldn't make desktop second class. #SotB26

28.02.2026 15:30 👍 0 🔁 1 💬 1 📌 0
Post image Post image Post image

Next we have @mikehall314.bsky.social.

He had to build for a client (who he can't name) who were based in a country with not good infrastructure and they also requested a website that will work on feature phones. No WiFi support and often no 3G support. #SotB26

28.02.2026 15:28 👍 2 🔁 2 💬 1 📌 0

So that's it! What incredible work. The spec will go into stage 4 on 10th March!! 🎉 #SotB26

28.02.2026 15:25 👍 2 🔁 0 💬 0 📌 0
Post image Post image

This was the first Rust library implemented in V8. They finally passed all of the Temporal tests this year in January! So they have full support.

So it's now out on Firebox and Chromium and it's coming to Safari and Node 26. #SotB26

28.02.2026 15:22 👍 2 🔁 1 💬 1 📌 0
Post image

Someone called Amber had been going along as the standard was worked on to implement it in Firefox. And Boa partnered up with the V8 team in chromium to work together on their implementations. Boa implements it in Rust which they shared with V8. #SotB26

28.02.2026 15:18 👍 3 🔁 0 💬 3 📌 0
Post image

This was a huge implementation for the browser JavaScript engines. It was the biggest addition to JavaScript since ECMAScript 6.

It's got over 4500. Far more than any other JavaScript feature. It is huge. #SotB26

28.02.2026 15:15 👍 2 🔁 0 💬 1 📌 0
Post image Post image Post image

The date times all map back to an ISO 8601 formatted date. It can be broken down into all of the Temporal objects. However, they can't represent timezones so the team went to standardise timezones on ISO dates with the IETF and they succeeded!! (This got applause) #SotB26

28.02.2026 15:12 👍 2 🔁 0 💬 1 📌 0
Post image Post image

Then there's Temporal.Duration for just durations of time.

Why are they called PlainDates, etc? They didn't want people to assume that's the class they should always use. #SotB26

28.02.2026 15:07 👍 2 🔁 0 💬 1 📌 0
Post image Post image

There are also ways of showing partial dates or times. It's very easy to increment hours or minutes or days or whatever to a date. #SotB26

28.02.2026 15:04 👍 2 🔁 0 💬 1 📌 0