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.  | Continue reading


@bryanlrobinson.com | 8 hours ago

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. | Continue reading


@bryanlrobinson.com | 8 hours ago

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. | Continue reading


@bryanlrobinson.com | 8 hours ago

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. | Continue reading


@bryanlrobinson.com | 8 hours ago

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. | Continue reading


@bryanlrobinson.com | 8 hours ago

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.  | Continue reading


@bryanlrobinson.com | 8 hours ago

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! | Continue reading


@bryanlrobinson.com | 8 hours ago

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. | Continue reading


@bryanlrobinson.com | 8 hours ago

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. | Continue reading


@bryanlrobinson.com | 8 hours ago

Dynamic Static Sites with Netlify and iOS Shortcuts

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


@bryanlrobinson.com | 8 hours ago

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 headi … | Continue reading


@bryanlrobinson.com | 8 hours ago

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 Your … | Continue reading


@bryanlrobinson.com | 8 hours ago

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 su … | Continue reading


@bryanlrobinson.com | 8 hours ago

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? | Continue reading


@bryanlrobinson.com | 8 hours ago

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! | Continue reading


@bryanlrobinson.com | 8 hours ago

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 … | Continue reading


@bryanlrobinson.com | 8 hours ago

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 … | Continue reading


@bryanlrobinson.com | 8 hours ago

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? | Continue reading


@bryanlrobinson.com | 8 hours ago

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 t … | Continue reading


@bryanlrobinson.com | 8 hours ago

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. | Continue reading


@bryanlrobinson.com | 8 hours ago

Three JAMstack movements to watch in 2020

This article covers three topics I think will help define the JAMstack in 2020. | Continue reading


@bryanlrobinson.com | 8 hours ago

Netlify Durable Cache: Caching for a third-party world

In this tutorial, we’ll take a look at setting up Netlify’s Durable Cache on a third-party API with (artificially) slow returns. We’ll use a proxied dev.to API, throttle it a bit, and see the effects of durable caching on the responses. We’ll also build a function to clear specif … | Continue reading


@bryanlrobinson.com | 8 hours ago

New Website, but really is it?

Launched a new version of the website... it's still pretty much the same, but way less complicated | Continue reading


@bryanlrobinson.com | 8 hours ago

Type-safe environment variables in Astro 5.0

Astro’s 5.0 beta has released a stable version of its astro:env module. This allows for developers to configure a schema for their environment variables and then take advantage of new feature this opens. | Continue reading


@bryanlrobinson.com | 8 hours ago

Integrating Astro.js Starlight Documentation into a Next.js Project Using Proxies

Shoutout to the Astro and Starlight team for helping me get this right. This guide provides step-by-step instructions on how to integrate Astro.js Starlight documentation into a Next.js project using proxies. Astro Starlight is an excellent documentation template. However, if you … | Continue reading


@bryanlrobinson.com | 7 months ago

Jamstack is meaningless

Right at the top, let’s say what’s in the title… The name Jamstack is meaningless… but then again, so is MACH … and composable… and headless… and Developer experience… and serverless…, but also, they’re all hugely important Meaningless and hugely important seem to be almost diame … | Continue reading


@bryanlrobinson.com | 1 year ago

😱 Book Release: Eleventy by Example – Learn 11ty with 5 in-depth projects

Oh hi, everyone! Listen, I've got some really exciting news. I'm honestly kind of shocked. I wrote a book. For a publisher. That comes out tomorrow. Amazing right? Well, listen, it's a book that talks about my absolute favorite development topic: 11ty. Let's not go any farther wi … | Continue reading


@bryanlrobinson.com | 1 year ago

11ty Second 11ty: Creating Template Filters

11ty Template filters are ways of manipulating data in a variable tag in your template language of choice. Each template language brings it’s own set and 11ty adds a few defaults, as well. Using a built-in filter To use a built-in filter, write a variable or expression in your la … | Continue reading


@bryanlrobinson.com | 2 years ago

11ty Second 11ty: Global Data files (JS and JSON)

In these two videos, we take 110 seconds each to discuss how to use 11ty's Global Data files to pull static data with JSON and dynamic (at build time) data with JavaScript. 11ty JSON Data Files In this episode, we’re going to talk about Global data files. Specifically JSON data f … | Continue reading


@bryanlrobinson.com | 2 years ago

11ty second 11ty: The Render Plugin Part 1

The Render plugin is comprised of two shortcodes for use in your Nunjucks, Liquid or JS templates. It’s a plugin that is bundled with the main 11ty NPM package and ready to use as soon as you nom install 11ty. To get started with the plugin, you need to install it in your .eleven … | Continue reading


@bryanlrobinson.com | 2 years ago

Help needed: Netlify's Dusty Domains event – Give me your domain ideas

So here’s the deal, y’all: Netlify has this great event for December: dusty.domains, but I don’t have any unused domains! I set myself rules for domain purchases: No auto-renewal. Domains don't renew if they don't have a dedicated purpose after that first year. I've let a LOT of … | Continue reading


@bryanlrobinson.com | 2 years ago

Frontend environment variables with Astro.js

Recently, I've been really digging the idea of transitional apps and "islands" architecture for multipage apps. To that point, I've been playing with Slinkity for 11ty and its contemporary AstroJS. Astro is a great framework that lets you create pages and components in your favor … | Continue reading


@bryanlrobinson.com | 3 years ago

