Saturday, September 26, 2015

Comics of the week #306

http://ift.tt/1KW6597

Every week we feature a set of comics created exclusively for WDD.

The content revolves around web design, blogging and funny situations that we encounter in our daily lives as designers.

These great cartoons are created by Jerry King, an award-winning cartoonist who’s one of the most published, prolific and versatile cartoonists in the world today.

So for a few moments, take a break from your daily routine, have a laugh and enjoy these funny cartoons.

Feel free to leave your comments and suggestions below as well as any related stories of your own…

No medication needed

 

Life imitates art

 

If you’re going to gripe, get it right

Can you relate to these situations? Please share your funny stories and comments below…

300+ Seamless Photoshop Patterns – only $9!

Source

Vía Webdesigner Depot http://ift.tt/1R7KUSs

Friday, September 25, 2015

12 e-commerce solutions for selling on mobile

http://ift.tt/1LRGSZJ

According to recent research published on Internet Retailer, mobile commerce now accounts for 30% of all U.S. e-commerce; and mobile commerce is expected to grow 2.58 times faster than total e-commerce sales in 2015. This is in line with data that shows that mobile internet usage has now exceeded PC usage, with mobile devices currently accounting for 50.3% of all e-commerce traffic.

If you sell online, or if you’re planning to sell online, going for an e-commerce tool that makes it easy for mobile users to navigate and perform transactions on your store is a no-brainer. The following free e-commerce tools make it extremely easy to sell on mobile devices:

1. PrestaShop

PrestaShop is open source e-commerce software with over 250,000 online store owners, and a community of 800,000 members.

PrestaShop is renowned for its mobile commerce feature, which boasts a built-in mobile optimized shopping cart, a smooth mobile shopping experience, and a responsive front and backend. They also offer integration with Shopgate, a solution that helps you create an iOS and Android app for your users, leading to a more seamless mobile experience.

You can either download Prestashop’s software and set it up for yourself, or you can use their cloud-hosted option. Prestashop also has over 5,000 modules and themes that give you full customization of your mobile store.

2. MobiCart

MobiCart is an innovative piece of e-commerce software that helps you turn your existing e-commerce store to a mobile commerce app.

Depending on your needs, MobiCart works on its own or it can be linked to your existing website. MobiCart can also be integrated with other popular shopping cart software, so you don’t have to tamper with your existing e-commerce structure to be able to use it.

MobiCart integrates with Paypal and Stripe amongst other payment processors to create a seamless checkout experience for your users.

3. Shopify

Shopify is a global leader when it comes to e-commerce, and they help you create an online store from scratch, or if you prefer, add a store to your existing site.

While Shopify has lots of features and addons, like 100+ themes, the ability to edit your store’s HTML and CSS, and a web-based website builder, one of their key differentiators is their mobile commerce support.

Whether it is about fulfilment of orders, managing inventory, or knowing when an order is submitted, Shopify makes the process of running a store on mobile seamless. They also offer a 14 day free trial.

4. X-Cart

X-Cart is a free, fully customizable open source e-commerce solution that gives you a full-blown e-commerce site upon installation.

X-Cart operates as a standalone solution, and it comes with a neat design, a shopping cart, and sample product sets that you can customize. Its smooth user interface and support for Ajax enhancements allows for one-page checkout and allows your users to drag products to the cart with a mouse.

X-Cart features a mobile admin that helps you manage your e-commerce business on mobile devices, and their integration with Shopgate makes it extremely easy to serve all forms of mobile users. You can accept payments via Paypal, and they make it easy to integrate with dozens of other payment processing services in their store.

5. SquareUp

Many of us are familiar with Square as a payment service and a revolutionary mobile payments system. What very few people know, however, is that Square also has an e-commerce store builder called SquareUp.

SquareUp is a customizable e-commerce store builder that makes it easy to sell on mobile; registration is free, and they take 2.7% of online sales you make.

6. WooCommerce

This list wouldn’t be complete without WooCommerce, and this is because, unlike all the other options listed, WooCommerce makes it extremely easy to run an e-commerce store on WordPress.

If you’d like to run an ecommerce store on your WordPress site and you’re worried about support for mobile, then worry no more…WooCommerce has been downloaded by almost 10 million people, and it reportedly powers over 30% of all online stores; WooCommerce has an iOS app that helps you know what’s going on with your store on your mobile, and you can easily download other WordPress plugins to enhance your WooCommerce mobile functionality.

7. CS-Cart

With over 35,000 stores created with it, CS-Cart is leading e-commerce software that helps you build an e-commerce store on your own server. Their software is fully customizable, and they have hundreds of add-ons and themes in their marketplace that you can use to supercharge your online store.

Besides offering integration with over 80 payment processors, a noteworthy feature of CS-Cart is its ability to customize your storefront in real time; just head over to your store and make the exact changes you want to see.

While CS-Cart isn’t as mobile friendly as the other options listed above, it makes it easy to integrate with Twigmo, a set of tools that makes ecommerce stores extremely mobile friendly for users and merchants, without tampering with your existing CS-Cart store.

8. AbanteCart

AbanteCart is an all-in-one, open source e-commerce solution. It is powered by HTML5 and jQuery, and optimized for PhpStorm IDE.

AbanteCart offers integration with Paypal, Authorize.net and other payment processors. It also integrates with USPS, UPS and other shipping services to make product delivery easy.

AbanteCart is mobile friendly, leveraging HTML5 technology, and boasts a responsive e-commerce store that can be accessed on all devices. AbanteCart is supported by a marketplace with various extensions to help you get more features for your e-commerce store, and it is completely free.

9. AspxCommerce

