More CSS3 Fun

{Posted on Oct 31, 11 }

Black UI Demo

Disclaimer: No images or javascript were used in the making of this page.

This CSS3 experiment was originally supposed to be just a few buttons. Thankfully, an October snowstorm was kind enough to rearrange my plans for the weekend and give me more than enough time to expand and experiment. I’m very pleased with the result.

view demo

Here’s the html and CSS:


<html>
<head>
<style type="text/css">

body, html {
background-color:#2d2e2e;
font-family:Helvetica, Arial, sans-serif;
margin:0;
padding:0;
}

h1 {
color:#888;
font-weight:normal;
font-size:30px;
text-shadow:0 2px 0 #2f2f2f, 0 3px 4px rgba(0,0,0,.9);
}

form {
color:#4c4c4c;
font-size:14px;
text-shadow:0 -1px 0 #000;
}

input {
background-color:#272828;
border:1px solid #181818;
border-radius:5px;
-moz-border-radius:5px;
-webkit-border-radius:5px;
box-shadow: 0 1px 2px rgba(255,255,255,.1), inset 0 1px 2px rgba(0,0,0,.4);
-moz-box-shadow: 0 1px 2px rgba(255,255,255,.1), inset 0 1px 2px rgba(0,0,0,.4);
-webkit-box-shadow: 0 1px 2px rgba(255,255,255,.1), inset 0 1px 2px rgba(0,0,0,.4);
color:#585858;
font-family:Helvetica, Arial, sans-serif;
height:35px;
margin:10px 3px;
text-indent:7px;
text-shadow:0 1px 0 #000;
width:255px;
}

input:focus {
outline:none;
background-color:#fafafa;
color:black;
text-shadow:none;
-webkit-box-shadow: 0 0 5px #3eabff, inset 0 1px 1px #000;
-webkit-transition:background-color .5s ease-in;
-moz-transition:color 2s ease-in;
-o-transition:color .3s ease-in;
transition:color .3s ease-in;
}

#ui {
margin:100px auto;
width:auto;
text-align:center;
}	

#navigation {
background: #353535; /* Old browsers */
background: -moz-linear-gradient(top, #353535 0%, #2c2c2c 50%, #222222 51%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#353535), color-stop(50%,#2c2c2c), color-stop(51%,#222222)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, #353535 0%,#2c2c2c 50%,#222222 51%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, #353535 0%,#2c2c2c 50%,#222222 51%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, #353535 0%,#2c2c2c 50%,#222222 51%); /* IE10+ */
background: linear-gradient(top, #353535 0%,#2c2c2c 50%,#222222 51%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#353535', endColorstr='#222222',GradientType=0 ); /* IE6-9 */
border: 1px solid #111;
border-radius:20px;
-webkit-border-radius:20px;
-moz-border-radius:20px;
box-shadow:0 1px 2px #000, inset 0 1px 0 #4a4a4a, inset 0 -1px 0 #4a4a4a;
-moz-box-shadow:0 1px 2px #000, inset 0 1px 0 #4a4a4a, inset 0 -1px 0 #4a4a4a;
-webkit-box-shadow:0 1px 2px rgba(0,0,0,.6), inset 0 1px 0 #4a4a4a, inset 0 -1px 2px #2e2e2e;
display:inline-block;
color:#2d2e2e;
list-style: none;
margin:0;
overflow: hidden;
padding:0;
}

#navigation li {
float: left;
border-right: solid 1px #111;
height: 34px;
}

#navigation li.last {
border-right:none;
}

#navigation li a.first {
-webkit-border-top-left-radius: 20px;
-webkit-border-bottom-left-radius: 20px;
-moz-border-radius-topleft: 20px;
-moz-border-radius-bottomleft: 20px;
border-top-left-radius: 20px;
border-bottom-left-radius: 20px;
}

#navigation li a.last {
-webkit-border-top-right-radius: 20px;
-webkit-border-bottom-right-radius: 20px;
-moz-border-radius-topright: 20px;
-moz-border-radius-bottomright: 20px;
border-top-right-radius: 20px;
border-bottom-right-radius: 20px;
}		

#navigation li a:link, #navigation li a:visited {
border-right: solid 1px #343434;
color: #9c9c9c;
display: block;
font-size: 11px;
font-weight:100;
letter-spacing:.1em;
height: 34px;
line-height: 35px;
padding: 0 25px;
text-shadow:0 -1px 0 #111;
text-decoration: none;
text-transform:uppercase;
}

