
Single or Double Colons in CSS Pseudo‑Elements (:before vs. ::before)
CSS pseudo‑elements can use one or two colons. This guide explains `:before`, `::before`, modern syntax, compatibility, and when each form matters.
Articles
This is a relatively generic and broad category where I attempt to offer guidance or instruction on more‑or‑less anything related to front‑end and web development.
Below you will find a subset of articles from my blog specifically about Guides. This is an area I have worked with for many years, and it has been a regular subject in my writing. There are three hundred thirty‑eight articles collected together for you below.

:before vs. ::before)CSS pseudo‑elements can use one or two colons. This guide explains `:before`, `::before`, modern syntax, compatibility, and when each form matters.

box‑sizing: Controlling the Element Box ModelUnderstand CSS box‑sizing and the box model, including content‑box, border‑box, width calculations, borders, padding, and layout surprises in real UI.

File‑system routing in Next.js explained clearly, including the `pages` directory, nested routes, index files, and why routing feels simpler than custom setups.

JavaScript hoisting moves declarations to the top of their scope. Here, I explore its impact on variables, functions, and best practices for avoiding pitfalls.

Closures let JavaScript functions retain access to parent scope variables. Here, I explore closures, scope, and practical uses for cleaner, more efficient code.

Static methods vs. instance methods in JavaScript classes explained clearly, including when to use each, common mistakes, and how class APIs stay readable.

:hover Pseudo‑Class in CSSThe :hover pseudo‑class seems simple until touchscreens and accessibility get involved. This guide covers how it behaves and where it falls short.

Choosing a web developer near you in Brighton or London offers tailored solutions, local insight, and reliable support to help your business thrive online.

Mutation and immutability in JavaScript explained through arrays, objects, push(), splice(), shared references, UI bugs, and safer update patterns.

Array.includes() vs. indexOf() in JavaScriptCompare Array.includes() and indexOf() in JavaScript, including boolean checks, returned positions, NaN handling, readability, and membership tests.

React Portals explained with modals, overlays, and tooltips, including DOM placement, event bubbling, accessibility concerns, and when portals help.

CSS and JS animations enhance user experience by adding smooth transitions and interactivity. Here, I explore best practices, performance, and the real‑world.

Compare CSS transitions and keyframe animations, including hover effects, loading states, timing control, performance, and when each approach fits.

React Fragments explained through empty tags, keyed fragments, semantic markup, unnecessary wrapper divs, grouped list output, and layout side effects.

Understand CSS media queries for responsive design, including screen conditions, mobile‑first and desktop‑first approaches, breakpoints, and device traits.

Boost website performance with HTML, CSS & JavaScript optimisation. I explore techniques: lazy loading, critical CSS, script deferment for faster load times.

@keyframesCSS `@keyframes` enables animations by defining style changes over time. Here, I explain how it works with examples, properties, and cross‑browser support.

extends and super in JavaScript Classes`Extends` and `super` in JavaScript classes explained with inheritance examples, constructor rules, method overriding, and the trade‑offs of class hierarchies.