Adapt client-side JavaScript for use in 11ty (Eleventy) data files

I love JavaScript, but I love rendered HTML much more, so I challenged myself to convert James' client-side JS code to something that rendered HTML. I wanted to do it as quickly and as concisely as possible.

CSS Gap creates a bright future for margins in Flex as well as Grid

In this tutorial, we'll take a look at how we've added margins in the past with Flex and how gap makes it so we can have these internal margins with no hacks.

Create your first CSS Custom Properties (Variables)

In this tutorial, we'll tackle one of the amazing new features of CSS: Custom Properties. You may also have heard them referred to as CSS Variables.

Use CSS Grid to create a self-centering full-width element

In this tutorial, use CSS Grid to create a self-centering full-width element. Traditionally, this required extra markup, but with CSS Grid, we won't need it!

Creating an 11ty Plugin - SVG Embed Tool

In the sites I’ve built with Eleventy (11ty) recently, I’ve found myself reusing a couple filters. This has involved me copying and pasting the code a lot. The solution? Create an 11ty Plugin.

Now offering design and code reviews at PeerReviews.dev

For the past few months, I’ve talked with a lot of different people about how best to serve up-and-coming designers and developers. I want to be a resource for people learning to code and learning about design. So, when my friend James Q. Quick released his first code review on YouTube, I knew I needed to follow along.

Routing contact-form emails to different addresses with Netlify, Zapier and SendGrid

When your client wants dynamic form processing, and your site is "static," what are you going to do? In this article, we'll explore two methods to do dynamic form routing based on a user's answer to a form field.

Create an Eleventy (11ty) theme based on a free HTML template

In this video series, we'll take a look at what it takes to start with a free HTML template found on Google and convert it for use with a static site generator (SSG). We'll be using my personal favorite SSG 11ty (EleventyJS).

Client work and the JAMstack

I worked at an agency for almost six years. In that time, I created only a handful of static sites. Part of this was because the agency had a custom content management system. The other part was an unwillingness to give up "dynamic" websites. I've created a website to aggregate resources for agencies and freelancers looking to branch out into the JAMstack.

Grid vs. Flex: A Tale of a "Simple" Promo Space

I love the new layout modes in CSS. Grid and Flexbox are both amazing features. They each have their place. What if I told you that if you used the "wrong" one, you could double your CSS and HTML? Let's take a look at what appears to be a simple promo grid.

Using Eleventy's (11ty) JavaScript Data Files

I enjoy building workflows for pure static sites. I enjoy ingesting data into my build process instead of loading my client-side with fetches. In this example, we'll use Eleventy's ability to use a JavaScript file, to execute code to fetch data on site build, negating the need for task runners like Gulp.

The Tech Barrier to Entry

I'm grateful for my unique journey to find my professional niche. It's taken a lot of twists and turns. Is my journey replicable in this era of developer tooling and convenience?

What Can We Learn from CERN's WorldWideWeb rebuild?

Have you ever wanted to go back in time and see what it was like to browse the web using Sir Tim Berners-Lee's first web browser? I have. Apparently so did the team at CERN. For the 30th anniversary of the world's first web browser, The European Organization for Nuclear Research (CERN) brought togoether a team to recreate WorldWideWeb in a modern browser. 

Let's bring Fan Sites and webrings back!

In the days before the web was mainstream, it was a place of creation. First for education, then for every random idea that any creator had! As the web transitioned from a network of educational institutions to the consumer force it is today, the early adopters were technologists... AKA geeks! 

Practical CSS Grid - Launching My First Course

Late last year, I took the plunge and began to work full time on my passion - education. That has led to today. Today, I officially launched my first online course - Practical CSS Grid!

Build Trust on the Web incorporating User Worries with your User Stories

The web is suffering from a crisis of trust. Every week there’s a new story posted about a data breach or untrustworthy practices (I’m looking at you, Facebook). How can we fix that? When we create user stories for new features, shouldn’t we also create user worries about them?

2019 The Year of Markup-First Development

The state of the web in 2018 has been heavy into the world of JavaScript. We've made amazing advancements in the way our sites work. Every site has the ability to feel like an application. Without HTML, though, our fancy future may have a dystopian layer right beneath the surface.

Refactoring CSS into a Sass mixin

It struck me recently as I was writing a new Sass mixin that there may be designers and developers out there that haven't translated vanilla CSS into a Sass function. In this article, I want to show how to take often-used CSS and convert it into a DRY (Don't Repeat Yourself) Sass mixin.

Starting a new journey with Code Contemporary

I'm beginning my new journey as an independent creator. I've left the comfortable confines of agency life to see what I can do creating resources for designers and developers. I'll be writing, recording, speaking and consulting. Much of this will be under the heading of my new company Code Contemporary

Dynamic Static Sites with Netlify and iOS Shortcuts

An experiment adding dynamic functionality to this site pushed via iOS shortcuts and Netlify functions

Top 3 uses for the ::before and ::after CSS pseudo elements

It’s no secret that I'm a fan of ::before and ::after pseudo-elements. I use them to great effect for creating darkened overlays in this previous post. They have so many uses beyond that, though. Here are my top 3 uses for them in my every-day development process.

How To: Use CSS Grid to Mix and Match Design Patterns

