Together with  Userfront
🚀 Frontend Focus

#​642 — May 8, 2024 | Read on the web

▶  Unleash the Power of Scroll-Driven Animations — This new 10-part video series should equip you with what you need to know about scroll-driven animations using CSS or JavaScript. The course covers the core concepts (such as scroll(), view(), etc), and shares several practical examples. All of the episodes are available to watch now.

Bramus Van Damme

Transformational Auth & Identity | Userfront — "Compared to our previous experiences in the security/auth space, Userfront is an order of magnitude simpler to use."

Userfront sponsor

Why Don’t We Talk About Minifying CSS Anymore? — Salma notes that minification of CSS is now generally something that modern frontend tooling takes care of for us, so it’s not really a practice that’s front of mind anymore — however, it’s still important for us to understand how our stylesheets are being delivered to the browser and what impact they are having on performance.

Salma Alam-Naylor

▶  23 CSS Features You Should Know (And Be Using) by Now — Adam Argyle joins Kevin to discuss some ‘under the radar’ CSS features in a rapid fire format. Includes things like :focus-visible, object-fit, overscroll-behavior, and more. A good refresher.

Kevin Powell

⚡️ Quick Links

📙 Tutorials, Articles & Opinion

Using the Popover API for HTML Tooltips — Chris continues his exploration of the Popover API, this time exploring a nice tooltip use-case.

Chris Coyier

Misconceptions About CSS Specificity — Clarification on how CSS specificity is calculated and what does and doesn’t affect the specificity of a selector in CSS.

Bramus Van Damme

Should We Rely on Browser Detection? — The User-Agent string is something that web developers should really handle with care, as browser detection is often guesswork — but if you’re building for the web platform (and not a single browser) this won’t be much of an issue.

Niels Leenheer

Handling Images & Videos in Angular? This Practical Guide Is for You — Implement drag-and-drop uploads, progress bar, image previews & server-side file validations. Read on to learn more.

ImageKit sponsor

Faster Websites with the Picture Element — An overview of the various wins to be had from using the <picture> element.

Frank Stallone

Combining CSS :has() and HTML <select> For Greater Conditional Styling — An interesting technique here for what Amit calls the “great conditional operator”.

Amit Sheen

Making Room for Long List Markers with subgrid — By default lists (ul and ol) give a fixed 40px of padding. This is fine for most use cases, but when lists get long an issue arises. Noah shares a solution.

Noah Liebman

A Brief Note on Highlighted Text — Specifically on how to give any styled highlighted text sufficient contrast.

Adrian Roselli

How to Monitor Third-Party Resources that Impact UX with Playwright
Stefan Judis

▶  Cookie Permissions: Six Design Guidelines
Samhita Tankala

What is Vite (and Why is it So Popular)?
Eric Simons

🔧 Code, Tools & Resources

Emoji Mart 5.6: A Customizable Emoji Picker for the Web — This is a popular and recently updated HTML component, complete with a solid search function and lots of options for further customization. You can test it out here. 💌🚀🧡

Missive

Icônes: An Icon Explorer with Instant Search for 100+ Icon Sets — The app is powered by Iconify and built in Vue. You can select any icon set, then search by keyword within the chosen set.

Anthony Fu

tinyworldmap: A World Map Solution for Offline-First & Low-Bandwidth Web Apps — Designed to be used with Leaflet and, as implied, the demo works smoothly, having been thoroughly tested on low-end, decade-old phones, with no discernible lag.

tinyworldmap

Can I Email..? Support Tables for HTML and CSS in Emails — It’s like Can I Use but for email clients and their varying levels of HTML and CSS support.

HTeuMeuLeu

Palette Generator: An Online Tool to Create Color Palettes using OKLCH
Fran Perez

Saas-Boilerplate: A Fullstack Starter for Building Projects with Next.js, Tailwind, TypeScript, and More
Remi Wg

Ipx.