Home/2025
Archive

Year 2025

1,335 articles published in 2025.

Frontend — Creating The “Moving Highlight” Navigation Bar With JavaScript And CSS — Smashing Magazine

Creating The “Moving Highlight” Navigation Bar With JavaScript And CSS — Smashing Magazine

In this tutorial, Blake Lundquist walks us through two methods of creating the “moving-highlight” navigation pattern using only plain JavaScript and CSS. The first technique uses the `getBoundingClientRect` method to explicitly animate the border between navigation bar items when they are clicked. The second approach achieves the same functionality using the new View Transition API.

BLBlake LundquistBlake Lundquist·June 11, 2025Frontend
Frontend — Partial Keyframes

Partial Keyframes

CSS Keyframe animations are so much more powerful than most developers realize. In this tutorial, I’ll show you something that completely blew my mind, a technique that makes our keyframe animations so much more reusable and dynamic! 🤯

JWJosh W. Comeau·June 10, 2025Frontend
Frontend — Creating an Auto-Closing Notification With an HTML Popover

Creating an Auto-Closing Notification With an HTML Popover

The HTML popover attribute transforms elements into top-layer elements that can be opened and closed with a button or JavaScript. Popovers can be dismissed a number of ways, but there is no option to auto-close them. Preethi has a technique you can use.

PPreethiPreethi·June 9, 2025Frontend
Frontend — Decoding The SVG path Element: Line Commands — Smashing Magazine

Decoding The SVG path Element: Line Commands — Smashing Magazine

SVG is easy — until you meet `path`. However, it’s not as confusing as it initially looks. In this first installment of a pair of articles, Myriam Frisano aims to teach you the basics of `` and its sometimes mystifying commands. With simple examples and visualizations, she’ll help you understand the easy syntax and underlying rules of SVG’s most powerful element so that by the end, you’re fully ab

MFMyriam FrisanoMyriam Frisano·June 9, 2025Frontend
Frontend — Exploring the CSS contrast-color() Function… a Second Time

Exploring the CSS contrast-color() Function… a Second Time

The contrast-color() function doesn’t check color contrast, but rather it outright resolves to either black or white (whichever one contrasts the most with your chosen color). Safari Technology Preview recently implemented it and we explore its possible uses in this article.

DSDaniel SchwarzDaniel Schwarz·June 5, 2025Frontend
Frontend — The State of CSS 2025 Survey is out!

The State of CSS 2025 Survey is out!

The State of CSS 2025 Survey dropped a few days ago, and besides anticipating the results, it's exciting to see a lot of the new things shipped to CSS reflected in the questions.

JDJuan Diego RodríguezJuan Diego Rodríguez·June 5, 2025Frontend
Performance — Introducing facet: Reflection for Rust

Introducing facet: Reflection for Rust

I have long been at war against Rust compile times. Part of the solution for me was to buy my way into Apple Silicon dreamland, where builds are, like… faster. I remember every time I SSH into an x86_64 server, even the nice 64-core ones. And another part was, of course, to get dirty with Rust itself. I wrote Why is my Rust build so slow? , which goes in-depth into rust build performance, down to

AWAmos WengerAmos Wenger·June 5, 2025Performance
Design & UX — Collaboration: The Most Underrated UX Skill No One Talks About — Smashing Magazine

Collaboration: The Most Underrated UX Skill No One Talks About — Smashing Magazine

We often spotlight wireframes, research, or tools like Figma, but none of that moves the needle if we can’t collaborate well. Great UX doesn’t happen in isolation. It takes conversations with engineers, alignment with product, sales, and other stakeholders, and the ability to listen, adapt, and co-create. That’s where design becomes a team sport, and when your ability to capture the outcomes multi

CWCarrie WebsterCarrie Webster·June 5, 2025Design & UX
AI & ML — The no-nonsense approach to AI agent development

The no-nonsense approach to AI agent development