AspxCommerce is another piece of open source e-commerce software for creating online stores. Some of its key features are a KPI (Key Performance Indicator) module that helps you track your store growth, user personalization, and its in-built A/B testing system; it is a performance focused e-commerce solution, and makes it easy to track performance in your store.

AspxCommerce features responsive design from its central core that makes it easy to use your store across all devices, and that makes it easy to serve mobile users.

10. Quick.Cart

Another robust shopping cart and e-commerce store system, Quick.Cart boasts about the fact that it takes only 1 minute to install and set up their software.

Besides an easy to manage admin panel, mobile support and a programmer/web developer friendly system, Quick.Cart’s major selling point is that it is built for speed. No matter how big your store is, it is simple and fast.

11. Ecwid

Ecwid is complete e-commerce software that makes it easy to sell on websites, mobile phones, social sites and online marketplaces. They offer a mobile responsive design that automatically adapts to any device, including mobile devices.

Ecwid boasts over 800,000 users, and they offer seamless integration with your existing site in minutes.

12. NEO LMS

NEO LMS is a unique e-commerce service that focuses on helping users sell classes on their online store.

NEO LMS is a cloud-based platform, and some of its key features are gamification to motivate students of your classes, integration with leading payment processors like Authorize.net, Stripe, and Paypal for payments, and full customization to various parts of your store. It also supports over 20 languages, with automatic translation allowed for other languages.

Besides making it easy for mobile users to transact on your store, they also make it easy for you to access all their features on a mobile or tablet device.


9 Contract Templates for Creative Freelancers – only $37!

Source

Vía Webdesigner Depot http://ift.tt/1Vdb5N9

Thursday, September 24, 2015

Do web designers really need to know UX?

http://ift.tt/1KDyYmQ

The short answer is “yes”, but it is not as straight forward as that; not all web designers need to be UX designers or UI designers, but they should all have some sort of basic UX understanding since their designs play a significant part in how users experience a product or service.

Why is UX important to web design?

When a user visits a website or app, the first thing that they experience is the design. Design plays a huge part in shaping the user experience while supporting the brand’s voice and character.

Without… basic user experience…companies may end up with a lovely looking website; but zero conversions

While platform, app and product companies most always hire a UI Designer, web designers usually design websites. Websites, however, are not that different from an app interfaces: there is a menu that guides the user through the content and, ideally, through a funnel; the user needs to be able to understand where the brand wants them to go with an easy to follow intuitive flow.

Without implementing at least basic user experience elements in website design, companies may end up with a lovely looking website; but zero conversions, high bounce rates, and disgruntled visitors.

Blogs and news sites are talking about the “death of web design”, claiming that web design and web designers are a part of the past. The idea behind this trendy topic is that web designers can no longer be just web designers. They are either UX designers or web developers that can design. Companies, and especially startups, want to hire one person to take care of their design requirements without having to hire a UX expert as well.

UX 101

Today, more and more marketers and companies are beginning to realize the importance of investing in creating a great user experience for their audiences throughout the entire customer lifecycle. Digital walkthroughs are added, support channels are optimized, and content is written with the user in mind. This has a direct affect on all stages of the customer lifecycle.

Acquisition

When putting an emphasis on user experience throughout the acquisition channels, conversion rates instantly increase. This is done by making the conversion funnel from ads, blogs, or social posts, to a landing page, easy to understand and visually pleasing to the user.

Users that need to spend time finding the next step in the funnel will move on to a competitor. While content plays a huge part of the conversion cycle, web design is the first impression the user gets and they need to instantly know where the company wants them to go in order to move forward.

Support

Customer support is often neglected, or seen as something that requires less investment. It is not something web designers usually think about, but they should.

Once a customer purchases or subscribes, it is important to provide them with the best possible service and support in order to lower support expenses and increase customer satisfaction. One of the ways a lot of companies get this done is by creating a support interface or website for their existing clients. The design of this site needs to be easily understandable, it needs to take into consideration the audience demographic, and it needs to help them get to the information they need easily without having to request human support via chat or phone.

Retention

The last part of the customer lifecycle is user retention. It is all about getting the customer to continue paying for the company’s services or products. This relies completely on a user experience that promotes customer satisfaction and web design plays an important part throughout every step to help lead to this point.

Today’s web designers need to think like user experience experts and create designs for their clients. It is easy to fall into the trap of creating something “pretty”, when in reality the purpose of the design is to enhance the audience’s experience. Steve Jobs said, “If the user is having a problem, it’s our problem”.

How does UX change the web design process?

Every web designer works a little differently. Many prefer discussing the clients’ needs, going over their existing visual branding language, and sending over one or two designs for approval. UX changes that process a little bit and adds a few more steps in-between.

Here are a few things to consider: Discussing UX with the client is important. If the client is experienced in UX and there is a marketing team to work with, that makes things much easier. Otherwise, it is the web designer’s responsibility to discuss the importance of enhancing the user experience, understand what the client is looking for in the design and what the purpose of the website is (generate leads, provide information etc.), and what the brand language is.

The most important information a designer needs in order to create a UX-oriented design is the audience. Don’t just ask what their age, gender, and income is. You need to know where they hang out, what they like to buy and do, and what appeals to them visually. Once the web designer has all of the information at hand, they can create a template or rough design of what they suggest, show it to the client and explain why this specific structure was chosen. It should support the goals discussed in the previous point with the user experience in mind.

Take the entire conversion funnel and customer lifecycle into account so that you create a design that is consistent for the user

After the rough design is approved, that is the time to dive deeper into the design itself. Choose the colors and visual elements based on the brand language and what you know will appeal to the target audience. Make sure that the website is easy to navigate through by showing it to a few people who are not familiar with the brand and what it offers. Take the entire conversion funnel and customer lifecycle into account so that you create a design that is consistent for the user.

