Accessibility
NVDA Keyboard Shortcuts for Different User Needs
Master NVDA keyboard shortcuts for web developers. Navigate content, test forms, and build more accessible websites with this essential guide.
CSS
Modern Font Stacks
System font stack CSS organized by typeface classification for every modern OS. The fastest fonts available. No downloading, no layout shifts, no flashes — just instant renders.
Preventing jank on focused overflow-causing elements
Use overflow: clip
instead of overflow: hidden
when you want to completely prevent scroll-based jank from focus events in transitioning containers.
Next-Yak | Zero-runtime CSS-in-JS powered by Rust
next-yak is a CSS-in-JS solution tailored for Next.js that seamlessly combines the expressive power of styled-components syntax with efficient build-time extraction of CSS using Next.js's built-in CSS configuration.
Write styled-components syntax, get build-time CSS extraction and full RSC compatibility.
css-extras - Useful CSS custom functions using the new @function rule
A comprehensive collection of CSS custom functions that leverage the new native CSS @function
rule.
No build step required. Feel free to copy-paste what you need.
This package includes 36 CSS custom functions organized into these categories:
- Math & Number -
--negate()
,--abs()
,--lerp()
,--map-range()
,--ratio()
- Color -
--opacity()
,--tint()
,--shade()
,--saturate()
,--lighten()
,--rotate-hue()
,--complement()
,--invert()
,--black()
,--white()
- Typography -
--fluid-type()
,--modular-scale()
,--line-height-length()
,--line-height-ratio()
,--line-height-unitless()
- Layout -
--sidebar-layout()
,--conditional-radius()
,--responsive-value()
,--aspect-height()
- Spacing -
--spacing()
,--container-padding()
- Animation -
--ease-out()
,--elastic-ease()
- Grid -
--auto-grid()
,--grid-span()
- Filter -
--smooth-shadow()
,--glow()
- Theme -
--light-dark()
,--theme-color()
- Utility -
--px-to-rem()
,--rem-to-px()
Prevent clipping issues (and more) in View Transitions by using Nested View Transition Groups
A new View Transitions-related feature we shipped in Chrome 140 is the ability to nest ::view-transition-group()
pseudos. This is useful for retaining visual effects such as clipping, move elements as part of a group, etc.
Dynamic Tooltip Position with Anchor Positioning
With anchor positioning, we can anchor an element to another and also ensure it remains visible on the screen regardless of the anchor's position. Now, imagine the element you want to anchor is a tooltip. What about its tail? We can also adjust its position to always point to the element.
CSS has 42 units
I recently came upon the CSS unit dvh
because I needed its functionality for a website project I was working on. I never noticed that this unit existed, so I took a look at what else I have been missing.
When I started with HTML/CSS, we had 9 units. Today, apparently it has grown to 42.
Size Matters - Fluid Type Scale Generator | CSS Clamp Calculator
Generate responsive type scales with CSS clamp()
values. Create fluid typography that scales beautifully across all devices.
A pragmatic guide to modern CSS colours
Whether you've got a firm grasp on modern CSS colour capabilities, or you're thinking 'I struggle to understand why I should use modern CSS colours at all', then the first part of this article series, by Kevin Powell, is for you.
Ambient Animations In Web Design: Principles And Implementation (Part 1)
Creating motion can be tricky. Too much and it’s distracting. Too little and a design feels flat. Ambient animations are the middle ground — subtle, slow-moving details that add atmosphere without stealing the show. In this article, web design pioneer Andy Clarke introduces the concept of ambient animations and explains how to implement them.
Getting Creative With shape-outside
There are so many creative opportunities for using shape-outside that I’m surprised I see it used so rarely. So, how can you use it to add personality to a design? Here’s how I do it.
A beginner-friendly guide to view transitions in CSS
Imagine if your site could animate smoothly between pages – taking you from say index.html
to about.html
– without a jarring reload. Well, this is possible now, thanks to the support for View Transition API in modern browsers.
View transitions were once exclusive to single-page applications (SPAs). In this post, we'll explore how view transitions bring smooth, animated navigation to multi-page applications (MPAs).
HTML
How to Optimize Viewport for Mobile for Faster Interactions
Optimize viewport for mobile for faster interactions is a new Lighthouse performance insight that helps you detect viewports that are not optimized for mobile.
HTML’s Best Kept Secret: The <output> Tag
Every developer knows <input>
. It’s the workhorse of the web.
But <output>
? Most have never touched it. Some don’t even know it exists.
That’s a shame, because it solves something we’ve been cobbling together with <div>
s and ARIA for years: dynamic results that are announced to screen readers by default.
It’s been in the spec for years. Yet it’s hiding in plain sight.
JavaScript
Angular support for generating apps in Google AI Studio is now available
This was a collaborative effort between the Angular team and AI Studio team with the goal of bringing the power of Gemini and AI tooling to the Angular community. Now, AI Studio is another tool where you can vibe code new apps, export the code to GitHub, share your creations with others and even deploy using Cloud Run.
You may be looking for a useSyncExternalStore
When you see a useEffect
that updates a useState
and returns a value, you might be looking for a useSyncExternalStore
.
spacetime - A lightweight javascript timezone library
- Calculate time in remote timezones
- Support daylight savings, leap years, and hemispheres
- Moment-like API (but immutable)
- Orient time by quarter, season, month, week..
- Zero Dependencies - (no Intl API)
- Weighs about 40kb.
- Has a cool plugin thing.
- Frequent updates for approaching DST changes
- Support for upcoming Temporal standards
Fumadocs - Build excellent documentation with less effort
The framework for building documentation websites in any React.js frameworks.
Officially Supported:
- Next.js
- Vite: Tanstack Start, Waku, React Router
@ts-ignore is almost always the worst option
There is rarely a good reason to use // @ts-ignore
. any
and // @ts-expect-error
are almost always better.
How to detect Safari and iOS versions with ease in 2025
Read how to accurately detect Safari and iOS versions using WebKit feature checks, behavioral tests, and selective UA hints to gate features safely and avoid breaking UX.
Abandonware of the web: do you know that there is an HTML tables API?
When people turn data into HTML tables using JavaScript, they either use the DOM methods (createElement()
and the likes), but most of the time just append a huge string and use innerHTML, which always is a security concern. However, did you know that HTML tables also have an old, forgotten API?
UX
Ditch the Vibes, Prove the Value: The UX Guide to Speaking ROI
For too long, the UX industry has focused on vibes such as user delight, happiness, and satisfaction. We’ve spent countless hours defending our work with compelling user quotations and beautiful journey maps, only to have leaders question our budgets and downsize our teams. The hard truth is: in business, emotions don’t pay the bills.
Miscellaneous
Stop Ignoring the Browser: The Biggest Frontend Shift in a Decade
Native browser APIs now provide powerful alternatives for routing, state management, and components. Never mind the frameworks, use the browser.