If you’ve created a color palette for a website or app, you’ve probably encountered a few of the challenges in creating color palettes for user interfaces. One of the most common challenges is meeting accessibility criteria such as a minimum contrast ratios defined by the Web Content Accessibility Guidelines (WCAG).
A project to make it easier for designers and engineers to leverage color science to create custom interpolations for a value scale, and to make it easier for designers and engineers to conform to WCAG minimum contrast standards by using contrast ratio as the starting point, rather than a post-color-selection auditing process.
We're headed into a dangerous time, when our society is run on digital platforms, and UX isn't leading the way to ensure that those tools are usable. While the best-trained (and highest-paid) UX professionals are put to work optimizing the exploitation and deception of online users, New Yorkers continue to die from Covid, because there's no easy way to schedule a vaccine visit.
Les numéros alloués aux œuvres audiovisuelles sont ceux ayant les racines suivantes :
Racines (format national) 0ZABPQ = 01 99 00, 02 61 91, 03 53 01, 04 65 71, 05 36 49, 06 39 98
Therefore I use either of the following two approaches if I need a special value:
- I use
null
as a “switched off” value. (As an aside, this approach is relatively well supported by TypeScript.)- I avoid both
undefined
andnull
via one of the techniques described above. This has the upside of being cleaner and the downside of involving more work.
A website search is often the first dynamic part you'll be adding to your new Jamstack project. Let’s see which solutions are available in the Jamstack world.
An impressive article to explain how not to cause Layout Shifts and penalize your CLS.
In this article, we’ll take a close look at some of the changes we made on this very site — running on JAMStack with React — to optimize the web performance and improve the Core Web Vitals metrics. With some of the mistakes we’ve made, and some of the unexpected changes that helped boost all the metrics across the board.
About the weight of CLS in Lighthouse
Looking back on four decades in the software industry, I’m struck by how much has changed. I started my career with punch cards and I am ending in the era of cloud computing. Despite all this change, many principles that have helped me throughout my career haven’t changed and continue to be relevant. As I step away from the keyboard, I want to share six ideas I’ve learned from my career as a software engineer.
After a lot and fun work for over a year, varied from things that were low-effort to a few that were advanced, we’ve done it.
We’ve made Skroutz.gr faster.
Performance is a feature at Skroutz. But it is also a competitive advantage. Optimized experiences lead to higher user engagement, conversions, and ROI.
Let’s stop here and recap:
- Individual experiences are just data points along a distribution. What feels fast depends on the conditions under which it was experienced. Everyone’s conditions are different.
- Lab tests may not be configured to be representative of the most common experiences on the curve, or any experience on the curve for that matter.
- User-centric metrics require extra care to ensure that behaviors are emulated faithfully in the lab.
[…] An even better solution would be to build stronger data bridges between field and lab tools, so that the lab tool itself can make informed recommendations about the most realistic user profiles to simulate.
Embedding the resource directly removes the latency that’s incurred when the browser makes a separate request for the resource and so for critical resources it can make pages render faster.
But data URIs also come with quite a few trade offs too.
In this article, we will explore some of these native solutions that are available to the majority of your users. We will see some examples but we won’t go into all the subtleties, because other resources do so very well. Rather, the goal is to inform you of the existence of these techniques.
- The science behind Web Vitals was kind of weak, referencing many studies that Gilles Dubuc showed us were based more on feelings than science.
- You could only get those metrics from Chromium. Are they really Google Web Vitals if you only can get them from one of the browser engines? I think if we’re introducing something that’s supposed to be vital for all users, it should exist in all browsers.
- Almost all performance tools implemented the metrics (for Chrome) immediately. Google said jump, and web performance tool vendors said: ‘How high?’. A little more caution would have been good. I also felt the pressure of adding those metrics to the tools I build. Google’s monopoly on web performance metrics is not good for the web, I think.
I have worked on many sites and projects over the years, and I have found the single best way to ensure that quality is a core area of focus, is to make that work visible and easily understood. We must do more than just make things faster; we must be able to explain what we did and what impact it had.
First-party JavaScript often impacts the interaction readiness of modern pages on the web, but it can often get delayed on the network behind non-critical JS from either first or third-party sources that keep the main thread busy.
tl;dr: Use traffic frequency as cadence and create cohorts. Effects of improved web performance can show better in a well-defined cohort. Regular users can have trained behavior that resists change.
If there’s connection one thing I’d like readers to take away from this post it’s that
font-display: swap
is a very good option for users with a fast internet. But its infinite swap period could be frustrating for users on very slow and unstable connections. If you have users viewing your site under these conditions (I’m pretty certain you will at some point in time), then it may be worth consideringfont-display: fallback
or evenfont-display: optional
. Both have a short swap period (or no swap period), meaning once the fallback font is rendered and the 3 second timeout is exceeded, the font won’t change for the rest of the page lifecycle.