Articles

Designing grids

Published on:

I'd be telling you the obvious if I said that grids are important in web design. You already knew that. You probably have even coded a few grids with frameworks like Foundation or Bootstrap. You may even have created a custom grid manually, or using a grid layout tool like Susy.

But have you stopped to think about these questions for the grids you've made?

  • How many columns should you have?
  • Should the columns be evenly sized?
  • How big should columns and gutters be?
  • How does the grid respond to different viewports?

What are your answers?

I have searched high and low for answers to these questions in the past few months. Here's an article consolidating everything I know about designing grids right now. Hopefully, it'll help answer the questions you have as well.

Don't reinvent the wheel

Published on:

"Don't reinvent the wheel".

You heard that one before?

It's an age-old wisdom that's been passed around between developers since the dawn of time (at least for programming anyway).

It's also the worst advice you'll hear from anyone. But we say it on a daily basis. To others, and even to ourselves. It's just that whenever we say this, we sugar-coat the words in different forms so we don't feel as hurt.

We say things like:

  • Just use [insert framework here]
  • Use [insert plugin here] instead of creating your own. It's not a priority.
  • Don't waste your time building something that has been done before.

Sounds familiar yet? Has anyone said these to you before? How did you feel? Don't kid anyone. You felt something. Did you feel:

  • Threatened?
  • Defensive?
  • Aggressive?
  • Angry?
  • Sad?
  • Stupid?
  • Worthless?
  • A combination of many of these?
  • Others...

