
Mastering CSS for Freelance Web Development Projects
CSS is key to delivering responsive, accessible, and visually appealing freelance projects. Here, I explore essential techniques and practices to master CSS.
Articles
The guides are the practical part of this archive: working explanations for a specific web development problem, written to show the decision as well as the answer. The subject varies, but the aim is consistent: enough context to use the technique sensibly rather than copy it blindly.

CSS is key to delivering responsive, accessible, and visually appealing freelance projects. Here, I explore essential techniques and practices to master CSS.

Learn how Sass, Less and Stylus extend CSS with variables, nesting, mixins and modular files, alongside their build‑step and learning‑curve trade‑offs.

HTML fundamentals explained through semantic structure, browser parsing, accessibility, and how markup choices affect modern front‑end work in practice.

Object.freeze(), Object.seal(), and preventExtensions()Object.freeze(), Object.seal(), and preventExtensions() explained clearly, including what each allows, what they block, and why shallow locking matters.

visibility: Hiding Elements Without Affecting LayoutCSS visibility hides elements without altering layout. Here, I explain its use cases, differences from opacity, and how it maintains document flow.

opacityCSS opacity controls transparency, from fully opaque to invisible. Here, I explain how it works, its interaction with layout and practical examples.

Optimise HTML markup for SEO and accessibility with semantic elements, heading structure, alt text, clean code, anchor text, and crawler‑friendly structure.

Number.isNaN(), Number.isFinite(), and Number.isInteger() in JavaScriptNumber.isNaN(), Number.isFinite(), and Number.isInteger() explained through strict numeric checks, coercion traps, parsing boundaries, and validation.

Browser and Node.js JavaScript compared through host APIs, globals, modules, async behaviour, DOM access, server APIs, and environment mix‑ups cleanly.

A fairly entry‑level overview of the basics of CSS positioning. Learn how to use static, relative, absolute, and fixed positioning with examples.

Function declarations vs. function expressions vs. arrow functions in JavaScript, including hoisting, this, readability, and when each style fits best.

String.startsWith(), endsWith(), and includes() in JavaScriptUse startsWith(), endsWith(), and includes() in JavaScript for clearer string checks, case‑sensitive matching, position arguments, and readable intent.

for...in vs. for...of in JavaScriptCompare for...in and for...of in JavaScript, including keys, values, arrays, objects, iterables, inherited properties, and choosing the clearest loop.

JSON.parse() and JSON.stringify() Explained for BeginnersJSON.parse() and JSON.stringify() explained clearly, including when to convert data, common mistakes, localStorage use, and why functions disappear.

Understand live HTMLCollection views, static NodeList snapshots, mutation‑skipping bugs, Array.from() conversion, and safe DOM iteration in 2016.

Array.from() and Array.of() in JavaScriptArray.from() and Array.of() in JavaScript explained with NodeLists, array‑like objects, generated arrays, and why new Array() can still catch people out.

arguments Object vs. Rest Parameters in JavaScriptThe arguments object vs. rest parameters in JavaScript, including readability, array behaviour, arrow function differences, and modern best practices.

input.value Returns a String in JavaScriptUnderstand why input.value returns a string, how valueAsNumber and checked differ, and how to handle strings, files and missing FormData entries.