100vh in Safari on iOS

Update 2021.07.08: There are new viewport units on the way that will finally solve this issue. 100dvh is the one you’re looking for. When working with Viewport Units there’s this longstanding and extremely annoying bug in Safari on iOS where it does not play nice with the vh unit. Setting a container to 100vh for …

Web Vitals – Essential metrics for a healthy site

Web Vitals is a new great set of articles on Web.dev (by Google) focussing on delivering a great user experience on the web. To help developers focus on what matters most, they’ve selected a set of metrics which they call “Core Web Vitals”. The metrics that make up Core Web Vitals will evolve over time. …

1loc – Single Line JavaScript Snippets

1loc is a site packed with small JavaScript snippets that take up 1 line of code. For example: Compare Two Dates const compare = (a, b) => a.getTime() > b.getTime(); Generate Number in Range const random = (min, max) => Math.floor(Math.random() * (max – min + 1)) + min; Get all siblings of an element …

Tackling TypeScript: Upgrading from JavaScript

New book on TypeScript by Dr. Axel Rauschmayer, who also wrote Exploring ES6 (and a few other books on JavaScript). This book consists of two parts: Part 1 is a quick start for TypeScript that teaches you the essentials quickly. Part 2 digs deeper into the language and covers many important topics in detail. This …

CSS Grid Layout Module Level 2: Masonry Layout

UPDATE 2020.10.22: Masonry Layout founds its home in the CSS Grid Module Level 3 Draft Spec! A long requested CSS feature is to be able to create a “Masonry Layout” using pure CSS. Today we can already create a Masonry-like layout using grid-auto-flow: dense;, but unfortunately that’s not the real deal. 🤔 Masonry Layout? Masonry …

Emoji Customizer created with CSS Variables

Fun pen by Jakob Eriksen in which he combines Emoji and CSS Custom Properties to create an Emoji Customizer. The reason that this works is because of the fact that emoji can have modifiers. Skin Tone and Hair, as used in the demo above, are such modifiers. Using the ZWJ (“\u200d”) you can glue all …