Advertisement · 728 × 90

Posts by Ryan Townsend

Wroclaw city centre with churches and buildings on the river

Wroclaw city centre with churches and buildings on the river

Pierogi covered in pickles, bacon and herbs

Pierogi covered in pickles, bacon and herbs

An “I love Wroclaw Airport” neon sign

An “I love Wroclaw Airport” neon sign

A boat on the river with beautiful buildings behind

A boat on the river with beautiful buildings behind

I’ve said it a million times and I’ll say it a million more: Poland is so underrated.

Thanks for having me @wrocloverb.com ❤️

1 day ago 6 0 0 0

I'm very excited about this! Have seen some really significant impact in our tests. With the sizes of websites and JS payloads continuing to increase, this is both important and impactful.

2 days ago 26 8 0 0
Preview
a man in a suit and tie stands in a crowd Alt: Tobias Fünke from Arrested Development shouting “There are dozens of us! Dozens!”

DOZENS!

2 days ago 3 0 0 0

I could be wrong but I don't believe so. Even if it does work, if you were to do this for every icon on your page (a common use-case for currentColor), you're potentially inflating the DOM significantly.

4 days ago 1 0 0 0

I'd argue <object> would be a good place for that, like "embed this external SVG as if it was inlined in the document". With <img>, I want an inert image.

4 days ago 1 0 1 0

A million times this.

4 days ago 2 0 1 0

So ready for this! ☕ ☕ ☕

4 days ago 1 0 0 0
Advertisement
A Magic Mouse connected via cable attached to its underneath

A Magic Mouse connected via cable attached to its underneath

"You can connect the Magic Mouse via a USB-to-Lightning cable to a USB switch that toggles between your two Macs."

Yeah... about that, Claude 🙃

5 days ago 2 0 0 0

It's further perpetuated by agencies who have perverse incentives to ship quickly (no budget for bakeoffs) and bill for the afterwork of fixing their shoddy work.

I've found in-house teams who outsource often lack the skill to properly define performance requirements or accurately assess proposals.

1 week ago 6 0 0 0
Preview
CSS or BS? Think you know CSS? Real property or made-up nonsense? 20 rounds. No mercy.

Rather than the same old boring internet pranks, I thought I'd build something more fun this April Fools.

CSS or BS. Can you tell your CSS properties names from BS?

www.keithcirkel.co.uk/css-or-bs

2 weeks ago 221 82 22 27

You guys are making me feel old 👴🏻

2 weeks ago 2 0 1 0
Preview
Squarespace & Web Standards: How We Helped Bring HTML Video & Audio Lazy Loading to Today’s Browsers — Squarespace Engineering Blog At Squarespace, many of our core products are built on web standards, and our engineers are constantly pushing the boundaries of the web’s capabilities. Occasionally, those boundaries reveal a limitat...

New on the Squarespace Engineering Blog! Squarespace & Web Standards: How We Helped Bring HTML Video & Audio Lazy-Loading to Today’s Browsers.

I'm real proud of the teamwork that went into this. Stay tuned for part 2 next week, which will cover dev best practices for using this new HTML standard.

2 weeks ago 42 19 3 3
Video

There's something quite exciting happening with AVIF and progressive rendering.

Some recent patches let you provide custom 'frames' as progressive passes, so you can provide e.g. smaller blurry versions of the full image to use as a progressive pass.

2 weeks ago 257 35 11 3

Even with the bugs this is utterly incredible, bravo 👏

3 weeks ago 5 0 0 0
Post image Post image

p75 and p90 JavaScript bytes on the web have exploded since May, 2025—easily the largest 10 month period based on HTTP Archive data since 2023.

The long-tail is getting worse, very quickly.

Gemini, what happened in May 2025?

3 weeks ago 94 41 6 10
Advertisement

Realised I was talking about behaviour where a <dialog> might be _outside_ the popover element, presumably this works fine?

The behaviour you explained totally makes sense when _inside_ popovers.

3 weeks ago 0 0 1 0