User experience is not something you learn once. It is ever changing, intuitive, and involves a lot of trial and error with every new audience you encounter. However, it is important to understand that user experience is a part of everything a company does, or at least it should be. Every action taken should have the user experience in mind and it all starts with the design.

Web designers that can offer user experience expertise and thinking in their design strategy are worth more to companies and are in higher demand.

 

Featured image, UX design image via Shutterstock.

LAST DAY: Marianina Extended Font Family (24 Fonts) – only $27!

Source

Vía Webdesigner Depot http://ift.tt/1OUsZPJ

Wednesday, September 23, 2015

Opera rebrands with elegant new identity

http://ift.tt/1NSXWoe

To celebrate their 20th birthday, Opera are launching a new brand identity, the most visually striking element of which, is their new logo.

Gone is the familiar high-contrast ‘O’, to be replaced with a chunky, three dimensional ring; intended to convey the idea of Opera as a conduit to the Web, and to the information, entertainment, and services, therein.

Throughout its life, Opera’s oldstyle ‘O’ has represented the company in one stylized form or another. The new, simplified form is inline with the trend away from diverse logotypes towards a more corporate geometric sans.

this is an identity that moves the company forward, whilst properly honoring the brand’s history

In Opera’s case, what’s particularly successful about the design, is that it implies simplification, whilst retaining the essence of prior designs. The curves of the three dimensional ring taper the top and bottom of the shape, recalling the contrast in the earlier form. Unlike the recent rebrands of Facebook, and Google, this is an identity that moves the company forward, whilst properly honoring the brand’s history.

Designed over the last year by Anti, with creative strategy work by DixonBaxi, the new identity is rolling out on Opera Mini, followed by the company’s other departments over the coming months.

Opera’s reputation is as an alternative browser, but that belies the true scale of the enterprise; Opera currently boasts over a billion users each month. They’re hoping this rebrand will grow them further. According to Sean D’Arcy, Opera’s VP of global marketing and distribution: “[They] want to enable more people, in more places, to experience what matters, when it matters most.”


4 Fabulous Design Tools for Textures, Frames, Styles, and Design Elements – only $17!

Source

Vía Webdesigner Depot http://ift.tt/1KAxgTd

Tuesday, September 22, 2015

Modern web layout with flexbox

http://ift.tt/1LtcitO

Let me say this first: flexbox is easy. Whether it’s because of early-adoption issues, or because we’ve learned to think in terms of floats and blocks, I often hear from web designers that they think Flexbox is complex to implement. But I repeat: flexbox is easy.

There’s one trick to understanding flexbox which I’ll teach you, after which all will be clear. But first, I want to talk about what flexbox is.

What is flexbox?

Flexbox (or the Flexible Box Layout Module to give it its correct name) is a set of CSS properties that combine to lay out content in a responsive way.

Flexbox is the first CSS layout technique that works for the modern web. It’s fair to say that until flexbox was supported, there was no layout technique that worked well with responsive web design.

Plenty of hacks have been floating around, like setting elements to display:inline-block and allowing them to wrap. But this presented a number of problems for flexible sites, not least the lack of control and the knock-on effect of elements resizing. For this reason, many responsive websites still use JavaScript to position content.

What is flexbox for?

Flexbox is described by the W3C as being intended for laying out UI elements—things like menu items—it’s not intended for laying out whole pages.

The reason it’s not intended for layout out whole pages, is that flexbox has a companion CSS module, the Grid Layout Module which is intended for layout. Grid Layout is considered to be the most appropriate technique for full page layouts. Sadly there is very limited support for grid at the present time, and by ‘limited’ I mean ‘none.’ Even the latest version of Chrome fails to support it without flags.

Happily browser support for flexbox is much more comprehensive. And because it solves so many modern layout problems, flexbox is an ideal tool until grid is finally adopted.

Styling components

Flexbox is ideal for styling components on a page. The real power of flexbox, and the reason it works so much better than other layout options, comes from declaring styles on groups of items instead of individual items.

When it comes to layout, we rarely need to position a single item—if we’re planning to do so, it’s much better to use positioning. Flexbox works best when it controls how groups of elements relate to each other.

Always design a thing by considering it in its next larger context – a chair in a room, a room in a house, a house in an environment, an environment in a city plan. — Eliel Saarinen

As such, the flexbox specification is divided into two parts, one set of properties that refer to the container element, and one set of properties that refer to the elements within.

Browser support

Browser support is, typically, a complex question. Made all the more complex for flexbox because flexbox has several different syntaxes. Early indecision, independent development by some browser suppliers, and an iterative process, has left us with several different versions of flexbox that all need to be catered to.

Happily, with the addition of some browser prefixes for legacy browsers, we can now rely on it. According to caniuse.com, of current mainstream browsers only IE9 will present a problem for us.

Fortunately, like all CSS, if flexbox fails, it fails silently. Meaning that IE9 will just ignore it.

Flexbox versions

Thanks to a staggering lack of cooperation between various branches of committees and corporations, flexbox’s implementation has very nearly rivalled the chaos of the early ’00s when every single browser implemented every single property uniquely, and incorrectly, at the same time. Giving everyone the benefit of the doubt, flexbox’s three implementations were simply an iterative approach that has resulted in the most helpful common solution.

There are three versions of the flexbox syntax that you need to be aware of: old, inbetween, and new. Different browsers support different syntaxes, IE10 for example supports the inbetween syntax.

Just like browser prefixes, we write Flexbox syntax from oldest to newest, so that the newest supported syntax overrides the older syntaxes.

