Responsive Website Design Basics

Responsive website design basics

Responsive website design is the solution to a multi-screen problem. It ensures that users (your customers) have a good viewing experience no matter what type of device they’re using.

Over the last few years smartphone sales have exploded while the number of people buying a desktop machine has slowed. Add to that the fact that Google is now prioritizing mobile-friendly sites in its search results and you can see why it’s essential that your site is optimized for mobile, using responsive design techniques.

Responsive vs adaptive web design

It might seem the same, but it isn’t. Responsive design is fluid and adapts to the size of the screen no matter what the target device. Adaptive websites detect the screen size and load the appropriate layout based on what are called breakpoints. There is no right or wrong way to do it, but responsive design is usually the preferred technique. This may be because it takes much less work to both build and maintain.

The flow

As screen sizes become smaller, content starts to take up more vertical space and anything below will be pushed down. 

Relative units

The canvas can be a desktop, mobile screen or anything in between. Pixel density can also vary with iPhones and other devices having ‘Retina’ displays so we need units that are flexible and work everywhere. That’s where relative units like percents come in handy. So making something 50% wide means it will always take half of the screen (or viewport, which is the size of the opened browser window). 

Breakpoints

Breakpoints allow the layout to change at predefined points, i.e. having 3 columns on a desktop, but only 1 column on a mobile device. Most CSS properties can be changed from one breakpoint to another. Usually where you put one depends on the content. If a sentence breaks, you might need to add a breakpoint. But use them with caution – it can get messy quickly when it’s difficult to understand what is influencing what. 

Max and min values

Sometimes it’s great that content takes up the whole width of a screen, like on a mobile device, but having the same content stretching to the whole width of your TV screen often makes less sense. This is why Min/Max values help. For example having width of 100% and Max width of 1000px would mean that content will fill the screen, but don’t go over 1000px. 

Nested objects

Remember the relative position? Having a lot of elements depending on each other would be difficult to control, therefore wrapping elements in a container keeps it way more understandable, clean and tidy. This is where static units like pixels can help. They are useful for content that you don’t want to scale, like logos and buttons. 

Mobile or desktop first?

Technically there isn’t much of a difference if a project is started from a smaller screen to a bigger (mobile first) or vice versa (desktop first). Yet it adds extra limitations and helps you make decisions if you start with mobile first. Often people start from both ends at once, so really, go and see what works better for you. 

Web fonts vs system fonts

Want to have a cool looking fonts on your website? Use webfonts! Although they will look stunning, remember that each will be downloaded and the more you’ll have, the longer it will take to load the page. System fonts on the other hand are lightning fast, except when the user doesn’t have it locally, it will fall back to a default font. 

Bitmap images vs vectors

Does your icon have lot of details and some fancy effects applied? If yes, use a bitmap. If not, consider using a vector image. For bitmaps use a jpg, png or a gif, for vectors the best choice would be a SVG or an icon font. Each has some benefits and some drawbacks. However keep in mind the size – no pictures should go online without optimization. Vectors on the other hand often are tiny, but some older browsers won’t support it. Also, if it has lots of curves, it might be heavier than a bitmap, so choose wisely.

If you have any questions about design or branding, we're here to help.

Get in touch