Designers need to be: Empathic, Assumption Rejecting, Storytelling Unicorns

An Event Apart, Seattle 2013 contained a star studded line up with talks designed to inspire. I left feeling enlightened by the prospect of what the future of experience design has in a multi-device landscape. I also left feeling humbled by the monumental task that lays ahead. There is a tremendous opportunity out their for our industry, not only capitalize on, but shape. We can thank the “disruptive innovation” of these little growing screens in our pockets for this demand and I couldn’t be happier.

20130406-132449.jpg

Continue reading

Equal Height Columns

When working with dynamic content and fluid layouts – which should be every project – you will inevitably run into a situation where you need the background style of a sidebar to appear the same height as the main content column. If only it were as simple as adding height=100% – why does this exist in the first place? There are many articles out there that offer various CSS hack solutions (I’ve listed a few below), and many may work for your particular situation, however, in my experience using a simply line of jQuery solves this problem very efficiently.

Continue reading

Understanding Radio Buttons & Labels

Forms are probably one of the most common elements on the web, and boy can they be a bitch to get right!  One specific element that always frustrated me was working with radio buttons.  Below you will find the HTML and CSS necessary to create a list of radio buttons with labels that align.

The HTML

<ul> 
    <li><input type="radio" class="radio" name="radio-buttons" value="1" id="one" />
    <label for="one">When the cursor hovers over the text you can trigger the radio buttons</label></li>
    <li><input type="radio" class="radio" name="radio-buttons" value="2" id="two" />
    <label for="two">When the cursor hovers over the text you can trigger the radio buttons</label></li>
    <li><input type="radio" class="radio" name="radio-buttons" value="3" id="three" selected="selected"/>
    <label for="three">When the cursor hovers over the text you can trigger the radio buttons</label></li>
</ul>

The CSS

ul{
   list-style-type:none;
   padding:0;
   margin:0;
}

ul:after, li:after {
   clear: both;
}
ul:before, ul:after, li:before, li:after{
   content: " ";
   display: table;
}

li{ 
   margin:5px 0;
}

label { 
   float:left; 
   display:block; p
   padding-left:1em; 
}

input[type=radio], input.radio { 
   float:left; 
   margin:3px 0 0 0; 
}

The Logic

Radio buttons have a tendency to look and behave differently in every browser and we are not offered the flexibility to style them through CSS. It is possible to customize radio buttons, but it involves some sketchy graphic sprite swapping and excessive Javascript. In my experience the luxury of having a customized radio button does not outweigh the workaround code and ensuing headache. Therefore, I recommend accepting the style that the browser offers and make adjustments on the margin and padding (your developers will thank you).

The code for adding a radio button with a label aligned to its right is pretty straight forward. There are a few ways to do this, but this is my preferred method. First off, I have put my radio buttons and labels in an unordered list since I want them to appear stacked, one on top of the other. Then I add my input radio button element followed by my label element within the li element. In order to have them align side by side I have applied “float:left” to the label and input elements. It will be necessary to tweak the text and radio button alignment with the targeted padding and margin. Finally, If you want the radio button to be clickable when you “click” on the label as well as the radio button, make sure that the “for” attribute matches the corresponding “id” attribute in the input element.

Radio buttons typically offer the user a group of options based on a category. Therefore, it is necessary to include the same “name” attribute in each input element. Otherwise the user will be able to select multiple radio buttons and that functionality is made for checkboxes. Hopefully that has been helpful. Good luck and remember to test!