For example, we write display:flex like so:

display:-webkit-box; /*old prefixed for webkit*/
display:-moz-box; /*old prefixed for mozilla*/
display:-ms-flexbox; /*inbetween prefixed for ie*/
display:-webkit-flex; /*new prefixed for webkit*/
display:flex; /*new*/

In the interests of clarity, I’m not going to dive into the older syntaxes, or debate the merits of pre-processors, post-processors, and different conversion scripts. In all of my examples I’m going to use the correct, new syntax.

When it comes to production code I use a series of Sass mixins to extend flexbox support to older browsers.

There’s an excellent Sass mixin here, which you can either use to prevent your code bloating, or extract the legacy syntax.

The secret to understanding flexbox

The secret of flexbox, is that it isn’t a box at all. Up until now, all layout on the Web used a cartesian system of x and y, to plot points. Flexbox, by contrast, is a vector.

Sounds great, right? Flexbox is a vector, meaning we define a length and we define an angle. We can change the angle, without affecting the length; and we can alter the length, without affecting the angle.

This new approach means that some of flexbox’s terminology is initially complex. For example, when we align items to the top of a flex container, we use flex-start, not top—because if we change the orientation, flex-start will still apply, but top will not.

Once you understand this approach, much of flexbox is demystified.

How to use flexbox containers

Flexbox’s syntax is split into two groups: those properties that control the container, and those properties that control the container’s direct descendants. The former is the most useful, so let’s start there.

Getting started

Let’s say we want to space out items within a block. We want them spaced evenly. Using flexbox it’s really easy to do. The first thing we need is some markup to try this out on:

<!DOCTYPE html>
 <html>
 <head>
 <meta charset="utf-8">
 <title>Flexbox Layout</title>
 
 <style>
 
 .house {
 background:#FF5651;
 }
 
 .room {
 background:#00AAF2;
 width:90px;
 height:90px;
 }
 
 </style>
 
 </head>
 
 <body>
 
 <div class="house">
 <div class="room kitchen"></div>
 <div class="room washroom"></div>
 <div class="room lounge"></div>
 <div class="room bedroom"></div>
 <div class="room bedroom"></div>
 </div>
 
 </body>
 </html>

It’s a simple HTML page, with a house div, that contains five room divs each of which has a class identifying their function, kitchen, washroom, lounge, and bedroom.

What we’re going to do is set the house to be a flexbox container. Any flexbox properties we set on house will then be applied to its children (the rooms).

Creating a flexible box

In order to layout the rooms we need to first declare house as a flexbox container, and then tell it how we want the child elements arranged.

To declare house as a flexbox container we use the following code:

.house {
background:#FF5651;
display:flex;
}

And that’s it. We’ve created a flexible box. All we need to do now is tell flexbox how to layout the rooms. We can do that using the justify-content property.

justify-content has five possible values: center, flex-start, flex-end, space-around, and space-between. These center the items, align them to the start (which is either top or left, as we’ll discuss below), the end (which is either the bottom or the right), spaces them with equal space around each item, or with equal space between each item, respectively.

We’ll use space-around:

.house {
background:#FF5651;
display:flex;
justify-content: space-around;
}

Here’s a demo. Notice how there’s double the space between the items as there is on the two outer edges? That’s because each item has the same space to the left and to the right. If we had used space-between instead there would be no space on the edges.

I’m not sure about you, but the washroom in my house is a little smaller than the lounge, and although I have a small kitchen, I’d love a much larger one. So let’s make some additions to our code to reflect that:

.kitchen {
width:300px;
height:300px;
}

.washroom {
width:45px;
height:60px;
}

As you can see in this example, our rooms are still evenly spaced. Even though we’ve changed the size. Flexbox is brilliant at organizing content.

Changing the angle

As we discussed above, one of the reasons that flexbox works so well for designers is that it is described as a vector. At present, flexbox only supports four angles: 0, 90, 180, and 270 degrees. So it’s a lot simpler to think of them as an axis.

To change the axis, we use the flex-direction property, which has four possible values: row (the default — as you can see in the examples above, our rooms are laid out left to right), row-reverse, column, and column-reverse.

If we change the flex-direction to column, you’ll see in this demo that the rooms are now laid out vertically, top to bottom:

.house {
background:#FF5651;
display:flex;
justify-content: space-around;
flex-direction:column;
}

As I’m sure you can guess, row-reverse and column-reverse reverse the order of the items in your flex container.

Flex vs. Flex-inline

You’ll notice in the last example that while house stretches all the way across the viewport, it does stretch to the full height, even when set to flex-direction:column.

In order to play nicely with CSS’ cartesian-based coordinate system the flexbox container is treated as a block level element.

Just as display:block has a companion display:inline-block, so to display:flex has display:inline-flex.

inline-flex is currently most useful if you’re dropping flexbox elements into an existing layout and you need it to play nice with floats and positioned elements.

Cross-axis alignment

As we’ve seen, flexbox doesn’t mind whether it lays out horizontally or vertically, whichever direction you choose is considered to be flexbox’s primary axis.

But flexbox also allows us to control position along the opposite, secondary axis.

Position on the secondary axis is controlled by the align-items property; it has five possible values: baseline, center, flex-end, flex-start, and stretch.

baseline will normally be the most useful option. It ensures that the baselines of text line up. To test this, we need to make some modifications to our HTML file:

<!DOCTYPE html>
 <html>
 <head>
 <meta charset="utf-8">
 <title>Flexbox Layout</title>
 <link href='http://ift.tt/1renmOV' rel='stylesheet' type='text/css'>
 <style>
 
 body
 {
 font-family: 'Open Sans', sans-serif;
 color:#FFFFFF;
 }
 
 .house {
 background:#FF5651;
 display:flex;
 justify-content: space-around;
 }
 
 .room {
 background:#00AAF2;
 width:90px;
 height:90px;
 }
 
 .kitchen {
 width:300px;
 height:300px;
 font-size:3em;
 }
 
 .washroom {
 width:60px;
 height:60px;
 
 font-size:0.4em;
 }
 
 </style>
 </head>
 <body>
 
 <div class="house">
 <div class="room kitchen">Kitchen</div>
 <div class="room washroom">Washroom</div>
 <div class="room lounge">Lounge</div>
 <div class="room bedroom">Bedroom</div>
 <div class="room bedroom">Bedroom</div>
 </div>
 
 </body>
 </html>

You’ll see I’ve added some text, and imported, then applied a Google font. I’ve also changed the font-size in the kitchen and washroom so there’s a clear distinction.

When we set the align-items property to baseline you’ll see in this demo that the baseline of the text matches up.

.house {
background:#FF5651;
display:flex;
justify-content:space-around;
align-items:baseline;
}

align-items:center center aligns, either vertically (if flex-direction:row, or flex-direction:row-reverse) or horizontally (if flex-direction:column, or flex-direction:column-reverse). Here’s a demo.

align-items:flex-start aligns to the top, and align-items:flex-end aligns to the bottom (if flex-direction:row, or flex-direction:row-reverse), or to the left and right (if flex-direction:column, or flex-direction:column-reverse). Here’s a demo.

stretch, is another highly useful option. stretch will resize the items, so that each one is the same height (they’ll grow, not shrink). Here’s a demo.

In our other examples, we’ve explicitly set the height of the items, which is enough to override flexbox, so to see align-items:stretch work correctly you’ll need to remove the height from all the classes except one.

Wrapping onto multiple lines

So far we’ve used flexbox to layout elements so that they resize across the space, but what happens when the content of the items is too large to fit onto one line?

To demo this, I’m going to increase the size of my rooms:

<!DOCTYPE html>
 <html>
 <head>
 <meta charset="utf-8">
 <title>Flexbox Layout</title>
 <link href='http://ift.tt/1renmOV' rel='stylesheet' type='text/css'>
 <style>
 
 body
 {
 font-family: 'Open Sans', sans-serif;
 color:#FFFFFF;
 }
 
 .house {
 background:#FF5651;
 display:flex;
 justify-content:space-around;
 align-items:baseline;
 }
 
 .room {
 background:#00AAF2;
 width:180px;
 height:90px;
 font-size:1.5em;
 }
 
 .kitchen {
 width:450px;
 height:300px;
 font-size:4.5em;
 }
 
 .washroom {
 width:120px;
 height:60px;
 font-size:0.6em;
 }
 
 </style>
 </head>
 <body>
 
 <div class="house">
 <div class="room kitchen">Kitchen</div>
 <div class="room washroom">Washroom</div>
 <div class="room lounge">Lounge</div>
 <div class="room bedroom">Bedroom</div>
 <div class="room bedroom">Bedroom</div>
 </div>
 
 </body>
 </html>

Here’s how it looks now.

If you shrink down your browser window you’ll see that the content gets cut off, as there isn’t space for it. Happily flexbox defines a flex-wrap property for just this eventuality, which has three possible values: no-wrap (the default), wrap, and wrap-reverse.

wrap causes any items that would extend beyond the container to wrap onto a subsequent line, just as a line of text wraps.

.house {
background:#FF5651;
display:flex;
justify-content:space-around;
align-items:baseline;
flex-wrap:wrap;
}

If you squish down your browser you’ll see in this demo the items now wrap onto new lines. Notice how the align-items:baseline property is still applied? Flexbox’s real power is in combining its properties.

One important concept, that I’ll cover later, is that flex-wrap:wrap-reverse does not reverse the order of the items, it causes any items that would extend beyond the container to wrap onto a prior line, as seen in this demo.

Using flexbox’s shorthand properties

Like many CSS properties, some flexbox properties have shorthand versions that are implemented more consistently by browser manufacturers.

The flex-flow property is shorthand for the flex-direction and flex-wrap properties. So instead of writing:

flex-direction:row-reverse;
flex-wrap:wrap;

We can use the shorthand:

flex-flow:row-reverse wrap;

Cross-axis alignment (part 2)

Above, we used the align-items property to align items to the baseline, position, and stretch items. As you can see in the last example, that is still occurring, but it occurs on a line by line basis.

When our items have been wrapped, we have the option to set how they will be laid out on the secondary axis if the container is larger than required.

If we set the min-height of our house to 1200px, our layout looks like this.

.house {
background:#FF5651;
min-height:1200px;
display:flex;
justify-content:space-around;
flex-wrap:wrap;
}

We can now use the align-content property to lay out the items across the full secondary axis.

The align-content property has six settings: center, flex-end, flex-start, space-around, space-between, and stretch. These values deliver the same results as elsewhere: centering, aligning to one end, spacing evenly, or stretching.

Here’s a demo with the property set to space-around.

How to use flexbox items

Until now, all of the properties we’ve looked at have been set on the container element. In order to fine-tune items flexbox also provides us with a number of properties that can be set on individual items.

To clarify this, let’s remove some of our code:

<!DOCTYPE html>
 <html>
 <head>
 <meta charset="utf-8">
 <title>Flexbox Layout</title>
 <link href='http://ift.tt/1renmOV' rel='stylesheet' type='text/css'>
 <style>
 
 body
 {
 font-family: 'Open Sans', sans-serif;
 color:#FFFFFF;
 }
 
 .house {
 background:#FF5651;
 
 display:flex;
 
 }
 
 .room {
 background:#00AAF2;
 height:90px;
 }
 
 .kitchen {
 height:300px;
 }
 
 .washroom {
 height:60px;
 }
 
 </style>
 </head>
 <body>
 
 <div class="house">
 <div class="room kitchen">Kitchen</div>
 <div class="room washroom">Washroom</div>
 <div class="room lounge">Lounge</div>
 <div class="room bedroom”>Master Bedroom</div>
 <div class="room bedroom">Bedroom</div>
 </div>
 
 </body>
 </html>

Here’s how it looks.

Controlling individual items

The first flexbox item property is the confusingly named flex property. flex is a value of the display property on the container, but it is also a property in its own right.

The flex property is shorthand for the flex-grow, flex-shrink, and flex-basis properties. The role of these properties is to stretch or squash the size of content so that it fills the space entirely.

The flex-grow property tells the items that they can enlarge, if required, so that the items fill the width (for flex-direction:row) and the height (for flex-direction:column) fully.

The flex-grow property takes a ratio. So if we set the flex-grow property to 1, all of our items will be the same size as you can see here.

.room {
background:#00AAF2;
height:90px;
flex-grow:1;
}

In addition to taking an equal size, we can also set different ratios. I still want my kitchen to be bigger than my washroom, so let’s fix that in this demo.

.kitchen {
height:300px;
flex-grow:2;
}

flex-shrink works exactly the same as flex-grow except that it shrinks the item if required, instead of expanding it.

If you resize the browser you’ll see that at different sizes, my kitchen isn’t exactly double the width of the other rooms. That’s due to the flex-basis property.

flex-basis determines how the flex-grow and flex-shrink properties are calculated. It has 2 values: auto (the default), and 0.

If set to 0, the whole of the item is taken into account. If set to auto it is the padding around the item’s content that is resized. In other words, 0 ignores the size of the item’s content when calculating, and auto takes it into account. There’s a handy diagram provided by the W3C that explains this.

Here’s a demo of what happens when I set flex-basis:0 on the above example.

flex-basis:0 is particularly useful if you want to space items evenly, regardless of their content.

As stated above, the flex property is a shorthand for these properties, and you’ll find it’s the most reliable way of setting these values.

The order of values is flex-grow, flex-shrink, flex-basis. So, to set a grow value of 2, a shrink value of 1 and a basis of 0, you’d use:

.room {
background:#00AAF2;
height:90px;
flex: 2 1 0;
}

Controlling order with flexbox

One of the best features of flexbox is its ability to change the order of items, without affecting the markup; this is particularly useful for accessibility, as it allows us to code markup appropriately, and then display it optimally.

To do this we use the item’s order property.

Looking at our example, the washroom is right next to the kitchen. I’d rather it was next to the bedrooms, so I can hop straight into the shower of a morning, so let’s move it. It’s currently the 2nd item, we want it to be the third. So we set its order property accordingly in this demo.

.washroom {
height:60px;
order:2;
}

See how it hopped all the way to the end of the row? It’s next to the bedrooms, but not how we intended. This is a major gotcha in flexbox, because many developers (myself included) initially expect order to operate like an array.

order actually works like CSS’ z-index, meaning that if you don’t explicitly set an order for an item it is assumed to be lower in the order than an item for which a value has been explicitly set.

We want the washroom to swap with the lounge, so in this demo the only other items that need an order are the bedrooms.

.washroom {
height:60px;
order:2;
}
 
.bedroom {
order:3;
}

Notice how both bedrooms share the same order number? In cases like those the browser will fall back on the DOM order.

Breaking alignment

The final item property is align-self. It is used to change the item’s alignment on the secondary axis. align-items is used to align all of the items, and this property gives you the option to opt-out of that blanket setting.

It takes the same five values as the equivalent property on the container: baseline, center, flex-end, flex-start, and stretch.

Here’s a demo of the washroom re-aligned.

.washroom {
height:60px;
order:2;
align-self:flex-end;
}

Modern web layout with flexbox

Flexbox is a powerful option for laying out content. Although it’s not meant for laying out whole pages, its superior support to Grid Layout makes it a great option, especially for mobile-first websites.

To demonstrate, we’re going to put together a simple page that uses some of the techniques described above.

Getting started

First up is our markup, and some basic styles for the page.

<!DOCTYPE html>
 <html>
 <head>
<meta charset="utf-8">
 <title>Flexbox Demo</title>
 <link href='http://ift.tt/1renmOV' rel='stylesheet' type='text/css'>
 <style>
 
 body {
 margin:0 2em;
 font-family: 'Open Sans', sans-serif;
 } 
 
 a {
 text-decoration:none;
 }
 
 #header > a {
 padding:1em 0;
 }
 
 #header > .logo {
 font-size:2.4em;
 }
 
 ul {
 /* remove list styling */
 list-style: none;
 margin:0;
 padding:0;
 }
</style>
</head>
 <body>
 
 <div id="page">
 
 <ul id="news">
 <li class="newsItem">A</li>
 <li class="newsItem">B</li>
 <li class="newsItem">C</li>
 <li class="newsItem">D</li>
 <li class="newsItem">E</li>
 <li class="newsItem">F</li>
 <li class="newsItem">G</li>
 </ul>
 
 <nav id="header">
 <a class="logo" href="#">Logo</a>
 <a href="#">Ultricies</a>
 <a href="#">Ridiculus</a>
 <a href="#">Condimentum</a>
 </nav>
 
 <nav id="footer">
 <a class="logo" href="#">Logo</a>
 <p>Etiam porta sem malesuada magna mollis euismod. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>
 <ul>
 <li><a href="#">Elit Sem</a></li>
 <li><a href="#">Condimentum</a></li>
 <li><a href="#">Parturient</a></li>
 <li><a href="#">Vestibulum</a></li>
 </ul>
 </nav>
 </div>
 </body>
 </html>