Quick experiment with the Slinkity 11ty plugin

Ben Holmes (the creator of Slinkity) posted on Smashing Magazine today about the creation of the Slinkity plugin for 11ty. After reading it, I had to give Slinkity a try. The use case My almost-6-year old has a little art website that I set up for him. Originally, it was just HTM … | Continue reading


@bryanlrobinson.com | 3 years ago

Creating a dynamic color converter with 11ty Serverless

The latest Eleventy 1.0 Canary releases have come with a special feature: 11ty Serverless. I've got a bigger article coming for this feature, but thought I'd take the time to put together a short guide on building a color code converter using this. View the demo Get the code on G … | Continue reading


@bryanlrobinson.com | 3 years ago

Using 11ty JavaScript Data files to mix Markdown and CMS content into one collection

Eleventy is an incredibly powerful tool in the Jamstack's static site arsenal. It's a static site generator with some data superpowers. I've been using its JavaScript data files for years now. I've also been using Markdown files to power this blog. Not too long ago, I discovered … | Continue reading


@bryanlrobinson.com | 3 years ago

CSS Tricks redesigns again, algorithmic CSS, and experimenting with your team process

This week's intro will be a bit shorter than last week. Lots of things happening in the world, but hopefully this week's links can take your mind of things, and you can learn something along the way. This week, we have a couple articles from the folks at Netlify's Developer Exper … | Continue reading


@bryanlrobinson.com | 3 years ago

A newsletter for 2021

New Year, New Newsletter Process, New Newsletter The last email newsletter I sent, I manually curated and it took me... too much effort. It was also in 2019... So welcome to a new era of me sending emails. I'll be sending them via ConvertKit, but my curation will happen through a … | Continue reading


@bryanlrobinson.com | 3 years ago

Starting a new email newsletter

2021: Getting the band (newsletter) back together Hi to all my wonderful subscribers and a happy new year! Most of you have gotten either an e-book or a course from me in the past. I want to express extreme gratitude to you. Thank you so much for doing that. If you didn't know, I … | Continue reading


@bryanlrobinson.com | 3 years ago

How to show your template code in 11ty blog posts

If you write a technical blog and use 11ty (or Jekyll ... or just use Liquid or Nunjucks) as your static site generator of choice you might run into a conundrum: How do you show Liquid or Nunjucks template code in your code blocks? Whether you use the official syntax highlighting … | Continue reading


@bryanlrobinson.com | 4 years ago

New City, New Job, New Content

Those of you who follow me on Twitter and hang out with me in various community chats may know that I've been focused on moving for the past month or so. Something you may not be aware of is that I've also been getting ready to start a new job, as well. When you change one thing … | Continue reading


@bryanlrobinson.com | 4 years ago

Using Nunjucks 'If Expressions' in 11ty to create a simple active navigation state

Creating active states in your navigation is important for guiding a user through your site. It gives them a sense of place and let's them know how to navigate from page to page. Setting active states in your templates isn't alway easy. Often, it requires setting a variable on ea … | Continue reading


@bryanlrobinson.com | 4 years ago

Climbing the 11ty Performance leaderboard with Cloudinary, critical CSS and more

A few weeks ago, Zach Leatherman announced that he was going to change the Built with 11ty section 11ty's documentation. He was going to create a performance leaderboard to showcase performant projects using the tool. My site wasn't on there, so I decided to add it in for round 2 … | Continue reading


@bryanlrobinson.com | 4 years ago

Three JAMstack movements to watch in 2020

In the second half of 2019, I took my passing interest in the JAMstack and solidified it as one of my main focuses. I'm excited about the prospect of what lies in store in 2020. I was asked by Brian Rinaldi to answer a few questions on Stackbit's blog about where I think the JAMs … | Continue reading


@bryanlrobinson.com | 4 years ago

Create a Codepen promo watermark with no additional HTML, CSS or JS

I use CodePen a lot. I've got hundreds (if not thousands) of pens. Most of them are throwaways, but some are things that I like to share. As a blogger, I like to drive people back to my blog from my Pens when possible. You can add a link in your Pen's details, but that's usually … | Continue reading


@bryanlrobinson.com | 4 years ago

3 underused CSS features to learn for 2020

CSS has a whole lot of power. There are properties and values for any number of amazing designs. With all that power comes a lot to remember. If you don't know about all the tools in your toolbox, how will you find the right one for the job? In this post, we'll take a look at thr … | Continue reading


@bryanlrobinson.com | 4 years ago

Use CSS Subgrid to layout full-width content stripes in an article template

CSS Grid was missing one important piece when it's Level 1 specification was released into the world: Subgrid. The Level 2 specification is still in "Working Draft" status, but we have our first browser implementation. Mozilla has the Subgrid syntax in Firefox Nightly. Now that w … | Continue reading


@bryanlrobinson.com | 5 years ago

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

My good friend James Q. Quick recently wrote an awesome post describing interacting with APIs without a framework. He used the Pokémon API PokeAPI. He hooked me and I had to put my own spin on it! Before we go any further, you need to head over to his site and read the original p … | Continue reading


@bryanlrobinson.com | 5 years ago

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

One of my many favorite parts of the CSS Grid specification is grid-gap. It makes creating "internal margins" to my grids so much easier. Margins and the hacks we do to clear them in various contexts have long been one of my primary annoyances with CSS. Grid's gap just made so mu … | Continue reading


@bryanlrobinson.com | 5 years ago