In a previous tutorial, I described how to create a simple fluid card grid with CSS Grid. In this tutorial, we'll take it a step farther and create promotional spaces that morph in interesting ways.

Use CSS ::before and ::after for simple, spicy image overlays

Use :after elements to create the simplest HTML possible to render useful and fun overlays on top of background images. Then extend them with blend-modes!

Modern CSS: Four Things Every Developer and Designer Should Know About CSS

Contrary to popular belief, CSS is an absolute delight. Many developers I talk to think the phrase "Modern CSS" is an oxymoron. If you haven’t been watching the growth and maturity of CSS in the past 5 years, you’re doing yourself a disservice. 

3 Strategies for Getting Started with CSS Grid

If you're wondering how to start working with CSS Grid, here are three strategies for adopting it into your workflow.

CSS Tip: Use rotate() and skew() together to introduce some clean punk rock to your CSS

I'm still convinced that taking inspiration from punk rock design of the 70s and 80s is going to be a trend. If you want to start small, introduce some angles to your design. This is a simple trick to angle a stripe of content without adding awkward white space.

The 5 Stages of Grid Love

Looking back on the past year, I've identified the five stages of my love with the CSS Grid Specification.

How To: A CSS-Only Mobile Off Canvas Navigation

Mobile navigation and the "hamburger nav" pattern aren't going away. In this tutorial, I'll walk you through creating a mobile off-canvas navigation with only CSS and HTML.

How To: Use CSS Grid Layout to Make a Simple, Fluid Card Grid

In this tutorial, I'm going to show you how to take one of the most common tropes of web design -- the card grid -- and make it fluid. 

Make a More Flexible Cover Screen with CSS Grid

Our design trends are about to get a facelift. Grid Layout is coming in the next release of modern browsers. It's important to get a grip on its utility. Let's take a common trend in editorial and marketing design - the "cover page" banner area.

Firefox 52 to Introduce New Box-Alignment Values

CSS Grid is coming in Firefox 52 in March. That’s amazing. It could overshadow a few small improvements that are also coming in the release. The Box-Alignment module is getting a couple new features, as well.

Falling Forward — Rethinking Progressive Enhancement, Graceful Degradation and Developer Morality

Forget what you know about Graceful Degradation. Forget what you know about Developer Convenience. Forget what you know about Progressive Enhancement. Instead of arguing over these terms, we should focus on how to change our culture. Create "fallforwards" not "fallbacks."

Start Exploring the Magic of CSS Grid Layout

Grid is an amazing new CSS Specification coming to major browsers in 2017. When it’s ready for use in production, it’s going to drastically change the way we do layout on the web. Currently, there’s no real browser support. Edge and IE10/11 "support" grid, but they implemented an early version of the specification and it’s significantly broken.

I Converted My Blog to CSS Grid Layout and Regret Nothing

With the death of Lella Vignelli last week (Dec. 21, 2016), I read for the first time The Vignelli Canon. The layout of the pages inspired me. I knew that I wanted to give a quick update to some of my blog posts to mirror some of the design from that book -- a book that talks about grids, as well.

Feature Queries are on the Rise

Since the Web became a more beautiful place with the advent of CSS, there’s always been a struggle in the use of more modern features of CSS with browsers who are either slower to adopt or more cautious in the way the implement features. There have been many potential solutions for this issue.

CSS Shapes — Let the Text Flow Around You

There’s magic in the air around CSS right now. There’s so much new to be excited about. One simple thing that you should get excited about is the CSS Shapes Module. These are not CSS shapes like building triangles out of border property hacks. This is taking your content and shaping it around shapes and images.

Flexbox -- Let's start simple

Layout in CSS is hard. We’ve spent the 2 decades since the inception of CSS battling with its idea of how to lay out content on the web. When we moved from table-based layouts to CSS layouts with floats and positioning, we gained a LOT of flexibility, but we also lost things like vertical centering that tables afforded us. Floats and positioning got us a long way to making really nice looking sites, but with the advent of responsive design and fluid layouts, the struggle has been real...

Memorializing Prince and Print vs. The Web

A giant of the music industry passed on April 21. While I wasn’t a zealous follower of his music, I can tell you the world is a sadder place without Prince in it. But that’s not what I’m writing about. In the social media memorializing of this titan, I came across this

I went to Italy and noticed UX fails

Ciao friends! I’m just arriving back in the States from a trip to Italy. I’m not exactly much of a world traveller, but a good time was had. While I enjoyed the majority of what I saw, I also observed a few major usability fails that I wanted to bring up. Give the blog a little international flair.

How to Get Designers to Contribute in Open Source

I’ve been thinking a decent bit this year about how to get designers involved in Open Source projects. There’s more and more being talked about in this vein, and I don’t plan on rehashing what they talked about (The Intimidation Barrier and Open Source Design by Una Cravats and one of the first guiding documents -- The Open Source Design Manifesto by Garth Braithwaite to name but a couple).

The True Gift of Your Former Code

I’m not in the same league as most developers I have the pleasure of meeting, but I had been pretty proud of the little Django app I put together for my old portfolio site. It worked pretty well. I had loads of plans for it when I made it — none of which came to fruition. In the end, it served it’s purpose and I learned a lot in the process.