As you can see, I have a div with the id page. Inside page I have an unordered list of news items. Following the news items I have the header, which is below the news content for the benefit of accessibility. Finally, I have a footer.

Changing the content order

The first thing I want to do is to move the header up to the top of the page. To do that, we’ll set page to be a flexbox container. Then we’ll set the direction to column. Then assign an order to each of page’s child elements.

#page {
display:flex;
}
#page {
display:flex;
flex-flow:column;
}
#header {
order:1;
}
 
#news {
order:2;
}
 
#footer {
order:3;
}

Here’s how it looks.

Nesting flexbox containers

The next step is to lay out the header. Child elements inside flexbox containers can be flexbox containers in their own right, so we can use flexbox to evenly space the header elements.

Let’s set the header to be a flexbox container, then let’s space the content evenly, with no extra padding at the sides, and finally let’s make sure the menu items are on the same baseline as the logo.

#header {
order:1;
display:flex;
justify-content:space-between;
align-items:baseline;
}

Here’s how it looks.

Complex content wrapping

Our news items are going to be placeholders for featured stories, so they need to be a substantial size in order to make room for text, and an image, or video. So we need them to wrap.

Let’s set the news div to be a flexbox container. Next, let’s give the newsItems some minimum dimensions and some color so we can see them clearly.

#news {
order:2;
display:flex;
}

.newsItem {
min-width:300px;
min-height:250px;
background:#79797B;
border:1px solid #706667;
}

Here’s how it looks.

Now we need to set the news container to wrap, and the newsItems to expand to fill the available space.

#news {
order:2;
display:flex;
flex-flow:row wrap;
}

Here’s how it looks.

The challenge we have now, is that when the newsItems aren’t evenly distributed, the largest item (G) is at the bottom. On most sites, we want to give the largest amount of space to the topmost content. We can fix this by setting the wrap to wrap-reverse.

#news {
order:2;
display:flex;
flex-flow:row wrap-reverse;
}

Here’s how it looks.

That re-orders the items, but reading from top left, they’re now out of order. So we need to reverse the order, by setting the direction to row-reverse.

#news {
order:2;
display:flex;
flex-flow:row-reverse wrap-reverse;
}

Here’s how it looks.

That places the items in consecutive order, reading left to right, top to bottom; with the larger items always at the top. But I don’t want to have to alter the order of stories in my markup to force item A to come before item B. So the last thing I need to do is change the order of the items.

.newsItem:nth-of-type(7) {
order:1;
}
.newsItem:nth-of-type(6) {
order:2;
}
.newsItem:nth-of-type(5) {
order:3;
}
.newsItem:nth-of-type(4) {
order:4;
}
.newsItem:nth-of-type(3) {
order:5;
}
.newsItem:nth-of-type(2) {
order:6;
}
.newsItem:nth-of-type(1) {
order:7;
}

Here’s how it looks.

Mixing flexbox and media queries

The last element to be styled is the footer. We want to lay it out, much like the header, but because the footer only has three child elements (compared to the header’s four) we’re going to set the paragraph to be twice as wide as the logo, and the list.

#footer {
order:3;
display:flex;
align-items:baseline;
flex-direction:row;
}
 
#footer > * {
flex:1;
}
 
#footer > p {
flex:2;
padding-right:2em;
}

Here’s how it looks.

That works great at desktop sizes, but shrink your browser down and you’ll see that it’s too cramped on small devices. So let’s change the code so that it’s laid out as columns below 600px, and reverts to a row above 600px.

#footer {
order:3;
display:flex;
align-items:baseline;
flex-direction:column;
padding:2em 0;
}
 
#footer > * {
flex:1;
}
 
#footer > p {
flex:2;
}
 
@media only screen and (min-width:600px) {

#footer {
flex-direction:row;
padding:0;
}
 
#footer > p {
margin-right:2em;
}
}

Here’s how it looks.

Conclusion

And there you have it. A modern approach to laying out content on a web page, that is widely supported and easy to implement.

The power of flexbox is that its properties can be combined to give us precise control over our layouts, with the simplest possible syntax.

 

Featured image, flexible image via Shutterstock.

Trend Rough Family Featuring 20 Fashionable Fonts – only $19!

Source

Vía Webdesigner Depot http://ift.tt/1KszCFT

Monday, September 21, 2015

How directional cues maximize UX and boost conversions

http://ift.tt/1WdgVvd

If there’s a common question that web designers ask themselves, it’s usually: How can I improve user experience? User experience is always front and center—or at least it should be—in design; without users to read or view that content, click that call to action, or sign up on that form, no website would have a purpose.

Designers have a number of different tricks up their sleeve to make UX that much better, and one of those is the use of directional cues. These directional cues aren’t subtle; their job is to make it so that every last user can’t miss that big, ol’ call to action button somewhere on the page. In other words, directional cues are like huge billboards on a page, literally pointing the user in a very clear direction.

The strategy behind their inclusion is to increase all-important conversions. Anything you can do as a designer, to increase conversions, you should do. Directional cues help do this efficiently, here’s how:

What are directional cues?

Directional cues come in all shapes and sizes, and you may even be surprised to learn what can pass as a directional cue. Furthermore, there are both explicit (very obvious) and implicit (more low-key) directional cues.

Page elements that can be considered explicit directional cues include:

  • Arrows
  • Fingers pointing
  • Eye direction (when people’s faces are looking at a call to action)
  • Lines
  • Curves