These statements challenge the receiver. With any questions that challenge, it not only challenges the decisions on the surface (for most of us, it's a choice whether or not to do something for a project), it challenges the core beliefs of the receiver.

Like it or not, it happens unconsciously. And because these questions are directed towards the core beliefs, the repercussions can be severe.

Learning to code quickly

Published on:

"How do you learn and remember all that stuff so quickly?", I get one of these questions now and then from well-meaning individuals who seek more knowledge. It's a common thing for all of us. We want to learn fast, do things fast, get more things done.

However, I never managed to answer the question properly. I always winged it because It triggers a complex mix of emotions within me. Sometimes, I get arrogant. Others, I stay humbled and state the truth: I'm slow. And I want to be faster.

The poor person on the other side of the computer only has half answer, depending on which side I sway towards.

Today, I'd like to challenge this question seriously, both for my future benefit and for countless other ambitious individuals who feel like they need to conquer a never-ending mountain of knowledge.

How to Reset Susy's Span or Gallery

Published on:

Did your span or gallery mixin behave unexpectedly (like the image below) when you're using Susy?

<Image src="/assets/2016/susy-span-gallery/problems.png" alt="Span and Gallery Problem"/>

You're not alone. Many people have faced the same problems I outlined above. When they meet with these problems, the common question was how to "reset" the output from the span, or the gallery mixin, so the weird behavior goes away, but that's not the best way to fix the problem.

In this article, I'm going to show you why "resetting" is the wrong approach and what you can do instead.

How to Ask Good Coding Questions That Get Great Answers

Published on:

Have you ever asked code-related questions and never got a response? Even if you got a response, did you go through multiple back-and-forth clarification questions before you finally get a useful answer?

It happens. A lot.

It happens because you didn't ask questions that were good enough for anyone to answer you immediately. In this article, I'll help you learn the art of asking good coding questions so you'll always get great answers.

Everything about the Modular Scale Sass Libary and Modular Scale with Typi

Published on:

Previously, I shared the theory about adjusting your Modular Scale scale to size your headers for different devices. I also covered how you can do it with the Modular Scale plugin for the 4th method.

Today, I want to share more about the Modular Scale library so you can learn to integrate it into your project easily. I'm also going to share with you how to use Modular Scale with Typi.

Responsive Modular Scale

Published on:

Do your font-sizes look gigantic on the mobile? You're not alone. It's a common problem many people have when using Modular Scale for responsive websites.

In this article, I want to share with you how this problem arises and how to fix it so you no longer have font-size woes.

Ready? Let's go.

Were We Wrong About Vertical Rhythm All Along?

Published on:

Just a few days ago, I received a design critique from Aurobind (a font, newspaper and magazine designer) regarding my website. He specifically pointed out that the spaces between my paragraphs could be reduced to achieve a better effect.

I was dumbfounded. I didn't believe him at first since I was already using Vertical Rhythm. If I were to reduce the amount of space between paragraphs, wouldn't I be breaking the Vertical Rhythm?

Even though I don't believe it, I decided to try it out since I respect his expertise and the feedback he's willing to give. And boy, I'm utterly convinced.

Deploying a Static Site with Cron and Git

Published on:

You might have noticed that I redesigned my blog recently if you followed me for a while. In this redesign, I switched from Wordpress to a static generator that I've created.

I love static site generators. They make it easy for me to create websites without having to go through a CMS like Wordpress. Since my blog is on a static site generator, I managed to simplify my blogging workflow because I don't need access to the Wordpress backend anymore.

The only major problem I had with static site is that that I'm unable to schedule my articles and publish them on a different date. I tried several methods, burned myself, and finally found a solution that I'm happy to share with you.

Advanced Usage with Typi

Published on:

Last week, I wrote a tutorial to show you how to use the mixins and functions of Typi, a library I’ve created for responsive typography. There’s a lot more to Typi that I can cover in one article. So, this week, I’m going to show you some advanced tips that I use with Typi so you can use them as well.

An In-depth Tutorial to Typi

Published on:

Typi is a library I've created to help make responsive Typography easy. I first talked about Typi when I released the article on responsive typography in January 2016. Since then, I've added new functionalities to Typi to make it even better.

In this article, I'm going to tell you what Typi can do and how to use it.

Beating Procrastination

Published on:

Are you sick of procrastinating?

I am. I have procrastinated a lot in my life, and I don't want to procrastinate a moment further. But, somehow, procrastination always seem to creep up on me when I least expect it.

Recently, I got stuck with a serious bout of procrastination that paralyzed me for two full days. I couldn't get any work done. I felt incredibly stressed. This incident reminded me about how awful it was to feel useless and powerless.

Having gotten past this serious bout of procrastination, I want to take this opportunity to tell you what goes through my mind when I procrastinate. I want this to serve as a reminder to myself, and also to hopefully jolt you into action.

Moving from HTML Grid Systems to CSS Grid Systems

Published on:

I think it was a few months ago where someone asked me if I had any pointers to help them transit from Bootstrap's dom-littering .col classes to either Susy or Neat. It struck me that I haven't talked about this even though I've been using Susy grids for so long!

Anyway, this transition is a fairly big undertaking if you're doing it for the first time. Allow me to walk you through a four-step process that I use in this article.

Is Web Typography Completely Broken?

Published on:

I recently came across an article titled "Web typography is broken. Here's how we can fix it". A mix of emotions rushed through me while I read through it. I realized that the biggest argument Tom was making in the article was that web typography is broken because type doesn't sit perfectly on a baseline grid.

On one hand, I was happy to see people coming up with ideas to push code to their limits.

On the other hand, I'm unsettled. I asked myself: "Is there a need to make every line of text sit on the baseline"? I knew the importance of Vertical Rhythm and the baseline grid. I also knew that details matter when it comes to design. But is this one detail enough to break web typography?

As I browsed through the internet looking for answers, I found out that even great designers like Mark Boulton remarked that it would be cool if CSS gave us a pain free baseline grid.

This increased my urge to find out if web typography was completely broken. After all, if a great designer said the same thing, then sticking perfectly to the baseline grid should be important. Right?

PX, EM or REM Media Queries?

Published on:

Have you wondered if you should use px, em or rem for media queries? I had the same question too, and I never figured it out, not till now.

When I first created the mappy-breakpoint library, I used rem units. Then after a conversation with Sam Richard, I quickly switched to em instead because I found out there isn't a difference between the two.

In addition to em and rem, a popular unit of choice for media queries is the good old pixel. I wondered if it's possible to use pixel queries nowadays since px-zooming problem that used to exist was now resolved by all browsers.

This week, I finally decided to get to the bottom of this matter.

Viewport Unit Based Typography

Published on:

I talked about using rem and em for responsive typography and for building modular components in two blog posts previously. In both posts, comments about viewport based units inevitably comes into the picture.

I resisted working with viewport units for a while, believing that using them would be a pain in the ass because of the calculations involved.

Last week, I finally overcame the resistance and took a stab at exploring viewport units and how to use them in responsive typography.

Why is Vertical Rhythm an Important Typography Practice?

Published on:

You probably heard of the term Vertical Rhythm if you researched a little about typography on the web. It's one of the most important practices when working with typography. I've used Vertical Rhythm on all my sites ever since I read about it.

One day, it struck me that I haven't had a clue why vertical rhythm was important. Two more questions quickly arose following that thought: "How does Vertical Rhythm improve the design of the site? What lessons can I draw from Vertical Rhythm so I can improve my design?"

I decided to find out why. Here are my thoughts.

REM vs EM – The Great Debate

Published on:

One of the best practices to typography on the web is to use relative units like rem and em.

The question is, which should you use? There's been a longstanding debate between rem supporters and em supporters, believing that you should use one over the other.

In this article, you're going to find my take on rem vs em. You're also going to learn exactly what rem and em are, and how to use them to build modular components.

Star Rating Re-imagined with Flexbox

Published on:

The rating element is one UI pattern that you'll find everywhere on the web. I found myself building another rating element for the second time in my life a few weeks ago.

Since it's my second time working on the same element, I wanted to challenge myself to come up with a way that uses as little code as possible. Consequently, I managed to come up with a way to build the rating element with only 50 lines of code (HTML, CSS and JavaScript combined), which is incredibly sweet! This article shows how I did it.