I know that's a pretty edge-case implementation (e.g. the tooltip contains an alternative action to the button you've hovered), but I can't imagine why anyone would want a dialog to open but not visible 🤔

3 weeks ago 0 0 0 0

In that case I'd expect if I open a dialog from a tooltip, that dialog should become visible and the tooltip should hide.

3 weeks ago 0 0 2 0
Preview
a close up of a woman 's face with a triangle and a mathematical formula . Alt: A close up of a confused woman's face with mathematical formulae overlaid

Also bless you and others for working on this.

3 weeks ago 1 0 0 0

At 2:05, if button 3.2 was instead configured to open a <dialog> via a show-modal command, would that have displayed? Or would that also have become invisible due to the popover from button 3 losing hover state?

3 weeks ago 0 0 2 0
The Three Pillars of JavaScript Bloat A brief look at the three main causes of bloat in our JavaScript dependency trees, and how we can start to address them.

new post on my personal blog.

i think these three areas often go unexplained, so hopefully this explains why some of these packages exist. these are fine to exist but the majority of developers shouldn't have to pay the cost for them.

4 weeks ago 150 45 12 2

Buzzing for this one!

4 weeks ago 6 0 0 0

Snap him up

1 month ago 44 11 1 0

I've been waiting for _years_ on this feature.

Thank you Kevin for taking this one on, working with the CSS WG along the way, and congrats on shipping! 👏

(Next up: nudge Firefox and Safari to add this as well …)

1 month ago 33 4 1 0
Advertisement
Preview
Build for the Web, Build on the Web, Build With the Web Every layer of abstraction made in the browser moves you further from the platform, ties you further into framework lock-in, and moves you further away &hellip;

Slides from my #WebDayOut talk, ‘Build for the Web, Build on the Web, Build With the Web’. Incredibly proud of this one.

speakerdeck.com/csswizardry/...

1 month ago 48 4 3 0

Yeah, you can of course inline a <script> which dynamically imports the polyfill too. `supports` would be great for preloads though, like "I want the polyfill for invoker commands to arrive ASAP but only if it's actually needed"

1 month ago 0 0 0 0

Not looked at the slides yet but this is why I'd love to see some kind of `<script supports>` attribute (believe there was an equivalent `when` attribute proposed for stylesheets)... would mean polyfills could naturally uninstall themselves.

1 month ago 1 0 1 0

“WordPress is faster by accident than SPAs are on purpose” @csswizardry.com #webDayOut

1 month ago 20 4 2 0

Ditto, the UK conference scene feels so strong this year and I can't get to them all 😔

1 month ago 1 0 0 0
Code example showing the usage of Temporal.ZoneddateTime

```js
// London DST starts: 2026-03-29 01:00 -> 02:00
const zdt = Temporal.ZonedDateTime.from(
  "2026-03-29T00:30:00+00:00[Europe/London]",
);

console.log(zdt.toString());
// → "2026-03-29T00:30:00+00:00[Europe/London]"

const plus1h = zdt.add({ hours: 1 });

console.log(plus1h.toString());
// "2026-03-29T02:30:00+01:00[Europe/London]" (01:30 doesn't exist)
```

Code example showing the usage of Temporal.ZoneddateTime ```js // London DST starts: 2026-03-29 01:00 -> 02:00 const zdt = Temporal.ZonedDateTime.from( "2026-03-29T00:30:00+00:00[Europe/London]", ); console.log(zdt.toString()); // → "2026-03-29T00:30:00+00:00[Europe/London]" const plus1h = zdt.add({ hours: 1 }); console.log(plus1h.toString()); // "2026-03-29T02:30:00+01:00[Europe/London]" (01:30 doesn't exist) ```

Temporal is now Stage 4 at TC39 🎂🎂🎂

Thanks to all the other champions of JavaScript's new date-time API. It has been a wild ride over many years!

I wrote a blog post explaining how we got here 📜

bloomberg.github.io/js-blog/post...

1 month ago 345 82 20 16