Hi, I'm Aleksandr.
I create beautiful, accessible, and performant user experiences on the web. You can explore my writing, learn more about me, or subscribe to my RSS feed.
Recent Posts
-
A Set of Useful 11ty Filters
One of my favorite things about 11ty is its flexibility and how easily you can customize your chosen template language without having to leave the familiar comfort of the Node ecosystem.
-
Use Rems for Font Size to Respect User Preferences
There are many CSS units that can be used to size elements on a page. Rems happen to be the most reliable unit for font sizing, allowing you to scale text responsively when users change their preferred font size.
-
Implementing the Caesar Cipher in JavaScript
The Caesar cipher is named after Roman emperor Julius Caesar, who used the technique to encrypt his military and political communication. Learn how to implement both a simple and keyed Caesar cipher in JavaScript.
-
Design Mode in 11ty
Sometimes, I prefer to compose text right in my browser and copy it over to my source files. In 11ty, we can enable this behind a keyboard shortcut in our development environment using environment variables.
-
Overzealous Destructuring
Destructuring in JavaScript has many clever uses that can make your code more expressive and compact. But overusing it can make your code harder to read, trickier to debug, and more error prone.
Featured Posts
-
Creating a Fluid Type Scale with CSS Clamp
Fluid typography allows each font size in a modular scale to vary responsively between a min and max. Learn how to programmatically generate a fluid type scale with a custom Sass function and CSS clamp.
-
NFTs Are a Problem
While NFTs are being hailed as the future of digital ownership, they're also the source of many problems. NFTs are artificially scarce, make it easier to commit fraud, undermine the intellectual property rights of content creators, and encourage consumptive mining practices.
-
Represent State with HTML Attributes, Not Class Names
Developers often use class names to represent a change in a component's state, but this leads to redundant (and sometimes inaccessible) markup. Instead, we should use native HTML attributes to represent state and style those discrete states with the CSS attribute selector.
-
How to Format Code on Save in VS Code with ESlint
Never worry about manually formatting your code again. Improve your developer experience by setting up ESLint to format code on save in VS Code.
-
CRLF vs. LF: Normalizing Line Endings in Git
Line endings can differ from one OS to another. Learn the history behind CRLF and LF line endings and how to enforce line endings in Git.
-
Always Set a Width and Height on Your Images
Dimensionless images can cause layout shifts as they load, hurting your page's performance. By setting a width and height on images, you allow the browser to initialize an aspect ratio for those images and minimize layout shifts.
-
Why I Don't Like Tailwind CSS
On paper, Tailwind CSS sounds like a great idea. In reality, it suffers from the same problems that it tries to solve.
-
SVG Tutorial: How to Code SVG Icons by Hand
Follow along with the examples in this in-depth guide to learn how to draw SVG icons and simple shapes by hand.
-
Creating Aspect Ratios in CSS
Learn how to give any element an aspect ratio in CSS, using the modern aspect-ratio property or a trick with percentage padding.
-
Don't Mind the Leetcode Grind
Leetcode is a polarizing topic when it comes to technical interviews. But what exactly is it? And does it deserve your attention?
-
Goodbye, GitHub Pages—Hello, Netlify
GitHub Pages is a good option for hosting simple static sites, but it doesn't scale well for more complex use cases. Netlify offers the best of both worlds: simple hosting and plenty of advanced features.