#navigation li a:hover {
color: #abc5d9;
text-shadow: 0 0 6px rgba(69,166,248,.9);
-webkit-transition:text-shadow .2s ease-in;
-moz-transition:text-shadow .3s ease-in;
-o-transition:text-shadow .3s ease-in;
transition:text-shadow .3s ease-in;
}  

#navigation li a:active {
background-color:#242424;
border-right:1px solid #1a1a1a;
-webkit-box-shadow:inset 1px 2px 2px rgba(0,0,0,.4);
}

#navigation li.last, #navigation a.last, #navigation li a:link.last {
border:none;
}  

a.button {
display:inline-block;
-webkit-border-radius:5px;
-moz-border-radius:5px;
margin:0;
padding:6px 30px;
font-size:14px;
cursor:pointer;
}

a#grey {
background: #7b7b7c; /* Old browsers */
background: -moz-linear-gradient(top, #7b7b7c 10%, #494c4e 85%, #616263 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(10%,#7b7b7c), color-stop(85%,#494c4e), color-stop(100%,#616263)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, #7b7b7c 10%,#494c4e 85%,#616263 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, #7b7b7c 10%,#494c4e 85%,#616263 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, #7b7b7c 10%,#494c4e 85%,#616263 100%); /* IE10+ */
background: linear-gradient(top, #7b7b7c 10%,#494c4e 85%,#616263 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#7b7b7c', endColorstr='#616263',GradientType=0 ); /* IE6-9 */
box-shadow:0 1px 2px #000, inset 0 1px 0 rgba(255,255,255,.5) ;
-moz-box-shadow:0 1px 2px #000, inset 0 1px 0 #4a4a4a ;
-webkit-box-shadow:0 1px 2px rgba(0,0,0,.7), inset 0 1px 0 rgba(255,255,255,.3) ;
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#6d6d6e', endColorstr='#525455',GradientType=0 ); /* IE6-9 */
border:1px solid #1a1a1a;
color:#191919;
text-shadow: 0 1px 0 rgba(255,255,255,.2);
}

a#grey:hover {
background: #686868; /* Old browsers */
background: -moz-linear-gradient(top, #686868 10%, #404344 85%, #515354 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(10%,#686868), color-stop(85%,#404344), color-stop(100%,#515354)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, #686868 10%,#404344 85%,#515354 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, #686868 10%,#404344 85%,#515354 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, #686868 10%,#404344 85%,#515354 100%); /* IE10+ */
background: linear-gradient(top, #686868 10%,#404344 85%,#515354 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#686868', endColorstr='#515354',GradientType=0 ); /* IE6-9 */
}

a#black {
background: #353637; /* Old browsers */
background: -moz-linear-gradient(top, #353637 10%, #222223 85%, #29292a 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(10%,#353637), color-stop(85%,#222223), color-stop(100%,#29292a)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, #353637 10%,#222223 85%,#29292a 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, #353637 10%,#222223 85%,#29292a 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, #353637 10%,#222223 85%,#29292a 100%); /* IE10+ */
background: linear-gradient(top, #353637 10%,#222223 85%,#29292a 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#353637', endColorstr='#29292a',GradientType=0 ); /* IE6-9 */
-moz-box-shadow:0 1px 2px #000, inset 0 1px 0 #4a4a4a ;
-webkit-box-shadow:0 1px 2px rgba(0,0,0,.7), inset 0 1px 0 rgba(255,255,255,.1) ;
border:1px solid #1a1a1a;
color:#9c9c9c;
text-shadow: 0 -2px 0 #000;
font-weight:300;
}

a#black:hover {
background: #2e2f30; /* Old browsers */
background: #2e2f30; /* Old browsers */
background: -moz-linear-gradient(top, #2e2f30 10%, #1e1e1e 85%, #202021 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(10%,#2e2f30), color-stop(85%,#1e1e1e), color-stop(100%,#202021)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, #2e2f30 10%,#1e1e1e 85%,#202021 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, #2e2f30 10%,#1e1e1e 85%,#202021 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, #2e2f30 10%,#1e1e1e 85%,#202021 100%); /* IE10+ */
background: linear-gradient(top, #2e2f30 10%,#1e1e1e 85%,#202021 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#2e2f30', endColorstr='#202021',GradientType=0 ); /* IE6-9 */
}

a#black:active, a#grey:active {
-webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.5);
-webkit-transition:-webkit-box-shadow .1s ease-in;
-moz-transition:color .3s ease-in;
-o-transition:color .3s ease-in;
]transition:color .3s ease-in;
}
</style>
	</head>
	<body>
		<div id="ui">
			<h1>Black Web Elements</h1>
			<ul id="navigation">
			    <li class="first"><a  class="first" href="#">Item  1</a></li>
			    <li><a href="#">Item  3</a></li>
			    <li><a href="#">Item  4</a></li>
			    <li><a class="last" href="#">Item  5</a></li>
			</ul>
			</br>
			</br>
			</br>
			<a class="button" id="grey">Button</a>
			<a class="button" id="black">Button</a>
			</br>
			</br>
			</br>
			<form>
				Input <input type="text" name="firstname" /><br />
				Input <input type="text" name="lastname" />
			</form>
		</div>
	</body>
</html>

Apple Product Icons

{Posted on Sep 05, 11 }

iPhone and iMac Icon

These new icons are a product of my reclusiveness this past weekend. There are four of them all together: an iPhone 4, iPad 2, MacBook Pro, and iMac. The ZIP file includes PNG, ICNS and PSD files. Just like my other PSD’s, all of these files are highly editable and scalable.You can download them from freebie pixels, or right here by clicking the button below!

If there is any Apple product that you think should be added to the set just leave a comment and let me know!

download psd

Free UI PSD!

{Posted on Aug 19, 11 }

For the past week or so I’ve been working on some UI elements that I’ve grouped together into a free Photoshop file. I figured it would be a nice way sharpen my UI design skills while also helping out some fellow designers. The image above is just a preview, the full PSD is even more extensive. The best part is that all of the elements were created the with scalability in mind. These were done the right way: with vector shapes and layer styles, which means that editing shapes and colors will be a breeze. Feel free to use, edit, or bastardize these in any way. Enjoy!

download psd

Making Magic with CSS3

{Posted on Jul 24, 11 }

wand

As support for CSS3 grows, more and more people are finding creative ways to take advantage of the new properties that are available. I’ve seen some designers push the envelope by creating icons using purely CSS. I was inspired, so I decided to try my hand at it. I don’t think that this is a technique that is going to replace the use of images in web design, but it was a great way to learn some new things and showcase the potential of CSS3.

Basically the whole icon is rendered by styling rectangular div’s with the new properties: “border-radius”, “box-shadow”, and the “gradient” value of the background property. To accomplish the final effect I take advantage of CSS3 2D transforms by using the “transform” and “transition” properties . The 2D transforms used in this example are supported by most modern browsers, even IE 9 and up. However, the transition looks the smoothest in WebKit browsers.

view demo

Here is the html:


<div id="container">
		<div id="stick">
			<div id="top"></div>
			<div id="cover"></div>
			<div id="white"></div>
			<div class="blur" id="red"></div>
			<div class="blur" id="yellow"></div>
			<div class="blur" id="blue"></div>
		</div>
	</div>

And the css:


#container {
cursor:pointer;
-webkit-transform: rotate(-30deg);
-webkit-transition: all .2s ease-in;
-moz-transform: rotate(-30deg);
-moz-transition: all .2s ease-in;
background:transparent;
width:3em;
margin:0 auto;
}