Learn how to build reliable, domain-specific AI agents by simulating tasks manually, structuring logic with code, and optimizing with real-world feedback. A clear, hands-on approach to practical automation.

VVercel·June 4, 2025AI & ML
Engineering — Quick Hit #49

Quick Hit #49

Chrome 137 introduces the newly-specced if() function. Una Kravets posted a nice video overview and Temani Afif writes about it as well.

GGGeoff GrahamGeoff Graham·June 3, 2025Engineering
Frontend — Getting Creative With HTML Dialog

Getting Creative With HTML Dialog

So, how can you take dialogue box design beyond the generic look of frameworks and templates? How can you style them to reflect a brand’s visual identity and help to tell its stories? Here’s how I do it in CSS using ::backdrop, backdrop-filter, and animations.

ACAndy ClarkeAndy Clarke·June 3, 2025Frontend
Performance — Why Designers Get Stuck In The Details And How To Stop — Smashing Magazine

Why Designers Get Stuck In The Details And How To Stop — Smashing Magazine

Designers love to craft, but polishing pixels before the problem is solved is a time-sink. This article pinpoints the five traps that lure us into premature detail — being afraid to show rough work, fixing symptoms instead of causes, solving the wrong problem, drowning in unactionable feedback, and plain fatigue — then hands you a four-step rescue plan to refocus on goals, ship faster, and keep yo

NSNikita SamutinNikita Samutin·June 3, 2025Performance
Networking — Designing For Neurodiversity — Smashing Magazine

Designing For Neurodiversity — Smashing Magazine

Designing for neurodiversity means recognizing that people aren’t edge cases but individuals with varied ways of thinking and navigating the web. So, how can we create more inclusive experiences that work better for everyone?

VFVitaly FriedmanVitaly Friedman·June 2, 2025Networking
Languages — The virtue of unsynn

The virtue of unsynn

Addressing the rumors There have been rumors going around, in the Reddit thread for facet , my take on reflection in Rust, which happened a bit too early, but here we are, cat’s out of the bag, let’s talk about it! Rumors that I, podcaster/youtuber fasterthanlime, want to kill serde , serialization / deserialization framework loved by many and which contributed greatly to Rust’s success, and I jus

AWAmos WengerAmos Wenger·May 29, 2025Languages
Performance — Resilient Import Maps - Better Theme Development and Beyond (2025) - Shopify

Resilient Import Maps - Better Theme Development and Beyond (2025) - Shopify

Import maps are great for both performance and developer experience, but their original limitations made them hard to use, especially at Shopify’s scale. We stepped up and pushed changes across the HTML spec, Chromium and WebKit to fix these issues at the web platform level. Now, developers can interleave JavaScript modules and multiple import maps on their HTML pages without worrying about correc

SEShopify Engineering·May 28, 2025Performance
Architecture — Reliably Detecting Third-Party Cookie Blocking In 2025 — Smashing Magazine

Reliably Detecting Third-Party Cookie Blocking In 2025 — Smashing Magazine

The web is mired in a struggle to eliminate third-party cookies, with the World Wide Web Consortium Technical Architecture Group leading the charge. But there are obstacles preventing this from happening, and, as a result, many essential web features continue to rely on cookies to function properly. That’s why detecting third-party cookie blocking isn’t just good technical hygiene but a frontline

MPMikhail ProsmitskiyMikhail Prosmitskiy·May 28, 2025Architecture
Engineering — Quick Hit #48

Quick Hit #48

Firefox 139 includes an update where content inside a <details> element is included in an in-page search. Previously, that content was ignored when the

GGGeoff GrahamGeoff Graham·May 27, 2025Engineering
Security — Bypassing MTE with CVE-2025-0072

Bypassing MTE with CVE-2025-0072

In this post, I’ll look at CVE-2025-0072, a vulnerability in the Arm Mali GPU, and show how it can be exploited to gain kernel code execution even when Memory Tagging Extension (MTE) is enabled.

MYMan Yue MoMan Yue Mo·May 23, 2025Security