P.01CSS if(): Conditional Logic Without JavaScript
The CSS if() function lets a single property branch on media, container, or feature conditions. What it does, the syntax, and where it still can't replace JS.
Tag
67 articles tagged #Frontend.
P.01The CSS if() function lets a single property branch on media, container, or feature conditions. What it does, the syntax, and where it still can't replace JS.
P.02One CSS property finally styles the browser's own select, options and icons included, with no dropdown library. The syntax, an example, and real support.
P.03column-rule now works in grid and flexbox, and row-rule joins it. Draw dividers between items in two lines of CSS, plus what to do about support.
P.04Chrome 147, Firefox 146, and Safari 26 all ship contrast-color(), which picks black or white text to meet WCAG AA on any background. Syntax and fallback.
P.05Chrome 152 shipped CSS pseudo-classes matching video and audio state, a CPU Performance API for device tiers, and the start of the end for client-side XSLT.
P.06Chrome 152 added :playing, :paused, :buffering, and :muted as real pseudo-classes. A runnable custom player built on them, plus the JS fallback.
P.07The W3C Design Tokens group shipped a stable exchange format backed by Adobe, Figma, and Google. What it standardizes, and how to migrate an existing setup.
P.08React Router v8 shipped as a deliberately boring release. What the version bump requires, what the codemod handles, and the three things that catch teams.
P.09Qwik skips hydration instead of optimizing it. How resumability actually works, what Qwik 2.0 changed, and the honest tradeoffs before you ship on it.
P.10@scope applies CSS only inside part of the DOM, with a lower bound that excludes nested components. No BEM, no Shadow DOM. Syntax and where it falls short.
P.11Chrome and Edge can prerender the next page before a user clicks, with no SPA rewrite. How the Speculation Rules API works, what it wastes, and shipping it.
P.12field-sizing: content reached Baseline in June 2026. The one line of CSS that replaces the scrollHeight hack for auto-growing textareas, and where it stops.
P.13Build browser push yourself with the Push API, Notifications API, and a service worker. No OneSignal, no Firebase. The full setup, VAPID keys included.
P.14Searches for React 20 keep climbing, but the latest release is 19.2.7. What actually shipped in the 19.2 line, including useEffectEvent, and why.
P.15Trusted Types, shape(), and contrast-color() all reached Baseline in early 2026. What each replaces, with working code, and what newly available means.
P.16Temporal hit Stage 4 and ships unflagged in Chrome 144, Firefox 139, and Node 26. Migrating common Date patterns to PlainDate, ZonedDateTime, and Duration.
P.17Vite 8 replaced its dual esbuild and Rollup setup with Rolldown, a Rust bundler, by default. What changed, the real build times, and whether migrating pays.
P.18TC39 is standardizing signals, the reactive pattern already inside Vue, Solid, Angular, and Preact. Years from browsers, but it changes what to build on.
P.19TC39 finalised eight proposals for ES2026. Temporal gets the headlines, but Iterator Helpers, Set methods, Promise.try, and RegExp.escape matter too.
Angular's enterprise comeback is real. Signals, standalone components, and zoneless change detection changed what senior skill looks like. How to hire for it.
Svelte 5 runes changed the reactivity model in ways that matter for hiring. The pool is small but experienced. How to find, screen, and evaluate them.
P.22Next.js 16.3 preview added Instant Navigations, giving server-rendered apps the snappy feel of a client-side SPA. What changed, and when to use it.
All three frameworks matured and all three make different tradeoffs. The four questions we use with clients, and why there's no universally right answer.
P.24TanStack Start hit 1.x stable and is closing on Next.js in downloads. An honest comparison: what each is good at, where each falls short, how to decide.
Frontend developer means different things to different teams. The core screen: HTML semantics, CSS fundamentals, Core Web Vitals, and skill beyond React.
Vue 3 is the default now and the Options API is legacy. What a strong Vue developer looks like, what questions reveal real skill, and the red flags.
TypeScript is the default now, so the market is full of people who write it without understanding it. The questions that tell the two groups apart.
Svelte 5's runes replaced magic variable tracking with explicit reactive primitives. A year into production: what changed, what improved, what surprised.
A step-by-step guide to screening React developers in 2026 — what to test, what seniority looks like, and the red flags that save you from a bad hire.
SolidJS is not React with a different syntax. It compiles to real DOM operations, skips the virtual DOM entirely, and has a different mental model for reactivity. Here's what that means in practice.
Three.js makes WebGL usable. React Three Fiber makes Three.js feel like React. The fastest path to interactive 3D on the web, and how to use it.
TanStack Router brings full TypeScript inference to URL params, search params, and loader data. Here's what that looks like in practice and when it's worth adopting.
Images are the single biggest factor in Largest Contentful Paint for most sites. AVIF has widespread browser support now. Here's the optimization stack worth using and how to implement it.
XState v5 ships a rewritten API that's smaller and easier to read than v4. Here's how state machines help in production UI, and what the migration looks like.
Alpine.js adds dropdowns, modals, tabs and form behaviour straight in your HTML, with no build step and no framework. When that's exactly right.
CSS @layer lets you set explicit priority between your reset, base, components, and utilities. Here's how cascade layers work in production stylesheets.
Redux is overkill for most React apps: Zustand and Jotai cover most state needs with far less boilerplate. Here is when to use each and how they actually work.
Adding multi-language support to a React app is straightforward when you pick the right library for your setup. Here's how react-i18next, next-intl, and Lingui differ, and which fits each project type.
Three headless CMS platforms used by agencies, three different bets on where content management is going. Here's how Sanity, Payload, and Contentful actually compare when you're building for clients.
The Date object has been broken for 30 years. Temporal is its replacement, now shipping in browsers and Node.js. Here's what actually changed and how to use it.
Storybook 8 is faster and easier to configure than it was. More useful is the workflow shift: building in isolation makes components genuinely decoupled.
WebGPU is now in Chrome, Firefox, and Safari: a general-purpose GPU compute layer, not just graphics, for ML inference, image processing, and simulation.
Three different approaches to styling a web application — Tailwind, CSS Modules, and CSS-in-JS libraries — and the team contexts where each one actually makes sense.
Manifest V3 changed how Chrome extensions work. Here's what actually matters for developers building extensions today: service workers, declarativeNetRequest, and the gotchas nobody warns you about.
Three animation options dominate web development right now: CSS, Framer Motion, and GSAP. Here's how to pick the right one for your project and why the native platform is better than you might expect.
The View Transitions API and scroll-driven animations are now baseline in every major browser. Here's what they replace and working code for both.
Media queries ask 'how wide is the viewport?' Container queries ask 'how wide is my parent?' That shift changes how you think about reusable components.
If your design system needs to work in React, Vue, and a legacy jQuery app simultaneously, Web Components are the only native answer. Lit makes them practical to write.
Figma shipped real AI features at Config 2025 and teams have been using them for nearly a year. Here is what actually works, what still doesn't, and how design workflows at agencies have changed.
Google's crawler runs JavaScript, but on a delay and with different limits than a browser. Here's where JS app SEO actually breaks, and how to test for it.
PWAs got a second wind when iOS 16.4 unlocked push notifications and iOS 17 improved install behavior. Three years later, the gap between PWA and native is narrow enough to matter.
Vuex was Vue's state library for years, and Pinia replaced it as the official recommendation. How Pinia works, and where it fits in a Vue 3 app.
Interaction to Next Paint replaced First Input Delay in 2024, and most sites still haven't caught up. INP is harder to optimize because it measures every interaction, not just the first one.
Client state is easy. Server state, which lives on a backend and changes on its own, is where React apps make a mess. TanStack Query handles it cleanly.
Position one element relative to another in pure CSS. No Popper.js, no positioning logic, no recalculation on scroll. How anchor positioning works.
Tauri 2.0 added iOS and Android while keeping tiny binaries, a Rust backend, and the OS webview instead of a bundled Chromium. How it works, and when.
shadcn/ui is now the default starting point for React UIs. Here's what it actually is, why copy-paste beats npm install, and how to use it without accumulating a mess.
Tailwind v4 moves configuration from JavaScript to CSS, drops the content array, and ships a faster engine. Here's what the breaking changes actually mean for a real project migration.
Biome is a Rust-based JavaScript toolchain that handles linting, formatting, and imports in a single binary. We've been running it in production projects since late 2025. Here's what the migration from ESLint and Prettier actually looks like.
We rebuilt a React SPA as a Django + HTMX app. 847KB of JavaScript became 48KB. Here is every pattern, rough edge, and performance win from the migration.
We have built production apps with all three. Here is an honest comparison of Next.js 15, Astro 5, and Remix covering performance, DX, and when to use each.
Server components have gone from React experiment to cross-framework standard. Here is how they work in React, Vue, Astro, and Svelte — and what changes for your apps.
CSS has changed more in the last 2 years than the previous 10. Here is what is production-ready, what to adopt now, and what you can stop using.
Vue 3.6's Vapor Mode compiles templates straight to DOM operations, skipping the virtual DOM entirely. We break down the benchmarks and the real tradeoffs.
Angular 21 ships signals-based reactivity and zoneless change detection by default. Here's what changed, the real benchmarks, and who should care.
From AI-first development to meta-frameworks dominance, discover the key trends shaping web development in 2026 and how to stay ahead of the curve.
A comprehensive guide to React 19's new features including Server Components, Actions API, React Compiler, and the new hooks that are changing how we build React applications.