#container:active {
-webkit-transform: rotate(-50deg);
-moz-transform: rotate(-50deg);
}

.blur {
position:relative;
z-index:-1;
display:inline-block;
width:3em;
height:3em;
}

#red {
background-color:#fc15ff;
-webkit-box-shadow: -1.2em -11em 20em #fc15ff;
-moz-box-shadow: -1.2em -11em 5em #fc15ff;
}

#blue {
background-color:#15c5ff;
-webkit-box-shadow: 0 -20em 20em #15c5ff;
-moz-box-shadow: 0 -20em 5em #15c5ff;
}

#yellow {
background-color:#ffdb15;
-webkit-box-shadow: 1em -14em 20em #ffdb15;
-moz-box-shadow: 1em -14em 5em #ffdb15;
}

#stick {
position:relative;
width:3em;
height:25em;
-webkit-box-shadow:0 .7em 2em rgba(0,0,0,.2);
-moz-box-shadow:0 .7em 2em rgba(0,0,0,.2);
-webkit-border-bottom-right-radius:1.5em;
-webkit-border-bottom-left-radius:1.5em;
-webkit-border-top-right-radius:.5em;
-webkit-border-top-left-radius:.5em;
-moz-border-radius:1.5em;
background: #6a6b6e; /* Old browsers */
background: -moz-linear-gradient(left, #6a6b6e 0%, #6a6b6e 3%, #171719 28%, #171719 50%, #6f717b 75%, #494a4d 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, right top, color-stop(0%,#6a6b6e), color-stop(3%,#6a6b6e), color-stop(28%,#171719), color-stop(50%,#171719), color-stop(75%,#6f717b), color-stop(100%,#494a4d)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(left, #6a6b6e 0%,#6a6b6e 3%,#171719 28%,#171719 50%,#6f717b 75%,#494a4d 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(left, #6a6b6e 0%,#6a6b6e 3%,#171719 28%,#171719 50%,#6f717b 75%,#494a4d 100%); /* Opera11.10+ */
background: -ms-linear-gradient(left, #6a6b6e 0%,#6a6b6e 3%,#171719 28%,#171719 50%,#6f717b 75%,#494a4d 100%); /* IE10+ */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr=&#039;#6a6b6e&#039;, endColorstr=&#039;#494a4d&#039;,GradientType=1 ); /* IE6-9 */
background: linear-gradient(left, #6a6b6e 0%,#6a6b6e 3%,#171719 28%,#171719 50%,#6f717b 75%,#494a4d 100%); /* W3C */
}

#top {
position:relative;
width:3em;
height:3em;
background: #626366; /* Old browsers */
background: -moz-linear-gradient(top, #626366 0%, #93969b 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#93969b), color-stop(100%,#626366)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, #93969b 0%,#626366 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, #626366 0%,#93969b 100%); /* Opera11.10+ */
background: -ms-linear-gradient(top, #626366 0%,#93969b 100%); /* IE10+ */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr=&#039;#626366&#039;, endColorstr=&#039;#93969b&#039;,GradientType=0 ); /* IE6-9 */
background: linear-gradient(top, #626366 0%,#93969b 100%); /* W3C */
-webkit-border-radius:1.5em;
-moz-border-radius:1.5em;
-webkit-box-shadow:inset 0 -.1em 2em rgba(0,0,0,.2);
-moz-box-shadow:inset 0 -.1em 1em rgba(0,0,0,.2);
-webkit-transform: translate(0, -1em) scale(1, .6);
-moz-transform: translate(0, -.6em) scale(1, .6);
}

#white {
position:relative;
z-index:2;
width:3em;
height:10em;
margin-top:-3em;
-webkit-border-bottom-right-radius: 3em;
-webkit-border-bottom-left-radius: 3em;
-moz-border-radius-bottomright: 3em;
-moz-border-radius-bottomleft: 3em;
border-bottom-right-radius: 3em;
border-bottom-left-radius: 3em;
background: #dedede; /* Old browsers */
background: -moz-linear-gradient(left, #dedede 0%, #b1b1b1 28%, #ffffff 75%, #f4f4f4 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, right top, color-stop(0%,#dedede), color-stop(28%,#b1b1b1), color-stop(75%,#ffffff), color-stop(100%,#f4f4f4)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(left, #dedede 0%,#b1b1b1 28%,#ffffff 75%,#f4f4f4 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(left, #dedede 0%,#b1b1b1 28%,#ffffff 75%,#f4f4f4 100%); /* Opera11.10+ */
background: -ms-linear-gradient(left, #dedede 0%,#b1b1b1 28%,#ffffff 75%,#f4f4f4 100%); /* IE10+ */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr=&#039;#dedede&#039;, endColorstr=&#039;#f4f4f4&#039;,GradientType=1 ); /* IE6-9 */
background: linear-gradient(left, #dedede 0%,#b1b1b1 28%,#ffffff 75%,#f4f4f4 100%); /* W3C */
-webkit-transform: scale(1, .7);
-moz-transform: scale(1, .7);
}

#cover{
position:relative;
z-index:3;
width:3em;
height:3em;
background: #6a6b6e; /* Old browsers */
background: -moz-linear-gradient(left, #6a6b6e 0%, #6a6b6e 3%, #171719 28%, #171719 50%, #6f717b 75%, #494a4d 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, right top, color-stop(0%,#6a6b6e), color-stop(3%,#6a6b6e), color-stop(28%,#171719), color-stop(50%,#171719), color-stop(75%,#6f717b), color-stop(100%,#494a4d)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(left, #6a6b6e 0%,#6a6b6e 3%,#171719 28%,#171719 50%,#6f717b 75%,#494a4d 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(left, #6a6b6e 0%,#6a6b6e 3%,#171719 28%,#171719 50%,#6f717b 75%,#494a4d 100%); /* Opera11.10+ */
background: -ms-linear-gradient(left, #6a6b6e 0%,#6a6b6e 3%,#171719 28%,#171719 50%,#6f717b 75%,#494a4d 100%); /* IE10+ */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr=&#039;#6a6b6e&#039;, endColorstr=&#039;#494a4d&#039;,GradientType=1 ); /* IE6-9 */
background: linear-gradient(left, #6a6b6e 0%,#6a6b6e 3%,#171719 28%,#171719 50%,#6f717b 75%,#494a4d 100%); /* W3C */
-webkit-border-radius:1.5em;
-moz-border-radius:1.5em;
-webkit-transform:scale(1, .7);
-moz-transform:scale(1, .7);
}

Thoughts on Digital Branding

{Posted on May 23, 11 }

For my inaugural blog post I want to talk about something that I’ve learned a great deal about in the past year: how to represent a your brand in a mobile app without having a negative impact on the overall user experience. In this post, I’m focusing on branding in mobile applications, but the same principles can be applied to any type of software.  The goal is to subtly represent your brand without distracting the user. Over-branding is an easy thing to do, especially in mobile applications where screen real estate is in short supply. Nowadays, users have a very limited  tolerance for anything that is not essential to the functionality of their app. Bombarding them with your branding will, without a doubt, have a negative impact on your product. However, it is still important that your brand is represented in a subtle, unobtrusive manner, but how is this done?

It’s all about the icon

The importance of your application icon cannot be understated, it is the face of your product. Today, the app icon is the most important piece of branding associated with a digital product. When designing an app icon, keep in mind that less is more. Icons are most successful when they are kept simple and the imagery is appropriate for the relatively small space in which it will displayed. Every pixel is precious in an application icon, so it is important to resist the urge to cram more information than is absolutely necessary onto the small canvas. Doing so will almost always make your icon less successful.

However, being detailed and being simple are not mutually exclusive concepts. Subtle textures, shadows, and other details can set an icon apart from the pack. Also, in most cases, you will be asked to provide a full size (512 x 512 or something close) version of your icon. This full size version should be a higher fidelity version of your icon, which means that the basic composition should be kept the same, but it can include details that would have been imperceptible at a smaller size. A good app might provide a directly scaled up version of their app icon, but an exceptional app will take full advantage of every pixel and provide a beautifully detailed icon that will stand out in the marketplace.

Evernote Icon

A lot of digital products and services are somewhat abstract; therefore, there may not be a real world metaphor that represents your application’s function. Even if there is, I would recommend deviating from the obvious. Imagine your app tracks stocks and investments. How many other apps in the finance section will have dollar sign or graph icons? When done right, a more abstract icon can set your app apart from the competition, and provide a solid foundation for a successful digital brand. In fact, some of the most successful apps out there are represented by icons that have little to nothing to do with their function. Evernote, for example, is a very popular note making app that is represented by the silhouette or an elephant’s head. Obviously the app has nothing to do with elephants, but the icon is simple, memorable and very successful.

Brand through the interface

When done tastefully, custom UI elements such as toolbars, backgrounds, icons and dialogs can give your app a unique feel. You should strive to subtly and consistently customize your UI while still adhering to your platform’s guidelines. Ideally, you want to create a custom interface that feels “at home” on the device.  You would want someone to be able to identify your app by its overall look and feel, not by your logo plastered on every screen. You should take advantage of UI paradigms that are used throughout the rest of that particular device’s interface. Basically, there is no need to make your users familiarize themselves with a new means of navigation unless there is a very good reason to do so.

Project Noah

One company that consistently balances customization and usability is the Russian design group, Soft Facade. Take the Project Noah iPhone app interface for example. The interface is beautiful and distinctive, but it still looks like an iPhone app. Anyone who is familiar with other iOS apps would have an easy time learning this interface.

Earlier, I mentioned adhering to platform UI guidelines. Chances are, the platform that you are developing for has put out some form of documentation with specific guidelines for interaction and UI design. For example, AppleAndroid , and Windows Phone 7 all have published detailed guidelines  to promote usability and uniformity in third party apps. These documents are invaluable, and should be read, re-read and referenced often throughout the design process. The difference between a good app and an exceptional app lies within the details.

Before I close out this post I just have one more thing to say to anyone who might be reading this who is not a designer themselves. If you want your app to be polished and look professional it is imperative that you hire a professional designer. It may be a tough thing to bring yourself to spend the money on, but mobile design is incredibly complicated. Hiring a professional will make your life easier and pay dividends in the end.