Skip to main content


Skip tag navigation

Year-end review 2021

2021 proved to be an eventful year for many of us. Personally, my year brought tremendous successes, failures, victories, and heartbreak. These last 365 days have felt like an entire lifetime!

Read more of Year-end review 2021

Kicking Sass to the curb

Sass has been my go to CSS preprocessor for years, but with a recent CSS feature boom, it’s a good time to revisit whether or not I can lean completely on native CSS for all my Sass.

Read more of Kicking Sass to the curb

Misadventures in web components

I have been thinking about web components a lot lately, and I wanted to see how we could start using them at The Container Store. The idea was to pick a simple component and recreate it as a web component, and the first candidate that came to mind is our frequently-used quantity stepper. The stepper appears in several places throughout the website, and it’s dependent on an embarrassing amount of jQuery.

Read more of Misadventures in web components

Pardon the dust

In case you didn’t notice, I just pushed up the biggest adjustment to the site design since the last redesign in late 2020. I wanted to go through it briefly and talk about what’s next.

Read more of Pardon the dust

The curious case of flexbox gap and Safari

Update at the end The gap property was first introduced to add inner grid spacing but was extended in the spec to work with flexbox. With one line of code, you can replace something like this:

Read more of The curious case of flexbox gap and Safari

Native form validation with JavaScript

You don’t need to install a validation library to create rich client-side form validation experiences. HTML5’s native client-side form validation is widely-supported and easy to implement, and while its default functionality is limited, the native Constraint Validation API allows for custom behavior with JavaScript.

Read more of Native form validation with JavaScript

What I learned blogging daily for a month

I recently challenged myself to write a blog post every day for a month. Up to that point, I had only written eight blog posts for two years. A month later, not only do I have 28 new blog posts, I’ve learned some valuable lessons about my blogging process and my website. I wanted to share things about the experience that worked for me and issues I discovered that need attention.

Read more of What I learned blogging daily for a month

Share variables between JavaScript and CSS

Whether you need site breakpoints for matchMedia or access to theme colors, sharing values between your JavaScript and CSS is sometimes unavoidable. The easiest solution is to copy and paste values, but how can you ensure values stay synchronized when that brand blue color changes to indigo?

Read more of Share variables between JavaScript and CSS

← Older posts