Kin HR’s site uses the gazes of models in the background to focus attention on their calls to action in the foreground. (The effect is particularly pronounced on a tablet viewport.)

Here’s an ideal example of an explicit directional cue from Salesforce’s landing page. Note the use of the obvious arrow directing the user’s eye to the short web form.

Implicit directional cues are far easier to miss, and those elements that constitute an implicit directional cue are debatable, but they could include:

  • Color
  • Repetition of size, color and shape
  • Hierarchy

For an example of an implicit directional cue, check out The Daily Egg’s about us page. The email newsletter sign-up form has a green background, but white fields. This noticeable contrast draws the eye, thus providing an implicit cue to fill it out.

How do you clarify page goals?

Every page has a purpose, which is usually to get a visitor to buy, sign up for, or subscribe to something. When users don’t understand what the page’s purpose is—such as when the navigation is poorly implemented or the page is much too cluttered—the user experience will drastically decline.

This is where a crystal clear directional cue can be the page’s lifesaver. After all, when the users receive cues on what they’re supposed to do on the page, then their experience drastically improves. Their confusion and frustration is replaced by a confidence and efficiency that are brought about by great organization, design and planning.

Fittingly, a superb example of a directional cue comes to us on a page that talks about the definition of a directional cue. On Unbounce’s definition page, note the huge arrow pointing to the right and thereby prompting visitors to actually read the definition of a directional cue! Thanks to this simple page element, users can clearly understand that the goal of the page is to read and understand this definition.

Empowering users with directional cues

Visual Website Optimizer looked at a page displaying an ad for Sunsilk shampoo. The results were astounding: when the woman’s eyes in the ad actually looked to her right—at the bottle of shampoo, instead of into space—the number of users who finally looked at the bottle skyrocketed to 84%, from just a meager 6% when the original ad had the woman looking straight ahead.

Eazers.com is a German site for coupons that effectively uses the same technique; the gaze of the model draws your eyes straight to the central calls to action.

There’s no doubt that directional cues are very beneficial on a page, and it comes as no surprise, that the improved user experience provided by directional cues also naturally boosts the conversion rate on sites, as the two are interlinked. When the user experience of your site increases, people convert at higher rates because they understand what they’re supposed to do.

Users sometimes know exactly what they’re looking for when they visit your site. These are likely return visitors who want to use what they used the last time they were on your site. For these types of users, it’s paramount that your user experience is top-notch because the last thing you want to do is repel sure-bet conversions! One of the easiest ways to ensure a great user experience for a returning visitor who wants to use the same feature again is by providing a directional cue that’s easy to spot, interpret and then click on.

Don’t take directional cues for granted

The next time you’re designing and think of dismissing directional cues as just a bunch of unnecessary arrows, lines or curves, think again! Research has shown that they’re definitively tied into the user experience and, consequently, a page’s conversion rate. To help your site visitors experience a much better user experience—and your clients obtain a much better conversion rate—you’ve got to incorporate these directional cues into your design.

More than issuing an instruction, directional cues are heavy-hints at what the user is expected to do. Some users won’t, some will, but the important thing is that they clearly understand what the ‘normal’ use of the page is. Directional cues are one of the best tools designers have for enhancing UX, and helping users to boost conversions for your client.

Lifetime Access to ALL WordPress Themes from TeslaThemes – only $65!

Source

Vía Webdesigner Depot http://ift.tt/1LI8Nvd

Sunday, September 20, 2015

Popular design news of the week: September 14, 2015 – September 20, 2015

http://ift.tt/1NEV9NO

Every week users submit a lot of interesting stuff on our sister site Webdesigner News, highlighting great content from around the web that can be of interest to web designers. 

The best way to keep track of all the great stories and news being posted is simply to check out the Webdesigner News site, however, in case you missed some here’s a quick and useful compilation of the most popular designer news that we curated from the past week.

Note that this is only a very small selection of the links that were posted, so don’t miss out and subscribe to our newsletter and follow the site daily for all the news.

The Incredible Story of How a Funny Website ‘Personally Offended’ Apple’s Jony Ive

 

Simpla: An Alternative to the CMS

 

Why Google Irritates You

 

Six Stunning Style Guides

 

10 Rules of Composition all Designers Live by

 

A Designer’s Most Powerful Words

 

Can Atomic Be Google Docs for Designers?

 

Why is it so Easy to Get “Mobile First” Wrong?

 

UX Design Misconceptions

 

Why I Cut my Income in Half and Stopped Freelancing

 

Your Mac Charger, Explained

 

Web Designers Take Centre Stage in New Sitcom

 

Introducing the New Web Field Manual

 

Weld: Create Websites with any Design, for any Device, for Free

 

Welcome to Hell: Apple Vs Google Vs Facebook and the Slow Death of the Web

 

Becoming a Designer in Tech

 

It’s Almost – Your Simple Countdown to Anything

 

Primer: Marketing Lessons from Google

 

Google’s Codebase Spans 2 Billion Lines: 40 Times Bigger than Windows

 

What’s the Red Shape in NASA’s Meatball Logo?

 

How Pantone Became the Definitive Language of Color

 

5 Ideas for a Smarter Facebook “Dislike” Button

 

Mad Scientist Makes an Alphabet Out of Bizarre Ferrofluids

 

How to Apply Neuroscience Principles to your Landing Pages

 

The Best Infographics of 2015, and Why We Can’t Stop Looking at Them

 

Want more? No problem! Keep track of top design news from around the web with Webdesigner News.

LAST DAY: Pure CSS Image Slider with Auto-Cropping and Resizing – only $27!

Source

Vía Webdesigner Depot http://ift.tt/1OI4yVJ