A roundup of the current state of custom form elements, useful APIs, and a checklist for ensuring your forms actually work.
What we're thinking
Over more than two decades, technology has changed, our team has changed, and our minds have changed, over and over again. But we're always thinking about better ways to present information, streamline workflows, and support every user. Welcome to our blog.
(Looking for our open-source code? We've archived it.)
Naming elements and components is essential for an accessibile and usable experience. And it's harder than it looks.
First in a series of posts on coding practices that are essential for delivering an accessible experience.
HTML video currently offers no means for specifying multiple video sizes. It should.
In this post, Scott talks about using the web component lifecycle to delegate simple JS additions.
Performance metrics are improving, but few tell us when a page is ready for *all* users.
Scott will be releasing his workshop as an online course.
An annotated transcript of Scott's 2019 Conference talk.
Ideals raise the bar. Acronyms are handy. Both are here.
Faster networks should fix our performance problems. Instead, they're making them worse.
Scrollbars are design-heavy. How do we customize them in the lightest way possible?
CSS will block rendering while loading. Here's how not to do that, simply.
We're shifting the performance burden from the network to the device.
We've long desired an easy means of including markup into the page. Perhaps this will do it.
We now configure our sites to vary based on custom headers instead of cookies. Yay!
Join Scott in Toronto for a front-end web performance workshop.
Get up to speed and productive with Eleventy, a flexible static site generator.
We're living in the future: you can now directly style a select element with no need for JS or wrapper elements.
Client-side A/B testing is dog slow. We wanted to explore using service workers to transform markup on the edge.
Client-side tools for A/B testing and personalization can take a huge toll on performance, introducing huge delays.