Recent Posts

September 08, 2023

4 Ways to Toggle Classes in Angular

Hey there, have you ever needed to programmatically add a class to an element in an Angular application? Like, maybe when a button is disabled, we need a class, but then once it’s enabled, we don’t. Or how about when a form goes from an invalid state to valid? Well, good news, this is actually pretty easy to do in angular. In this post I’m going to show you four different ways. First we’ll use a method called class binding. Next we’ll use the ngClass directive. After that we’ll use the @HostBinding decorator. And finally, we’ll use the Renderer2 addClass() and removeClass() methods. Let’s get to it!

August 27, 2023

Create Dynamic Text on a Path with HTML, SVG, and CSS

When it comes to incorporating irregular shaped text into web projects, we often end up using images. However, there may be a better way – using inline SVG and CSS to create dynamic, responsive, and accessible graphics directly within our HTML. In this post, we'll walk you through the process of achieving this, ensuring our designs are on point while maintaining accessibility and SEO friendliness.

August 22, 2023

Styling HTML Radio Buttons: A Step-by-Step Guide

HTML radio buttons are a staple of web forms, but their default appearance leaves much to be desired. In this blog post, we'll walk through one of my favorite methods to customize the look of radio buttons using CSS, creating a more user-friendly and visually appealing experience.

August 21, 2016

CSS Shapes Bring Rich Editorial Design Features to the Web

For the longest time we’ve been stuck with boxes and it makes things that are common yet beautiful in the print world difficult if not impossible on the web. CSS shapes change this, leveling the playing field allowing us to create much more engaging layouts and designs on the web.

January 28, 2016

Good Design Comes From... CRAP - CodeSLO Presentation

I was lucky enough to get the invite from Matt West, founder/organizer of CodeSLO, via my coworker @schwarty to give a presentation at the CodeSLO meetup "HTML and CSS - Part 3 - Modern Web Design" meet up. This was a good time. I got to get out and talk shop with a great group of people who were excited to learn about design and the role it plays on the web. My talk went a little over thirty minutes and covered the basic principles of good design: contrast, repetition, proximity, alignment, layout, typography, color, and more. For those that were unable to attend, feel free to take a look at the slides to see what you missed...

February 09, 2015

Fixing the :active Pseudo Class Selector in Internet Explorer

Sometimes it's necessary to have a link that contains some children elements. Say, for example, you have a link that contains some text and an inline SVG icon that's styled using CSS. This set up allows you to style the icon for all of the link states `:hover`, `:visited`, and `:active` right? Well yes, with the exception of the `:active` state in Internet Explorer. Well, not without a work around at least.

June 06, 2014

Oh Wow That's Neat - 20: Dimensions Toolkit

We are all designing and building responsive websites now. For many of us this means both exciting new challenges and significant increases to our workload. Testing at many variable widths is more and more difficult to do and is likely the culprit of much of our increase in development time.

June 03, 2014

How to Force Hardware Acceleration to Improve CSS Animations

You've likely seen CSS animations and transitions in various web applications out there where they just didn't work well. They are choppy and freeze along with a bunch of other issues. This occurs because they are not taking advantage of the device GPU and hardware acceleration, but are instead using the browsers' built in rendering engine.

May 28, 2014

Oh Wow That’s Neat – 19: Responsive Boilerplate

With all of the great frameworks popping up it can be difficult to choose the "right" one. Besides doing some really great things, probably the two most popular frameworks [Twitter Bootstrap]( and [Zurb Foundation](, can be a little overreaching at times when it comes to theming them. You may find that you have to overwrite and undo many styles to make them look unique. This is where web developer [James South's]( [Responsive Boilerplate]( may prove to be that "right" one.

May 23, 2014

Quick Tip - 18: Automatically Update Placed Files in Adobe Illustrator

If you use Illustrator for interface design you probably take advantage of using placed files for some of your design elements. I've started using the heck out of them in order to make updating items across files much easier and quicker. As I started doing this I quickly realized that it's monotonous to update the placed files manually after making edits to them. Well, there's good news, you can set Illustrator to automatically updated them for you.

May 21, 2014

Oh Wow That’s Neat – 18: Morphing Buttons Concept

It used to be that websites and their interactions were much different than those from native software applications. Well this is not so much the case anymore. [Mary Lou](, a freelance web designer and developer from [](, wrote an interesting article discussing a few different morphing buttons concepts that showcase some amazing possibilities for web interactions.

May 20, 2014

Normal, Condensed, or Expanded Font Faces With CSS font-stretch

Have you ever attempted to use a condensed or expanded font face from a particular font family using CSS? How did you do it? Did you create a new web font with a subset of the condensed or expanded versions? Well, thanks to CSS3 there's now a better way, [sort of](#sortof).

May 16, 2014

Quick Tip – 17: How to Diff CSS Live Edits in Chrome DevTools

If you're reading my blog I'll assume that you are familiar with how to live edit code within all browser developer tools. I use them all the time and can hardly remember what it was like without them. Chrome DevTools tend to be my favorite but FireFox and Internet Explorer continue to improve.

May 14, 2014

Oh Wow That’s Neat – 17: Open Source Ampersands

Paul Irish created and maintains a site devoted to Ampersands. The site is a collection of open source web fonts that only contain the ampersand character. He created it based off an [article from 2008]( regarding the usage of ampersands and the fact that certain variants of the character in some fonts are more interesting than others. The article also points out that the ampersand character is often used only for display purposes and not in content so there is no reason not to use more interesting versions.

April 28, 2014

CSS Pseudo Classes for Form Elements

CSS provides us with a handful of pseudo classes that are specific to HTML5 forms. They allow us to create forms that are easier to fill out by highlighting fields that are required, optional, valid, invalid, etc.

April 25, 2014

Quick Tip - 16: Disable HTML Form Validation With novalidate

With HTML5 we have been given new input types (email, tel, url, number, etc.) and built in browser validation to validate them. This is great but you may want to disable this validation if you want to test your server side validation, use custom validation, or something else.

April 23, 2014

Oh Wow That's Neat - 16: Brick. Webfonts that actually look good.

For those of you who have taken advantage of web fonts you've likely noticed various levels of quality. Sometimes, in some browsers, they look great. Other times, in other browsers, they look thin grainy. And if you're like me you probably just cringed a little and dealt with it. Well, fortunately we now have help thanks to [Alfred Xing]( who has created [Brick](

April 21, 2014

Using CSS Generated Content

Back in the good ol' days, CSS was much more limited than it is today. If we needed to style something it had to be in the page which, in turn, led to bloated markup simply for design purposes. Luckily we are no longer in those days.