Apple Bug Report – Non-native Focusable Elements Page Jump

January 18, 2017

On iOS devices running Safari on version 10+, when focusing a non-native focusable element (ie – a div that is focusable via JavaScript or with a tabindex value) inside an embedded iframe on a page, the parent page will jump down the page and you have to scroll back up to return to the focused… read more

How to Fix Blurry Images in WordPress 4.4 from srcset and sizes

In WordPress 4.4 they added a big feature: responsive images using srcset and sizes for all content images. This is amazing. Since WordPress is a hugely popular framework, the amount of bandwidth saved is astronomical. I’m really proud of the WordPress team for implementing this. But… there are some blurry images. It’s not a perfect… read more

Question Results Sketch on the left, with the completed component on the right

The Process of Building for the Web: Quiz Creator Case Study

Engaging News Project’s Quiz Creator is by far the biggest product I have ever designed and developed. Over an eight month period, I did all planning, design, development, architecture, testing, documentation, and deployment. To give you an idea of what goes into building a professional web application, I’ve documented the overarching phases of the project.… read more

Using BEM in the Wild

BEM can get out of control if you’re not careful. On the first project I used BEM, I handcrafted this artisanal class name: .progress__bar__question-count__current-number. Yup. That’s four levels deep. I’m not proud of this. The goal of this article is to make sure another .progress__bar__question-count__current-number never gets written. Before we dive in, if you’re not… read more

Modular and Descriptive Class Names

What’s the big deal, just name it the first thing that makes sense, right? It makes sense now, so it will probably always make sense! .btn–small, .btn–tiny, .btn–really-tiny, umm… .btn–really-super-duper-tiny! Considering your class names avoids headaches and confusion down the road. But that’s easier said than done. Before we figure that out, let’s get some… read more

B is for Block: An Intro to the BEM Naming Convention

BEM (Block, Element, Modifier) is a great way to keep class naming consistent and meaningful. If you’ve never used BEM before but want to understand how it works, or if you’re thinking about using it for an upcoming site or component, this article is meant for you. If you’re already familiar with how BEM works,… read more

Extensively Extending Sass @extend: How I Overused Extends

Right now, I believe CSS should be minimal, meaningful (to people), and not descriptive of what it looks like (visually). Also, I can be a bit of an idealist. Especially at the beginning of a project. As a warning, this post isn’t meant to teach basic CSS concepts. Get ready for some CSS nerdery. Project… read more

6 Questions to Ask Yourself Before Working for Free

It’s tempting to work for free or with steep discounts for friends and nonprofits, but there are some pitfalls to be aware of. If you can get to the end of these questions and feel great about designing a logo, building a website, or whatever it is you do, then by all means, go for… read more

7 Easy Steps to Fail at Building a Network

For most of my career, I’ve felt like an imposter. I didn’t think I knew enough to contribute to the web designer/dev community, so why would anyone want to network with me? If I tried, wouldn’t people just figure out I didn’t know as much as them? I used to believe this was true. As… read more

How to Get Started as a Web Developer

I became a designer and developer by baking bread. Wait… let me start over. I accidentally became a web designer/developer by baking bread. Here’s how it happened: Get a BA in Creative Writing and an MA in Elementary Education Learn how to make great sourdough breads Sell bread and my wife’s granola bars (best bars… read more