<?xml version="1.0"?>
<News hasArchived="true" page="8583" pageCount="10722" pageSize="10" timestamp="Sun, 12 Jul 2026 05:17:07 -0400" url="https://my3.my.umbc.edu/posts.xml?page=8583">
<NewsItem contentIssues="true" id="31851" important="false" status="posted" url="https://my3.my.umbc.edu/posts/31851">
<Title>My (Simple) Workflow To Design And Develop A Portfolio Website</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <table width="650">
    <tbody>
    <tr>
    <td>
    <div>
    <img src="http://statisches.auslieferung.commindo-media-ressourcen.de/advertisement.gif" alt="" style="max-width: 100%; height: auto;"><br><a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&amp;collection=smashing-rss&amp;position=1" rel="nofollow external" class="bo"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&amp;collection=smashing-rss&amp;position=1" alt="" style="max-width: 100%; height: auto;"></a> <a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&amp;collection=smashing-rss&amp;position=2" rel="nofollow external" class="bo"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&amp;collection=smashing-rss&amp;position=2" alt="" style="max-width: 100%; height: auto;"></a> <a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&amp;collection=smashing-rss&amp;position=3" rel="nofollow external" class="bo"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&amp;collection=smashing-rss&amp;position=3" alt="" style="max-width: 100%; height: auto;"></a>
    </div>
    </td>
    </tr>
    </tbody>
    </table>
    <p><em>Please notice that this article is targeted at <strong>newcomers to the industry</strong> rather than seasoned designers and developers. The point of the article is to provide a general guide to building meaningful, future-friendly websites today, including strategies, techniques and tools that most Web designers are used to today.</em> — Ed.</p>
    <p>A long time ago in a galaxy far, far away… a young designer embarked on an epic journey strewn with perilous layout challenges, constant procrastination, devious jQuery errors and deadly Internet Explorer bugs. It was a rite of passage that all designers must take in order to stand proud with their peers in this wide world we call the Web. Yes, I’m talking about creating your own portfolio website.</p>
    <p>I recently redesigned <a href="http://www.adhamdannaway.com" rel="nofollow external" class="bo">my own portfolio website</a>. It was a challenging but enjoyable experience that I really learned a lot from. My goal was to create a unique online presence that represents my personality and displays my design work in detail, while of course serving as a promotional medium to gain more exposure and business.</p>
    <p><a href="http://www.adhamdannaway.com" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/designing-coding-portfolio_mini.jpg" alt="Behind the scenes look at my design and development workflow." width="500" height="350" style="max-width: 100%; height: auto;"></a><br>
    <em>A look behind the scenes of my design and development workflow</em></p>
    <p>After receiving a bunch of emails asking me about the design decisions I made during the redesign of my website, I decided to write this article to give a peek at my journey and some of the things I learned along the way. I’ll discuss best practices in modern Web design and go through the entire design and development workflow that I followed to create my website, from the initial planning stage to the final live website, including these steps:</p>
    <ul>
    <li>project planning,</li>
    <li>branding,</li>
    <li>wireframes,</li>
    <li>responsive design and flexible grids,</li>
    <li>LESS and SASS,</li>
    <li>high-definition screens,</li>
    <li>flexible images,</li>
    <li>content animation,</li>
    <li>WordPress development,
    </li>
    <li>testing and analytics.</li>
    </ul>
    <p>I hope this helps and inspires other designers out there who are looking to create their own unique portfolio website. We’ve got a lot to get through, so let’s get started.</p>
    <h3>Plan The Project</h3>
    <h4>Define Your Brief</h4>
    <p>The first thing I do with any project is figure out exactly what I want to achieve, and I write it down. What is the purpose of the project? What problem am I trying to solve? My goal was to create an online profile to promote my design work and gain more exposure. I needed to be able to write articles, display my design work and have people contact me easily. I also wanted it to be unique and memorable, while representing my personality.</p>
    <p>At this point, we simply need to figure out our ultimate goal; we’re not worried about how we will get there. Write down your goals, and look back at them in later stages of the project to ensure that you’re on track.</p>
    <h4>Initial Research and Idea Generation</h4>
    <p>Do some initial research to get the creative juices flowing. Inspiration can come from anywhere and can strike at any time, often while you’re in bed and on the verge of falling asleep (with, of course, not a notebook in sight). Sometime you might want to look at other sites for inspiration, but sometimes not looking at what other designers have done is best, because once you’ve seen it, thinking of your own ideas can be hard.</p>
    <p>Instead, make a cup of tea, find a comfortable spot and <strong>brainstorm your own solutions to the problem at hand</strong>. All you need at this stage is a pen, a sketchbook and your thoughts. Hopefully, you’ll come up with something innovative that hasn’t been done before. You can employ plenty of methods to <a href="http://www.mindtools.com/pages/article/newCT_88.htm" rel="nofollow external" class="bo">generate ideas</a>. Have a think about your personality and what makes you unique as a designer. What are your interests? How are you different? Do you have a particular design style? Do you specialize in a certain aspect of design? Do you have unusually big ears? Find an angle that represents you and integrate that into your design.</p>
    <p><a href="http://justinaguilar.com/" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/portfolio-of-justin-aguilar1_mini.jpg" alt="portfolio of justin aguilar" width="500" height="338" style="max-width: 100%; height: auto;"></a><br>
    <em>Justin Aguilar illustrates his workspace in his portfolio.</em></p>
    <p><a href="http://www.mengto.com" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/portfolio-of-meng-to_mini.jpg" alt="portfolio of meng to" width="500" height="360" style="max-width: 100%; height: auto;"></a><br>
    <em>Meng To gets straight to the point with his case studies.</em></p>
    <p><a href="http://www.minimalmonkey.com" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/portfolio-of-stephen-burgess_mini.jpg" alt="portfolio of stephen burgess" width="500" height="323" style="max-width: 100%; height: auto;"></a><br>
    <em>Stephen Burgess is a developer but shows a great understanding of design and UX with his unique website.</em></p>
    <p>After some initial research, I wrote down a few ideas and elements to include in my portfolio:</p>
    <ul>
    <li>My skill set is a mix of both coding and design, and I wanted this to be prominent.</li>
    <li>I’m a big fan of minimalist design and wanted to stick with a mainly black and white palette to allow the design to shine through.</li>
    <li>I wanted to use my own photo as a hero image to inject some personality into the website.</li>
    <li>I enjoy the experience of seeing animation as I scroll down a page.</li>
    <li>I’ve never liked the way in which one Web page jerks to another, so I wanted my transitions to be smooth.</li>
    <li>I like a generous amount of white space and a full-width layout.</li>
    <li>Responsiveness is important to me because I want mobile and tablet users to also have an optimal experience.</li>
    <li>I wanted my case studies to tell a story about my design process, rather than just be a gallery of random images without context.</li>
    </ul>
    <h4>Create a Timeline</h4>
    <p>Once your ideas are together and you know which direction to head in, draw a rough timeline. I’m not talking about strict deadlines or anything, but more of a guide to help you organize tasks and stay productive and motivated. Simply list the tasks that you need to do, and estimate the amount of time each will take. This will give you a rough estimate of how long the project will take, as well as create a task list to work from. Of course, some of your estimates might be a little off, but that’s fine; you can adjust the timeline as you go. A bit of organization goes a long way, so get into this habit.</p>
    <h3>Design</h3>
    <h4>Design Your Brand</h4>
    <p>Your brand is basically the visual language that describes who you are and that determines how others see you. I wanted to convey a clean, sleek and minimal look and feel. I kept things quite simple and decided to create a logo mark from my initials, using a minimal black and white palette. I sketched some ideas and experimented with typography and letter arrangement before deciding on the final logo (which I drew in Adobe Illustrator). If you’re having trouble coming up with a logo, you might want to read “<a href="http://www.adhamdannaway.com/blog/branding/a-systematic-approach-to-logo-design" rel="nofollow external" class="bo">A Systematic Approach to Logo Design</a>.”</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2013/06/adham-dannaway-logo-design.jpg" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/adham-dannaway-logo-design_mini.jpg" alt="adham dannaway logo design" width="500" height="400" style="max-width: 100%; height: auto;"></a><br>
    <em>My final logo design</em></p>
    <p>As part of my branding, I also wanted to design an avatar for my website and various social media platforms. It would need to represent me as a designer and developer, while being unique and memorable. After countless hours of brainstorming (more like procrastination), I finally had an idea that makes sense. The idea was to take a photo of my face and cut it in half. One side would depict the creative designer in me, while the other would show my logical coding side. After numerous sketches and a lot of fiddling in Photoshop, I was finally happy with the concept. I used pastels, grunge-style brushes and masks to achieve the aesthetic I was after.</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2013/06/adham-dannaway-half-face_mini1.jpg" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/adham-dannaway-avatar-concept_mini.jpg" alt="adham dannaway avatar concept" width="500" height="348" style="max-width: 100%; height: auto;"></a><br>
    <em>My final avatar</em></p>
    <h4>Create Content</h4>
    <p>Many designers leave content creation until the end because they’re more interested in layout and aesthetics (the fun stuff). Create content early on in the project because it will determine the design. What information do you need to convey to visitors? Think about what you want to say and how to say it. Should a given point be written as simple text, or would it make more sense as an image or diagram?</p>
    <p>Be concise and friendly in your copy. I like to write in the first person to make it feel more personable. Break your copy into small chunks to improve readability and scannability. I wrote a draft of my content and broke it down into six main parts: home page introduction, a bit about me, places I’ve been featured, my design work, my blog, and my contact details.<br>
    </p>
    <h4>Show Your Work</h4>
    <p>Your work is the most important piece of content in the portfolio because it is what most visitors have come to see. Gather your best projects, and explain the process and workflow behind each. Nothing is worse than a vague portfolio of random images with no context or explanation. Including only the type of work you’re looking to do more of, rather than all of your work, will help you target the right clients.</p>
    <p>Your potential customers will want to see your work in as much detail as possible, so don’t shrink it to a small size. I decided to keep the actual sizes if possible to make it easy for visitors to quickly navigate my work. I also decided to talk about the challenges I encountered and how I tried to solve them. Design is all about solving problems, so <strong>letting visitors know why a design looks and works the way it does</strong> is very useful, and it also gives you an opportunity to reflect on your work and your design process and perhaps improve it next time. Remember that you’re telling a story, so it’s been important to me to make it as interesting and informative as possible.</p>
    <p><a href="http://www.softfacade.com/" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/portfolio-case-study-example-small_mini.jpg" alt="portfolio case study" width="500" height="904" style="max-width: 100%; height: auto;"></a><br>
    <em>Soft Facade has beautiful, in-depth case studies.</em></p>
    <p>Now that our content is figured out, we can move onto sketching wireframes.</p>
    <h4>Sketch Wireframes</h4>
    <p>The approach I take to wireframes is simple but effective, and all you need is a pen and sketchbook. I first list all of the elements to include on a Web page. I then group related elements, before prioritizing these groups according to importance. Here is my list of elements for the contact page.</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2013/06/wireframe-list.jpg" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/wireframe-list_mini.jpg" alt="wireframe elements list" width="500" height="425" style="max-width: 100%; height: auto;"></a><br>
    <em>List of elements for my contact page</em></p>
    <p>Once the page’s elements are grouped and prioritized, arranging them on the page will be much easier. Place more important elements towards the top of the page, and use white space to create groupings. I took a desktop-first approach because I wanted to focus on displaying my work in detail on large screens. When we come to write the CSS later on, we’ll take a mobile-first approach, which will simplify the code (we’ll get to that shortly). I usually sketch my wireframes with pen and paper, but you can use tools such as <a href="http://www.balsamiq.com/" rel="nofollow external" class="bo">Balsamiq</a> or even Photoshop or Illustrator. Below is a wireframe for my contact page. It doesn’t need to look pretty — it’s simply a plan of a Web page to work from.</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2013/06/contact-page-wireframe.jpg" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/contact-page-wireframe_mini.jpg" alt="contact page wireframe" width="500" height="496" style="max-width: 100%; height: auto;"></a><br>
    <em>Contact page wireframe</em></p>
    <h4>Responsive Design and Flexible Grids</h4>
    <p>I wanted to make my website responsive to ensure an optimal experience for visitors on desktop, tablet and mobiles. When designing websites, I like to use a grid because it provides a structural foundation, while making the development process easier and more efficient. Joshua Mauldin <a href="http://fireworks.smashingmagazine.com/2013/05/02/ios-grid-system-free-extension-adobe-fireworks/" rel="nofollow external" class="bo">sums up a grid</a> pretty well:</p>
    <blockquote>
    <p>Think of it like a house’s foundation. With a solid foundation, the house is stable, and building on it is easy. With a solid grid, your design can easily be adapted to accommodate whatever changes come along.</p>
    </blockquote>
    <p>Some designers find a grid to be limiting, but it really depends on the design. I find that it results in a neater and more organized design. My design is quite simple, so I used a custom 12-column flexible grid, but a 16-column grid would give more definition and accuracy. I also defined a maximum width of 1040 pixels to ensure that the design doesn’t look stretched on larger monitors.</p>
    <p>Using a <strong>flexible</strong> grid (rather than three separate <strong>fixed</strong> widths for mobile, tablet and desktop) enables a website to scale dynamically to fit any device width. Below is the CSS for my responsive grid, but feel free to create your own to suit the design. Use tools such as <a href="http://gridpak.com" rel="nofollow external" class="bo">Gridpak</a>, <a href="http://www.responsivegridsystem.com/" rel="nofollow external" class="bo">Responsive Grid System</a>, <a href="http://goldengridsystem.com/" rel="nofollow external" class="bo">Golden Grid System</a> and <a href="http://responsify.it/" rel="nofollow external" class="bo">Responsify</a> to create your own responsive grid. I’ve used ideas from a few of these tools to create my own custom flexible grid.</p>
    <pre><code>&#x000A;    /* 12-column responsive grid */&#x000A;    &#x000A;    .row {&#x000A;        clear: both;&#x000A;        max-width: 1040px;&#x000A;        margin: 0 auto;&#x000A;    }&#x000A;    &#x000A;    [class^="col-"] {&#x000A;        float: left;&#x000A;        margin: 0 3.84615384615% 0 0;&#x000A;        list-style: none;&#x000A;        position: relative;&#x000A;    }&#x000A;    &#x000A;    [class^="col-"]:last-child {&#x000A;        margin: 0;&#x000A;    }&#x000A;    &#x000A;    .col-1 { width: 4.8076923077% }&#x000A;    .col-2 { width: 13.4615384615% }&#x000A;    .col-3 { width: 22.1153846154% }&#x000A;    .col-4 { width: 30.7692307692% }&#x000A;    .col-5 { width: 39.4230769231% }&#x000A;    .col-6 { width: 48.0769230769% }&#x000A;    .col-7 { width: 56.7307692308% }&#x000A;    .col-8 { width: 65.3846153846% }&#x000A;    .col-9 { width: 74.0384615385% }&#x000A;    .col-10 { width: 82.6923076923% }&#x000A;    .col-11 { width: 91.3461538462% }&#x000A;    .col-12 { width: 100%; margin: 0 }&#x000A;    </code></pre>
    <p>Upon looking at the CSS above, you might be wondering how the <code>[class^="col-"]</code> CSS selector works. It’s actually called a <a href="http://www.impressivewebs.com/css3-attribute-selectors-substring-matching/" rel="nofollow external" class="bo">substring matching attribute selector</a>, and all it does is select any class that begins with the string <code>col-</code>. You can also use substring matching to select other attributes that <strong>end with</strong> a certain string, or even those that <strong>contain</strong> a certain string. Substring matching is a handy way to create more complex and powerful CSS selectors, and they’re <a href="http://www.impressivewebs.com/browser-support-css3-selectors/" rel="nofollow external" class="bo">well supported</a>, too, going as far back as Internet Explorer 7.</p>
    <p>The HTML is quite simple, too, consisting of rows and columns, much like a table. Here is a simple two-column responsive grid that I use on my website. The left column spans five columns, while the column on the right spans seven.</p>
    <pre><code>&#x000A;    &lt;div class="row"&gt;&#x000A;        &lt;div class="col-5"&gt;Content spans five columns&lt;/div&gt;&#x000A;        &lt;div class="col-7"&gt;Content spans seven columns&lt;/div&gt;&#x000A;    &lt;/div&gt;&#x000A;    </code></pre>
    <h4>Set Logical Breakpoints</h4>
    <p>When you design a responsive website, at certain widths the layout will break or the text will become squished and difficult to read (<a href="http://webtypography.net/Rhythm_and_Proportion/Horizontal_Motion/2.1.2/" rel="nofollow external" class="bo">45 to 75 characters</a> is a comfortable length per line). These special widths are known as <strong>breakpoints</strong>, and they’re often set to common device widths, such as 320 to 480 pixels for mobile, 768 to 1024 pixels for tablets, and 1024 pixels and up for desktops. The problem is that “common” widths don’t really exist anymore with the growing number of devices, so this solution doesn’t scale well.</p>
    <p><a href="http://www.smashingmagazine.com/2013/03/01/logical-breakpoints-responsive-design/" rel="nofollow external" class="bo">Setting breakpoints based on content</a> rather than device width is a more scalable solution. For example, rather than blindly setting a breakpoint at 768 pixels wide for tablets, I instead looked at my content and found that it looked fine until it got squashed under 600 pixels. I thus set a breakpoint at 600 pixels to change the layout to ensure that the content remains legible at and below this width. Yes, you will need to optimize the presentation of your website for various devices, but <strong>your content should always determine where the breakpoints lie</strong>. These are the four breakpoints I needed for my design: 320, 600, 1024 and 1140 pixels.</p>
    <p>When writing the CSS media queries for my website, I took a mobile-first approach. This basically meant writing the mobile styles first as my base, followed by the tablet and then the desktop styles. Mobile styles are generally simpler than desktop styles, so writing them first makes sense. They form the foundation of your styles, and we can then add more complex styles for wider screens. Cascading your style sheet in this way keeps your code clean and DRY (“<a href="http://en.wikipedia.org/wiki/Don't_repeat_yourself" rel="nofollow external" class="bo">don’t repeat yourself”</a>).</p>
    <p>Here are the media queries I used:</p>
    <pre><code>&#x000A;    /* Mobile styles go first, without media queries. */&#x000A;    &#x000A;    @media only screen and (min-width: 321px) {&#x000A;        /* Larger mobile styles (wider than 320 pixels) */&#x000A;    }&#x000A;    &#x000A;    @media only screen and (min-width: 600px) {&#x000A;        /* Tablet styles (wider than 600 pixels) */&#x000A;    }&#x000A;    &#x000A;    @media only screen and (min-width: 1024px) {&#x000A;        /* Large laptop styles (wider than 1024 pixels) */&#x000A;    }&#x000A;    &#x000A;    @media only screen and (min-width: 1140px) {&#x000A;        /* Desktop styles (wider than 1140 pixels) */&#x000A;    }&#x000A;    </code></pre>
    <p>With the breakpoints defined, I could sketch the tablet and mobile wireframes. Sometimes hiding or omitting content on small devices makes sense, but I wanted as much content to be available across all devices as possible. Why should mobile users miss out on valuable content? People are used to scrolling on phones anyway, so think first before you remove or hide content. The easiest solution isn’t always the best one.</p>
    <h4>Design High-Fidelity Mockups</h4>
    <p>Once the desktop and mobile wireframes were sketched, I moved into Photoshop and started mocking up the website in more detail. I don’t like spending much time in Photoshop because it slows down the development process. Don’t worry too much about creating a pixel-perfect design; you’ll have time to refine it during the coding process. Instead, simply mock up the main page templates, along with any other design elements and assets you need. I mocked up the header and footer, along with the basic elements of the “About me” page below, to make sure I was happy with the aesthetic.</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2013/06/Adham-Dannaway-about-me-large_mini1.jpg" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/adham-dannaway-about-page-design2_mini.jpg" alt="adham dannaway about me page" width="500" height="1196" style="max-width: 100%; height: auto;"></a><br>
    <em>“About me” page mockup</em></p>
    <p>Similarly, I didn’t mock up any mobile or tablet designs in Photoshop, because I find that simply coding these based on the wireframes to be quicker. I did, however, spend some time on details such as icons and textures, which can make a big difference in the polish of the final website.</p>
    <h3>Develop</h3>
    <p>Now that our website is planned and all of our image assets are ready to go, it’s time to start coding. So, get your headphones and favorite text editor! My text editor of choice is <a href="http://www.sublimetext.com/2" rel="nofollow external" class="bo">Sublime Text</a>. It’s simple, fast, powerful and easy to use. If you’re a Windows user, I’d recommend <a href="http://notepad-plus-plus.org/" rel="nofollow external" class="bo">Notepad++</a>.</p>
    <p>I usually start from the top of the Web page and build each element one by one. Let’s start with the header navigation. I like to write out the HTML for the element first, and then move on to the CSS. Remember that we are actually creating the mobile version first to reduce code bloat. Depending on the complexity of the project, you can either code from scratch or use a framework such as <a href="http://html5boilerplate.com/" rel="nofollow external" class="bo">HTML5 Boilerplate</a>, <a href="http://foundation.zurb.com/" rel="nofollow external" class="bo">Foundation</a> or <a href="http://compass-style.org/" rel="nofollow external" class="bo">Compass</a>.</p>
    <h4>CSS Preprocessors (LESS/Sass)</h4>
    <p>If you’re not yet familiar with CSS preprocessors such as <a href="http://lesscss.org/" rel="nofollow external" class="bo">LESS</a> and <a href="http://sass-lang.com/" rel="nofollow external" class="bo">Sass</a>, definitely familiarize yourself with them because they’ll save you a lot of time and effort and will streamline your CSS. A preprocessor gives you more power when coding CSS, enabling you to use <a href="http://coding.smashingmagazine.com/2011/12/12/an-introduction-to-object-oriented-css-oocss/" rel="nofollow external" class="bo">object-oriented programming practices</a> when writing styles.</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2013/06/less-sass-css-pre-processors.jpg" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/less-sass-css-pre-processors_mini.jpg" alt="less sass css pre processors" width="500" height="257" style="max-width: 100%; height: auto;"></a><br>
    <em>LESS and Sass CSS preprocessors</em></p>
    <p>We’ve all wished that we could use variables in CSS, define functions and reuse code snippets without having to continually copy and paste. CSS preprocessors enable you to do that and much more, while keeping your styles clean and organized. Your LESS or Sass code is then compiled and outputted as regular CSS.</p>
    <p>I used LESS to create the CSS for my website. However, after experimenting with both LESS and Sass, I feel that Sass is more powerful, so I’ll be sticking with it from now on. Chris Coyier <a href="http://www.css-tricks.com/sass-vs-less" rel="nofollow external" class="bo">compares LESS and Sass</a> and shows the subtle yet important differences between the two. The deciding factor for me was that Sass uses <a href="http://compass-style.org/" rel="nofollow external" class="bo">Compass</a> and gives you access to a library of useful and well-maintained mixins; LESS doesn’t. Feel free to play with both to see which you prefer.</p>
    <h4>Progressively Enhance With Modernizr</h4>
    <p><a href="http://modernizr.com/" rel="nofollow external" class="bo">Modernizr</a> is a JavaScript library that detects HTML5 and CSS3 features in the user’s browser and adds those features as classes to the <code>&lt;html&gt;</code> element. We all want to take advantage of the latest CSS3 and HTML5 features, but what happens in older browsers that don’t support them? Modernizr basically tells us which features are supported in the visitor’s browser, allowing us to write conditional CSS and JavaScript for each situation. Thus, we can easily <a href="http://alistapart.com/article/understandingprogressiveenhancement" rel="nofollow external" class="bo">progressively enhance</a>, providing everyone with basic features, while enhancing the experience for those with modern browsers.</p>
    <h4>Create Flexible Images</h4>
    <p>Flexible images are a simple yet important part of any responsive website. To make your images flexible, simply place them in your responsive grid container and add the CSS below to your style sheet. Insert them using the <code>&lt;img&gt;</code> tag, although there are ways to achieve <a href="http://kimili.com/journal/the-flexible-scalable-background-image-redux" rel="nofollow external" class="bo">flexible images using CSS background images</a>, too. If you want to get more technical and serve different images according to the device being used (for example, serving small images to phones to conserve bandwidth), you can look into certain techniques for serving <a href="http://css-tricks.com/which-responsive-images-solution-should-you-use/" rel="nofollow external" class="bo">truly responsive images</a> and <a href="http://www.smashingmagazine.com/2013/05/10/how-to-avoid-duplicate-downloads-in-responsive-images/" rel="nofollow external" class="bo">avoiding duplicate image downloading</a>.</p>
    <pre><code>&#x000A;    img {&#x000A;    	max-width: 100%; &#x000A;    	height: auto !important;&#x000A;    }&#x000A;    </code></pre>
    <h4>Use CSS Image Sprites</h4>
    <p>We all know to combine our icons and image assets into <a href="http://coding.smashingmagazine.com/2009/04/27/the-mystery-of-CSS-sprites-techniques-tools-and-tutorials/" rel="nofollow external" class="bo">CSS sprites</a>, rather than leave multiple individual images to load one after another. This decreases loading time and makes it easy for you to edit and maintain image files later on. I usually create several sprites for the different sections of a website. For example, one of my sprites contains all of my icons, while another contains global elements (including logo, header icons, navigation background and footer icons).</p>
    <p>When creating sprites, think about how your website will load. If a bunch of icons are only used on a single page of the website, then separate them from the main sprite. This will ensure that they’re loaded only when needed, while keeping your main sprite small. Using sprites will also make it easier to prepare your images for high-definition screens later on. The process can be cumbersome, so use a handy tool such as <a href="http://www.spritecow.com/" rel="nofollow external" class="bo">Sprite Cow</a> to create them quickly and easily. You can also use a combination of Sass and Compass to <a href="http://www.codechewing.com/library/automatically-generate-css-sprites-with-sass/" rel="nofollow external" class="bo">generate sprites automatically from separate images</a>.</p>
    <h4>Catering to High-Definition Screens</h4>
    <p>To ensure that your website looks crisp on high-definition (or “Retina”) screens, use CSS as much as possible for presentation. Remember that some of the newer CSS styles won’t render in old browsers — this is where progressive enhancement makes sense. In most cases, you won’t be able to build the website completely from CSS; you’ll need images. Luckily, preparing your images for high-definition screens is not hard.</p>
    <p>Basically, you’ll need to create larger versions of your images to be used on high-definition screens. Because our images are contained in a sprite, all we need to do is create another version of the sprite that is exactly twice as large. Let’s say our sprite is named <code>sprite.png</code>; we would name our high-definition sprite <code><a href="mailto:sprite@2x.png">sprite@2x.png</a></code>. To decrease loading time (especially on mobile devices), compress your images using <a href="http://www.jpegmini.com/" rel="nofollow external" class="bo">JPEGmini</a>, <a href="http://tinypng.org/" rel="nofollow external" class="bo">TinyPNG</a> or, if you’re on a Mac, <a href="http://imageoptim.com/" rel="nofollow external" class="bo">ImageOptim</a>.</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2013/06/retina-image.jpg" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/retina-image_mini.jpg" alt="retina image" width="500" height="300" style="max-width: 100%; height: auto;"></a><br>
    <em>Simply create another image twice the size of the original for high-definition devices.</em></p>
    <p>Once you’ve created the larger images, simply use media queries to show the large images on high-definition screens. Be careful with your media queries because iPhones aren’t the only high-definition devices around at the moment. There are other mobile phones, along with Retina iPads and MacBook Pros, too. I use two high-definition media queries on my website: the first for high-definition mobile devices, and the second for tablets and laptops.</p>
    <p>Here are the media queries to target high-definition screens:</p>
    <pre><code>&#x000A;    @media&#x000A;    only screen and (-webkit-min-device-pixel-ratio: 1.5), &#x000A;    only screen and (min--moz-device-pixel-ratio: 1.5),&#x000A;    only screen and (min-device-pixel-ratio: 1.5) {&#x000A;        /* Target all high-definition screens. */&#x000A;    }&#x000A;    &#x000A;    @media &#x000A;    only screen and (min-width : 600px) and (-webkit-min-device-pixel-ratio: 1.5), &#x000A;    only screen and (min-width : 600px) and (min--moz-device-pixel-ratio: 1.5), &#x000A;    only screen and (min-width : 600px) and (min-device-pixel-ratio: 1.5) {&#x000A;        /* Target high-definition devices with screens wider than 600 pixels. */&#x000A;    }&#x000A;    </code></pre>
    <p>Wouldn’t it be great if we could eliminate the need for media queries and separate high-definition images altogether? An even better way to cater to high-definition screens is to use images that are vectors, which will scale to fit any screen size and look crisp on any device. You can draw your images or icons in Illustrator and <a href="http://css-tricks.com/using-svg/" rel="nofollow external" class="bo">export them as scalable vector graphics</a> (SVG) files. The SVG file basically consists of XML-based code that describes the image to the browser.</p>
    <p>Another clever way to get scalable vector icons that look crisp on high-definition devices is to use <a href="http://css-tricks.com/html-for-icon-font-usage/" rel="nofollow external" class="bo">icon fonts</a>, such as those from <a href="http://icomoon.io/" rel="nofollow external" class="bo">IcoMoon</a> and <a href="http://fortawesome.github.io/Font-Awesome/" rel="nofollow external" class="bo">Font Awesome</a>. I didn’t use these methods on my website, mainly because I don’t have many icons or vector images. But if you’re looking to use vector images and icons more heavily on your website, then these techniques will come in handy.</p>
    <h4>Page Transitions</h4>
    <p>I’ve never been a fan of the abrupt way in which one Web page jumps to another. When the user clicks a link, there’s usually a sharp jump, followed by images loading awkwardly on the page in no particular order. I wanted to control the way my content appears, to create a smooth transition from one page to the next as the visitor navigates the website. When a visitor clicks a link to another page, the current page should fade to white before the next page loads. The next page would start from a white background, and then the content would animate smoothly onto the page. This makes for a pleasant and consistent user experience.</p>
    <p>To achieve this transition effect, I needed to use a <strong>jQuery preloader plugin</strong>, such as <a href="http://www.inwebson.com/jquery/jpreloader-a-preloading-screen-to-preload-images/" rel="nofollow external" class="bo">jPreLoader</a> or <a href="http://www.gayadesign.com/diy/queryloader2-preload-your-images-with-ease/" rel="nofollow external" class="bo">QueryLoader2</a>. This ensures that images load before being animated onto the page (otherwise, the animations would occur before the images have loaded). When it comes to Web development, jQuery plugins shouldn’t be your first option because you rely on jQuery and it’s a performance hit. It’s always a better idea to <strong>search for more lightweight, single-purpose JavaScript libraries</strong> and use them instead. You could also use CSS transitions in some cases.</p>
    <p>I’m not a fan of preloaders in general because the user has to wait until the page loads to see anything, but using one is necessary to achieve the effect I want. I’m going to experiment with hiding the preloader when the page loads quickly, and introduce it only on long page loads. This means that most people would simply see one page seamlessly fade to the next, without a preloader being shown. I’d be interested to hear of any other methods to achieve page transitions without the need for a preloader.</p>
    <p>Here is a simple jQuery function to fade out the page when the visitor clicks a link:</p>
    <pre><code>&#x000A;    /* &#x000A;    * Function to animate leaving a page&#x000A;    */&#x000A;    $.fn.leavePage = function() { 	&#x000A;      	&#x000A;    	this.click(function(event){&#x000A;    &#x000A;    		// Don't go to the next page yet.&#x000A;    		event.preventDefault();&#x000A;    		linkLocation = this.href;&#x000A;    		&#x000A;    		// Fade out this page first.&#x000A;    		$('body').fadeOut(500, function(){&#x000A;    			&#x000A;    			// Then go to the next page.&#x000A;    			window.location = linkLocation;&#x000A;    		});      &#x000A;    	}); &#x000A;    };&#x000A;    &#x000A;    &#x000A;    /* &#x000A;    * Call the leavePage function upon link clicks with the "transition" class&#x000A;    */&#x000A;    $('.transition').leavePage();&#x000A;    </code></pre>
    <p>I want the <code>leavePage</code> animation to happen when visitors click on a link to another page of my website, so I simply added a <code>transition</code> class to the appropriate links. When a visitor clicks on any link with the <code>transition</code> class, the <code>leavePage</code> animation is triggered. This example is simple, but you can build on it for more complex animation.</p>
    <p>So, the user has clicked a link, the current page has faded out, and they’ve landed on the next page. What happens now? Our jQuery preloader takes care of the rest. The preloader basically displays an overlay that covers the page as it loads. Once the loading is complete, the overlay fades away to reveal the page. Of course, you can create your own custom animation to animate content onto the page in a more interesting way.</p>
    <p>I won’t get into much detail because there are many ways to animate content onto the page. You could slide content in from the side, one element after another, or fade in elements from top to bottom. Basically you just need to write a function to animate content onto the page, and then call this function once the page has completely loaded. Luckily, both jQuery preloaders mentioned above have callback functions that enable you to call an animation function after the page has completely loaded.</p>
    <h4>Prevent Flash of Unstyled Content</h4>
    <p>One of the most annoying issues I faced in trying to achieve the smooth transition between pages was the flash of unstyled content (FOUC) before the jQuery preloader had even started. It wasn’t always there, but every now and then I saw some content flash onto the page before the animation had even started. Luckily, I found a <a href="http://www.learningjquery.com/2008/10/1-way-to-avoid-the-flash-of-unstyled-content" rel="nofollow external" class="bo">clean and simple way to prevent FOUC</a> that works perfectly.</p>
    <h4>Animate Content on Scroll</h4>
    <p>I love the idea of including subtle animations as the visitor scrolls down the page. It’s become a bit of a trend recently, and I think it improves the user experience and adds a touch of polish. I use a simple yet powerful jQuery plugin called <a href="http://imakewebthings.com/jquery-waypoints/" rel="nofollow external" class="bo">Waypoints</a> to create the on-scroll animations. It enables you to trigger animations at different page scroll distances.</p>
    <p>If you’re looking for an easy way to do more complex animations on scroll, then check out the <a href="http://johnpolacek.github.io/superscrollorama/" rel="nofollow external" class="bo">SuperScrollorama</a> jQuery plugin.</p>
    <h4>Custom WordPress Development</h4>
    <p>I decided to build my website in WordPress, mainly because I’m familiar with it and wanted blogging functionality. Being able to easily install plugins to add functionality is also a nice time-saver. <a href="http://codex.wordpress.org/Installing_WordPress" rel="nofollow external" class="bo">Installing WordPress on a server</a> and turning static HTML pages into a <a href="http://codex.wordpress.org/Theme_Development" rel="nofollow external" class="bo">WordPress theme</a> is a pretty simple process. If you’re not familiar with WordPress, you could always use another platform, such as <a href="http://drupal.org/" rel="nofollow external" class="bo">Drupal</a>. Or feel free to just build from scratch in PHP (depending on the complexity of the website).</p>
    <p>Because some of my pages have quite varied layouts, I needed a few <strong>custom page templates</strong>. For instance, I couldn’t use a standard WordPress page for my home page because that design is quite different. So, I created a custom template for the home page. <a href="http://codex.wordpress.org/Page_Templates#Custom_Page_Template" rel="nofollow external" class="bo">Creating a custom page template in WordPress</a> is quite easy. I also created custom templates for my portfolio item pages and contact page.</p>
    <p>In order to separate my portfolio item posts from my blog posts, I <a href="http://wp.smashingmagazine.com/2012/11/08/complete-guide-custom-post-types/" rel="nofollow external" class="bo">created a custom post type</a> especially for my portfolio items. You might be able to get away with displaying your portfolio items as blog posts and categorizing them in a “portfolio” category, to separate them from standard blog posts. I needed the flexibility of a custom post type with a different layout. I won’t get into any more detail about WordPress development because plenty of great <a href="http://codex.wordpress.org/" rel="nofollow external" class="bo">WordPress documentation</a> is already out there.</p>
    <h3>Testing and Analytics</h3>
    <h4>Test Across Browsers</h4>
    <p>I’m sure you’re all aware of the importance of testing to ensure that your website renders correctly <strong>across relevant browsers</strong>. You’ll notice that I didn’t say “all browsers,” because you really only need to ensure that your website renders properly for your particular audience. If you know that all of your visitors will be using modern browsers, then you don’t need to spend valuable time and effort supporting old ones.</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2013/06/major-browsers.jpg" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/major-browsers_mini.jpg" alt="major browsers" width="500" height="150" style="max-width: 100%; height: auto;"></a><br>
    <em>Test your website on the major browsers.</em></p>
    <p>So, how do you test a website across all relevant browsers? If you’re on a Mac like me, then just download all modern browsers, including Chrome, Safari, Opera and Firefox. But how do you test Internet Explorer on a Mac? One simple and free way is to <a href="http://osxdaily.com/2011/09/04/internet-explorer-for-mac-ie7-ie8-ie-9-free/" rel="nofollow external" class="bo">set up a virtual machine running Windows</a>.</p>
    <p>You can also use an Internet Explorer emulator, such as <a href="http://my-debugbar.com/wiki/IETester/HomePage" rel="nofollow external" class="bo">IE Tester</a>. Or sign up to a service such as <a href="http://spoon.net/" rel="nofollow external" class="bo">Spoon</a> or <a href="http://www.browserstack.com/" rel="nofollow external" class="bo">BrowserStack</a>, which allows you to test the website on all major browsers, including Internet Explorer 6, 7, 8, 9 and 10. Rather than leave cross-browser testing until the end, test the website every now and then during the development process.</p>
    <h4>Set Up Google Analytics</h4>
    <p>Add <a href="http://www.google.com/analytics" rel="nofollow external" class="bo">Google Analytics</a> to your website to collect valuable statistics on visitors. You’ll know the location of visitors and whether they’re arriving via Google searches or from referring websites. One of your blog posts could get mentioned on another website; if you’re not monitoring your traffic sources, you might not even know about it. Analytics also help you build a profile of visitors, including their country of origin and browser. You can use this data on an ongoing basis to optimize the website for visitors. Setting up Google Analytics on your website is free and takes only a few minutes. Simply sign up, copy and paste the small JavaScript snippet into the footer of your website, and you’re ready to go!</p>
    <h3>Time To Launch</h3>
    <p>So, we’ve designed, built and tested our new portfolio, and we’re finally ready to launch — high five! This is one of those experiences you simply shouldn’t miss out on as a designer. I had a great time creating my website and learned a lot in the process. Sure, there were hurdles along the way, but isn’t that what makes design so interesting? I’d love to hear about your experiences in creating your own portfolio.</p>
    <p>Hopefully, hearing about my journey will help and inspire you to create your own website or to finally start that redesign you’ve been contemplating for the past few years. <strong>So, get out your headphones, knuckle down, and start pushing those pixels.</strong> I wish you all the best on your epic quest ahead. Good luck, and may the force be with you.</p>
    <p><em>(al)</em></p>
    <hr>
    <p><small>© Adham Dannaway for <a href="http://www.smashingmagazine.com" rel="nofollow external" class="bo">Smashing Magazine</a>, 2013.</small></p>
    </div>
]]>
</Body>
<Summary>        Please notice that this article is targeted at newcomers to the industry rather than seasoned designers and developers. The point of the article is to provide a general guide to building...</Summary>
<Website>http://www.smashingmagazine.com/2013/06/25/workflow-design-develop-modern-portfolio-website/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/31851/guest@my.umbc.edu/a72603905c1ab9138fca8c0a23a7bc35/api/pixel</TrackingUrl>
<Tag>case-studies</Tag>
<Tag>coding</Tag>
<Tag>css</Tag>
<Tag>design</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>php</Tag>
<Tag>process</Tag>
<Tag>sql</Tag>
<Tag>tutorials</Tag>
<Tag>web</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Tue, 25 Jun 2013 09:50:19 -0400</PostedAt>
<EditAt>Tue, 25 Jun 2013 09:50:19 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="31803" important="false" status="posted" url="https://my3.my.umbc.edu/posts/31803">
<Title>My Workflow To Design And Develop A Modern Portfolio Website</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <table width="650">
    <tbody>
    <tr>
    <td>
    <div>
    <img src="http://statisches.auslieferung.commindo-media-ressourcen.de/advertisement.gif" alt="" style="max-width: 100%; height: auto;"><br><a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&amp;collection=smashing-rss&amp;position=1" rel="nofollow external" class="bo"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&amp;collection=smashing-rss&amp;position=1" alt="" style="max-width: 100%; height: auto;"></a> <a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&amp;collection=smashing-rss&amp;position=2" rel="nofollow external" class="bo"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&amp;collection=smashing-rss&amp;position=2" alt="" style="max-width: 100%; height: auto;"></a> <a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&amp;collection=smashing-rss&amp;position=3" rel="nofollow external" class="bo"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&amp;collection=smashing-rss&amp;position=3" alt="" style="max-width: 100%; height: auto;"></a>
    </div>
    </td>
    </tr>
    </tbody>
    </table>
    <p>A long time ago in a galaxy far, far away… a youngling designer embarked on an epic journey strewn with perilous layout challenges, constant procrastination, devious jQuery errors and deadly Internet Explorer bugs. It was a rite of passage that all designers must take, in order to stand proud with their peers in this wide world we call “The Web”. Yes, I’m talking about creating your own portfolio website.</p>
    <p>I recently re-designed <a href="http://www.adhamdannaway.com" rel="nofollow external" class="bo">my own portfolio site</a>, it was a challenging but <strong>enjoyable experience that I really learned a lot from</strong>. My goal was to create a unique online presence that represented my personality and displayed my design work in detail, while of course acting as a promotional medium to gain more business and exposure. </p>
    <p><a href="http://www.adhamdannaway.com" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/designing-coding-portfolio_mini.jpg" alt="Behind the scenes look at my design and development workflow." width="500" height="350" style="max-width: 100%; height: auto;"></a><br><em>Behind the scenes look at my design and development workflow.</em></p>
    <p>After receiving a bunch of emails asking me how I designed and built my site, I decided to write this article to give a behind the scenes look at my journey and some of the things I learned along the way. I’ll discuss best practices in modern web design and <strong>go through the entire design and development workflow</strong> I used to create my site, from the initial planning stage to the final live website including:</p>
    <ul>
    <li>project planning,</li>
    <li>branding,</li>
    <li>designing wireframes,</li>
    <li>responsive design and flexible grids,</li>
    <li>using LESS and SASS,</li>
    <li>catering for high definition screens,</li>
    <li>creating flexible images,</li>
    <li>animating content,</li>
    <li>WordPress development and
    </li>
    <li>testing and analytics.</li>
    </ul>
    <p>I hope it helps and inspires other designers out there looking to create their own unique portfolio website. We’ve got a lot to get through, so let’s get started.</p>
    <h3>Project Planning</h3>
    <h4>Defining your Brief</h4>
    <p>The first thing I do with any project is figure out exactly what I want to achieve and write it down. What is the purpose of the project? <strong>What problem am I trying to solve?</strong> For me, my goal was to create an online profile to promote my design work and gain more exposure. It needed to allow me to write articles, display my design work and also allow people to contact me easily. I also wanted it to be unique and memorable while representing my personality.</p>
    <p>At this point we simply want to figure out our end goal, we’re not worried about how we will get there. Write down your goals, and make sure you look back at them at later stages in the project to ensure that you’re on track.</p>
    <h4>Initial Research and Idea Generation</h4>
    <p>It’s always a good idea to do some initial research to get the creative juices flowing. Inspiration can come from anywhere and it can strike you at any time, usually when you’re in bed and on the verge of falling asleep (and of course there’s not a notebook in sight). I like to check out websites like <a href="http://www.awwwards.com" rel="nofollow external" class="bo">Awwwards</a>, <a href="http://www.dribbble.com" rel="nofollow external" class="bo">Dribbble</a> and <a href="http://www.creattica.com" rel="nofollow external" class="bo">Creattica</a> for inspiration. But sometimes it’s best not to look at what other designers have done, because once you’ve seen it, it’s sometimes hard to think of your own ideas.</p>
    <p>Instead, I’d suggest making a cup of tea, finding a comfortable spot and brainstorming your own solutions to the problem at hand. All you need at this stage is a pen, a sketchbook and your thoughts. Hopefully that way you’ll be able to <strong>come up with something innovative that hasn’t been done before</strong>. There are plenty of methods you can use to <a href="http://www.mindtools.com/pages/article/newCT_88.htm" rel="nofollow external" class="bo">generate ideas</a>. Have a think about your personality and what makes you unique as a designer. What are your interests? How are you different? Do you have a particular design style? Do you specialize in a certain area of design? Do you have unusually big ears? Find an angle that represents you and integrate that into your design.</p>
    <p><a href="http://justinaguilar.com/" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/portfolio-of-justin-aguilar1_mini.jpg" alt="portfolio of justin aguilar" width="500" height="338" style="max-width: 100%; height: auto;"></a><br><em>Justin Aguilar illustrates his workspace in his portfolio design.</em></p>
    <p><a href="http://www.mengto.com" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/portfolio-of-meng-to_mini.jpg" alt="portfolio of meng to" width="500" height="360" style="max-width: 100%; height: auto;"></a><br><em>Meng To gets straight to the point with his design case studies.</em></p>
    <p><a href="http://www.minimalmonkey.com" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/portfolio-of-stephen-burgess_mini.jpg" alt="portfolio of stephen burgess" width="500" height="323" style="max-width: 100%; height: auto;"></a><br><em>Stephen Burgess is a developer, but he shows a great understanding of design and UX with his unique site.</em></p>
    <p>After some initial research I wrote down <strong>a few ideas and elements</strong> that I wanted to include in my portfolio site.</p>
    <ul>
    <li>My skill set is a mix of both coding and design and I want this to be shown prominently.</li>
    <li>I’m a big fan of minimalist design and want to stick with a mainly black and white colour palette to allow my design work to shine through.</li>
    <li>I’d like to use my own photo as a hero image to inject some personality into the site.</li>
    <li>I enjoy the experience of seeing animations happen as I scroll down a page.</li>
    <li>I’ve never liked the jerky way in which one webpage jumps to another, so I want to make sure my site transitions smoothly from one page to another.</li>
    <li>I like generous amounts of white space and a full width layout.</li>
    <li>Having a responsive site is important to me as I want mobile and tablet users to also have an optimal user experience.</li>
    <li>I want my design case studies to tell a story about my design process, rather than just being a gallery of random images without context.</li>
    </ul>
    <h4>Create a Timeline</h4>
    <p>Once you’ve got your ideas together and you know which direction you’re headed in, it’s always a good idea to create a rough project timeline. I’m not talking about creating strict deadlines or anything, it’s more of a guide to help you organize tasks and stay productive and motivated. Simply list the tasks you need to do and estimate the amount of time each one will take. This <strong>will give you a rough outline of how long your project will take</strong>, as well as giving you a task list to work from. Of course some of your time estimates might be a little off, but that’s fine and you can adjust your timeline as you go. A little bit of organization goes a long way and it’s good practice to get into this habit.</p>
    <h3>Design</h3>
    <h4>Designing your Brand</h4>
    <p>Your brand is basically <strong>the visual language that describes who you are</strong> and will determine how others see you. For my brand I wanted to convey a clean, sleek and minimal look and feel. I kept things quite simple and decided to create a logo mark from my initials using a minimal black and white colour palette. I sketched out some initial ideas and experimented with various typography and letter arrangements, before deciding on the final logo design (which I drew in Adobe Illustrator). If you’re having trouble coming up with a logo design, you might like to have a read of <a href="http://www.adhamdannaway.com/blog/branding/a-systematic-approach-to-logo-design" rel="nofollow external" class="bo">a systematic approach to logo design</a>.</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2013/06/adham-dannaway-logo-design_mini.jpg" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/adham-dannaway-logo-design_mini.jpg" alt="adham dannaway logo design" width="500" height="400" style="max-width: 100%; height: auto;"></a><br><em>My final logo design.</em></p>
    <p>As part of my branding I also wanted to design an avatar image of my face, that I could use on my website along with various social media platforms. It would need to represent me as a designer and developer while also being unique and memorable.</p>
    <p>After countless hours of brainstorming (more like procrastination), I finally had an idea that made sense. The idea was to take a photo of my face and cut it in half. One side would portray the creative designer in me, while the other showed my logical coding side. After numerous sketches and a lot of fiddling in Photoshop, I was finally happy with the avatar image concept. I used pastel colours, grunge style brushes and masks to achieve the aesthetic I was after.</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2013/06/adham-dannaway-half-face_mini.jpg" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/adham-dannaway-avatar-concept_mini.jpg" alt="adham dannaway avatar concept" width="500" height="348" style="max-width: 100%; height: auto;"></a><br><em>My final avatar image concept.</em></p>
    <h4>Creating Content</h4>
    <p>I’ve noticed that a lot of designers leave content creation until the end of the project, as they’re more interested in the layout and design aesthetics of the website (the fun stuff). <strong>Content creation should happen early in the project</strong>, as your content will determine the appropriate design for the site. What information do you need to provide to your visitors? Have a think about what you want to say and how you want to say it. Should it be written as simple text or would it make more sense as an image or diagram?</p>
    <p>When writing your copy I think it’s best to be concise and friendly. I like to write in the first-person to make it feel more personable. Break your copy up into small chunks to improve readability and make it easy to scan. I wrote a draft of my content and broke it up into six main parts; homepage introduction, a bit about me, places I’ve been featured, my design work, my blog articles and my contact details.<br>
    </p>
    <h4>Displaying your Design Work</h4>
    <p>The most important piece of content is your portfolio of design work, as this is what most of your visitors want to see. Gather your best work and explain the process and workflow behind it. There’s nothing worse than a vague portfolio of random images with no context or explanation. <strong>Try to only include the type of work you’re looking to do more of</strong>, rather than all of your work. This will help you target the appropriate clients in the future.</p>
    <p>People want to see your work in as much detail as possible, so don’t shrink it down to a small size. Try to keep your designs at their actual size if you can. Make sure it’s easy for visitors to quickly navigate through all of your work. Talk about the challenges you came up against and how you solved them. Design is all about problem solving, so let your visitors know why your design looks and works the way it does. Remember, you’re telling a story so try and make it as interesting and informative as possible. Now that we have our content figured out, we can move onto sketching wireframes.</p>
    <p><a href="http://www.softfacade.com/" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/portfolio-case-study-example-small_mini.jpg" alt="portfolio case study" width="500" height="904" style="max-width: 100%; height: auto;"></a><br><em>Soft Facade have beautiful, in-depth design case studies.</em></p>
    <h4>Sketching Wireframes</h4>
    <p>The approach I take to sketching wireframes is simple but effective, and all you need is a pen and a sketchbook. I firstly write down a list of all the elements I need to include on the webpage. I then group related elements together before prioritizing these groups based on their importance. Here is my list of elements for my contact page.</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2013/06/wireframe-list_mini.jpg" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/wireframe-list_mini.jpg" alt="wireframe elements list" width="500" height="425" style="max-width: 100%; height: auto;"></a><br><em>List of page elements for my contact page.</em></p>
    <p>Once you’ve got your page elements grouped and prioritized, it’s much easier to arrange them on the page. Place your more important elements towards the top of the page and use white space to create your groupings. I took a desktop-first approach to the design of my site, as I wanted to focus on displaying my design work in detail on a larger screen.</p>
    <p>When we come to writing the CSS later on, we’ll actually be taking a mobile-first approach as it will simplify our CSS code, we’ll get to that shortly. I usually sketch my wireframes with pen and paper, but you can also use tools like <a href="http://www.balsamiq.com/" rel="nofollow external" class="bo">Balsamiq</a> or even Photoshop or Illustrator. Here’s a wireframe for my contact page. <strong>It doesn’t need to look pretty</strong>, it’s simply a plan of your web page to work from.</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2013/06/contact-page-wireframe_mini.jpg" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/contact-page-wireframe_mini.jpg" alt="contact page wireframe" width="500" height="496" style="max-width: 100%; height: auto;"></a><br><em>Contact page wireframe.</em></p>
    <h4>Responsive Design and Flexible Grids</h4>
    <p>I wanted to make my site responsive to different devices to ensure an optimal user experience for visitors on desktop, tablet and mobiles. When designing websites I usually like to use a grid, as it provides a structural foundation for my design while also making the development process easier and more efficient. Joshua Mauldin <a href="http://fireworks.smashingmagazine.com/2013/05/02/ios-grid-system-free-extension-adobe-fireworks/" rel="nofollow external" class="bo">sums up grids</a> pretty well.</p>
    <blockquote>
    <p>“Think of it like a house’s foundation. With a solid foundation, the house is stable, and building on it is easy. With a solid grid, your design can easily be adapted to accommodate whatever changes come along”.</p>
    </blockquote>
    <p>Some designers find grids to be limiting, but it really depends on the design you have in mind. I find that using a grid results in neater and more organised looking designs. My design was quite simple so I used a custom 12 column flexible grid, but a 16 column grid will give you more definition and accuracy. I also defined a maximum width of 1040px to ensure my design didn’t look stretched on larger monitors.</p>
    <p>Using a <strong>flexible</strong> grid (rather than having 3 separate <strong>fixed</strong> widths for mobile, tablet and desktop) means that my site scales dynamically to fit on any device width. Below is the CSS for my responsive grid, but feel free to create your own to suit your design. You can use tools like <a href="http://gridpak.com" rel="nofollow external" class="bo">Grid Pak</a>, <a href="http://www.responsivegridsystem.com/" rel="nofollow external" class="bo">Responsive Grid System</a>, <a href="http://goldengridsystem.com/" rel="nofollow external" class="bo">Golden Grid System</a> and <a href="http://responsify.it/" rel="nofollow external" class="bo">Responsify</a> to help create your own responsive grid. I used ideas from a few of these tools to create my own custom flexible grid.</p>
    <p><strong>CSS for my responsive grid:</strong></p>
    <pre><code>&#x000A;    &#x000A;    /* 12 Column Responsive Grid */&#x000A;    &#x000A;    .row {&#x000A;    &#x000A;        clear: both;&#x000A;        max-width: 1040px;&#x000A;        margin: 0 auto;&#x000A;    &#x000A;    }&#x000A;    &#x000A;    [class^="col-"] {&#x000A;    &#x000A;        float: left;&#x000A;        margin: 0 3.84615384615% 0 0;&#x000A;        list-style: none;&#x000A;        position: relative;&#x000A;    &#x000A;    }&#x000A;    &#x000A;    [class^="col-"]:last-child {&#x000A;    &#x000A;        margin: 0;&#x000A;    &#x000A;    }&#x000A;    &#x000A;    .col-1 { width: 4.8076923077% }&#x000A;    .col-2 { width: 13.4615384615% }&#x000A;    .col-3 { width: 22.1153846154% }&#x000A;    .col-4 { width: 30.7692307692% }&#x000A;    .col-5 { width: 39.4230769231% }&#x000A;    .col-6 { width: 48.0769230769% }&#x000A;    .col-7 { width: 56.7307692308% }&#x000A;    .col-8 { width: 65.3846153846% }&#x000A;    .col-9 { width: 74.0384615385% }&#x000A;    .col-10 { width: 82.6923076923% }&#x000A;    .col-11 { width: 91.3461538462% }&#x000A;    .col-12 { width: 100%; margin: 0 }&#x000A;    &#x000A;    </code></pre>
    <p>After looking at the CSS above, you might be wondering how the <code>[class^="col-"]</code> CSS selector works. It’s actually called a <a href="http://www.impressivewebs.com/css3-attribute-selectors-substring-matching/" rel="nofollow external" class="bo">substring matching attribute selector</a> and all it’s doing is selecting any classes that begin with the following string: “col-”. You can also <strong>use substring matching</strong> to select other attributes that end with a certain string or even those that contain a certain string. Substring matching is a very handy way to create more complex and powerful CSS selectors, and they’re <a href="http://www.impressivewebs.com/browser-support-css3-selectors/" rel="nofollow external" class="bo">well supported</a> too, going as far back as IE7.</p>
    <p><strong>HTML for my responsive grid:</strong></p>
    <p>The HTML is quite simple too and consists of rows and columns, much like a table. Here is a very simple example of a two column responsive grid that I used on my site. The left column spans across five columns, while the column on the right spans across seven.</p>
    <pre><code>&#x000A;    &#x000A;    &lt;div class="row"&gt;&#x000A;    &#x000A;        &lt;div class="col-5"&gt;Content spans over five columns&lt;/div&gt;&#x000A;        &lt;div class="col-7"&gt;Content spans over seven columns&lt;/div&gt;&#x000A;        &#x000A;    &lt;/div&gt;&#x000A;    &#x000A;    </code></pre>
    <h4>Setting Logical Breakpoints</h4>
    <p>When designing a responsive website, there will be certain widths at which the layout breaks or the text becomes squashed and difficult to read (<a href="http://webtypography.net/Rhythm_and_Proportion/Horizontal_Motion/2.1.2/" rel="nofollow external" class="bo">45 to 75 characters  per line is comfortable to read</a>). These special widths are known as breakpoints and they’re usually set based on common device widths e.g. 320px to 480px for mobile, 768px to 1024px for tablets, and 1024px and over for desktops. The problem is that “common” device widths don’t really exist anymore with the growing number of different devices, so this solution doesn’t scale well.</p>
    <p><a href="http://www.smashingmagazine.com/2013/03/01/logical-breakpoints-responsive-design/" rel="nofollow external" class="bo">Setting breakpoints based on the content</a> rather than device widths is a more scalable solution. For example, rather than blindly setting a breakpoint at 768px width for tablets, I instead looked at my content and found that it looked fine until it became squashed below 600px width. I thus set a breakpoint at 600px to change the layout to ensure the content was legible at and below this width. Yes, you need to optimize the display of your site on various devices, but <strong>your content should always determine where your breakpoints lie</strong>. These are the four breakpoints I needed for my design: 320px, 600px, 1024px and 1140px.</p>
    <p>When writing the CSS media queries for my site I took a mobile-first approach. This basically means that I wrote the mobile styles first as my base, followed by the tablet and then the desktop styles. Mobile styles are generally more simple than those needed for your desktop design, so it makes sense to write them first. They form the foundation of your styles, we can then add the more complex styles for larger screen sizes. Cascading your style sheet in this way keeps your code clean and DRY (<a href="http://en.wikipedia.org/wiki/Don't_repeat_yourself" rel="nofollow external" class="bo">Don’t repeat yourself</a>). Here are my media queries below.</p>
    <p><strong>Media queries:</strong></p>
    <pre><code>&#x000A;    &#x000A;    /* Mobile styles go first, outside the media queries */&#x000A;    &#x000A;    @media only screen and (min-width: 321px) { &#x000A;    &#x000A;        /* Larger mobile styles (above 320px wide) */&#x000A;    }&#x000A;    &#x000A;    @media only screen and (min-width: 600px) {&#x000A;    &#x000A;        /* Tablet styles (above 600px wide) */&#x000A;    }&#x000A;    &#x000A;    @media only screen and (min-width: 1024px) {&#x000A;    &#x000A;        /* Large laptop styles (above 1024px wide) */&#x000A;    }&#x000A;    &#x000A;    @media only screen and (min-width: 1140px) {&#x000A;    &#x000A;        /* Desktop styles (above 1140px wide) */&#x000A;    }&#x000A;    &#x000A;    &#x000A;    </code></pre>
    <p>With my breakpoints defined, I could sketch out the tablet and mobile wireframes. Sometimes it makes sense to hide or omit content on smaller devices, but I wanted to make sure as much content as possible was available across all devices. Why should mobile users miss out on valuable content? People are used to scrolling on mobiles anyway, so think first before removing or hiding content. <strong>The easiest solution isn’t always the best one.</strong></p>
    <h4>Designing High Fidelity Mock-ups</h4>
    <p>Once I had my desktop and mobile wireframes sketched out, I moved into Photoshop and started mocking-up the website in more detail. I don’t like to spend too much time in Photoshop as I think that it slows down the development process. Don’t worry too much about creating a pixel-perfect design, as you’ll have time to tweak and refine it during the coding process anyway. Instead, simply mock-up the main page templates along with any other design elements and assets you need.</p>
    <p>I mocked up my header and footer along with the basic elements of my “About me” page below to make sure I was happy with the aesthetic.</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2013/06/Adham-Dannaway-about-me-large_mini.jpg" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/adham-dannaway-about-page-design2_mini.jpg" alt="adham dannaway about me page" width="500" height="1196" style="max-width: 100%; height: auto;"></a><br><em>“About me” page mock-up.</em></p>
    <p>Similarly, I didn’t mock-up any mobile or tablet designs in Photoshop, as I find it quicker to simply code these up based on the wireframes. I did however spend some time on smaller details like icons and textures, as small details like this can make a big difference to the final polish of the site.</p>
    <h3>Development</h3>
    <p>Now that we have our site planned out and all of our image assets ready to go, it’s time to start coding. So get out your headphones and your favorite text editor! My text editor of choice is <a href="http://www.sublimetext.com/2" rel="nofollow external" class="bo">Sublime Text</a>. It’s simple, fast, powerful and easy to use. If you’re a Windows user I’d also recommend <a href="http://notepad-plus-plus.org/" rel="nofollow external" class="bo"> Notepad++</a>.</p>
    <p>I usually start from the top of the webpage and build each element one by one. Let’s start with the header navigation. I like to write out the HTML for the element first then move onto the CSS. Remember that we are actually creating the mobile version first to reduce code bloat. Depending on the complexity of your project, you can either start coding from scratch or use a base framework like <a href="http://html5boilerplate.com/" rel="nofollow external" class="bo">HTML5 Boilerplate</a>, <a href="http://foundation.zurb.com/" rel="nofollow external" class="bo">Foundation</a> or <a href="http://compass-style.org/" rel="nofollow external" class="bo">Compass</a>.</p>
    <h4>Using CSS Pre-processors (LESS/SASS)</h4>
    <p>If you’re not yet familiar with CSS pre-processors like <a href="http://lesscss.org/" rel="nofollow external" class="bo">LESS</a> and <a href="http://sass-lang.com/" rel="nofollow external" class="bo">SASS</a>, you should definitely familiarize yourself with them as they’ll save you a lot of time and effort and help streamline your CSS styles. A CSS pre-processor basically gives you more power when coding CSS, as it allows you to use <a href="http://coding.smashingmagazine.com/2011/12/12/an-introduction-to-object-oriented-css-oocss/" rel="nofollow external" class="bo">object oriented programming practices</a> when writing your styles.</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2013/06/less-sass-css-pre-processors_mini.jpg" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/less-sass-css-pre-processors_mini.jpg" alt="less sass css pre processors" width="500" height="257" style="max-width: 100%; height: auto;"></a><br><em>LESS and SASS CSS pre-processors.</em></p>
    <p>We’ve all wished that we could create variables in CSS, define functions and re-use code snippets <strong>without having to copy and paste continuously</strong>. CSS pre-processors allow you to do this and much more, while keeping your styles clean and organised. Your LESS/SASS code is simply compiled and output as regular CSS.</p>
    <p>I actually used LESS to create the CSS for my website. However, after experimenting with both LESS and SASS I feel that SASS is a more powerful solution, so I’ll be sticking to SASS from now on. Chris Coyier <a href="http://www.css-tricks.com/sass-vs-less" rel="nofollow external" class="bo">compares LESS and SASS</a> and shows the subtle but important differences between the two. The decider for me was that SASS uses <a href="http://compass-style.org/" rel="nofollow external" class="bo">Compass</a> and gives you access to a library of useful and well maintained mixins to use in your projects, LESS doesn’t. Feel free to have a play with both to see which one you prefer.</p>
    <h4>Progressive Enhancement with Modernizr</h4>
    <p><a href="http://modernizr.com/" rel="nofollow external" class="bo">Modernizr</a> is a JavaScript library that detects HTML5 and CSS3 features in the visitors’ browser and adds those features as classes to the <code>&lt;html&gt;</code> element. We all want to take advantage of the latest CSS3 and HTML5, but what happens in older browsers that don’t support it?</p>
    <p>Modernizr basically <strong>tells us which features are supported in the visitors’ browser</strong>, allowing us to write conditional CSS and JavaScript to handle each situation. Thus it allows us to easily take a <a href="http://alistapart.com/article/understandingprogressiveenhancement" rel="nofollow external" class="bo">progressive enhancement</a> approach; providing everyone with your basic website features, while also giving those with modern browsers an enhanced experience.</p>
    <h4>Creating Flexible Images</h4>
    <p>Flexible images are a very simple but important part of any responsive website. To make your images flexible, simply place them into your responsive grid container and add the below CSS to your style sheet. They need to be inserted using the <code>&lt;img&gt;</code> tag, although there are ways to achieve <a href="http://kimili.com/journal/the-flexible-scalable-background-image-redux" rel="nofollow external" class="bo">flexible images using CSS background images</a> too. If you want to get more technical and actually serve different images depending on the device being used (e.g. serving smaller images on mobiles to conserve bandwidth), you can look into these techniques for serving <a href="http://css-tricks.com/which-responsive-images-solution-should-you-use/" rel="nofollow external" class="bo">truly responsive images</a> and <a href="http://www.smashingmagazine.com/2013/05/10/how-to-avoid-duplicate-downloads-in-responsive-images/" rel="nofollow external" class="bo">avoiding duplicate image downloads</a>.</p>
    <pre><code>&#x000A;    &#x000A;    img { &#x000A;    &#x000A;        max-width: 100%; &#x000A;        height: auto !important;&#x000A;    }&#x000A;    &#x000A;    </code></pre>
    <h4>Using CSS Image Sprites</h4>
    <p>We all know that it’s a good idea to combine your icons and image assets into <a href="http://coding.smashingmagazine.com/2009/04/27/the-mystery-of-CSS-sprites-techniques-tools-and-tutorials/" rel="nofollow external" class="bo">CSS Image Sprites</a>, rather than having multiple individual images loading one after the other on your site. It decreases load times and also makes it easy for you to edit and maintain image files at a later stage. I usually like to create several sprites for the different sections of a website. For example, one of my sprites contained all of my icons, while another contained the common global page template elements e.g. logo, header icons, navigation background and footer icons.</p>
    <p>When you’re creating your sprites, <strong>it’s always a good idea to think about how your website loads</strong>. If you’ve got a bunch of image icons that are only used on a single page of a site, it’s probably best to separate them out from the main page sprite. This will ensure that they’re only loaded when they need to be, while keeping your main sprite file size low. Using sprites will also make things easier when it comes to preparing your images for high definition screens later on.</p>
    <p>Creating image sprites can be a cumbersome process, so tools like <a href="http://www.spritecow.com/" rel="nofollow external" class="bo">Sprite Cow</a> can come in handy in helping you create them quickly and easily. You can also use a combination of SASS and Compass to <a href="http://www.codechewing.com/library/automatically-generate-css-sprites-with-sass/" rel="nofollow external" class="bo">generate your sprites automatically from separate images</a>.</p>
    <h4>Catering for High Definition Screens</h4>
    <p>To ensure that your site looks crisp on high definition (or Retina) screens, it’s best to try and use CSS to style as much of it as possible. Remember that some of the newer CSS styles won’t render in older browsers, this is where a progressive enhancement approach makes sense. In most cases you won’t be able to build your site completely from CSS, you’ll need images. Luckily it’s not too hard to prepare your images for high definition screens.</p>
    <p>Basically you’ll need to create a larger version of your images that will be used on high definition screens. Since our images are contained within a sprite, all we need to do is create another version of the sprite that is exactly two times larger. Let’s say our sprite is named <code>sprite.png</code>, we would name our high definition sprite <code><a href="mailto:sprite@2x.png">sprite@2x.png</a></code>. To decrease load times (especially on mobile devices) it’s also a good idea to compress your images using <a href="http://www.jpegmini.com/" rel="nofollow external" class="bo">Jpeg Mini</a>, <a href="http://tinypng.org/" rel="nofollow external" class="bo">Tiny Png</a> or <a href="http://imageoptim.com/" rel="nofollow external" class="bo">Image Optim</a> if you’re on a Mac.</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2013/06/retina-image_mini.jpg" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/retina-image_mini.jpg" alt="retina image" width="500" height="300" style="max-width: 100%; height: auto;"></a><br><em>Simply create another image twice the size of the original for high definition devices.</em></p>
    <p>Once you’ve created your larger images, we simply use media queries to show the large images on high definition screens. You need to be careful with your media queries, as <strong>iPhone’s aren’t the only high definition devices around</strong> at the moment. There are other mobile phones along with Retina iPad’s and MacBook Pro’s too. I used two high definition media queries on my site; the first one is for high definition mobile devices, while the second is for tablets and laptops.</p>
    <p><strong>Media queries to target high definition screens:</strong></p>
    <pre><code>&#x000A;    &#x000A;    @media&#x000A;    only screen and (-webkit-min-device-pixel-ratio: 1.5), &#x000A;    only screen and (min--moz-device-pixel-ratio: 1.5),&#x000A;    only screen and (min-device-pixel-ratio: 1.5) {&#x000A;    &#x000A;        /* Target all high definition screens */&#x000A;    }&#x000A;    &#x000A;    @media &#x000A;    only screen and (min-width : 600px) and (-webkit-min-device-pixel-ratio: 1.5), &#x000A;    only screen and (min-width : 600px) and (min--moz-device-pixel-ratio: 1.5), &#x000A;    only screen and (min-width : 600px) and (min-device-pixel-ratio: 1.5) {&#x000A;    &#x000A;        /* Target high definition devices with screens wider than 600px */&#x000A;    }&#x000A;    &#x000A;    </code></pre>
    <p>Wouldn’t it be great if we could avoid the need for media queries and separate high definition images altogether?</p>
    <p>An even better way to cater for high definition screens is to ensure your images are vectors, this means that they will scale to fit any screen size and look crisp on any device. You can actually draw your images or icons in Illustrator and <a href="http://css-tricks.com/using-svg/" rel="nofollow external" class="bo">export them as SVG (Scalable Vector Graphics) files</a>. The SVG file basically consists of XML-based code that describes your image to the browser.</p>
    <p>Another clever way to <strong>get scalable vector icons that look crisp on high definition devices</strong> is to use <a href="http://css-tricks.com/html-for-icon-font-usage/" rel="nofollow external" class="bo">Icon Fonts</a> like those from <a href="http://icomoon.io/" rel="nofollow external" class="bo">Ico Moon</a> and <a href="http://fortawesome.github.io/Font-Awesome/" rel="nofollow external" class="bo">Font Awesome</a>. I didn’t actually use these methods on my site, mainly because I didn’t have many icons or vector images. But if you’re looking to use vector images and icons more heavily on your site, then these techniques will definitely come in handy.</p>
    <h4>Page to Page Transitions</h4>
    <p>I’ve never been a fan of the abrupt way in which one web page jumps to another. When you click on a link, there’s usually a sharp jump followed by images loading awkwardly and sporadically onto the page in no particular order. I wanted to control the way my content appeared, to create a smooth transition from one page to the next as a visitor navigated through my site. So when a visitor clicks on a link to go to another page of my site, the current page will basically fade away to white before taking the visitor to the next page. The next page will start from a white background, then the content will animate smoothly onto the page. I think that it creates a pleasant and consistent user experience.</p>
    <p>To achieve my page to page transition effect, I actually needed to use a <strong>jQuery preloader plugin</strong> like <a href="http://www.inwebson.com/jquery/jpreloader-a-preloading-screen-to-preload-images/" rel="nofollow external" class="bo">jPreLoader</a> or <a href="http://www.gayadesign.com/diy/queryloader2-preload-your-images-with-ease/" rel="nofollow external" class="bo">QueryLoader2</a>. This ensured my images were loaded before they animated onto the page, otherwise the animations would happen before the images were there. I’m not a fan of preloaders in general as the user needs to wait until the page loads before they actually see anything, but it was necessary to achieve the page transition effect I wanted. I’m actually going to experiment with hiding the preloader if the page loads quickly and only introducing it on longer page loads. This would mean that most people would simply see one page seamlessly fade to the next, without a preloader being shown.</p>
    <p><strong>I’m interested to hear of any other methods</strong> to achieve page to page transitions without the need for a preloader.</p>
    <p>Here is a very simple jQuery function that causes the page to fade out when visitors click a link to leave a page:</p>
    <pre><code>&#x000A;    &#x000A;    /* &#x000A;    * Function to animate leaving a page&#x000A;    */&#x000A;    $.fn.leavePage = function() { 	&#x000A;      	&#x000A;    	this.click(function(event){&#x000A;    &#x000A;    		// Don't go to the next page link yet&#x000A;    		event.preventDefault();&#x000A;    		linkLocation = this.href;&#x000A;    		&#x000A;    		// Fade the page out&#x000A;    		$('body').fadeOut(500, function(){&#x000A;    			&#x000A;    			// Then go to the next page link&#x000A;    			window.location = linkLocation;&#x000A;    		});      &#x000A;    	}); &#x000A;    };&#x000A;    &#x000A;    &#x000A;    /* &#x000A;    * Call the leavePage function on click of links with the "transition" class&#x000A;    */&#x000A;    $('.transition').leavePage();&#x000A;    &#x000A;    </code></pre>
    <p>I wanted the “leavePage” animation to happen when visitors clicked on a link to go to another page within my site, so I simply added a class called “transition” to the appropriate links. When a visitor clicked on any link with the “transition” class, the “leavePage” animation would be triggered. This is a very simple animation example, but you could build on this with your own more complex animations.</p>
    <p>So the user has clicked a link, the current page has faded away and they’ve landed on the next page. <strong>What happens now?</strong> Our jQuery preloader will take care of the rest. The preloader basically displays an overlay that covers your page while your page is loading. Once loading is complete, the overlay fades away to reveal your page. Of course you can create your own custom animations to animate your content onto the page in more interesting ways. I won’t go into this in too much detail, as there are many ways to animate content onto the page.</p>
    <p>You might like to slide your content in from the sides of the page one element after the other or fade elements in from top to bottom. Basically you’ll just need to write a function to animate your content onto the page, then call this function after the page load is complete. Luckily, both of the jQuery preloaders I mentioned above have callback functions that allow you to call your animation function after the page load is complete.</p>
    <h4>Preventing FOUC (Flash of Unstyled Content)</h4>
    <p>One of the most annoying issues I had while trying to achieve my smooth transition between pages was a flash of unstyled content (FOUC) before my jQuery preloader had even started. It wasn’t always there, but every now and then I would see some of my content flash onto the page before my animations had even started. Luckily I found a clean and simple way to <a href="http://www.learningjquery.com/2008/10/1-way-to-avoid-the-flash-of-unstyled-content" rel="nofollow external" class="bo">prevent the FOUC</a> that worked perfectly.</p>
    <h4>Animating Content on Scroll</h4>
    <p>I love the idea of including subtle animations as the visitor scrolls down the page. It’s become a bit of a trend recently, and I think it improves the user experience and adds a touch of polish to the page. I used a simple but powerful jQuery plugin called <a href="http://imakewebthings.com/jquery-waypoints/" rel="nofollow external" class="bo">Waypoints</a> to help me create my on-scroll animations. It basically allows you to trigger your animations at different page scroll distances.</p>
    <p>If you’re looking for an easy way to do more complex animations on scroll, you should check out the <a href="http://johnpolacek.github.io/superscrollorama/" rel="nofollow external" class="bo">Scrollorama jQuery plugin</a>.</p>
    <h4>Custom WordPress Development</h4>
    <p>I decided to build my website on a WordPress platform, mainly because I’m familiar with it and I wanted to include blog functionality on my site. It’s also a nice time-saver to be able to easily install plugins to add extra functionality to your site. It’s a pretty simple process to <a href="http://codex.wordpress.org/Installing_WordPress" rel="nofollow external" class="bo">install WordPress onto your server</a> and turn your static HTML pages into a <a href="http://codex.wordpress.org/Theme_Development" rel="nofollow external" class="bo">WordPress theme</a>. If you’re not familiar with WordPress, you can always use another CMS platform such as <a href="http://drupal.org/" rel="nofollow external" class="bo">Drupal</a>, or feel free to avoid them altogether and just build it from scratch in PHP (It really depends on the complexity of your site).</p>
    <p>Since some of the pages on my website had quite varied layouts, I needed to create a few <strong>custom page templates</strong>. For example, I couldn’t use a standard WordPress page for my homepage as the design is quite customized. So I created a custom template for the homepage. It’s actually really simple to <a href="http://codex.wordpress.org/Page_Templates#Custom_Page_Template" rel="nofollow external" class="bo">create a custom page template in WordPress</a>. I also created custom templates for my portfolio item pages and contact page.</p>
    <p>In order to separate my portfolio item posts from my blog posts, I decided to <a href="http://wp.smashingmagazine.com/2012/11/08/complete-guide-custom-post-types/" rel="nofollow external" class="bo">create a custom post type</a> for my portfolio items. This basically allowed me to use a different template for blog posts and portfolio item posts. You might be able to get away with simply displaying your portfolio items as blog posts and categorizing them into a “portfolio” category to separate them from the standard blog post articles. I needed the flexibility of a custom post type with a different layout. I won’t go into more detail about WordPress development, as there’s plenty of great <a href="http://codex.wordpress.org/" rel="nofollow external" class="bo">WordPress documentation</a> out there already.</p>
    <h3>Testing And Analytics</h3>
    <h4>Cross Browser Testing</h4>
    <p>I’m sure you’re all aware of the importance of cross browser testing to ensure that your site renders correctly across <strong>relevant browsers</strong>. You’ll notice that I didn’t say “all browsers”, that’s because you really only need to ensure that your site renders properly for your particular audience. If you know that all of your visitors are using modern browsers then you don’t need to spend valuable time and effort supporting older ones.</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2013/06/major-browsers_mini.jpg" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/major-browsers_mini.jpg" alt="major browsers" width="500" height="150" style="max-width: 100%; height: auto;"></a><br><em>Test your site on the major browsers.</em></p>
    <p>So how do we test our website across all the relevant browsers? If you’re on a Mac like me you’ll be able to simply download all the modern browsers like Chrome, Safari, Opera and Firefox. So how do you test Internet Explorer on a Mac? One simple and free way to do this is to simply <a href="http://osxdaily.com/2011/09/04/internet-explorer-for-mac-ie7-ie8-ie-9-free/" rel="nofollow external" class="bo">setup a virtual machine running Windows</a>.</p>
    <p>You can also use an IE emulator tool like <a href="http://my-debugbar.com/wiki/IETester/HomePage" rel="nofollow external" class="bo">IE Tester</a> or alternatively sign up to services like <a href="http://spoon.net/" rel="nofollow external" class="bo">Spoon</a> or <a href="http://www.browserstack.com/" rel="nofollow external" class="bo">Browser Stack</a>, which allow you to test your site on all major browsers including Internet Explorer 6, 7, 8, 9 and 10. Rather than leaving your cross browser testing right until the end of your project, it’s probably best to test your site every now and then during the development process to make things easier at the end.</p>
    <h4>Setup Google Analytics</h4>
    <p>It’s always a good idea to add <a href="http://www.google.com/analytics" rel="nofollow external" class="bo">Google Analytics</a> to your website to collect valuable statistics on your visitors. You’ll know the location of your visitors and whether they’re arriving via Google searches or from referring sites. One of your blog posts might get mentioned on another site, if you’re not monitoring your traffic sources you might not even know about it.</p>
    <p>Analytics will also allow you to build a profile of your visitors and get an idea of which countries they’re from and what browsers they’re using. You can use this data on an ongoing basis to improve and optimize your site for your visitors. Setting up Google Analytics on your website is free and only takes a few minutes. Simply sign up, copy and paste a small JavaScript code snippet into the footer of your site and you’re ready to go!</p>
    <h3>Time To Launch</h3>
    <p>So we’ve designed, built and tested our new portfolio website and we’re finally ready to launch (High five)! It’s one of those experiences you simply shouldn’t miss out on as a designer. I had a great time creating my site and learned a lot in the process too. Sure, there were hurdles and challenges along the way, but isn’t that what makes design so interesting? I’d love to hear about your experiences creating your own portfolio site.</p>
    <p>I hope that my journey will help and inspire you to create your own site, or finally start that re-design you’ve been contemplating for the past few years. <strong>So get out your headphones, knuckle down and start pushing those pixels.</strong> I wish you all the best on your epic quest ahead, good luck and may the force be with you.</p>
    <hr>
    <p><small>© Adham Dannaway for <a href="http://www.smashingmagazine.com" rel="nofollow external" class="bo">Smashing Magazine</a>, 2013.</small></p>
    </div>
]]>
</Body>
<Summary>        A long time ago in a galaxy far, far away… a youngling designer embarked on an epic journey strewn with perilous layout challenges, constant procrastination, devious jQuery errors and...</Summary>
<Website>http://www.smashingmagazine.com/2013/06/25/design-and-develop-a-modern-portfolio-website/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/31803/guest@my.umbc.edu/b1f124d6833e4353ec811f758a63846e/api/pixel</TrackingUrl>
<Tag>case-studies</Tag>
<Tag>case-study</Tag>
<Tag>css</Tag>
<Tag>design</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>php</Tag>
<Tag>process</Tag>
<Tag>responsive-web-design</Tag>
<Tag>sql</Tag>
<Tag>web</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Tue, 25 Jun 2013 09:50:19 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="31805" important="false" status="posted" url="https://my3.my.umbc.edu/posts/31805">
<Title>My Workflow To Design And Develop A Modern Portfolio Website</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <table width="650">
    <tbody>
    <tr>
    <td>
    <div>
    <img src="http://statisches.auslieferung.commindo-media-ressourcen.de/advertisement.gif" alt="" style="max-width: 100%; height: auto;"><br><a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&amp;collection=smashing-rss&amp;position=1" rel="nofollow external" class="bo"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&amp;collection=smashing-rss&amp;position=1" alt="" style="max-width: 100%; height: auto;"></a> <a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&amp;collection=smashing-rss&amp;position=2" rel="nofollow external" class="bo"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&amp;collection=smashing-rss&amp;position=2" alt="" style="max-width: 100%; height: auto;"></a> <a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&amp;collection=smashing-rss&amp;position=3" rel="nofollow external" class="bo"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&amp;collection=smashing-rss&amp;position=3" alt="" style="max-width: 100%; height: auto;"></a>
    </div>
    </td>
    </tr>
    </tbody>
    </table>
    <p>A long time ago in a galaxy far, far away… a youngling designer embarked on an epic journey strewn with perilous layout challenges, constant procrastination, devious jQuery errors and deadly Internet Explorer bugs. It was a rite of passage that all designers must take, in order to stand proud with their peers in this wide world we call “The Web”. Yes, I’m talking about creating your own portfolio website.</p>
    <p>I recently re-designed <a href="http://www.adhamdannaway.com" rel="nofollow external" class="bo">my own portfolio site</a>, it was a challenging but <strong>enjoyable experience that I really learned a lot from</strong>. My goal was to create a unique online presence that represented my personality and displayed my design work in detail, while of course acting as a promotional medium to gain more business and exposure. </p>
    <p><a href="http://www.adhamdannaway.com" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/designing-coding-portfolio_mini.jpg" alt="Behind the scenes look at my design and development workflow." width="500" height="350" style="max-width: 100%; height: auto;"></a><br><em>Behind the scenes look at my design and development workflow.</em></p>
    <p>After receiving a bunch of emails asking me how I designed and built my site, I decided to write this article to give a behind the scenes look at my journey and some of the things I learned along the way. I’ll discuss best practices in modern web design and <strong>go through the entire design and development workflow</strong> I used to create my site, from the initial planning stage to the final live website including:</p>
    <ul>
    <li>project planning,</li>
    <li>branding,</li>
    <li>designing wireframes,</li>
    <li>responsive design and flexible grids,</li>
    <li>using LESS and SASS,</li>
    <li>catering for high definition screens,</li>
    <li>creating flexible images,</li>
    <li>animating content,</li>
    <li>WordPress development and
    </li>
    <li>testing and analytics.</li>
    </ul>
    <p>I hope it helps and inspires other designers out there looking to create their own unique portfolio website. We’ve got a lot to get through, so let’s get started.</p>
    <h3>Project Planning</h3>
    <h4>Defining your Brief</h4>
    <p>The first thing I do with any project is figure out exactly what I want to achieve and write it down. What is the purpose of the project? <strong>What problem am I trying to solve?</strong> For me, my goal was to create an online profile to promote my design work and gain more exposure. It needed to allow me to write articles, display my design work and also allow people to contact me easily. I also wanted it to be unique and memorable while representing my personality.</p>
    <p>At this point we simply want to figure out our end goal, we’re not worried about how we will get there. Write down your goals, and make sure you look back at them at later stages in the project to ensure that you’re on track.</p>
    <h4>Initial Research and Idea Generation</h4>
    <p>It’s always a good idea to do some initial research to get the creative juices flowing. Inspiration can come from anywhere and it can strike you at any time, usually when you’re in bed and on the verge of falling asleep (and of course there’s not a notebook in sight). I like to check out websites like <a href="http://www.awwwards.com" rel="nofollow external" class="bo">Awwwards</a>, <a href="http://www.dribbble.com" rel="nofollow external" class="bo">Dribbble</a> and <a href="http://www.creattica.com" rel="nofollow external" class="bo">Creattica</a> for inspiration. But sometimes it’s best not to look at what other designers have done, because once you’ve seen it, it’s sometimes hard to think of your own ideas.</p>
    <p>Instead, I’d suggest making a cup of tea, finding a comfortable spot and brainstorming your own solutions to the problem at hand. All you need at this stage is a pen, a sketchbook and your thoughts. Hopefully that way you’ll be able to <strong>come up with something innovative that hasn’t been done before</strong>. There are plenty of methods you can use to <a href="http://www.mindtools.com/pages/article/newCT_88.htm" rel="nofollow external" class="bo">generate ideas</a>. Have a think about your personality and what makes you unique as a designer. What are your interests? How are you different? Do you have a particular design style? Do you specialize in a certain area of design? Do you have unusually big ears? Find an angle that represents you and integrate that into your design.</p>
    <p><a href="http://justinaguilar.com/" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/portfolio-of-justin-aguilar1_mini.jpg" alt="portfolio of justin aguilar" width="500" height="338" style="max-width: 100%; height: auto;"></a><br><em>Justin Aguilar illustrates his workspace in his portfolio design.</em></p>
    <p><a href="http://www.mengto.com" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/portfolio-of-meng-to_mini.jpg" alt="portfolio of meng to" width="500" height="360" style="max-width: 100%; height: auto;"></a><br><em>Meng To gets straight to the point with his design case studies.</em></p>
    <p><a href="http://www.minimalmonkey.com" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/portfolio-of-stephen-burgess_mini.jpg" alt="portfolio of stephen burgess" width="500" height="323" style="max-width: 100%; height: auto;"></a><br><em>Stephen Burgess is a developer, but he shows a great understanding of design and UX with his unique site.</em></p>
    <p>After some initial research I wrote down <strong>a few ideas and elements</strong> that I wanted to include in my portfolio site.</p>
    <ul>
    <li>My skill set is a mix of both coding and design and I want this to be shown prominently.</li>
    <li>I’m a big fan of minimalist design and want to stick with a mainly black and white colour palette to allow my design work to shine through.</li>
    <li>I’d like to use my own photo as a hero image to inject some personality into the site.</li>
    <li>I enjoy the experience of seeing animations happen as I scroll down a page.</li>
    <li>I’ve never liked the jerky way in which one webpage jumps to another, so I want to make sure my site transitions smoothly from one page to another.</li>
    <li>I like generous amounts of white space and a full width layout.</li>
    <li>Having a responsive site is important to me as I want mobile and tablet users to also have an optimal user experience.</li>
    <li>I want my design case studies to tell a story about my design process, rather than just being a gallery of random images without context.</li>
    </ul>
    <h4>Create a Timeline</h4>
    <p>Once you’ve got your ideas together and you know which direction you’re headed in, it’s always a good idea to create a rough project timeline. I’m not talking about creating strict deadlines or anything, it’s more of a guide to help you organize tasks and stay productive and motivated. Simply list the tasks you need to do and estimate the amount of time each one will take. This <strong>will give you a rough outline of how long your project will take</strong>, as well as giving you a task list to work from. Of course some of your time estimates might be a little off, but that’s fine and you can adjust your timeline as you go. A little bit of organization goes a long way and it’s good practice to get into this habit.</p>
    <h3>Design</h3>
    <h4>Designing your Brand</h4>
    <p>Your brand is basically <strong>the visual language that describes who you are</strong> and will determine how others see you. For my brand I wanted to convey a clean, sleek and minimal look and feel. I kept things quite simple and decided to create a logo mark from my initials using a minimal black and white colour palette. I sketched out some initial ideas and experimented with various typography and letter arrangements, before deciding on the final logo design (which I drew in Adobe Illustrator). If you’re having trouble coming up with a logo design, you might like to have a read of <a href="http://www.adhamdannaway.com/blog/branding/a-systematic-approach-to-logo-design" rel="nofollow external" class="bo">a systematic approach to logo design</a>.</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2013/06/adham-dannaway-logo-design.jpg" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/adham-dannaway-logo-design_mini.jpg" alt="adham dannaway logo design" width="500" height="400" style="max-width: 100%; height: auto;"></a><br><em>My final logo design.</em></p>
    <p>As part of my branding I also wanted to design an avatar image of my face, that I could use on my website along with various social media platforms. It would need to represent me as a designer and developer while also being unique and memorable.</p>
    <p>After countless hours of brainstorming (more like procrastination), I finally had an idea that made sense. The idea was to take a photo of my face and cut it in half. One side would portray the creative designer in me, while the other showed my logical coding side. After numerous sketches and a lot of fiddling in Photoshop, I was finally happy with the avatar image concept. I used pastel colours, grunge style brushes and masks to achieve the aesthetic I was after.</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2013/06/adham-dannaway-half-face_mini.jpg" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/adham-dannaway-avatar-concept_mini.jpg" alt="adham dannaway avatar concept" width="500" height="348" style="max-width: 100%; height: auto;"></a><br><em>My final avatar image concept.</em></p>
    <h4>Creating Content</h4>
    <p>I’ve noticed that a lot of designers leave content creation until the end of the project, as they’re more interested in the layout and design aesthetics of the website (the fun stuff). <strong>Content creation should happen early in the project</strong>, as your content will determine the appropriate design for the site. What information do you need to provide to your visitors? Have a think about what you want to say and how you want to say it. Should it be written as simple text or would it make more sense as an image or diagram?</p>
    <p>When writing your copy I think it’s best to be concise and friendly. I like to write in the first-person to make it feel more personable. Break your copy up into small chunks to improve readability and make it easy to scan. I wrote a draft of my content and broke it up into six main parts; homepage introduction, a bit about me, places I’ve been featured, my design work, my blog articles and my contact details.<br>
    </p>
    <h4>Displaying your Design Work</h4>
    <p>The most important piece of content is your portfolio of design work, as this is what most of your visitors want to see. Gather your best work and explain the process and workflow behind it. There’s nothing worse than a vague portfolio of random images with no context or explanation. <strong>Try to only include the type of work you’re looking to do more of</strong>, rather than all of your work. This will help you target the appropriate clients in the future.</p>
    <p>People want to see your work in as much detail as possible, so don’t shrink it down to a small size. Try to keep your designs at their actual size if you can. Make sure it’s easy for visitors to quickly navigate through all of your work. Talk about the challenges you came up against and how you solved them. Design is all about problem solving, so let your visitors know why your design looks and works the way it does. Remember, you’re telling a story so try and make it as interesting and informative as possible. Now that we have our content figured out, we can move onto sketching wireframes.</p>
    <p><a href="http://www.softfacade.com/" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/portfolio-case-study-example-small_mini.jpg" alt="portfolio case study" width="500" height="904" style="max-width: 100%; height: auto;"></a><br><em>Soft Facade have beautiful, in-depth design case studies.</em></p>
    <h4>Sketching Wireframes</h4>
    <p>The approach I take to sketching wireframes is simple but effective, and all you need is a pen and a sketchbook. I firstly write down a list of all the elements I need to include on the webpage. I then group related elements together before prioritizing these groups based on their importance. Here is my list of elements for my contact page.</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2013/06/wireframe-list.jpg" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/wireframe-list_mini.jpg" alt="wireframe elements list" width="500" height="425" style="max-width: 100%; height: auto;"></a><br><em>List of page elements for my contact page.</em></p>
    <p>Once you’ve got your page elements grouped and prioritized, it’s much easier to arrange them on the page. Place your more important elements towards the top of the page and use white space to create your groupings. I took a desktop-first approach to the design of my site, as I wanted to focus on displaying my design work in detail on a larger screen.</p>
    <p>When we come to writing the CSS later on, we’ll actually be taking a mobile-first approach as it will simplify our CSS code, we’ll get to that shortly. I usually sketch my wireframes with pen and paper, but you can also use tools like <a href="http://www.balsamiq.com/" rel="nofollow external" class="bo">Balsamiq</a> or even Photoshop or Illustrator. Here’s a wireframe for my contact page. <strong>It doesn’t need to look pretty</strong>, it’s simply a plan of your web page to work from.</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2013/06/contact-page-wireframe.jpg" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/contact-page-wireframe_mini.jpg" alt="contact page wireframe" width="500" height="496" style="max-width: 100%; height: auto;"></a><br><em>Contact page wireframe.</em></p>
    <h4>Responsive Design and Flexible Grids</h4>
    <p>I wanted to make my site responsive to different devices to ensure an optimal user experience for visitors on desktop, tablet and mobiles. When designing websites I usually like to use a grid, as it provides a structural foundation for my design while also making the development process easier and more efficient. Joshua Mauldin <a href="http://fireworks.smashingmagazine.com/2013/05/02/ios-grid-system-free-extension-adobe-fireworks/" rel="nofollow external" class="bo">sums up grids</a> pretty well.</p>
    <blockquote>
    <p>“Think of it like a house’s foundation. With a solid foundation, the house is stable, and building on it is easy. With a solid grid, your design can easily be adapted to accommodate whatever changes come along”.</p>
    </blockquote>
    <p>Some designers find grids to be limiting, but it really depends on the design you have in mind. I find that using a grid results in neater and more organised looking designs. My design was quite simple so I used a custom 12 column flexible grid, but a 16 column grid will give you more definition and accuracy. I also defined a maximum width of 1040px to ensure my design didn’t look stretched on larger monitors.</p>
    <p>Using a <strong>flexible</strong> grid (rather than having 3 separate <strong>fixed</strong> widths for mobile, tablet and desktop) means that my site scales dynamically to fit on any device width. Below is the CSS for my responsive grid, but feel free to create your own to suit your design. You can use tools like <a href="http://gridpak.com" rel="nofollow external" class="bo">Grid Pak</a>, <a href="http://www.responsivegridsystem.com/" rel="nofollow external" class="bo">Responsive Grid System</a>, <a href="http://goldengridsystem.com/" rel="nofollow external" class="bo">Golden Grid System</a> and <a href="http://responsify.it/" rel="nofollow external" class="bo">Responsify</a> to help create your own responsive grid. I used ideas from a few of these tools to create my own custom flexible grid.</p>
    <p><strong>CSS for my responsive grid:</strong></p>
    <pre><code>&#x000A;    &#x000A;    /* 12 Column Responsive Grid */&#x000A;    &#x000A;    .row {&#x000A;    &#x000A;        clear: both;&#x000A;        max-width: 1040px;&#x000A;        margin: 0 auto;&#x000A;    &#x000A;    }&#x000A;    &#x000A;    [class^="col-"] {&#x000A;    &#x000A;        float: left;&#x000A;        margin: 0 3.84615384615% 0 0;&#x000A;        list-style: none;&#x000A;        position: relative;&#x000A;    &#x000A;    }&#x000A;    &#x000A;    [class^="col-"]:last-child {&#x000A;    &#x000A;        margin: 0;&#x000A;    &#x000A;    }&#x000A;    &#x000A;    .col-1 { width: 4.8076923077% }&#x000A;    .col-2 { width: 13.4615384615% }&#x000A;    .col-3 { width: 22.1153846154% }&#x000A;    .col-4 { width: 30.7692307692% }&#x000A;    .col-5 { width: 39.4230769231% }&#x000A;    .col-6 { width: 48.0769230769% }&#x000A;    .col-7 { width: 56.7307692308% }&#x000A;    .col-8 { width: 65.3846153846% }&#x000A;    .col-9 { width: 74.0384615385% }&#x000A;    .col-10 { width: 82.6923076923% }&#x000A;    .col-11 { width: 91.3461538462% }&#x000A;    .col-12 { width: 100%; margin: 0 }&#x000A;    &#x000A;    </code></pre>
    <p>After looking at the CSS above, you might be wondering how the <code>[class^="col-"]</code> CSS selector works. It’s actually called a <a href="http://www.impressivewebs.com/css3-attribute-selectors-substring-matching/" rel="nofollow external" class="bo">substring matching attribute selector</a> and all it’s doing is selecting any classes that begin with the following string: “col-”. You can also <strong>use substring matching</strong> to select other attributes that end with a certain string or even those that contain a certain string. Substring matching is a very handy way to create more complex and powerful CSS selectors, and they’re <a href="http://www.impressivewebs.com/browser-support-css3-selectors/" rel="nofollow external" class="bo">well supported</a> too, going as far back as IE7.</p>
    <p><strong>HTML for my responsive grid:</strong></p>
    <p>The HTML is quite simple too and consists of rows and columns, much like a table. Here is a very simple example of a two column responsive grid that I used on my site. The left column spans across five columns, while the column on the right spans across seven.</p>
    <pre><code>&#x000A;    &#x000A;    &lt;div class="row"&gt;&#x000A;    &#x000A;        &lt;div class="col-5"&gt;Content spans over five columns&lt;/div&gt;&#x000A;        &lt;div class="col-7"&gt;Content spans over seven columns&lt;/div&gt;&#x000A;        &#x000A;    &lt;/div&gt;&#x000A;    &#x000A;    </code></pre>
    <h4>Setting Logical Breakpoints</h4>
    <p>When designing a responsive website, there will be certain widths at which the layout breaks or the text becomes squashed and difficult to read (<a href="http://webtypography.net/Rhythm_and_Proportion/Horizontal_Motion/2.1.2/" rel="nofollow external" class="bo">45 to 75 characters  per line is comfortable to read</a>). These special widths are known as breakpoints and they’re usually set based on common device widths e.g. 320px to 480px for mobile, 768px to 1024px for tablets, and 1024px and over for desktops. The problem is that “common” device widths don’t really exist anymore with the growing number of different devices, so this solution doesn’t scale well.</p>
    <p><a href="http://www.smashingmagazine.com/2013/03/01/logical-breakpoints-responsive-design/" rel="nofollow external" class="bo">Setting breakpoints based on the content</a> rather than device widths is a more scalable solution. For example, rather than blindly setting a breakpoint at 768px width for tablets, I instead looked at my content and found that it looked fine until it became squashed below 600px width. I thus set a breakpoint at 600px to change the layout to ensure the content was legible at and below this width. Yes, you need to optimize the display of your site on various devices, but <strong>your content should always determine where your breakpoints lie</strong>. These are the four breakpoints I needed for my design: 320px, 600px, 1024px and 1140px.</p>
    <p>When writing the CSS media queries for my site I took a mobile-first approach. This basically means that I wrote the mobile styles first as my base, followed by the tablet and then the desktop styles. Mobile styles are generally more simple than those needed for your desktop design, so it makes sense to write them first. They form the foundation of your styles, we can then add the more complex styles for larger screen sizes. Cascading your style sheet in this way keeps your code clean and DRY (<a href="http://en.wikipedia.org/wiki/Don't_repeat_yourself" rel="nofollow external" class="bo">Don’t repeat yourself</a>). Here are my media queries below.</p>
    <p><strong>Media queries:</strong></p>
    <pre><code>&#x000A;    &#x000A;    /* Mobile styles go first, outside the media queries */&#x000A;    &#x000A;    @media only screen and (min-width: 321px) { &#x000A;    &#x000A;        /* Larger mobile styles (above 320px wide) */&#x000A;    }&#x000A;    &#x000A;    @media only screen and (min-width: 600px) {&#x000A;    &#x000A;        /* Tablet styles (above 600px wide) */&#x000A;    }&#x000A;    &#x000A;    @media only screen and (min-width: 1024px) {&#x000A;    &#x000A;        /* Large laptop styles (above 1024px wide) */&#x000A;    }&#x000A;    &#x000A;    @media only screen and (min-width: 1140px) {&#x000A;    &#x000A;        /* Desktop styles (above 1140px wide) */&#x000A;    }&#x000A;    &#x000A;    &#x000A;    </code></pre>
    <p>With my breakpoints defined, I could sketch out the tablet and mobile wireframes. Sometimes it makes sense to hide or omit content on smaller devices, but I wanted to make sure as much content as possible was available across all devices. Why should mobile users miss out on valuable content? People are used to scrolling on mobiles anyway, so think first before removing or hiding content. <strong>The easiest solution isn’t always the best one.</strong></p>
    <h4>Designing High Fidelity Mock-ups</h4>
    <p>Once I had my desktop and mobile wireframes sketched out, I moved into Photoshop and started mocking-up the website in more detail. I don’t like to spend too much time in Photoshop as I think that it slows down the development process. Don’t worry too much about creating a pixel-perfect design, as you’ll have time to tweak and refine it during the coding process anyway. Instead, simply mock-up the main page templates along with any other design elements and assets you need.</p>
    <p>I mocked up my header and footer along with the basic elements of my “About me” page below to make sure I was happy with the aesthetic.</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2013/06/Adham-Dannaway-about-me-large_mini.jpg" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/adham-dannaway-about-page-design2_mini.jpg" alt="adham dannaway about me page" width="500" height="1196" style="max-width: 100%; height: auto;"></a><br><em>“About me” page mock-up.</em></p>
    <p>Similarly, I didn’t mock-up any mobile or tablet designs in Photoshop, as I find it quicker to simply code these up based on the wireframes. I did however spend some time on smaller details like icons and textures, as small details like this can make a big difference to the final polish of the site.</p>
    <h3>Development</h3>
    <p>Now that we have our site planned out and all of our image assets ready to go, it’s time to start coding. So get out your headphones and your favorite text editor! My text editor of choice is <a href="http://www.sublimetext.com/2" rel="nofollow external" class="bo">Sublime Text</a>. It’s simple, fast, powerful and easy to use. If you’re a Windows user I’d also recommend <a href="http://notepad-plus-plus.org/" rel="nofollow external" class="bo"> Notepad++</a>.</p>
    <p>I usually start from the top of the webpage and build each element one by one. Let’s start with the header navigation. I like to write out the HTML for the element first then move onto the CSS. Remember that we are actually creating the mobile version first to reduce code bloat. Depending on the complexity of your project, you can either start coding from scratch or use a base framework like <a href="http://html5boilerplate.com/" rel="nofollow external" class="bo">HTML5 Boilerplate</a>, <a href="http://foundation.zurb.com/" rel="nofollow external" class="bo">Foundation</a> or <a href="http://compass-style.org/" rel="nofollow external" class="bo">Compass</a>.</p>
    <h4>Using CSS Pre-processors (LESS/SASS)</h4>
    <p>If you’re not yet familiar with CSS pre-processors like <a href="http://lesscss.org/" rel="nofollow external" class="bo">LESS</a> and <a href="http://sass-lang.com/" rel="nofollow external" class="bo">SASS</a>, you should definitely familiarize yourself with them as they’ll save you a lot of time and effort and help streamline your CSS styles. A CSS pre-processor basically gives you more power when coding CSS, as it allows you to use <a href="http://coding.smashingmagazine.com/2011/12/12/an-introduction-to-object-oriented-css-oocss/" rel="nofollow external" class="bo">object oriented programming practices</a> when writing your styles.</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2013/06/less-sass-css-pre-processors.jpg" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/less-sass-css-pre-processors_mini.jpg" alt="less sass css pre processors" width="500" height="257" style="max-width: 100%; height: auto;"></a><br><em>LESS and SASS CSS pre-processors.</em></p>
    <p>We’ve all wished that we could create variables in CSS, define functions and re-use code snippets <strong>without having to copy and paste continuously</strong>. CSS pre-processors allow you to do this and much more, while keeping your styles clean and organised. Your LESS/SASS code is simply compiled and output as regular CSS.</p>
    <p>I actually used LESS to create the CSS for my website. However, after experimenting with both LESS and SASS I feel that SASS is a more powerful solution, so I’ll be sticking to SASS from now on. Chris Coyier <a href="http://www.css-tricks.com/sass-vs-less" rel="nofollow external" class="bo">compares LESS and SASS</a> and shows the subtle but important differences between the two. The decider for me was that SASS uses <a href="http://compass-style.org/" rel="nofollow external" class="bo">Compass</a> and gives you access to a library of useful and well maintained mixins to use in your projects, LESS doesn’t. Feel free to have a play with both to see which one you prefer.</p>
    <h4>Progressive Enhancement with Modernizr</h4>
    <p><a href="http://modernizr.com/" rel="nofollow external" class="bo">Modernizr</a> is a JavaScript library that detects HTML5 and CSS3 features in the visitors’ browser and adds those features as classes to the <code>&lt;html&gt;</code> element. We all want to take advantage of the latest CSS3 and HTML5, but what happens in older browsers that don’t support it?</p>
    <p>Modernizr basically <strong>tells us which features are supported in the visitors’ browser</strong>, allowing us to write conditional CSS and JavaScript to handle each situation. Thus it allows us to easily take a <a href="http://alistapart.com/article/understandingprogressiveenhancement" rel="nofollow external" class="bo">progressive enhancement</a> approach; providing everyone with your basic website features, while also giving those with modern browsers an enhanced experience.</p>
    <h4>Creating Flexible Images</h4>
    <p>Flexible images are a very simple but important part of any responsive website. To make your images flexible, simply place them into your responsive grid container and add the below CSS to your style sheet. They need to be inserted using the <code>&lt;img&gt;</code> tag, although there are ways to achieve <a href="http://kimili.com/journal/the-flexible-scalable-background-image-redux" rel="nofollow external" class="bo">flexible images using CSS background images</a> too. If you want to get more technical and actually serve different images depending on the device being used (e.g. serving smaller images on mobiles to conserve bandwidth), you can look into these techniques for serving <a href="http://css-tricks.com/which-responsive-images-solution-should-you-use/" rel="nofollow external" class="bo">truly responsive images</a> and <a href="http://www.smashingmagazine.com/2013/05/10/how-to-avoid-duplicate-downloads-in-responsive-images/" rel="nofollow external" class="bo">avoiding duplicate image downloads</a>.</p>
    <pre><code>&#x000A;    &#x000A;    img { &#x000A;    &#x000A;        max-width: 100%; &#x000A;        height: auto !important;&#x000A;    }&#x000A;    &#x000A;    </code></pre>
    <h4>Using CSS Image Sprites</h4>
    <p>We all know that it’s a good idea to combine your icons and image assets into <a href="http://coding.smashingmagazine.com/2009/04/27/the-mystery-of-CSS-sprites-techniques-tools-and-tutorials/" rel="nofollow external" class="bo">CSS Image Sprites</a>, rather than having multiple individual images loading one after the other on your site. It decreases load times and also makes it easy for you to edit and maintain image files at a later stage. I usually like to create several sprites for the different sections of a website. For example, one of my sprites contained all of my icons, while another contained the common global page template elements e.g. logo, header icons, navigation background and footer icons.</p>
    <p>When you’re creating your sprites, <strong>it’s always a good idea to think about how your website loads</strong>. If you’ve got a bunch of image icons that are only used on a single page of a site, it’s probably best to separate them out from the main page sprite. This will ensure that they’re only loaded when they need to be, while keeping your main sprite file size low. Using sprites will also make things easier when it comes to preparing your images for high definition screens later on.</p>
    <p>Creating image sprites can be a cumbersome process, so tools like <a href="http://www.spritecow.com/" rel="nofollow external" class="bo">Sprite Cow</a> can come in handy in helping you create them quickly and easily. You can also use a combination of SASS and Compass to <a href="http://www.codechewing.com/library/automatically-generate-css-sprites-with-sass/" rel="nofollow external" class="bo">generate your sprites automatically from separate images</a>.</p>
    <h4>Catering for High Definition Screens</h4>
    <p>To ensure that your site looks crisp on high definition (or Retina) screens, it’s best to try and use CSS to style as much of it as possible. Remember that some of the newer CSS styles won’t render in older browsers, this is where a progressive enhancement approach makes sense. In most cases you won’t be able to build your site completely from CSS, you’ll need images. Luckily it’s not too hard to prepare your images for high definition screens.</p>
    <p>Basically you’ll need to create a larger version of your images that will be used on high definition screens. Since our images are contained within a sprite, all we need to do is create another version of the sprite that is exactly two times larger. Let’s say our sprite is named <code>sprite.png</code>, we would name our high definition sprite <code><a href="mailto:sprite@2x.png">sprite@2x.png</a></code>. To decrease load times (especially on mobile devices) it’s also a good idea to compress your images using <a href="http://www.jpegmini.com/" rel="nofollow external" class="bo">Jpeg Mini</a>, <a href="http://tinypng.org/" rel="nofollow external" class="bo">Tiny Png</a> or <a href="http://imageoptim.com/" rel="nofollow external" class="bo">Image Optim</a> if you’re on a Mac.</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2013/06/retina-image.jpg" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/retina-image_mini.jpg" alt="retina image" width="500" height="300" style="max-width: 100%; height: auto;"></a><br><em>Simply create another image twice the size of the original for high definition devices.</em></p>
    <p>Once you’ve created your larger images, we simply use media queries to show the large images on high definition screens. You need to be careful with your media queries, as <strong>iPhone’s aren’t the only high definition devices around</strong> at the moment. There are other mobile phones along with Retina iPad’s and MacBook Pro’s too. I used two high definition media queries on my site; the first one is for high definition mobile devices, while the second is for tablets and laptops.</p>
    <p><strong>Media queries to target high definition screens:</strong></p>
    <pre><code>&#x000A;    &#x000A;    @media&#x000A;    only screen and (-webkit-min-device-pixel-ratio: 1.5), &#x000A;    only screen and (min--moz-device-pixel-ratio: 1.5),&#x000A;    only screen and (min-device-pixel-ratio: 1.5) {&#x000A;    &#x000A;        /* Target all high definition screens */&#x000A;    }&#x000A;    &#x000A;    @media &#x000A;    only screen and (min-width : 600px) and (-webkit-min-device-pixel-ratio: 1.5), &#x000A;    only screen and (min-width : 600px) and (min--moz-device-pixel-ratio: 1.5), &#x000A;    only screen and (min-width : 600px) and (min-device-pixel-ratio: 1.5) {&#x000A;    &#x000A;        /* Target high definition devices with screens wider than 600px */&#x000A;    }&#x000A;    &#x000A;    </code></pre>
    <p>Wouldn’t it be great if we could avoid the need for media queries and separate high definition images altogether?</p>
    <p>An even better way to cater for high definition screens is to ensure your images are vectors, this means that they will scale to fit any screen size and look crisp on any device. You can actually draw your images or icons in Illustrator and <a href="http://css-tricks.com/using-svg/" rel="nofollow external" class="bo">export them as SVG (Scalable Vector Graphics) files</a>. The SVG file basically consists of XML-based code that describes your image to the browser.</p>
    <p>Another clever way to <strong>get scalable vector icons that look crisp on high definition devices</strong> is to use <a href="http://css-tricks.com/html-for-icon-font-usage/" rel="nofollow external" class="bo">Icon Fonts</a> like those from <a href="http://icomoon.io/" rel="nofollow external" class="bo">Ico Moon</a> and <a href="http://fortawesome.github.io/Font-Awesome/" rel="nofollow external" class="bo">Font Awesome</a>. I didn’t actually use these methods on my site, mainly because I didn’t have many icons or vector images. But if you’re looking to use vector images and icons more heavily on your site, then these techniques will definitely come in handy.</p>
    <h4>Page to Page Transitions</h4>
    <p>I’ve never been a fan of the abrupt way in which one web page jumps to another. When you click on a link, there’s usually a sharp jump followed by images loading awkwardly and sporadically onto the page in no particular order. I wanted to control the way my content appeared, to create a smooth transition from one page to the next as a visitor navigated through my site. So when a visitor clicks on a link to go to another page of my site, the current page will basically fade away to white before taking the visitor to the next page. The next page will start from a white background, then the content will animate smoothly onto the page. I think that it creates a pleasant and consistent user experience.</p>
    <p>To achieve my page to page transition effect, I actually needed to use a <strong>jQuery preloader plugin</strong> like <a href="http://www.inwebson.com/jquery/jpreloader-a-preloading-screen-to-preload-images/" rel="nofollow external" class="bo">jPreLoader</a> or <a href="http://www.gayadesign.com/diy/queryloader2-preload-your-images-with-ease/" rel="nofollow external" class="bo">QueryLoader2</a>. This ensured my images were loaded before they animated onto the page, otherwise the animations would happen before the images were there. I’m not a fan of preloaders in general as the user needs to wait until the page loads before they actually see anything, but it was necessary to achieve the page transition effect I wanted. I’m actually going to experiment with hiding the preloader if the page loads quickly and only introducing it on longer page loads. This would mean that most people would simply see one page seamlessly fade to the next, without a preloader being shown.</p>
    <p><strong>I’m interested to hear of any other methods</strong> to achieve page to page transitions without the need for a preloader.</p>
    <p>Here is a very simple jQuery function that causes the page to fade out when visitors click a link to leave a page:</p>
    <pre><code>&#x000A;    &#x000A;    /* &#x000A;    * Function to animate leaving a page&#x000A;    */&#x000A;    $.fn.leavePage = function() { 	&#x000A;      	&#x000A;    	this.click(function(event){&#x000A;    &#x000A;    		// Don't go to the next page link yet&#x000A;    		event.preventDefault();&#x000A;    		linkLocation = this.href;&#x000A;    		&#x000A;    		// Fade the page out&#x000A;    		$('body').fadeOut(500, function(){&#x000A;    			&#x000A;    			// Then go to the next page link&#x000A;    			window.location = linkLocation;&#x000A;    		});      &#x000A;    	}); &#x000A;    };&#x000A;    &#x000A;    &#x000A;    /* &#x000A;    * Call the leavePage function on click of links with the "transition" class&#x000A;    */&#x000A;    $('.transition').leavePage();&#x000A;    &#x000A;    </code></pre>
    <p>I wanted the “leavePage” animation to happen when visitors clicked on a link to go to another page within my site, so I simply added a class called “transition” to the appropriate links. When a visitor clicked on any link with the “transition” class, the “leavePage” animation would be triggered. This is a very simple animation example, but you could build on this with your own more complex animations.</p>
    <p>So the user has clicked a link, the current page has faded away and they’ve landed on the next page. <strong>What happens now?</strong> Our jQuery preloader will take care of the rest. The preloader basically displays an overlay that covers your page while your page is loading. Once loading is complete, the overlay fades away to reveal your page. Of course you can create your own custom animations to animate your content onto the page in more interesting ways. I won’t go into this in too much detail, as there are many ways to animate content onto the page.</p>
    <p>You might like to slide your content in from the sides of the page one element after the other or fade elements in from top to bottom. Basically you’ll just need to write a function to animate your content onto the page, then call this function after the page load is complete. Luckily, both of the jQuery preloaders I mentioned above have callback functions that allow you to call your animation function after the page load is complete.</p>
    <h4>Preventing FOUC (Flash of Unstyled Content)</h4>
    <p>One of the most annoying issues I had while trying to achieve my smooth transition between pages was a flash of unstyled content (FOUC) before my jQuery preloader had even started. It wasn’t always there, but every now and then I would see some of my content flash onto the page before my animations had even started. Luckily I found a clean and simple way to <a href="http://www.learningjquery.com/2008/10/1-way-to-avoid-the-flash-of-unstyled-content" rel="nofollow external" class="bo">prevent the FOUC</a> that worked perfectly.</p>
    <h4>Animating Content on Scroll</h4>
    <p>I love the idea of including subtle animations as the visitor scrolls down the page. It’s become a bit of a trend recently, and I think it improves the user experience and adds a touch of polish to the page. I used a simple but powerful jQuery plugin called <a href="http://imakewebthings.com/jquery-waypoints/" rel="nofollow external" class="bo">Waypoints</a> to help me create my on-scroll animations. It basically allows you to trigger your animations at different page scroll distances.</p>
    <p>If you’re looking for an easy way to do more complex animations on scroll, you should check out the <a href="http://johnpolacek.github.io/superscrollorama/" rel="nofollow external" class="bo">Scrollorama jQuery plugin</a>.</p>
    <h4>Custom WordPress Development</h4>
    <p>I decided to build my website on a WordPress platform, mainly because I’m familiar with it and I wanted to include blog functionality on my site. It’s also a nice time-saver to be able to easily install plugins to add extra functionality to your site. It’s a pretty simple process to <a href="http://codex.wordpress.org/Installing_WordPress" rel="nofollow external" class="bo">install WordPress onto your server</a> and turn your static HTML pages into a <a href="http://codex.wordpress.org/Theme_Development" rel="nofollow external" class="bo">WordPress theme</a>. If you’re not familiar with WordPress, you can always use another CMS platform such as <a href="http://drupal.org/" rel="nofollow external" class="bo">Drupal</a>, or feel free to avoid them altogether and just build it from scratch in PHP (It really depends on the complexity of your site).</p>
    <p>Since some of the pages on my website had quite varied layouts, I needed to create a few <strong>custom page templates</strong>. For example, I couldn’t use a standard WordPress page for my homepage as the design is quite customized. So I created a custom template for the homepage. It’s actually really simple to <a href="http://codex.wordpress.org/Page_Templates#Custom_Page_Template" rel="nofollow external" class="bo">create a custom page template in WordPress</a>. I also created custom templates for my portfolio item pages and contact page.</p>
    <p>In order to separate my portfolio item posts from my blog posts, I decided to <a href="http://wp.smashingmagazine.com/2012/11/08/complete-guide-custom-post-types/" rel="nofollow external" class="bo">create a custom post type</a> for my portfolio items. This basically allowed me to use a different template for blog posts and portfolio item posts. You might be able to get away with simply displaying your portfolio items as blog posts and categorizing them into a “portfolio” category to separate them from the standard blog post articles. I needed the flexibility of a custom post type with a different layout. I won’t go into more detail about WordPress development, as there’s plenty of great <a href="http://codex.wordpress.org/" rel="nofollow external" class="bo">WordPress documentation</a> out there already.</p>
    <h3>Testing And Analytics</h3>
    <h4>Cross Browser Testing</h4>
    <p>I’m sure you’re all aware of the importance of cross browser testing to ensure that your site renders correctly across <strong>relevant browsers</strong>. You’ll notice that I didn’t say “all browsers”, that’s because you really only need to ensure that your site renders properly for your particular audience. If you know that all of your visitors are using modern browsers then you don’t need to spend valuable time and effort supporting older ones.</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2013/06/major-browsers.jpg" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/major-browsers_mini.jpg" alt="major browsers" width="500" height="150" style="max-width: 100%; height: auto;"></a><br><em>Test your site on the major browsers.</em></p>
    <p>So how do we test our website across all the relevant browsers? If you’re on a Mac like me you’ll be able to simply download all the modern browsers like Chrome, Safari, Opera and Firefox. So how do you test Internet Explorer on a Mac? One simple and free way to do this is to simply <a href="http://osxdaily.com/2011/09/04/internet-explorer-for-mac-ie7-ie8-ie-9-free/" rel="nofollow external" class="bo">setup a virtual machine running Windows</a>.</p>
    <p>You can also use an IE emulator tool like <a href="http://my-debugbar.com/wiki/IETester/HomePage" rel="nofollow external" class="bo">IE Tester</a> or alternatively sign up to services like <a href="http://spoon.net/" rel="nofollow external" class="bo">Spoon</a> or <a href="http://www.browserstack.com/" rel="nofollow external" class="bo">Browser Stack</a>, which allow you to test your site on all major browsers including Internet Explorer 6, 7, 8, 9 and 10. Rather than leaving your cross browser testing right until the end of your project, it’s probably best to test your site every now and then during the development process to make things easier at the end.</p>
    <h4>Setup Google Analytics</h4>
    <p>It’s always a good idea to add <a href="http://www.google.com/analytics" rel="nofollow external" class="bo">Google Analytics</a> to your website to collect valuable statistics on your visitors. You’ll know the location of your visitors and whether they’re arriving via Google searches or from referring sites. One of your blog posts might get mentioned on another site, if you’re not monitoring your traffic sources you might not even know about it.</p>
    <p>Analytics will also allow you to build a profile of your visitors and get an idea of which countries they’re from and what browsers they’re using. You can use this data on an ongoing basis to improve and optimize your site for your visitors. Setting up Google Analytics on your website is free and only takes a few minutes. Simply sign up, copy and paste a small JavaScript code snippet into the footer of your site and you’re ready to go!</p>
    <h3>Time To Launch</h3>
    <p>So we’ve designed, built and tested our new portfolio website and we’re finally ready to launch (High five)! It’s one of those experiences you simply shouldn’t miss out on as a designer. I had a great time creating my site and learned a lot in the process too. Sure, there were hurdles and challenges along the way, but isn’t that what makes design so interesting? I’d love to hear about your experiences creating your own portfolio site.</p>
    <p>I hope that my journey will help and inspire you to create your own site, or finally start that re-design you’ve been contemplating for the past few years. <strong>So get out your headphones, knuckle down and start pushing those pixels.</strong> I wish you all the best on your epic quest ahead, good luck and may the force be with you.</p>
    <hr>
    <p><small>© Adham Dannaway for <a href="http://www.smashingmagazine.com" rel="nofollow external" class="bo">Smashing Magazine</a>, 2013.</small></p>
    </div>
]]>
</Body>
<Summary>        A long time ago in a galaxy far, far away… a youngling designer embarked on an epic journey strewn with perilous layout challenges, constant procrastination, devious jQuery errors and...</Summary>
<Website>http://www.smashingmagazine.com/2013/06/25/develop-a-modern-portfolio-website/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/31805/guest@my.umbc.edu/3ebff012f19b5d415d01ca0e964ca119/api/pixel</TrackingUrl>
<Tag>case-studies</Tag>
<Tag>coding</Tag>
<Tag>css</Tag>
<Tag>design</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>php</Tag>
<Tag>responsive-web-design</Tag>
<Tag>sql</Tag>
<Tag>web</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Tue, 25 Jun 2013 09:50:19 -0400</PostedAt>
<EditAt>Tue, 25 Jun 2013 09:50:19 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="31795" important="false" status="posted" url="https://my3.my.umbc.edu/posts/31795">
<Title>Gadgetwise Blog: Q&amp;A: Recycling Responsibly at Any Time</Title>
<Body>
<![CDATA[
    <div class="html-content">Even if you miss the local e-waste recycling day, you can find other places to accept old computers and electronics gear for recycling, reuse or resale.<div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fgadgetwise.blogs.nytimes.com%2F2013%2F06%2F25%2Fqa-recycling-responsibly-at-any-time%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Gadgetwise+Blog%3A+Q%26A%3A+Recycling+Responsibly+at+Any+Time" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/twitter.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/facebook/?u=http%3A%2F%2Fgadgetwise.blogs.nytimes.com%2F2013%2F06%2F25%2Fqa-recycling-responsibly-at-any-time%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Gadgetwise+Blog%3A+Q%26A%3A+Recycling+Responsibly+at+Any+Time" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/facebook.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/linkedin/?u=http%3A%2F%2Fgadgetwise.blogs.nytimes.com%2F2013%2F06%2F25%2Fqa-recycling-responsibly-at-any-time%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Gadgetwise+Blog%3A+Q%26A%3A+Recycling+Responsibly+at+Any+Time" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/linkedin.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/gplus/?u=http%3A%2F%2Fgadgetwise.blogs.nytimes.com%2F2013%2F06%2F25%2Fqa-recycling-responsibly-at-any-time%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Gadgetwise+Blog%3A+Q%26A%3A+Recycling+Responsibly+at+Any+Time" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/googleplus.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/email/?u=http%3A%2F%2Fgadgetwise.blogs.nytimes.com%2F2013%2F06%2F25%2Fqa-recycling-responsibly-at-any-time%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Gadgetwise+Blog%3A+Q%26A%3A+Recycling+Responsibly+at+Any+Time" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/email.png" style="max-width: 100%; height: auto;"></a>
    </td></tr></tbody></table></div>
    <br><br><a href="http://da.feedsportal.com/r/165665527660/u/0/f/640387/c/34625/s/2dc41449/kg/342-363/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/165665527660/u/0/f/640387/c/34625/s/2dc41449/kg/342-363/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>Even if you miss the local e-waste recycling day, you can find other places to accept old computers and electronics gear for recycling, reuse or resale.     </Summary>
<Website>http://gadgetwise.blogs.nytimes.com/2013/06/25/qa-recycling-responsibly-at-any-time/?partner=rss&amp;emc=rss</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/31795/guest@my.umbc.edu/f918426432aa495df79b4af4bacf0fe0/api/pixel</TrackingUrl>
<Tag>best-buy-company-inc</Tag>
<Tag>best-buy-company-inc-bby-nyse</Tag>
<Tag>computers-and-the-internet</Tag>
<Tag>dell-inc</Tag>
<Tag>dell-inc-dell-nasdaq</Tag>
<Tag>electronics</Tag>
<Tag>environmental-protection-agency</Tag>
<Tag>gazelle-com</Tag>
<Tag>goodwill-industries</Tag>
<Tag>new</Tag>
<Tag>q-and-a</Tag>
<Tag>recycling-of-waste-materials</Tag>
<Tag>software</Tag>
<Tag>technology</Tag>
<Tag>waste-materials-and-disposal</Tag>
<Tag>york</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Tue, 25 Jun 2013 09:00:35 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="31793" important="false" status="posted" url="https://my3.my.umbc.edu/posts/31793">
<Title>30 Days/30 Scholarships: Q&amp;A with 2013 Valedictorian Asif Majid</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p><a href="http://umbcgiving.files.wordpress.com/2013/06/majidasif.jpg" rel="nofollow external" class="bo"><img alt="Majid,Asif" src="http://umbcgiving.files.wordpress.com/2013/06/majidasif.jpg?w=300&amp;h=142" width="300" height="142" style="max-width: 100%; height: auto;"></a>When students have the scholarship support they need, they can do AMAZING things. And during the month of June, we’re working hard to help students do just that — make the most of their time at UMBC, and change the world for the better, with the aid of scholarships. Our aim? To raise enough money to award 30 scholarships of $1,000. <a href="https://givecorps.com/en/umbc/projects/463-annual-giving-causes-30-days-30-scholarships" rel="nofollow external" class="bo">It’s a big goal, but you can help us reach it, and when you do, you’ll be helping students in need.</a></p>
    <p>Today we’re featuring 2013 valedictorian and scholarship recipient <strong>Asif Majid ’13, interdisciplinary studies,</strong> who this fall is bound for Georgetown University to study conflict resolution. While at UMBC, Asif (a Sondheim Public Affairs Scholar) not only wrote a play about Moroccan social justice issues while studying abroad in Morocco, he also participated in Model UN and served as a hand drummer in UMBC’s improvisational world music band and principal timpanist for the UMBC Symphony Orchestra.</p>
    <p><strong>Q:</strong> <em>What did it mean to you and your family to be able to rely on scholarship support during your time at UMBC?</em></p>
    <p><strong>A:</strong>  Coming out of high school, one of my main considerations in choosing a university to attend was financial.  Simultaneously, I was concerned with having a sense of community, as close-knit as possible, while at UMBC.  As a Sondheim Public Affairs Scholar, the financial support that I received from the program and the community support I received from my fellow scholars were essential parts of my UMBC experience.</p>
    <p><strong>Q:</strong>  <em>Why did you choose UMBC?</em></p>
    <p><strong>A:</strong>  Rather than me choosing UMBC, I think that UMBC chose me.  Before and during my high school years, my father taught in the Mechanical Engineering Department, my sister was a Meyerhoff Scholar and Interdisciplinary Studies major, and my mother volunteered with the Meyerhoff Parents’ Association.  UMBC has been a constant presence in my life, and it seemed a natural fit when it came time to choose an undergraduate institution.  Receiving financial support from the school only sweetened the deal.</p>
    <p><strong>Q:</strong>  <em>We know that students who receive the support they need can do amazing things at UMBC. What are you most proud of accomplishing in your time at UMBC?</em></p>
    <p><strong>A:</strong>  Though UMBC has afforded me many opportunities and given me support to be successful in many arenas, I would say that I am most humbled and honored to have achieved excellence within the Interdisciplinary Studies Department (INDS).  Designing my own major, conducting independent research through my capstone and social justice theatre project, integrating a study abroad experience into my undergraduate career, and making history as the first valedictorian from INDS are simply my way of saying thank you to the exceptional department that has been my home for the past four years.</p>
    <p><strong>Q: </strong> <em>How did it feel to be able to address your classmates as valedictorian?</em></p>
    <p><strong>A: </strong> It is an impossible task to speak for anyone else, let alone to represent the experiences of thousands of students at a university as diverse as UMBC.  Holding fast to the idea that any good valedictory address is not about the valedictorian but about the graduates as a whole, I chose to speak in terms of ideas and principles such as risk-taking and remembering our origins.  Each graduate has a unique experience that is theirs alone, and I wanted to acknowledge that journey.</p>
    <p><strong>Q: </strong><em> I understand you’re planning on studying conflict resolution at Georgetown. Where do you hope your studies take you?</em></p>
    <p><strong>A: </strong> I feel that my life lines up alongside the motto of The Honors College: “Learning for Living.”  Infused with such an idea after my time at UMBC, I aim for my studies to propel me in the direction of being a conflict transformation scholar-practitioner.  This will involve working in the intersections of the performing arts, experiential education, conflict transformation, and humanitarian emergencies while also thinking, teaching, and writing about how to improve the conditions of others in conflict zones.  For me, the convergence of learning and living is an exciting interstitial space that I believe will characterize my future.</p>
    <br>   </div>
]]>
</Body>
<Summary>When students have the scholarship support they need, they can do AMAZING things. And during the month of June, we’re working hard to help students do just that — make the most of their time at...</Summary>
<Website>http://umbcgiving.wordpress.com/2013/06/25/30-days30-scholarships-qa-with-2013-valedictorian-asif-majid/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/31793/guest@my.umbc.edu/ac7801b5375e30902326b2a74b8051f1/api/pixel</TrackingUrl>
<Tag>uncategorized</Tag>
<Group token="retired-548">UMBC Giving</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-548</GroupUrl>
<AvatarUrl>https://assets1-my.umbc.edu/images/avatars/group/11/xsmall.png?1783795755</AvatarUrl>
<AvatarUrl size="original">https://assets2-my.umbc.edu/images/avatars/group/11/original.png?1783795755</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets3-my.umbc.edu/images/avatars/group/11/xxlarge.png?1783795755</AvatarUrl>
<AvatarUrl size="xlarge">https://assets2-my.umbc.edu/images/avatars/group/11/xlarge.png?1783795755</AvatarUrl>
<AvatarUrl size="large">https://assets1-my.umbc.edu/images/avatars/group/11/large.png?1783795755</AvatarUrl>
<AvatarUrl size="medium">https://assets4-my.umbc.edu/images/avatars/group/11/medium.png?1783795755</AvatarUrl>
<AvatarUrl size="small">https://assets1-my.umbc.edu/images/avatars/group/11/small.png?1783795755</AvatarUrl>
<AvatarUrl size="xsmall">https://assets1-my.umbc.edu/images/avatars/group/11/xsmall.png?1783795755</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets1-my.umbc.edu/images/avatars/group/11/xxsmall.png?1783795755</AvatarUrl>
<Sponsor>UMBC Giving</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>false</CommentsAllowed>
<PostedAt>Tue, 25 Jun 2013 08:52:35 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="106962" important="false" status="posted" url="https://my3.my.umbc.edu/posts/106962">
<Title>30 Days/30 Scholarships: Q&amp;A with 2013 Valedictorian Asif Majid</Title>
<Body>
<![CDATA[
    <div class="html-content">When students have the scholarship support they need, they can do AMAZING things. And during the month of June, we’re …</div>
]]>
</Body>
<Summary>When students have the scholarship support they need, they can do AMAZING things. And during the month of June, we’re …</Summary>
<Website>https://magazine.umbc.edu/30-days30-scholarships-qa-with-2013-valedictorian-asif-majid/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/106962/guest@my.umbc.edu/80ace3ddb9f19cee6181abf66ca1500e/api/pixel</TrackingUrl>
<Tag>impact</Tag>
<Group token="retired-1945">UMBC Magazine</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-1945</GroupUrl>
<AvatarUrl>https://assets1-my.umbc.edu/images/avatars/group/8/xsmall.png?1783795755</AvatarUrl>
<AvatarUrl size="original">https://assets2-my.umbc.edu/images/avatars/group/8/original.png?1783795755</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets2-my.umbc.edu/images/avatars/group/8/xxlarge.png?1783795755</AvatarUrl>
<AvatarUrl size="xlarge">https://assets1-my.umbc.edu/images/avatars/group/8/xlarge.png?1783795755</AvatarUrl>
<AvatarUrl size="large">https://assets1-my.umbc.edu/images/avatars/group/8/large.png?1783795755</AvatarUrl>
<AvatarUrl size="medium">https://assets2-my.umbc.edu/images/avatars/group/8/medium.png?1783795755</AvatarUrl>
<AvatarUrl size="small">https://assets3-my.umbc.edu/images/avatars/group/8/small.png?1783795755</AvatarUrl>
<AvatarUrl size="xsmall">https://assets1-my.umbc.edu/images/avatars/group/8/xsmall.png?1783795755</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/images/avatars/group/8/xxsmall.png?1783795755</AvatarUrl>
<Sponsor>UMBC Magazine</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>false</CommentsAllowed>
<PostedAt>Tue, 25 Jun 2013 08:52:35 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="31788" important="false" status="posted" url="https://my3.my.umbc.edu/posts/31788">
<Title>Making Sass talk to JavaScript with JSON</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p><em>The following is a guest post by <a href="http://lesjames.com/" rel="nofollow external" class="bo">Les James</a>. Like many of us, Les has been gunning for a solution to responsive images that works for him. In this article he shares a technique he found where he can pass "named" media queries from CSS over to the JavaScript, which uses those names to swap out the image for the appropriate one for that media query. And even automate the process with Sass. HTML purists may balk at the lack of true <code>src</code> on the image, but <a href="http://daverupert.com/2013/06/ughck-images/" rel="nofollow external" class="bo">at this point</a> we gotta do what we gotta do.</em></p>
    <p>Current <a href="http://responsiveimages.org/" rel="nofollow external" class="bo">proposed responsive image solutions</a> require that you inline media query values into HTML tags.</p>
    <pre><code>&lt;picture&gt;&#x000A;        &lt;source media="(min-width: 45em)" src="large.jpg"&gt;&#x000A;        &lt;source media="(min-width: 18em)" src="med.jpg"&gt;&#x000A;        &lt;source src="small.jpg"&gt;&#x000A;        &lt;img src="small.jpg" alt=""&gt;&#x000A;    &lt;/picture&gt;</code></pre>
    <p>This is a problem for me. I like my media queries in one spot, CSS. The above example doesn't feel maintainable to me, and part of that might be due to my approach to RWD. I use the <a href="http://framelessgrid.com/" rel="nofollow external" class="bo">Frameless grid</a> approach to creating layouts. I tell Sass how many columns I want in a layout and it generates a media query to fit it. What this means is that I only think in column counts and I actually have no idea what the actual values of my media queries are.</p>
    <p>When adapting this approach to responsive images, I needed a way to provide meta data around my breakpoints. So when I create a breakpoint, I give it a label. I've recently been a fan of labels like small, medium and large but the labels could be <a href="http://css-tricks.com/naming-media-queries/" rel="nofollow external" class="bo">anything you want</a>. The point is that you name your breakpoints with something meaningful. The goal is to pair those names to matching sources defined in my HTML. The first step is to format our label into something JavaScript can parse.</p>
    <h3>Sass to JSON</h3>
    <p>When I create a breakpoint I call upon a Sass mixin I created. The column count creates a <code>min-width</code> media query to fit that column count. The label gives a name to our media query. </p>
    <pre><code>@include breakpoint(8, $label: "medium") {&#x000A;        /* medium size layout styles go here */&#x000A;    }</code></pre>
    <p>The breakpoint mixin passes that label to a function which formats it into a string of JSON.</p>
    <pre><code>@function breakpoint-label($label) {&#x000A;        @return '{ "current" : "#{$label}" }';&#x000A;    }</code></pre>
    <h3>JSON to CSS</h3>
    <p>Now that we have our label converted to JSON, how do we get it into our CSS? The natural fit for a string is CSS generated content. I use <code>body::before</code> to hold my string because it's the least likely spot for me to actually use for display on the front end. Here is how the label finds its way into CSS from my breakpoint mixin.</p>
    <pre><code>@if($label) { body::before { content: breakpoint-label($label); } }</code></pre>
    <p>Unfortunatly I have to support older browsers and they will have trouble reading our CSS generated content with JavaScript. So we have to place our JSON in one more spot to gain further compatibility. For this I'm going to add our JSON as a font family to the head.</p>
    <pre><code>@if($label) {&#x000A;        body::before { content: breakpoint-label($label); }&#x000A;        .lt-ie9 head { font-family: breakpoint-label($label); }&#x000A;    }</code></pre>
    <h3>CSS to JS</h3>
    <p>Our layout label is now sitting in a JSON string in our CSS. To read it with JavaScript we turn to our friend <code>getComputedStyle</code>. Let's create a function that will grab our JSON and then parse it.</p>
    <pre><code>function getBreakpoint() {&#x000A;        var style = null;&#x000A;        if ( window.getComputedStyle &amp;&amp; window.getComputedStyle(document.body, '::before') ) {&#x000A;            style = window.getComputedStyle(document.body, '::before');&#x000A;            style = style.content;&#x000A;        }&#x000A;        return JSON.parse(style);&#x000A;    }</code></pre>
    <p>For browsers that don't support <code>getComputedStyle</code> we need to throw in a little polyfill and grab the head font family instead.</p>
    <pre><code>function getBreakpoint() {&#x000A;        var style = null;&#x000A;        if ( window.getComputedStyle &amp;&amp; window.getComputedStyle(document.body, '::before') ) {&#x000A;            style = window.getComputedStyle(document.body, '::before');&#x000A;            style = style.content;&#x000A;        } else {&#x000A;            window.getComputedStyle = function(el) {&#x000A;                this.el = el;&#x000A;                this.getPropertyValue = function(prop) {&#x000A;                    var re = /(\-([a-z]){1})/g;&#x000A;                    if (re.test(prop)) {&#x000A;                        prop = prop.replace(re, function () {&#x000A;                            return arguments[2].toUpperCase();&#x000A;                        });&#x000A;                    }&#x000A;                    return el.currentStyle[prop] ? el.currentStyle[prop] : null;&#x000A;                };&#x000A;                return this;&#x000A;            };&#x000A;            style = window.getComputedStyle(document.getElementsByTagName('head')[0]);&#x000A;            style = style.getPropertyValue('font-family');&#x000A;        }&#x000A;        return JSON.parse(style);&#x000A;    }</code></pre>
    <p>There is a major problem with our function right now. Our JSON is passed as a string which means that it is wrapped in quotes, but what kind of quote depends on which browser you are using. WebKit passes the string wrapped in single quotes. Firefox passes the string wrapped in double quotes which means that it escapes the double quotes inside of our JSON. IE8 does something really wierd and adds a <code>; }</code> to the end of our string. To account for these inconsistancies we need one more function to normalize our JSON before we parse it.</p>
    <pre><code>function removeQuotes(string) {&#x000A;        if (typeof string === 'string' || string instanceof String) {&#x000A;            string = string.replace(/^['"]+|\s+|\\|(;\s?})+|['"]$/g, '');&#x000A;        }&#x000A;        return string;&#x000A;    }</code></pre>
    <p>Now before parse the JSON in the return of our <code>getBreakpoint</code> function we just pass the string through our <code>removeQuotes</code> function.</p>
    <pre><code>return JSON.parse( removeQuotes(style) );</code></pre>
    <h3>Image Source Matching</h3>
    <p>JavaScript can now read the label that we defined for each breakpoint. It's trivial at this point to match that label to a responsive image source. Take the following image for example.</p>
    <pre><code>&lt;img data-small="small.jpg" data-large="large.jpg"&gt;</code></pre>
    <p>When the active media query is <code>small</code>, we can have JavaScript match that to <code>data-small</code> and set the source of our image to <code>small.jpg</code>. This works great if you've declaired a source for every breakpoint but as you can see in our example we don't have a source defined for <code>medium</code>. This is a very common scenario. The small image can typically work in larger layouts. Maybe the medium layout just added a sidebar and our image size didn't change. So how does JavaScript know to pull the small source when the layout is medium? For this we need ordering.</p>
    <h3>Sass List to JavaScript Array</h3>
    <p>Every time we create a breakpoint we can store that label in a Sass list. In our breakpoint mixin we can append the label to our list.</p>
    <pre><code>$label-list: append($label-list, $label, comma);</code></pre>
    <p>Assuming that our list defaults to a pre-populated mobile label of <code>small</code> the following breakpoints will create a list of <code>small, medium, large</code>.</p>
    <pre><code>@include breakpoint(8, $label: "medium");&#x000A;    @include breakpoint(12, $label: "large");</code></pre>
    <p>The order you declare your breakpoints in Sass will determine the order of your labels. Let's add this Sass list as an array to our JSON function.</p>
    <pre><code>@function breakpoint-label($label) {&#x000A;        $label-list: append($label-list, $label, comma);&#x000A;        @return '{ "current" : "#{$label}", "all": [#{$label-list}] }';&#x000A;    }</code></pre>
    <p>Now in addition to JavaScript knowing the current breakpoint label it can look at the array we passed and know their order. So if the layout is <code>medium</code> and no matching data attribute is found on our image, JavaScript can find <code>medium</code> in our label array and walk backwards through that array until a matching source is found.</p>
    <h3>In Summary</h3>
    <p>This responsive image solution does something really important for me. By tagging media query values with labels I create flexibility and simplicity. If I change the size of a breakpoint I only have to change it in one place, my Sass. My HTML image sources aren't dependent on the value of my media queries, just their name.</p>
    <p>Although I've accomplished this with Sass, it's actually not necessary. You can manually write your JSON string into your media queries, Sass just helps automate the process. Here is <a href="http://codepen.io/lesjames/pen/hmzwG" rel="nofollow external" class="bo">a simple Pen</a> that uses pure CSS. </p>
    <pre><a href="http://codepen.io/lesjames/pen/hmzwG" rel="nofollow external" class="bo">Check out this Pen!</a></pre>
    <p>To see a more robust, production quality implementation of this technique check out the code behind my framework <a href="https://github.com/lesjames/breakpoint" rel="nofollow external" class="bo">Breakpoint</a>.</p>
    <p>Please note, if you want your image tags to be valid then stub them with a source like <code>src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D"</code> and please, make sure you provide a <code>&lt;noscript&gt;</code> fallback.</p>
    <p>My hope for sharing this is that it spurs further discussion and ideas around abstracting the complexities and maintainability of responsive images. I'm curious to hear your thoughts and if you have ways to improve this.</p>
    <p>We all stand on the shoulders of giants. Much credit and inspiration for this is due to Jeremy Keith's post <a href="http://adactio.com/journal/5429/" rel="nofollow external" class="bo">Conditional CSS</a> and Viljami Salminen's <a href="http://github.com/viljamis/detectMQ.js" rel="nofollow external" class="bo">detectMQ</a>.</p>
    <hr>
    
    <p><small><a href="http://css-tricks.com/making-sass-talk-to-javascript-with-json/" rel="nofollow external" class="bo">Making Sass talk to JavaScript with JSON</a> is a post from <a href="http://css-tricks.com" rel="nofollow external" class="bo">CSS-Tricks</a></small></p>
    </div>
]]>
</Body>
<Summary>The following is a guest post by Les James. Like many of us, Les has been gunning for a solution to responsive images that works for him. In this article he shares a technique he found where he...</Summary>
<Website>http://css-tricks.com/making-sass-talk-to-javascript-with-json/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/31788/guest@my.umbc.edu/fbc113725b592b00093be5974b4edeb2/api/pixel</TrackingUrl>
<Tag>article</Tag>
<Tag>css</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>php</Tag>
<Tag>sql</Tag>
<Tag>tricks</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Tue, 25 Jun 2013 08:30:10 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="31789" important="false" status="posted" url="https://my3.my.umbc.edu/posts/31789">
<Title>Fact Finder to European Court Backs Google in a Spanish Privacy Battle</Title>
<Body>
<![CDATA[
    <div class="html-content">An expert opinion requested by the Court of Justice said that a wish to eliminate embarrassing information is not sufficient reason to make Google remove public records from search results.<div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fwww.nytimes.com%2F2013%2F06%2F26%2Fbusiness%2Fglobal%2Feuropean-court-opinion-favors-google-in-privacy-battle.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Fact+Finder+to+European+Court+Backs+Google+in+a+Spanish+Privacy+Battle" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/twitter.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/facebook/?u=http%3A%2F%2Fwww.nytimes.com%2F2013%2F06%2F26%2Fbusiness%2Fglobal%2Feuropean-court-opinion-favors-google-in-privacy-battle.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Fact+Finder+to+European+Court+Backs+Google+in+a+Spanish+Privacy+Battle" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/facebook.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/linkedin/?u=http%3A%2F%2Fwww.nytimes.com%2F2013%2F06%2F26%2Fbusiness%2Fglobal%2Feuropean-court-opinion-favors-google-in-privacy-battle.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Fact+Finder+to+European+Court+Backs+Google+in+a+Spanish+Privacy+Battle" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/linkedin.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/gplus/?u=http%3A%2F%2Fwww.nytimes.com%2F2013%2F06%2F26%2Fbusiness%2Fglobal%2Feuropean-court-opinion-favors-google-in-privacy-battle.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Fact+Finder+to+European+Court+Backs+Google+in+a+Spanish+Privacy+Battle" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/googleplus.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/email/?u=http%3A%2F%2Fwww.nytimes.com%2F2013%2F06%2F26%2Fbusiness%2Fglobal%2Feuropean-court-opinion-favors-google-in-privacy-battle.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Fact+Finder+to+European+Court+Backs+Google+in+a+Spanish+Privacy+Battle" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/email.png" style="max-width: 100%; height: auto;"></a>
    </td></tr></tbody></table></div>
    <br><br><a href="http://da.feedsportal.com/r/165665435491/u/0/f/640387/c/34625/s/2dc39bd0/kg/342-363/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/165665435491/u/0/f/640387/c/34625/s/2dc39bd0/kg/342-363/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>An expert opinion requested by the Court of Justice said that a wish to eliminate embarrassing information is not sufficient reason to make Google remove public records from search results.     </Summary>
<Website>http://www.nytimes.com/2013/06/26/business/global/european-court-opinion-favors-google-in-privacy-battle.html?partner=rss&amp;emc=rss</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/31789/guest@my.umbc.edu/39b6fa3df0729afda85fc724c14366fb/api/pixel</TrackingUrl>
<Tag>computers-and-the-internet</Tag>
<Tag>european-parliament</Tag>
<Tag>google-inc-goog-nasdaq</Tag>
<Tag>new</Tag>
<Tag>privacy</Tag>
<Tag>search-engines</Tag>
<Tag>spain</Tag>
<Tag>technology</Tag>
<Tag>york</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Tue, 25 Jun 2013 07:05:12 -0400</PostedAt>
<EditAt>Tue, 25 Jun 2013 07:05:12 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="31790" important="false" status="posted" url="https://my3.my.umbc.edu/posts/31790">
<Title>Cyberattacks Disrupt Leading Korean Sites</Title>
<Body>
<![CDATA[
    <div class="html-content">The attacks shut down some of the most important sites in North Korea and also struck some South Korean sites on the anniversary of the start of the Korean War.<div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fwww.nytimes.com%2F2013%2F06%2F26%2Fworld%2Fasia%2Fcyberattacks-shut-down-leading-korean-sites.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Cyberattacks+Disrupt+Leading+Korean+Sites" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/twitter.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/facebook/?u=http%3A%2F%2Fwww.nytimes.com%2F2013%2F06%2F26%2Fworld%2Fasia%2Fcyberattacks-shut-down-leading-korean-sites.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Cyberattacks+Disrupt+Leading+Korean+Sites" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/facebook.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/linkedin/?u=http%3A%2F%2Fwww.nytimes.com%2F2013%2F06%2F26%2Fworld%2Fasia%2Fcyberattacks-shut-down-leading-korean-sites.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Cyberattacks+Disrupt+Leading+Korean+Sites" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/linkedin.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/gplus/?u=http%3A%2F%2Fwww.nytimes.com%2F2013%2F06%2F26%2Fworld%2Fasia%2Fcyberattacks-shut-down-leading-korean-sites.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Cyberattacks+Disrupt+Leading+Korean+Sites" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/googleplus.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/email/?u=http%3A%2F%2Fwww.nytimes.com%2F2013%2F06%2F26%2Fworld%2Fasia%2Fcyberattacks-shut-down-leading-korean-sites.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Cyberattacks+Disrupt+Leading+Korean+Sites" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/email.png" style="max-width: 100%; height: auto;"></a>
    </td></tr></tbody></table></div>
    <br><br><a href="http://da.feedsportal.com/r/165665435490/u/0/f/640387/c/34625/s/2dc39bcf/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/165665435490/u/0/f/640387/c/34625/s/2dc39bcf/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>The attacks shut down some of the most important sites in North Korea and also struck some South Korean sites on the anniversary of the start of the Korean War.     </Summary>
<Website>http://www.nytimes.com/2013/06/26/world/asia/cyberattacks-shut-down-leading-korean-sites.html?partner=rss&amp;emc=rss</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/31790/guest@my.umbc.edu/444d6c4e5dba44471082c7fd1f901c2c/api/pixel</TrackingUrl>
<Tag>cyberattacks-and-hackers</Tag>
<Tag>korean-war</Tag>
<Tag>new</Tag>
<Tag>north-korea</Tag>
<Tag>south-korea</Tag>
<Tag>technology</Tag>
<Tag>york</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Tue, 25 Jun 2013 05:48:14 -0400</PostedAt>
<EditAt>Tue, 25 Jun 2013 05:48:14 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="31785" important="false" status="posted" url="https://my3.my.umbc.edu/posts/31785">
<Title>How to design for non-profits</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p><img alt="thumbnail" src="http://netdna.webdesignerdepot.com/uploads/2013/06/thumbnail7.jpg" width="200" height="160" style="max-width: 100%; height: auto;">I ought to know a lot about charities and non-profit organizations. My parents are career missionaries; and I grew up in an environment where everyone I knew was dedicated to improving the lives of others. My family moved around a bit, and I spent my childhood and teen years in several different missionary communities in Canada and Mexico, each of which organized their own charitable endeavors.</p> <p>In Ontario, it was a literacy program. In Sinaloa, we brought healthier, organic food and donated goods of all kinds to orphanages and daycares in low-income communities. In Jalisco, there’s a free kitchen for the children of a very poor neighborhood, where they can get at least one good meal per day. In Nuevo León, there are good people going to children’s hospitals to try and cheer up the patients and their relatives alike.</p> <p>As the resident nerd, it often fell to me to create promotional materials and websites for whomever I happened to be working with at the time. After all, these were low-budget operations staffed by few people. Who could afford to hire a professional?</p> <p>Well, the universe loves a joke: I became a professional.</p> <h1>How is design for non-profits different from commercial work?</h1> <p>It isn’t all that different, if you’re doing it right. The same basic principles of design still apply, and you’re still selling something to your users.</p> <p>That’s right, you’re selling something. All design is about selling. In this case, you’re selling a cause. You’re selling a reason for some people to send money to other people. Only it’s a bit harder sometimes, because most of the time, the people dropping the cash don’t reap any direct benefit. This is one reason why even most of the charitable campaigns on Kickstarter and IndieGoGo offer perks and rewards.</p> <p>Just like in any other transaction, you have to convince your users that parting with their money, time, or other resources is a good idea. This is never easy, but it’s not impossible either.</p> <p> </p> <h1>State your goals up-front</h1> <p>I think that every website should be doing this, but in the charity world, transparency is paramount. You want your users to understand, at their first glance at the website, both what it is that you do and what you need from them.</p> <p>You need to be able to describe — in a maximum of three sentences — who you’re helping, how you’re helping them, and how your users can help you. The rest of the content on the website is only there to support the veracity of your initial statements. </p> <p><a href="http://www.cfbnj.org/" rel="nofollow external" class="bo">The Community FoodBank of New Jersey</a> provides an excellent example of this principle. Who are they, and whom are they helping? How are they doing it? Your first clue is in the name. How can you help them? The calls to action are right there, including a “donate” button. (That’s important.)</p> <p>Simple, transparent, and most importantly, <em>obvious</em>.</p> <p><a href="http://www.cfbnj.org/" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/06/foodbank.jpg" width="650" alt="How to design for non profits" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Tell a story</h1> <p>Out of all of the many, many communication tools we have developed over time, there is one that has never been equaled: the story. Most people see their own lives as one big story, somehow seeing themselves at the center of everything that goes on. We are all protagonists in our own minds.</p> <p>Because of this natural narrative — this first-person perspective — we connect with stories, and the characters in them, on a level that almost defies reason. Do you want your users to identify with the people you’re trying to help? Tell them a story that they can’t ignore. You have to bring them down into the dark places, through the pain, and then out on the other side. </p> <p>As a lover of stories myself, I often find myself going over them again and again in my head. I empathize with the pain the characters have gone through. I see the one little plot twist that, had it been explained to the right characters, could have saved them so much pain and heartache. Then, you can tell your users that they can, in fact, change the story. Wow. “Change the story” — somebody steal that from me.</p> <p>The most memorable website that I have ever seen employing this tactic is <a href="http://www.tooyoungtowed.org/" rel="nofollow external" class="bo">Too Young to Wed</a>. They don’t use too many words to tell the stories. Few people have the patience for that anymore. Instead, they use heart-wrenching, compelling imagery to tell the tale.</p> <p><a href="http://www.tooyoungtowed.org/" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/06/tooyoung.jpg" width="650" alt="How to design for non profits" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Use photos of the actual people you’re helping</h1> <p>Don’t ever use stock photos of people. Really… don’t. They already look fake on regular commercial sites. On a charity site, it makes the organization look very scammy. Sadly, there are quite a few scams that claim to be charities, so it’s a valid concern.</p> <p>As a corollary, don’t use pictures of the volunteers or organization administrators in the design. Sure, you can have some on the “About Us” page, or something of the like — just don’t put them front and center. This isn’t about the volunteers. It’s about helping the people that they help.</p> <p>As far as imagery goes, you just can’t compete with pictures of real individuals who have real needs. Get a photographer, or go take the pictures yourself if you have to.</p> <p>Oh, you want examples? Scroll back up and check out Too Young to Wed again, or take a look at <a href="http://smokingtakeslives.org.au/" rel="nofollow external" class="bo">Smoking Takes Lives</a>. Right now, they’re going all out and focusing specifically on one individual, and his story, to great effect.</p> <p><a href="http://smokingtakeslives.org.au/" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/06/smoking.jpg" width="650" alt="How to design for non profits" style="max-width: 100%; height: auto;"></a></p> <p>Almost worse than stock photos are staged photos. You know the ones. There’s a bunch of people standing uncomfortably close to fit as many as possible. They’re all wearing death-grins. They may be holding some donated goods aloft. Or maybe one person is passing some food to another person, but they’re both looking at the camera. Then, there was the guy that tried to do all of that <em>and</em> give me the thumbs up while I took the photo.</p> <p>Don’t let anyone pressure you into using those kinds of photos.</p> <p> </p> <h1>Charge money, and other notes on dealing with your charity clients</h1> <p>Dealing with charity and non-profit clients can be a bit different. They’re usually very nice people, with all the best of intentions. They’re also often very opinionated. This is especially true if they’re getting the website for free.</p> <p>Don’t ask me why, but nine times out of ten, people to whom you give free work are much more demanding than the clients who pay you a lot. Maybe they see your time, efforts, and expertise as less valuable, since they’re getting it all for free. Maybe there’s some other reason.</p> <p>This is not to say you shouldn’t try to help. A reasonable discount is often a good way to go, but try to avoid doing anything for free — even for charity.</p> <p>The one notable exception, in my experience, is a project I’m actually still working on. I probably can’t give out details just yet, but I’m working with a team. We’re all volunteers from different parts of the world, including our project manager, who does all of the talking with the clients. This has made the experience much smoother overall.</p> <p>Other than the money issue, you’re likely to run into other, more typical client quirks. In smaller organizations, your client may have done their own newsletters or other promotional materials for a long time. As a result, they might have a tendency to micromanage. </p> <p>One client actually criticized my work for being “too professional”. They thought having design that looked too good would give people the wrong impression about their organization. You know, the kind of stuff that makes for a good story when it’s all over.</p> <p>Heck, aside from helping people, a good story almost makes it worth the trouble.</p> <p> </p> <p><em><strong>Have you designed for non-profits? What tips would you add? Let us know in the comments.</strong></em></p> <p><br><br> </p>
    <table width="100%"> <tbody>
    <tr> <td> <a href="http://www.mightydeals.com/deal/photobulk.html?ref=inwidget" rel="nofollow external" class="bo"><strong>PhotoBulk: Batch Photo Editing for Mac – only $4.97!</strong></a> </td> <td> <a href="http://www.mightydeals.com/?ref=inwidget" rel="nofollow external" class="bo"><br> <img src="http://mightydeals.com/web/images/widget-logo.png" height="40" width="90" alt="How to design for non profits" style="max-width: 100%; height: auto;"><br> </a> </td> </tr> </tbody>
    </table> <p><br> </p> <a href="http://www.webdesignerdepot.com/2013/06/how-to-design-for-non-profits/" rel="nofollow external" class="bo">Source</a> <div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fwww.webdesignerdepot.com%2F2013%2F06%2Fhow-to-design-for-non-profits%2F&amp;t=How+to+design+for+non-profits" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/twitter.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/facebook/?u=http%3A%2F%2Fwww.webdesignerdepot.com%2F2013%2F06%2Fhow-to-design-for-non-profits%2F&amp;t=How+to+design+for+non-profits" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/facebook.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/linkedin/?u=http%3A%2F%2Fwww.webdesignerdepot.com%2F2013%2F06%2Fhow-to-design-for-non-profits%2F&amp;t=How+to+design+for+non-profits" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/linkedin.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/gplus/?u=http%3A%2F%2Fwww.webdesignerdepot.com%2F2013%2F06%2Fhow-to-design-for-non-profits%2F&amp;t=How+to+design+for+non-profits" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/googleplus.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/email/?u=http%3A%2F%2Fwww.webdesignerdepot.com%2F2013%2F06%2Fhow-to-design-for-non-profits%2F&amp;t=How+to+design+for+non-profits" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/email.png" style="max-width: 100%; height: auto;"></a>
    </td></tr></tbody></table></div>
    <br><br><a href="http://da.feedsportal.com/r/165665429350/u/49/f/661066/c/35285/s/2dc1401a/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/165665429350/u/49/f/661066/c/35285/s/2dc1401a/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>I ought to know a lot about charities and non-profit organizations. My parents are career missionaries; and I grew up in an environment where everyone I knew was dedicated to improving the lives...</Summary>
<Website>http://rss.feedsportal.com/c/35285/f/661066/s/2dc1401a/l/0L0Swebdesignerdepot0N0C20A130C0A60Chow0Eto0Edesign0Efor0Enon0Eprofits0C/story01.htm</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/31785/guest@my.umbc.edu/b6bdf2e69a6ff292a0c94b0c1872bb80/api/pixel</TrackingUrl>
<Tag>art</Tag>
<Tag>business</Tag>
<Tag>charity-projects</Tag>
<Tag>css</Tag>
<Tag>design</Tag>
<Tag>designing-for-charity</Tag>
<Tag>designing-for-non-profits</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>html5</Tag>
<Tag>illustrator</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>oracle</Tag>
<Tag>photoshop</Tag>
<Tag>php</Tag>
<Tag>sql</Tag>
<Tag>tell-a-story</Tag>
<Tag>using-images-for-charities</Tag>
<Tag>web-design</Tag>
<Tag>working-for-free</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Tue, 25 Jun 2013 05:15:57 -0400</PostedAt>
<EditAt>Tue, 25 Jun 2013 05:15:57 -0400</EditAt>
</NewsItem>

</News>
