Search
Vital Web Performance
21.9.2020
I hate slow websites. They are annoying to use and frustrating to work on. But what does it mean to be “slow”? It used to be waiting for document load. Then waiting for page ready. But with so many asynchronous patterns in use today, how do we even define what “slow” is? The W3C has […]
The...
How Web 3.0 Creates Value for Users, Not Platforms
18.9.2020
There has been a Cambrian explosion of Web 3.0 apps. Let's make sure this evolution continues for decades to come
Enforcing performance budgets with webpack
18.9.2020
As you probably know, a single monolithic JavaScript bundle — once a best practice — is no longer the way to go for modern web applications. Research has shown that larger bundles increase memory usage and CPU costs, especially on mid-range and low-end mobile devices.
webpack has a lot of features...
Optimizing CSS for faster page loads
18.9.2020
A straightforward post with some perf data from Tomas Pustelnik. It’s a good reminder that CSS is a crucial part of thinking web performance, and for a huge reason:
Any time [the browser] encounters any external resource (CSS, JS, images, etc.) it will assign it a download priority...
Weaved Webs
17.9.2020
There is a bit of an irony with Jamstack.
The concept is simple: you put pre-rendered, static files on web hosting (a CDN) designed to do that well. That’s it. If you need to do more, anything you do from there is done with client-side JavaScript, which is likely talking to serverless...
Hydra’s ‘Complex Drug Delivery System’ in Russia Overshadows Western Darknet Markets
16.9.2020
On September 14, the blockchain analysis firm Chainalysis reported on the infamous Russian darknet marketplace (DNM) known as Hydra and noted the DNM is Eastern Europe’s “sixth-largest service by volume in the region.” Moreover, the report also reveals that Hydra has created...
Lessons Learned from Sixty Days of Re-Animating Zombies with Hand-Coded CSS
16.9.2020
I’ll be linking to individual Pens as I discuss the lessons I learned, but if you’d like to get a sense of the entire project, check out 60 days of Animation on Undead Institute. I started this project to end on August 1st, 2020, coinciding with the publication of a book I wrote featuring...
Chapter 4: Search
15.9.2020
Previously in web history…
After an influx of rapid browser development following the creation of the web, Mosaic becomes the popular choice. Recognizing the commercial potential of the web, a team at O’Reilly builds GNN, the first commercial website. With something to browse with,...
What is the Value of Browser Diversity?
15.9.2020
In 2018, Rachel Nabors made the point that browser diversity is similar to biological ecosystem diversity. There are literal advantages to more diversity. That article was before the Edge engines were shut, and now the big shakeups at Mozilla have the topic of browser diversity on people’s...
Web 3.0 would enable new possibilities and opportunities
15.9.2020
Web 3.0 will certainly be a step toward a more decentralized, immutable and censorship-resistant version of the web
Filecoin: Understanding the Complex Crypto System Meant to Rival AWS
15.9.2020
Filecoin and its FIL token might be the most complex thing the blockchain industry has ever brought to market. Here's what you need to know
content-visibility: the new CSS property that boosts your rendering performance
14.9.2020
Una Kravets and Vladimir Levin:
[…] you can use another CSS property called content-visibility to apply the needed containment automatically. content-visibility ensures that you get the largest performance gains the browser can provide with minimal effort from you as...
AVIF has landed
8.9.2020
Everybody is talking about AVIF today because of Jake’s blog post. As the say, I was today years old when I learned AVIF was a thing. But thanks to web technology being ahead of the game for once, we can already take advantage of it.
This will be easier if you’ve abstracted your...
All the Ways to Make a Web Component
7.9.2020
This is a neat page that compares a ton of different libraries with web components. One of the things I learned after posting “A Bit on Web Components Libraries” is that the web platform APIs were designed for libraries to be built around them. Interesting, right?
This page makes...
Supercharging Number Inputs
4.9.2020
Speaking of number scrubbing (i.e. adding mouse UX to number inputs), you can also add better keyboard commands to number inputs. Kilian Valkhof explains how he added up and down arrows to a number input, as well as modifier keys to change how much the keys increment the value, like Emmet does....
Stroke Text CSS: The Definitive Guide
4.9.2020
Whenever I think of stroked text on the web I think: nope.
There is -webkit-text-stroke in CSS for it, but it places that stroke in the middle of the vector outline of the characters, absolutely ensuring that the character doesn’t look right. Just look at this in Chrome or Safari. Gross....
Using @property for CSS Custom Properties
3.9.2020
Una Kravetz digs into how Chrome now allows you to declare CSS custom properties directly from CSS with more information than just a string.
So rather than something like this:
html {
--stop: 50%;
}
…can be declared with more details like this:
@property --stop {
syntax:...
How to Make a Media Query-less Card Component
1.9.2020
Fun fact: it’s possible to create responsive components without any media queries at all. Certainly, if we had container queries, those would be very useful for responsive design at the component level. But we don’t. Still, with or without container queries, we can do things to make our components...
Come to Web Unleashed!
1.9.2020
(This is a sponsored post.)
Web Unleashed is a fun conference. I’ve been a number of times. I’m sure you won’t be surprised that it’s online this year, like most events.
And, hey, it’s coming up and will take place over three days, October 5-7, 2020. I’d really...
Ground Rules for Web Animations
31.8.2020
Animations can make a site stand out. Or, they can just as easily kill the experience. When working with web animations, there are a few things that could go wrong like adding animations that serve no purpose, setting durations that are  too long or too quick, or not using right type...