<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
> <channel><title>SitePoint &#187; Web Design Tutorials &amp; Articles</title> <atom:link href="http://www.sitepoint.com/category/design/web-design/feed/" rel="self" type="application/rss+xml" /><link>http://www.sitepoint.com</link> <description>News, opinion, and fresh thinking for web developers and designers. The official podcast of sitepoint.com.</description> <lastBuildDate>Thu, 09 Feb 2012 06:03:51 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.2.1</generator> <item><title>Bringing Cut the Rope to Life in an HTML5 Browser</title><link>http://www.sitepoint.com/bringing-cut-the-rope-to-life-in-an-html5-browser/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=bringing-cut-the-rope-to-life-in-an-html5-browser</link> <comments>http://www.sitepoint.com/bringing-cut-the-rope-to-life-in-an-html5-browser/#comments</comments> <pubDate>Wed, 08 Feb 2012 22:50:01 +0000</pubDate> <dc:creator>Giorgio Sardo</dc:creator> <category><![CDATA[HTML & CSS]]></category> <category><![CDATA[HTML5]]></category> <category><![CDATA[JavaScript]]></category> <category><![CDATA[Web Design Tutorials & Articles]]></category> <category><![CDATA[Web Tech]]></category> <category><![CDATA[HTML5 Dev Center]]></category> <guid
isPermaLink="false">http://www.sitepoint.com/?p=51213</guid> <description><![CDATA[<img
width="50" height="29" src="http://cdn.sitepoint.com/wp-content/uploads/2012/02/feature3-50x29.png" class="attachment-thumbnail wp-post-image" alt="feature" title="feature" />Award-winning mobile game Cut the Rope is an immediate favorite for anyone who plays it. It’s as fun as it is adorable. So we had an idea: let’s make this great game available to an even bigger audience by offering it on the web using the power of HTML5. To do this, Microsoft’s Internet Explorer [...]]]></description> <content:encoded><![CDATA[<img
width="50" height="29" src="http://cdn.sitepoint.com/wp-content/uploads/2012/02/feature3-50x29.png" class="attachment-thumbnail wp-post-image" alt="feature" title="feature" /><p></p><p>Award-winning mobile game <strong>Cut the Rope</strong> is an immediate favorite for anyone who plays it. It’s as fun as it is adorable. So we had an idea: let’s make this great game available to an even bigger audience by offering it on the web using the power of HTML5.</p><p>To do this, Microsoft’s Internet Explorer team partnered with <a
href="http://zeptolab.com/">ZeptoLab</a> (the creators of the game) and the specialists at <a
href="http://thinkpixellab.com/">Pixel Lab</a> to bring <strong>Cut the Rope</strong> to life in a browser. The end result is an authentic translation of the game for the web, showcasing some of the best that HTML5 has to offer: canvas-rendered graphics, browser-based audio and video, CSS3 styling and the personality of WOFF fonts.</p><p>You can play the HTML5 version of <strong>Cut the Rope</strong> at: <a
href="http://www.cuttherope.ie/">www.cuttherope.ie</a>.</p><p>We think that the HTML5 version makes the web more fun and it demonstrates the advances in standards support made in the latest version of Internet Explorer. With that in mind, we want to share some of the cool “behind the scenes” technical details used on this project to help you build your own HTML5 sites and ultimately get ready for the <a
href="http://msdn.microsoft.com/en-us/windows">Windows 8 Store</a>!<div>  <script type='text/javascript'>GA_googleFillSlot("InArticle_728x90_1");</script> </div></p><p><img
class="alignnone size-full wp-image-51216" title="figure1" src="http://cdn.sitepoint.com/wp-content/uploads/2012/02/figure11.png" alt="Cut the Rope in IE9" width="220" height="220" /></p><p><em>Cut the Rope running in IE9 as an HTML5 application, ported from the original iOS source code.</em></p><p><img
class="alignnone size-full wp-image-51218" title="figure2" src="http://cdn.sitepoint.com/wp-content/uploads/2012/02/figure21.png" alt="special levels" width="220" height="171" /><br
/> <em> A screenshot of one of the specially designed levels that are uniquely available in this version.</em></p><p><strong>Objective-C to JavaScript</strong></p><p>In bringing <strong>Cut the Rope</strong> to a new platform, we wanted to ensure we preserved the unique physics, motion, and personality of the experience. So early on we decided to approach this game as a “port” from the native iOS version (rather than a rewrite). We kicked off the project with an extensive investigation of the original Objective-C codebase. Turns out it’s a big and complex game. The native iOS version consists of about 15,000 lines of code (excluding libraries)! The most complex parts of the codebase are the physics, animation, and drawing engines. They’re complex on their own, but made even more so by the fact that all three are tightly connected and highly optimized.</p><p>It was a daunting task: get this code into a browser while maintaining the unique personality and incredible quality that gamers are accustomed to. To accomplish this, we bet on JavaScript.</p><p>In the past, JavaScript had a reputation of being a slow language. Frankly, that reputation was initially valid. Older JavaScript engines were designed for simple “scripting” kinds of tasks (hence the name). Today, however, JavaScript engines have been highly optimized. With features like just-in-time compilation, JavaScript now can execute at near native speeds.</p><p>Beyond that, we know that coding for JavaScript is different from &#8211; and requires a different kind of mindset than &#8211; coding in a compiled language. As we ported the game from Objective-C, we knew we would need to embrace the task of making these sorts of changes and optimizations.</p><p>One obvious example was the lack of <em>structs</em> in JavaScript. Structs are lightweight aggregations of related properties. It’s easy to use a JavaScript object to hold a set of properties, but there are important differences between that approach and a proper struct. The first difference is that structs get copied whenever they’re assigned to a variable or passed to a function. So, a function written in a compiled language like Objective-C can modify a struct passed as a parameter without affecting the value in the caller. Even within a function, assignment of a struct to a different variable will copy the values. JavaScript objects, on the other hand, are passed by reference. So when a function modifies an object parameter, the changes will be visible to the caller.</p><p>An easy way to mimic the nature of structs is to create copies of JavaScript objects for assignment or parameter passing. In native languages there is typically very little overhead to using structs. Creating an object in JavaScript is much more expensive, so we had to be very careful to minimize the number of allocations. Particularly on assignments, whenever possible we tried to copy individual properties rather than creating entirely new object instances.</p><p>Another example is the object oriented nature of the Objective-C codebase. In lieu of traditional object-based inheritance, JavaScript offers prototypical inheritance, inheritance based on the Prototype property. This is a highly simplified form of object inheritance that really isn’t compatible with a traditional object oriented language like Objective-C. Fortunately, there are a variety of class libraries that can help you write object-oriented programming (OOP) style code for JavaScript; we made use of <a
href="http://ejohn.org/blog/simple-javascript-inheritance/">a very simple one</a> that was written by John Ressig (of jQuery fame). (Note that ECMAScript5, the specification for the newest version of JavaScript, also includes some support for classes but we opted not to use it in this port due to our lack of familiarity with that version of the language coupled with our aggressive development schedule).</p><p>In addition to porting from Objective-C to JavaScript, we also needed to port our graphics code from OpenGL to the HTML5 Canvas API. Overall, this went really smoothly. Canvas is an amazingly fast rendering surface, especially in a browser where that API is hardware accelerated (like Internet Explorer 9).</p><p><img
class="alignnone size-full wp-image-51219" title="figure3" src="http://cdn.sitepoint.com/wp-content/uploads/2012/02/figure31.png" alt="aliased lines" width="220" height="220" /></p><p><em>An example of drawing the ropes with aliased lines using the canvas API.</em></p><p>Surprisingly, we encountered a few areas where the Canvas provides more functionality than does the version of OpenGL ES that was used by the mobile version of Cut the Rope. One example is drawing <a
href="http://en.wikipedia.org/wiki/Spatial_anti-aliasing">anti-alias lines</a>. Drawing anti-aliased lines in OpenGL requires tessellating a line into a triangle strip and fading the opacity of the end caps to complete transparency. The HTML5 canvas automatically handles anti-aliasing for lines drawn with its line API. This meant we actually needed to remove code from the OpenGL version. Unwinding the array of triangle vertices in the OpenGL code also gave us much better performance over trying to natively copy the triangle strip method of drawing lines.</p><p>In the end, we have nearly 15,000 lines of code executing in the browser (it’s been minified so if you view the source code in your browser, it will be many lines fewer than that). Anticipating the complexity associated with that much code, Denis Morozov (the Director of Development at ZeptoLab) asked a fair question early on: will HTML5 give us the speed and performance that we need for this game?</p><p>To answer that, we created an early “performance” milestone, one where we focused on getting a minimal version of the most intense parts of the game running. Namely, we wanted to see what the ropes looked like and whether we could handle the complex physics engine in the browser.</p><p><strong>Performance</strong></p><p>Three weeks into the project, we finally had the basics of the physics and drawing engines in place with a simple timer to bootstrap the animation. We could now render a couple of ropes, a star, and an Om Nom sprite into the game scene. Progress! By week four, we had included some basic mouse interaction and with that we could actually play the game! We were testing performance along the way, but we wanted to let the team at ZeptoLab give us their feedback.</p><p>When we shared the code with ZeptoLab, they were pleasantly surprised by the performance (particularly the speed and smoothness from the game) that we were seeing in modern browsers. To be honest, we had been holding our breath just a little. We expected JavaScript to be fast but the physics calculations were intense and had to happen in real-time. This is a great example of where common preconceptions about the “slowness” of JavaScript turn out to be wrong. The latest generation of JavaScript engines is incredibly fast.</p><p>In this case, we were previewing the game in Internet Explorer 9. When you load the game, Internet Explorer 9’s Chakra JavaScript engine pre-compiles the code on a background thread—just as a compiler would compile a language like Objective-C or C++. It then, in real time, sends the compiled code (byte-code) to the game thread for execution. The result is near-native execution speeds. Amazingly, this is something that you just get for free from the JavaScript engine—we didn’t have to do anything special in the code.</p><p><img
class="alignnone size-full wp-image-51220" title="figure4" src="http://cdn.sitepoint.com/wp-content/uploads/2012/02/figure41.png" alt="framerate test results" width="220" height="220" /></p><p><em>Framerate test results early in the project (note that framerates are capped at 60FPS)</em></p><p>Our bet on JavaScript was paying off, so we turned our attention to hardware and browsers. With Internet Explorer’s hardware-accelerated rendering stack and our experience with <a
href="http://windowsteamblog.com/ie/b/ie/archive/2011/06/03/behind-the-scenes-of-disney-tron-legacy-digital-book-site.aspx">Disney Tron</a> and other <a
href="http://www.beautyoftheweb.com/">HTML5 sites</a>, we didn’t have any concerns about its ability to run the game perfectly on our test machines. We were easily hitting our capped goal of 60 FPS (frames per second). We wanted to be sure, however, that the game ran well on other hardware with other browsers. <a
href="http://www.cuttherope.ie/dev/notes-framerates.jpg">Here’s what we saw</a> after some preliminary testing.</p><p>Based on those numbers, we set 30 FPS as our minimum bar. We decided that when the browser goes below that threshold, we would notify the user. They could still play the game, but we’d inform them that it could feel a little bit sluggish. This ensures that we support the huge diversity of hardware and software that’s out there and provide the best experience we can to all of the game’s visitors.</p><p>Two things we want to point out. One, the current version of the game works best on desktop PCs and Macs with a mouse. We have not added the support for touch based input yet, but this is something we’re considering for future versions.</p><p>Second, the current version of Chrome (version 16) has <a
href="http://code.google.com/p/chromium/issues/detail?id=107933">known issues related to media playback</a> that make sound unpredictable in Cut the Rope. We researched workarounds and have attempted to re-encode the media in multiple formats (including WebM), but haven&#8217;t found a format or MIME configuration or anything else that will reliably fix the problem. These appear to be browser bugs and known issues. More importantly, the game continues to be playable and enjoyable in spite of the intermittent audio. In light of that, while we can say Internet Explorer 9 users get a great plug-in free experience, Chrome and some Firefox users could have run into an audio problem but will notice we fall back to a flash plugin to ensure that sound effects and music will work.</p><p><strong>Tools</strong></p><p>A great thing about HTML5 is that you don’t need to learn a new language to unlock the power of this new technology. If you know and understand JavaScript, you already have access to all that a modern browser can do. You could even create your own game like this!</p><p><strong>Code Editor and Development Environment</strong></p><p><img
class="alignnone size-full wp-image-51221" title="figure5" src="http://cdn.sitepoint.com/wp-content/uploads/2012/02/figure51.png" alt="VWD 2010 Express" width="220" height="161" /></p><p><em>Visual Web Developer 2010 Express is a free download and a great editor for even experienced web developers.</em></p><p><img
class="alignnone size-full wp-image-51222" title="figure6" src="http://cdn.sitepoint.com/wp-content/uploads/2012/02/figure61.png" alt="profiler screenshot" width="220" height="260" /></p><p><em>A screenshot from the profiler that shows the disproportionate amount of time being spent in Calc2PointBezier, a function that&#8217;s used to caculate the positions of the rope segments.</em></p><p>There are some great free tools that make working with JavaScript and HTML5 easy. Much of our development was done in Visual Web Developer 2010 (<a
href="http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-web-developer-express">the &#8220;express&#8221; version is available for free here</a>). This is a really robust web editor with autocompletion for JavaScript and CSS. It’s great that the express version is free! We did most of our testing in Internet Explorer 9 on Windows 7 and from time to time we would also test on Firefox, Chrome, Safari, and in Internet Explorer 10 developer preview. In general, all major browsers have a very consistent implementation of the HTML5 features we used and, in most cases, anything we tested in Internet Explorer 9 “just worked” everywhere else.</p><p><strong>Check out our Resource Loader!</strong></p><p>Cut the Rope has unique and very detailed visual styling &#8211; lots of media in the form of images, sounds and video &#8211; which comes at a small cost. The result is that the whole game is much bigger than an average website. Combined, it’s around 6 MB (compared to 200-300K for a typical site). That much media can take a little while to download and we can&#8217;t start the game until we know everything is there. A traditional web page is pretty forgiving if you&#8217;re missing an image or two but the HTML5 canvas API (drawImage) will fail if the image isn&#8217;t available.</p><p>To tackle this challenge, we wanted to create a resource loader that downloads all of the content we need for the page and gives us good feedback as things are downloaded. This bit of code does a bunch of smart things:</p><p>1. It deals with the peculiarities of how different browsers handle downloads and how they inform you of their progress.</p><p>2. It lets you make smart decisions about the order in which things are downloaded (you might want to start big files first, for example, or maybe download all of the menu images before you get the game images).</p><p>3. Finally, it gives you smart events as things arrive so that you can show the user progress or even start part of the game when the first group is completed.</p><p>Building these types of libraries is tricky to do well. Since we’re really pleased with how this all came together, we wanted to share the code for our resource loader with you. The result is PxLoader, a javascript Resource Loader library that you can user to make preloaders for HTML5 applications, games and sites. It&#8217;s open source and free. You can grab it from the top of the page, or just click <a
href="http://thinkpixellab.com/pxloader">here</a>.</p><p><strong>Performance Tools in Internet Explorer</strong></p><p>Another indispensable tool in the development process was the JavaScript Profiler in Internet Explorer 9. Profiling lets you discover hot spots and bottlenecks in your code. At one point in our first performance related milestone, we nearly called it quits when we discovered that on some machines we were stuck at 20 or 30 FPS.</p><p>We did some initial code reviews, but nothing was jumping out. We loaded the game with the profiler and immediately saw that we were spending a lot of time inside the satisfyConstraints() function. That function calculates some of the math related to the physics of the ropes. The Objective-C implementation which we had ported was written recursively, passing a new object into each successively deeper call.</p><p>With some guidance from Microsoft, we decided to replace the recursive function with an “unpacked” iterative version of the same code. The results were amazing. We saw a 10x improvement in every browser! Frankly, we would have never found that without the profiling tools in Internet Explorer 9.</p><p><strong>What’s next?</strong></p><p>At BUILD in September, Microsoft showed a developer preview of Windows 8. With this announcement, the HTML5 story got more interesting because Metro style applications can be created using a variety of developer toolsets, including HTML5. This means that web developers can take code that was written for the web and easily and seamlessly port it to Windows 8. The investment in immersive experiences online now can pay off in real profits later with the Windows Store.</p><p>In fact, with very little extra work, we were able to port this HTML5 experience to a Windows 8 Metro style app. Read about <strong>Cut the Rope</strong> and its integration with the Windows Store in <a
href="http://blogs.msdn.com/b/windowsstore/archive/2011/12/06/announcing-the-new-windows-store.aspx">this blog post</a>.</p><p>We are excited to see what developers can build today with HTML5. You can download Internet Explorer 9 and find other beautiful sites at <a
href="http://www.beautyoftheweb.com/">www.beautyoftheweb.com</a>, or download the Developer Preview of Windows 8 at <a
href="http://dev.windows.com/">dev.windows.com</a>.</p><div
style="text-align:center;padding-bottom:50px;"><div
style="float:left;padding-left:30px;"> <script>GA_googleFillSlot("Edit_300x100_C");</script> </div><div
style="float:right;padding-right:30px;"> <script>GA_googleFillSlot("Edit_300x100_D");</script> </div></div><div
style="clear:both"></div>]]></content:encoded> <wfw:commentRss>http://www.sitepoint.com/bringing-cut-the-rope-to-life-in-an-html5-browser/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Responsive Web Design</title><link>http://www.sitepoint.com/responsive-web-design/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=responsive-web-design</link> <comments>http://www.sitepoint.com/responsive-web-design/#comments</comments> <pubDate>Mon, 30 Jan 2012 12:30:21 +0000</pubDate> <dc:creator>Katrien De Graeve</dc:creator> <category><![CDATA[HTML & CSS]]></category> <category><![CDATA[HTML5]]></category> <category><![CDATA[Responsive Web Design]]></category> <category><![CDATA[Web Design Tutorials & Articles]]></category> <category><![CDATA[Web Tech]]></category> <category><![CDATA[HTML5 Dev Center]]></category> <guid
isPermaLink="false">http://www.sitepoint.com/?p=50784</guid> <description><![CDATA[<img
width="50" height="50" src="http://cdn.sitepoint.com/wp-content/uploads/2012/01/rwd1-50x50.png" class="attachment-thumbnail wp-post-image" alt="rwd" title="rwd" />Belgian Microsoft evangelist Katrien De Graeve lays out just what can be achieved with media queries in CSS.]]></description> <content:encoded><![CDATA[<img
width="50" height="50" src="http://cdn.sitepoint.com/wp-content/uploads/2012/01/rwd1-50x50.png" class="attachment-thumbnail wp-post-image" alt="rwd" title="rwd" /><p></p><p>It all started with <a
href="http://www.alistapart.com/articles/responsive-web-design/">Responsive Web Design</a>, an article by Ethan Marcotte on A List Apart. Essentially, the article proposed addressing the ever-changing landscape of devices, browsers, screen sizes and orientations by creating flexible, fluid and adaptive Websites. Instead of responding to today’s needs for a desktop web version adapted to the most common screen resolution, along with a particular mobile version (often specific to a single mobile device), the idea is to approach the issue the other way around: use flexible and fluid layouts that adapt to almost any screen.</p><p><strong>Core Concepts</strong></p><p>Three key technical features are at the heart of responsive web design:</p><ul><li>Media queries and media query listeners</li><li>A flexible grid-based layout that uses relative sizing</li><li>Flexible images and media, through dynamic resizing or CSS</li></ul><p>Truly responsive web design requires all three features to be implemented.</p><p>The key point is adapting to the user’s needs and device capabilities. Suppose a mobile user will be viewing your site on a small screen. Taking the user’s needs into account doesn’t just mean adapting your content to the screen size. It also means thinking about what that mobile user will require first when visiting your site and then laying out the content accordingly. Maybe you’ll present the information in a different order. Don’t assume the user won’t need access to all the site information because she’s on a mobile device. You might need to change the fonts or interaction areas to respond better to a touch environment. All these factors influence responsive web design.<div>  <script type='text/javascript'>GA_googleFillSlot("InArticle_728x90_1");</script> </div></p><p>While mobile devices are changing the display landscape, with the appearance of more and more small screens, don’t forget what’s happening at the other end of the spectrum. Displays are also getting larger and larger. Having to serve both segments shouldn’t stop designers from being innovative on either.</p><h3>Media Queries</h3><p>Starting with CSS 2.1, media types were used to apply CSS for both screen and print. You might remember these media types:</p><pre>&lt;link rel="stylesheet" type="text/css" href="style.css" media="screen" /&gt;
&lt;link rel="stylesheet" type="text/css" href="printfriendly.css" media="print" /&gt;</pre><p>That was it! Luckily, the W3C improved <a
href="http://www.w3.org/TR/css3-mediaqueries/">media queries</a> in CSS3, moving them a big step forward.</p><p>Today, you can use media queries to scope styles to specific capabilities, applying different styles based on the capabilities that match your query. You can even combine queries that test for several features by using semantic operators such as AND and NOT). Features include width, height, max-width, max-height, device-height, orientation, aspect-ratio, resolution and more.</p><p>There are three ways to implement media queries:</p><ol><li>Use the @import rule to import style rules from other style sheets:</li><li>@import url(style600min.css) screen and (min-width: 600px);</li><li>Put media queries directly in the style sheet, as shown below.</li></ol><pre>#nav
    {
        float: right;
    }
        #nav ul
        {
            list-style: none;
        }
    @media screen and (min-width: 400px) and (orientation: portrait)
        {
            #nav li
            {
                float: right;
                margin: 0 0 0 .5em;
                border:1px solid #000000;
            }
        }
    @media screen and (min-width: 800px)
        {
            #nav
            {
                width: 200px;
            }
                #nav li
                {
                    float: left;
                    margin: 0 0 0 .5em;
                    border: none;
                }
        }</pre><p>Include a query in a linked style sheet’s <code>media</code> attribute:</p><p><code>&lt;link rel="stylesheet" type="text/css" media="screen and (max-device-width: 800px)" href="style800.css" <strong>/&gt;</strong></code><br
/> &nbsp;<br
/> Because of the (cascading) nature of CSS, default styles are defined at the top with the media query matching rules and styles below. Styles defined at the top will be cascaded to the matching styles in the rule, or even completely overwritten.</p><p>The following images present an example of a responsive web design approach that uses media queries.</p><p><strong>Figure 1</strong> and <strong>Figure 2</strong> both show a desktop using Internet Explorer 9 in two different resolutions. <strong>Figure 3</strong> shows the same responsive site on a Windows Phone, also with Internet Explorer 9.</p><p><img
class="alignnone size-full wp-image-50787" title="figure1" src="http://cdn.sitepoint.com/wp-content/uploads/2012/01/figure12.png" alt="navigation appears on the left" width="550" height="329" /><br
/> <strong>Figure 1 Navigation Appears on the Left</strong><br
/> &nbsp;<br
/> <img
class="alignnone size-full wp-image-50788" title="figure2" src="http://cdn.sitepoint.com/wp-content/uploads/2012/01/figure23.png" alt="navigation switches to the top" width="550" height="523" /><br
/> <strong>Figure 2 In an 800&#215;600 Resized Window, Navigation Switches to the Top</strong><br
/> &nbsp;<br
/> <img
class="alignnone size-full wp-image-50789" title="figure3" src="http://cdn.sitepoint.com/wp-content/uploads/2012/01/figure3.png" alt="on a windows phone" width="302" height="548" /><br
/> <strong>Figure 3 The Same Site on a Windows Phone</strong><br
/> &nbsp;<br
/> If you’re looking for some great examples of responsive web design that take full advantage of media queries, the <a
href="http://mediaqueri.es/">http://mediaqueri.es/</a> enthusiast site can be addictive, as <strong>Figure 4</strong> shows.</p><p><img
class="alignnone size-full wp-image-50790" title="figure4" src="http://cdn.sitepoint.com/wp-content/uploads/2012/01/figure41.png" alt="screenshot of media queries fan site" width="550" height="366" /></p><p><strong>Figure 4 A Collection of Sites That Use Media Queries</strong></p><h3>Media Query Listeners</h3><p>Taking media queries a step further, the CSS Object Model (CSSOM) working group at the W3C also created media query listeners, which provide an API for responding to media query changes. Instead of having to poll for changes or load several versions of a resource, you can use the API, for example, to download images only of a particular size when a media query match is triggered.</p><p>Today, <a
href="http://www.mozilla.org/en-US/firefox/">Firefox</a> and the <a
href="http://msdn.microsoft.com/ie/hh272903#_DOMMediaQuery">Internet Explorer 10 Platform Preview</a> implement media query listeners; you can see the demo “<a
href="http://ie.microsoft.com/testdrive/HTML5/CSS3MediaQueries/Default.html#MediaQueryListeners">CSS3 Media Queries &amp; Media Query Listeners</a>” on the IE Test Drive.</p><h3>A Word about the Viewport</h3><p>When testing media queries on mobile browsers, you might notice that the correct media queries are not actually being applied. When this happens, the mobile browser is doing some work on your behalf to render the page optimally on the smaller screen.</p><p>So do you think there isn’t a way of getting the real resolution? Actually there is, in the viewport meta tag. The viewport meta tag controls the logical dimensions and scaling of the mobile browser’s (chrome-less) window. Setting the width equal to the device-width works around the problem:</p><p><code>&lt;meta name="viewport" content="width=device-width"&gt;</code><br
/> &nbsp;<br
/> Other viewport settings include <code>maximum-zoom</code> and <code>initial-scale</code>.</p><h3>Flexible Grids</h3><p>A flexible grid-based layout is one of the cornerstones of responsive design. The term “grid” is used rather freely and doesn’t imply a requirement to implement any of the available grid frameworks. What it means here is using CSS for positioning and for laying out margins and spacing, and for implementing various <a
href="http://sixrevisions.com/web_design/a-guide-on-layout-types-in-web-design/">web layout types</a> in a new way. Layouts and text sizes are typically expressed in pixels. Designers love pixels. Photoshop loves pixels. But a pixel can be one dot on one device and eight dots on another. So how do you approach responsive web design if everything is pixel-based? You might not like the answer: You stop using pixel-based layouts and start using percentages or the <code>em</code> for sizing.</p><p>By basing text sizes, widths and margins on percentages or on the <code>em</code>, a unit of measurement based on a font’s point size, you can turn a fixed size into a relative size. This means you’ll need to do a little math to achieve a flexible grid and text size system. But the formula for calculating the <code>em</code> is very simple:</p><p><code>target ÷ context = result</code><br
/> &nbsp;<br
/> Let’s say the normal context for the body font size is 16 pixels. If the designer specifies that the H1 should be 24 pixels, you can calculate the following:</p><p><code>24 ÷ 16 = 1.5</code><br
/> &nbsp;<br
/> This results in the following CSS style:</p><pre>h1{
    font-size: 1.5em;
}</pre><p>&nbsp;</p><p>Always take the context into account. Continuing with the previous example, if you have an element inside the <code>H1</code> that needs to be 12 pixels, you use the current <code>H1</code> as the context. The context is now 24 pixels, so the context calculation for “H1 a” is:</p><p><code>12 ÷ 24 = 0.5</code><br
/> &nbsp;</p><p>And the CSS style is:</p><pre>h1 a{
    font-size: 0.5em;
}</pre><p>&nbsp;<br
/> You can also use percentages. The calculation algorithm is the same; you just end up with percentages.</p><p>Flexible grids use this approach. You can find several frameworks to help you craft your grid, such as <a
href="http://fluid.newgoldleaf.com/">Fluid Grid System</a> or <a
href="http://www.designinfluences.com/fluid960gs/">Fluid 960 Grid System</a> (a fluid version of 960 Grid System). Moreover, several groups within the W3C have submitted new specs for better flexible grids, with some useful results.</p><h3>CSS3 Grid Layout</h3><p>The <a
href="http://dev.w3.org/csswg/css3-grid-align/">CSS3 Grid Layout</a> (also known as Grid Alignment or, simply, the Grid), brings a typical grid system to CSS, similar to what XAML or Silverlight developers may be familiar with. At the time of this writing, the spec is an “Editor’s Draft.” It allows for defining regions in a layout, with columns and rows, spanning, spacing, padding, grid templates and more, enforcing full separation of concerns between HTML elements and CSS. Unlike HTML tables that are content, the Grid allows for placing HTML primitives into grid regions separate from actual content.</p><p>Combining the CSS3 Grid with media queries creates a powerful solution for building fluid, responsive applications.</p><p>How does the Grid work? You start by setting the display block to ‘grid’. (You need to use CSS vendor prefixes because this is not yet a CSS3 recommendation. Right now, only Internet Explorer 10 Platform Preview supports the spec, so you’ll see the CSS vendor prefix -ms- used here.) Let’s look at three examples of how you can set up different views depending on screen size. Media queries are used to apply different grid styles depending on the screen width.</p><p>In the first example, the HTML for defining the content consists of one header and three different blocks of text.</p><pre>&lt;div id="mygrid"&gt;
    &lt;header id="myheader"&gt;
        &lt;h1&gt;Hello world&lt;/h1&gt;
    &lt;/header&gt;
    &lt;div id="block1"&gt;
        &lt;h2&gt;Lorem Ipsum section 1&lt;/h2&gt;
        &lt;p&gt;
            Phasellus venenatis sem vel velit tincidunt tincidunt.
              Curabitur gravida, ante sit amet [... ...]
        &lt;/p&gt;
    &lt;/div&gt;
    &lt;div id="block2"&gt;
        &lt;h2&gt;Lorem Ipsum section 2&lt;/h2&gt;
        &lt;p&gt;
        Nam tempus justo eu massa ultrices eget imperdiet ligula placerat.
        Suspendisse [... ...].
        &lt;/p&gt;
    &lt;/div&gt;
    &lt;div id="block3"&gt;
        &lt;h2&gt;Lorem Ipsum section 3&lt;/h2&gt;
        &lt;ul&gt;
            &lt;li&gt;Curabitur ultrices tristique purus, sed pellentesque
               magna scelerisque ut.&lt;/li&gt;
            &lt;li&gt;[... ...] &lt;/li&gt;
        &lt;/ul&gt;
    &lt;/div&gt;
&lt;/div&gt;</pre><p>You start by laying out the blocks of content under each other so that the content fits smartphones.</p><pre>@media only screen and (max-width : 480px) {
    #mygrid {
        display: -ms-grid;
        margin: 3px;
        -ms-grid-columns: 100%; /*one column taking full width */
        -ms-grid-rows: 70px auto auto auto; /*4 rows */
    }
    #myheader {
       -ms-grid-row: 1;
       -ms-grid-column: 1;
    }
    #block1 {
        -ms-grid-row: 2; /*place into row 2 / column 1*/
        -ms-grid-column: 1;
    }
    #block2 {
        -ms-grid-row: 3;
        -ms-grid-column: 1;
    }
    #block3 {
        -ms-grid-row: 4;
        -ms-grid-column: 1;
    }
}</pre><p>&nbsp;</p><p>You can add background colors as shown in <strong>Figure 5</strong> to make it clearer that you’re working with grid items.</p><p><img
class="alignnone size-full wp-image-50791" title="figure5" src="http://cdn.sitepoint.com/wp-content/uploads/2012/01/figure51.png" alt="background colors" width="276" height="449" /></p><p><strong>Figure 5 Blocks of Content with Background Colors</strong></p><p>In the second example, a media query applies styles defined for screen sizes greater than 481 pixels—anything wider than a typical smartphone. You can use the Grid to define two columns and move the blocks into desired positions, as below. The results are shown in <strong>Figure 6</strong>.</p><pre>@media only screen and (min-width : 481px) {
/*make two columns and move block 3 next to 1 — just because we can*/
    #mygrid {
        display: -ms-grid;
        -ms-grid-columns: 10px 1fr 10px 1fr 10px; /*10px columns to spacing in between*/
        -ms-grid-rows: 100px 1fr 1fr; /*100px row and two rows each taking 1 fraction of available space*/
        margin: 5px;
    }
    #myheader {
        -ms-grid-row: 1;
        -ms-grid-column: 1;
        -ms-grid-column-span: 5;
        background-color: #EEB215;
    }
    #block1 {
        -ms-grid-row: 2;
        -ms-grid-column: 2;
        background-color: #B2B0B0;
    }
    #block2 {
        -ms-grid-row: 3;
        -ms-grid-column: 2;
        background-color: #726E6E;
    }
    #block3 {
        -ms-grid-row: 2; /*block 3 can go into row 2*/
        -ms-grid-column: 4;
         background-color: #515050;
    }
}</pre><p><img
class="alignnone size-full wp-image-50792" title="figure6" src="http://cdn.sitepoint.com/wp-content/uploads/2012/01/figure61.png" alt="two adjacent columns" width="550" height="434" /><br
/> <strong>Figure 6 A New Layout with Two Adjacent Columns</strong></p><p>The third grid sample displays on screen widths greater than 1220 pixels. You define a grid with a wide header that spans multiple columns and then define three columns, each occupying one fraction of the available space, with a few 10-pixel columns in between. The results are shown in <strong>Figure 7</strong>.</p><pre>@media only screen and (min-width: 1220px) {
    #mygrid {
        display: -ms-grid;
        -ms-grid-columns: 1fr 10px 1fr 10px 1fr;
        -ms-grid-rows: 100px 1fr;
        margin: 5px;
    }
    #myheader {
        -ms-grid-row: 1;
        -ms-grid-column: 1;
        -ms-grid-column-span: 5;
        background-color: #EEB215;
    }
    #block1 {
        -ms-grid-row: 2;
        -ms-grid-column: 1;
        background-color: #B2B0B0;
    }
    #block2 {
        -ms-grid-row: 2;
        -ms-grid-column: 3;
        background-color: #726E6E;
    }
    #block3 {
        -ms-grid-row: 2;
        -ms-grid-column: 5;
        background-color: #515050;
    }
}</pre><p>&nbsp;<br
/> <img
class="alignnone size-full wp-image-50793" title="figure7" src="http://cdn.sitepoint.com/wp-content/uploads/2012/01/figure71.png" alt="three columns" width="551" height="187" /><br
/> <strong>Figure 7 Three Side-by-Side Columns with a Spanning Header</strong></p><p>The Grid specification is a welcome addition for implementing responsive web designs.</p><p>Two other new CSS specifications are also worth mentioning: the <a
href="http://www.w3.org/TR/2009/WD-css3-flexbox-20090723/">Flexible Box Layout Module</a> (Flexbox) and The <a
href="http://www.w3.org/TR/css3-multicol/">Multi-column Layout Module</a>. Both show a great deal of promise for designing responsive Websites.</p><p>Flexbox, currently a working draft at the W3C, adds support for four new layout modes: block, inline, table, and positioned. It enables you to lay out complex pages with relative position and constant size, even when screen sizes change.</p><p>The multi-column layout module is currently a candidate recommendation at the W3C. This solution is for content that you need to lay out in columns and that flow from one column into the next. You can view an interactive example of multi-column layout in this <a
href="http://ie.microsoft.com/testdrive/Graphics/hands-on-css3/hands-on_multi-column.htm">lab</a>.</p><h3>Flexible Images and Media</h3><p>The final aspect of responsive web design is flexible images and media. Basically, this feature allows you to adapt your images or other media to load differently depending on the device, either by scaling or by using the CSS overflow property.</p><p>Scaling in CSS is pretty simple to implement for both images and video. You can set the media element’s max-width to 100 percent, and the browser will make the image shrink and expand depending on its container. You should supply the image in the best quality and size possible and then let CSS adapt the image to the right size.</p><pre>img, object {
    max-width: 100%;
}</pre><p>&nbsp;</p><p>An alternative to scaling images is cropping them with CSS. For example, applying overflow:hidden allows you to crop images dynamically so that they fit into their containers as the containers resize to fit a new screen environment.</p><p>Having several options to scale and crop images in CSS might not be enough. Do you really need to take up all of a visitor’s mobile bandwidth because you don’t have a smaller version of an image? To better serve users, flexible images might mean using an alternative image—or even no image at all. Folks in the web design community are coming up with <a
href="http://filamentgroup.com/lab/responsive_images_experimenting_with_context_aware_image_sizing/">solutions</a> based on JavaScript and cookies, and you can expect more of this as responsive web design evolves and becomes the basis for many quality Websites.</p><h3>Legacy Browsers</h3><p>What about older browsers that don’t support media queries? What about Internet Explorer before version 8, which has issues with scaling images? Solutions in the form of polyfills can help. Here are some useful examples.</p><ul><li>css3-mediaqueries.js by Wouter van der Graaf: <a
href="http://msdn.microsoft.com/en-us/magazine/code.google.com/p/css3-mediaqueries-js/">code.google.com/p/css3-mediaqueries-js/</a></li><li>Response.js: <a
href="http://msdn.microsoft.com/en-us/magazine/github.com/scottjehl/Respond">github.com/scottjehl/Respond</a></li><li>Fluid images: <a
href="http://msdn.microsoft.com/en-us/magazine/unstoppablerobotninja.com/entry/fluid-images/">unstoppablerobotninja.com/entry/fluid-images/</a></li></ul><h3>In Closing</h3><p>Jumping on the responsive web design wagon isn’t something to take lightly. Take into account what you need to achieve, and consider whether catering to a specific version of a desktop or mobile device makes the most sense.</p><p>Responsive web design is in its early stages. Web designers will continue to offer different opinions and recommend directions related to whether to build for mobile first, how to fit these decisions into the design process, whether to slice up the comps into all the different screen sizes, and so forth. And as more and more screen sizes and form factors arrive, the conversation will continue.</p><p>HTML and CSS standards are evolving to help web designers deal with these issues. It’s clear that some form of responsive web design will be used to meet the challenges, and it’s equally clear that standards will continue to evolve as better ways of handling the changing world of devices and browsers are discovered.</p><p>Here are some additional resources:</p><ul><li><a
href="http://www.alistapart.com/articles/responsive-web-design/">Responsive Web Design</a></li><li><a
href="http://www.smashingmagazine.com/2011/07/22/responsive-web-design-techniques-tools-and-design-strategies/">Responsive Web Design Techniques, Tools and Design Strategies</a></li><li><a
href="http://stuffandnonsense.co.uk/blog/about/hardboiled_css3_media_queries">Hardboiled CSS3 Media Queries</a></li><li><a
href="http://goldengridsystem.com/">Golden Grid System</a></li><li><a
title="Permanent Link to A Brief Look at Grid-Based Layouts in Web Design" href="http://sixrevisions.com/web_design/a-brief-look-at-grid-based-layouts-in-web-design/">A Brief Look at Grid-Based Layouts in Web Design</a></li></ul><div
style="text-align:center;padding-bottom:50px;"><div
style="float:left;padding-left:30px;"> <script>GA_googleFillSlot("Edit_300x100_C");</script> </div><div
style="float:right;padding-right:30px;"> <script>GA_googleFillSlot("Edit_300x100_D");</script> </div></div><div
style="clear:both"></div>]]></content:encoded> <wfw:commentRss>http://www.sitepoint.com/responsive-web-design/feed/</wfw:commentRss> <slash:comments>11</slash:comments> </item> <item><title>Webfont Icons: an Alternative to Images</title><link>http://www.sitepoint.com/webfont-icons/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=webfont-icons</link> <comments>http://www.sitepoint.com/webfont-icons/#comments</comments> <pubDate>Tue, 17 Jan 2012 16:49:01 +0000</pubDate> <dc:creator>Craig Buckler</dc:creator> <category><![CDATA[CSS Tutorials]]></category> <category><![CDATA[Gems]]></category> <category><![CDATA[HTML & CSS]]></category> <category><![CDATA[HTML5]]></category> <category><![CDATA[JavaScript & CSS]]></category> <category><![CDATA[Web Design Tutorials & Articles]]></category> <category><![CDATA[CSS3]]></category> <category><![CDATA[graphics]]></category> <category><![CDATA[HTML5 Dev Center]]></category> <category><![CDATA[icons]]></category> <category><![CDATA[webfonts]]></category> <guid
isPermaLink="false">http://www.sitepoint.com/?p=49595</guid> <description><![CDATA[<img
width="50" height="50" src="http://cdn.sitepoint.com/wp-content/uploads/2011/12/621-icon-fonts-50x50.png" class="attachment-thumbnail wp-post-image" alt="621-icon-fonts" title="621-icon-fonts" />Craig's latest tutorial describes how to use webfont icons in your pages and why they have several advantages over images.]]></description> <content:encoded><![CDATA[<img
width="50" height="50" src="http://cdn.sitepoint.com/wp-content/uploads/2011/12/621-icon-fonts-50x50.png" class="attachment-thumbnail wp-post-image" alt="621-icon-fonts" title="621-icon-fonts" /><p></p><p>Let&#8217;s be honest, creating dozens of tiny icons in a graphics package isn&#8217;t fun. Even when you&#8217;ve gathered a decent set, you end up managing dozens of tiny files or creating image sprites and slicing them in CSS.</p><p>Fortunately, HTML5 provides us with another option: webfonts. A font set can contain graphical icons and character sets. Wingdings is the most well known but free fonts such as <a
href="http://somerandomdude.com/work/iconic/">Iconic</a> can be more useful and provide example HTML and CSS code.</p><p><a
href="http://blogs.sitepointstatic.com/examples/tech/icon-fonts/index.html"><strong>View the webfont icon demonstration page&hellip;</strong></a></p><p>Once you&#8217;ve found or created a suitable font, you&#8217;ll need to convert it to a number of formats to ensure good cross-browser compatibility. The <a
href="http://www.fontsquirrel.com/fontface/generator">@Font-Face Generator at fontsquirrel.com</a> does the hard work for you and supplies a ZIP file containing all the fonts and CSS code. The font is then imported at the top of your CSS file, e.g.</p><pre><code>
@font-face {
	font-family: &quot;IconicStroke&quot;;
	src: url(&quot;iconic_stroke.eot&quot;);
	src: url(&quot;iconic_stroke.woff&quot;) format(&quot;woff&quot;),
	url(&quot;iconic_stroke.ttf&quot;) format(&quot;truetype&quot;),
	url(&quot;iconic_stroke.otf&quot;) format(&quot;opentype&quot;),
	url(&quot;iconic_stroke.svg#iconic&quot;) format(&quot;svg&quot;);
}
</code></pre><p>It&#8217;s possible to add icon characters to your HTML file, such as using an &#8216;r&#8217; for Iconic&#8217;s RSS icon. However, that may confuse people using screen readers so CSS pseudo elements are a safer option, e.g.</p><p>Your HTML:</p><pre><code>
&lt;a href=&quot;rss.xml&quot; class=&quot;rss&quot;&gt;RSS Feed&lt;/a&gt;
</code></pre><p>Your CSS:</p><pre><code>
.rss:before
{
	font-family: &quot;IconicStroke&quot;;
	content: &quot;r&quot;;
}
</code></pre><h2>The Advantages of Webfont Icons</h2><p>Webfonts can be an ideal alternative to graphics:</p><ul><li>fonts can be scaled to any size, use any color and have CSS effects applied</li><li>webfonts offer good cross-browser compatibility and even work in IE6</li><li>a single font file can be more efficient than multiple images</li></ul><h2>The Disadvantages of Webfont Icons</h2><p>Webfonts may not always be appropriate:</p><ul><li>font characters are single-color (although CSS3 effects can help)</li><li>generating fonts is not as easy as PNGs or SVGs</li><li>image file sizes will be smaller if you only require a few icons.</li></ul><p>Overall, there&#8217;s little to dislike about webfont icons and they could cut development time. Have you used them in any of your projects?</p><p><a
href="http://blogs.sitepointstatic.com/examples/tech/icon-fonts/index.html"><strong>View the webfont icon demonstration page&hellip;</strong></a></p><div
style="text-align:center;padding-bottom:50px;"><div
style="float:left;padding-left:30px;"> <script>GA_googleFillSlot("Edit_300x100_C");</script> </div><div
style="float:right;padding-right:30px;"> <script>GA_googleFillSlot("Edit_300x100_D");</script> </div></div><div
style="clear:both"></div>]]></content:encoded> <wfw:commentRss>http://www.sitepoint.com/webfont-icons/feed/</wfw:commentRss> <slash:comments>17</slash:comments> </item> <item><title>DesignFestival: 18 Great Stripe Generators and Textures on the Web</title><link>http://feedproxy.google.com/~r/DesignFestival/~3/Xw7FblTfp-U/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=designfestival-18-great-stripe-generators-and-textures-on-the-web-3</link> <comments>http://feedproxy.google.com/~r/DesignFestival/~3/Xw7FblTfp-U/#comments</comments> <pubDate>Fri, 23 Dec 2011 10:00:37 +0000</pubDate> <dc:creator>Tara Hornor</dc:creator> <category><![CDATA[Design]]></category> <category><![CDATA[Inspiration]]></category> <category><![CDATA[Resources]]></category> <category><![CDATA[Web Design Tutorials & Articles]]></category> <category><![CDATA[Web Tech]]></category> <category><![CDATA[resources]]></category> <guid
isPermaLink="false">http://www.sitepoint.com/?p=49638</guid> <description><![CDATA[ Stripes are a great way to create some energy in your background or just give your designs some texture. This collection gives you two sets of tools: generators and images. The stripe generators allow you to create and download repeatable stripe patterns right out of the browser. These are great for simple stripe patterns and quick design if you don’t have the software to create your own stripe patterns, making them perfect for use in any design project. ]]></description> <content:encoded><![CDATA[<p></p><p> Stripes are a great way to create some energy in your background or just give your designs some texture. This collection gives you two sets of tools: generators and images. The stripe generators allow you to create and download repeatable stripe patterns right out of the browser. These are great for simple stripe patterns and quick design if you don’t have the software to create your own stripe patterns, making them perfect for use in any design project.</p><p>Continue reading here:<br
/> <a
target="_blank" href="http://feedproxy.google.com/~r/DesignFestival/~3/Xw7FblTfp-U/" title="DesignFestival: 18 Great Stripe Generators and Textures on the Web">DesignFestival: 18 Great Stripe Generators and Textures on the Web</a></p><div
style="text-align:center;padding-bottom:50px;"><div
style="float:left;padding-left:30px;"> <script>GA_googleFillSlot("Edit_300x100_C");</script> </div><div
style="float:right;padding-right:30px;"> <script>GA_googleFillSlot("Edit_300x100_D");</script> </div></div><div
style="clear:both"></div>]]></content:encoded> <wfw:commentRss>http://feedproxy.google.com/~r/DesignFestival/~3/Xw7FblTfp-U/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>DesignFestival: WordPress Plugins for Graphic Designers and Photographers</title><link>http://feedproxy.google.com/~r/DesignFestival/~3/RlErxMmwNoQ/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=designfestival-wordpress-plugins-for-graphic-designers-and-photographers-2</link> <comments>http://feedproxy.google.com/~r/DesignFestival/~3/RlErxMmwNoQ/#comments</comments> <pubDate>Mon, 19 Dec 2011 06:00:45 +0000</pubDate> <dc:creator>Tara Hornor</dc:creator> <category><![CDATA[Design]]></category> <category><![CDATA[graphic design]]></category> <category><![CDATA[Layout]]></category> <category><![CDATA[photoblogging]]></category> <category><![CDATA[plugins]]></category> <category><![CDATA[Resources]]></category> <category><![CDATA[Web Design Tutorials & Articles]]></category> <category><![CDATA[Web Tech]]></category> <category><![CDATA[wordpress]]></category> <guid
isPermaLink="false">http://www.sitepoint.com/?p=49497</guid> <description><![CDATA[ If you are a freelance graphic designer or photographer, then you need a way to show off your work. WordPress is hands down one of the best ways to manage your own website. You can easily update content in minutes and the high degree of customization means you can make your WordPress site look exactly the way you want it. We broke down the three main plugin categories into gallery plugins, share/bookmark plugins, and social media plugins]]></description> <content:encoded><![CDATA[<p></p><p> If you are a freelance graphic designer or photographer, then you need a way to show off your work. WordPress is hands down one of the best ways to manage your own website. You can easily update content in minutes and the high degree of customization means you can make your WordPress site look exactly the way you want it. We broke down the three main plugin categories into gallery plugins, share/bookmark plugins, and social media plugins</p><p>Read More:<br
/> <a
target="_blank" href="http://feedproxy.google.com/~r/DesignFestival/~3/RlErxMmwNoQ/" title="DesignFestival: WordPress Plugins for Graphic Designers and Photographers">DesignFestival: WordPress Plugins for Graphic Designers and Photographers</a></p><div
style="text-align:center;padding-bottom:50px;"><div
style="float:left;padding-left:30px;"> <script>GA_googleFillSlot("Edit_300x100_C");</script> </div><div
style="float:right;padding-right:30px;"> <script>GA_googleFillSlot("Edit_300x100_D");</script> </div></div><div
style="clear:both"></div>]]></content:encoded> <wfw:commentRss>http://feedproxy.google.com/~r/DesignFestival/~3/RlErxMmwNoQ/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>DesignFestival: How to Make a Unique Header for WordPress</title><link>http://feedproxy.google.com/~r/DesignFestival/~3/PCn8yINlE-c/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=designfestival-how-to-make-a-unique-header-for-wordpress</link> <comments>http://feedproxy.google.com/~r/DesignFestival/~3/PCn8yINlE-c/#comments</comments> <pubDate>Fri, 16 Dec 2011 06:59:59 +0000</pubDate> <dc:creator>Tara Hornor</dc:creator> <category><![CDATA[Design]]></category> <category><![CDATA[Tutorial]]></category> <category><![CDATA[Web Design Tutorials & Articles]]></category> <category><![CDATA[Web Tech]]></category> <guid
isPermaLink="false">http://www.sitepoint.com/?p=49470</guid> <description><![CDATA[ If you use WordPress to manage your website, you likely started with a theme that needs to be modified. It’s easy enough to use the built-in tools in WordPress to modify CSS and sidebars, but arguably the most important identifier for your site is the header. So how do you find this, create your own, and get it in place? ]]></description> <content:encoded><![CDATA[<p></p><p> If you use WordPress to manage your website, you likely started with a theme that needs to be modified. It’s easy enough to use the built-in tools in WordPress to modify CSS and sidebars, but arguably the most important identifier for your site is the header. So how do you find this, create your own, and get it in place?</p><p>Read more here:<br
/> <a
target="_blank" href="http://feedproxy.google.com/~r/DesignFestival/~3/PCn8yINlE-c/" title="DesignFestival: How to Make a Unique Header for WordPress">DesignFestival: How to Make a Unique Header for WordPress</a></p><div
style="text-align:center;padding-bottom:50px;"><div
style="float:left;padding-left:30px;"> <script>GA_googleFillSlot("Edit_300x100_C");</script> </div><div
style="float:right;padding-right:30px;"> <script>GA_googleFillSlot("Edit_300x100_D");</script> </div></div><div
style="clear:both"></div>]]></content:encoded> <wfw:commentRss>http://feedproxy.google.com/~r/DesignFestival/~3/PCn8yINlE-c/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>DesignFestival: Resource: 5 Free Icon Sets for Your Web Projects</title><link>http://feedproxy.google.com/~r/DesignFestival/~3/QcogKHRIs-I/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=designfestival-resource-5-free-icon-sets-for-your-web-projects</link> <comments>http://feedproxy.google.com/~r/DesignFestival/~3/QcogKHRIs-I/#comments</comments> <pubDate>Wed, 14 Dec 2011 13:59:27 +0000</pubDate> <dc:creator>Joel Falconer</dc:creator> <category><![CDATA[Design]]></category> <category><![CDATA[Inspiration]]></category> <category><![CDATA[Web Design Tutorials & Articles]]></category> <category><![CDATA[Web Tech]]></category> <guid
isPermaLink="false">http://www.sitepoint.com/?p=49352</guid> <description><![CDATA[ Need icons in a hurry for your next web project? Here are five icon sets that can be had for free, perfect for web projects of all kinds and including a social services icon set. Token Glyphish WebAppers Icon Set Sapphire Icon Set Polaroid Social Icon Set ]]></description> <content:encoded><![CDATA[<p></p><p> Need icons in a hurry for your next web project? Here are five icon sets that can be had for free, perfect for web projects of all kinds and including a social services icon set. Token Glyphish WebAppers Icon Set Sapphire Icon Set Polaroid Social Icon Set</p><p>View article:<br
/> <a
target="_blank" href="http://feedproxy.google.com/~r/DesignFestival/~3/QcogKHRIs-I/" title="DesignFestival: Resource: 5 Free Icon Sets for Your Web Projects">DesignFestival: Resource: 5 Free Icon Sets for Your Web Projects</a></p><div
style="text-align:center;padding-bottom:50px;"><div
style="float:left;padding-left:30px;"> <script>GA_googleFillSlot("Edit_300x100_C");</script> </div><div
style="float:right;padding-right:30px;"> <script>GA_googleFillSlot("Edit_300x100_D");</script> </div></div><div
style="clear:both"></div>]]></content:encoded> <wfw:commentRss>http://feedproxy.google.com/~r/DesignFestival/~3/QcogKHRIs-I/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item><div><div
class="post_box two_ads" style="float:left;padding-left:2px;"> <script>GA_googleFillSlot("Edit_728x90_2");</script> </div></div><div
class="clear">&nbsp;</div> <item><title>DesignFestival: Designing for the Web: Templates and Grid Systems</title><link>http://feedproxy.google.com/~r/DesignFestival/~3/c0I-dKEg87M/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=designfestival-designing-for-the-web-templates-and-grid-systems</link> <comments>http://feedproxy.google.com/~r/DesignFestival/~3/c0I-dKEg87M/#comments</comments> <pubDate>Tue, 13 Dec 2011 13:00:44 +0000</pubDate> <dc:creator>Felix Mak</dc:creator> <category><![CDATA[Design]]></category> <category><![CDATA[Tutorial]]></category> <category><![CDATA[Web Design Tutorials & Articles]]></category> <category><![CDATA[Web Tech]]></category> <guid
isPermaLink="false">http://www.sitepoint.com/?p=49269</guid> <description><![CDATA[ Continuing on from the previous article in this series, Designing for the Web: Resolution and Size , we cover some helpful and important factors while creating a template for designing a website. In this article, we will cover some important issues and introduce some tools for you to use when designing a website. Just keep in mind that as in the print sphere, the web sphere contains a multitude of choices for design as well as development. This is only one method and we are attempting to come from more of a designer angle rather than a developer one. ]]></description> <content:encoded><![CDATA[<p></p><p>Continuing on from the previous article in this series, Designing for the Web: Resolution and Size , we cover some helpful and important factors while creating a template for designing a website. In this article, we will cover some important issues and introduce some tools for you to use when designing a website. Just keep in mind that as in the print sphere, the web sphere contains a multitude of choices for design as well as development. This is only one method and we are attempting to come from more of a designer angle rather than a developer one.</p><p>Read this article:<br
/> <a
title="DesignFestival: Designing for the Web: Templates and Grid Systems" href="http://feedproxy.google.com/~r/DesignFestival/~3/c0I-dKEg87M/" target="_blank">DesignFestival: Designing for the Web: Templates and Grid Systems</a></p><div
style="text-align:center;padding-bottom:50px;"><div
style="float:left;padding-left:30px;"> <script>GA_googleFillSlot("Edit_300x100_C");</script> </div><div
style="float:right;padding-right:30px;"> <script>GA_googleFillSlot("Edit_300x100_D");</script> </div></div><div
style="clear:both"></div>]]></content:encoded> <wfw:commentRss>http://feedproxy.google.com/~r/DesignFestival/~3/c0I-dKEg87M/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>DesignFestival: 10 Top CSS Design Resources</title><link>http://feedproxy.google.com/~r/DesignFestival/~3/OngLWRoJUX4/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=designfestival-10-top-css-design-resources</link> <comments>http://feedproxy.google.com/~r/DesignFestival/~3/OngLWRoJUX4/#comments</comments> <pubDate>Fri, 09 Dec 2011 21:39:00 +0000</pubDate> <dc:creator>Tara Hornor</dc:creator> <category><![CDATA[Design]]></category> <category><![CDATA[Inspiration]]></category> <category><![CDATA[Web Design Tutorials & Articles]]></category> <category><![CDATA[Web Tech]]></category> <category><![CDATA[inspiration]]></category> <guid
isPermaLink="false">http://www.sitepoint.com/?p=49124</guid> <description><![CDATA[ Cascading Style Sheets (CSS) gives you unprecedented control of the layout and design of any web document. As browser support only improves, we will see CSS becoming the primary styling system. This is partly because CSS is so light when compared to most JavaScript, AJAX, or image-based design systems. And as the support for more transitional features like sliders and gradients find their way into CSS, there may not be a need for anything but CSS in the near future. ]]></description> <content:encoded><![CDATA[<p></p><p>Cascading Style Sheets (CSS) gives you unprecedented control of the layout and design of any web document. As browser support only improves, we will see CSS becoming the primary styling system. This is partly because CSS is so light when compared to most JavaScript, AJAX, or image-based design systems. And as the support for more transitional features like sliders and gradients find their way into CSS, there may not be a need for anything but CSS in the near future.</p><p>Continued here:<br
/> <a
title="DesignFestival: 10 Top CSS Design Resources" href="http://feedproxy.google.com/~r/DesignFestival/~3/OngLWRoJUX4/" target="_blank">DesignFestival: 10 Top CSS Design Resources</a></p><div
style="text-align:center;padding-bottom:50px;"><div
style="float:left;padding-left:30px;"> <script>GA_googleFillSlot("Edit_300x100_C");</script> </div><div
style="float:right;padding-right:30px;"> <script>GA_googleFillSlot("Edit_300x100_D");</script> </div></div><div
style="clear:both"></div>]]></content:encoded> <wfw:commentRss>http://feedproxy.google.com/~r/DesignFestival/~3/OngLWRoJUX4/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>DesignFestival: I Still Love Flash. Here’s Why.</title><link>http://feedproxy.google.com/~r/DesignFestival/~3/1Lt2cHs_FjM/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=designfestival-i-still-love-flash-here%25e2%2580%2599s-why</link> <comments>http://feedproxy.google.com/~r/DesignFestival/~3/1Lt2cHs_FjM/#comments</comments> <pubDate>Mon, 05 Dec 2011 17:25:24 +0000</pubDate> <dc:creator>Felix Mak</dc:creator> <category><![CDATA[Design]]></category> <category><![CDATA[Flash]]></category> <category><![CDATA[Opinion]]></category> <category><![CDATA[Web Design Tutorials & Articles]]></category> <category><![CDATA[Web Tech]]></category> <guid
isPermaLink="false">http://www.sitepoint.com/?p=48907</guid> <description><![CDATA[ In recent times, people from all quarters have been getting their boots into Flash. The late Steve Jobs felt that (other than the competing business model issues) supporting Flash was not in the interest of Apple’s customers and that iOS products would not support it. A week or two ago, I came across the Occupy Flash movement. ]]></description> <content:encoded><![CDATA[<p></p><p> In recent times, people from all quarters have been getting their boots into Flash. The late Steve Jobs felt that (other than the competing business model issues) supporting Flash was not in the interest of Apple’s customers and that iOS products would not support it. A week or two ago, I came across the Occupy Flash movement.</p><p>More:<br
/> <a
target="_blank" href="http://feedproxy.google.com/~r/DesignFestival/~3/1Lt2cHs_FjM/" title="DesignFestival: I Still Love Flash. Here’s Why.">DesignFestival: I Still Love Flash. Here’s Why.</a></p><div
style="text-align:center;padding-bottom:50px;"><div
style="float:left;padding-left:30px;"> <script>GA_googleFillSlot("Edit_300x100_C");</script> </div><div
style="float:right;padding-right:30px;"> <script>GA_googleFillSlot("Edit_300x100_D");</script> </div></div><div
style="clear:both"></div>]]></content:encoded> <wfw:commentRss>http://feedproxy.google.com/~r/DesignFestival/~3/1Lt2cHs_FjM/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>DesignFestival: Designing for the Dark Side</title><link>http://feedproxy.google.com/~r/DesignFestival/~3/-JSyV7wcsSc/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=designfestival-designing-for-the-dark-side</link> <comments>http://feedproxy.google.com/~r/DesignFestival/~3/-JSyV7wcsSc/#comments</comments> <pubDate>Thu, 01 Dec 2011 23:18:09 +0000</pubDate> <dc:creator>Tara Hornor</dc:creator> <category><![CDATA[Design]]></category> <category><![CDATA[Inspiration]]></category> <category><![CDATA[User Experience]]></category> <category><![CDATA[Web Design Tutorials & Articles]]></category> <category><![CDATA[Web Tech]]></category> <category><![CDATA[user experience]]></category> <guid
isPermaLink="false">http://www.sitepoint.com/?p=48730</guid> <description><![CDATA[ Whatever your motivation — the client told you to do it, you’re tired of white or light backgrounds, or your deep-seated anger over your own father cutting your hand off (just don’t be a hater!) — designing dark websites can be a serious challenge. Careful use of the Creative Force is in order as dark designs have special considerations. A few design tips will keep you from fully giving in to the Dark Side, although this might just be your destiny… For those of you looking for some inspiration, check out this collection of 20 dark websites with some excellent examples. If you need some design advice, keep reading]]></description> <content:encoded><![CDATA[<p></p><p>Whatever your motivation — the client told you to do it, you’re tired of white or light backgrounds, or your deep-seated anger over your own father cutting your hand off (just don’t be a hater!) — designing dark websites can be a serious challenge. Careful use of the Creative Force is in order as dark designs have special considerations. A few design tips will keep you from fully giving in to the Dark Side, although this might just be your destiny… For those of you looking for some inspiration, check out this collection of 20 dark websites with some excellent examples. If you need some design advice, keep reading</p><p>Read more here:<br
/> <a
title="DesignFestival: Designing for the Dark Side" href="http://feedproxy.google.com/~r/DesignFestival/~3/-JSyV7wcsSc/" target="_blank">DesignFestival: Designing for the Dark Side</a></p><div
style="text-align:center;padding-bottom:50px;"><div
style="float:left;padding-left:30px;"> <script>GA_googleFillSlot("Edit_300x100_C");</script> </div><div
style="float:right;padding-right:30px;"> <script>GA_googleFillSlot("Edit_300x100_D");</script> </div></div><div
style="clear:both"></div>]]></content:encoded> <wfw:commentRss>http://feedproxy.google.com/~r/DesignFestival/~3/-JSyV7wcsSc/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item><div><div
class="post_box two_ads" style="float:left;padding-left:2px;"> <script>GA_googleFillSlot("Edit_728x90_3");</script> </div></div><div
class="clear">&nbsp;</div> <item><title>DesignFestival: Designing for the Web: Resolution and Size</title><link>http://feedproxy.google.com/~r/DesignFestival/~3/wOX6eGyTl5U/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=designfestival-designing-for-the-web-resolution-and-size</link> <comments>http://feedproxy.google.com/~r/DesignFestival/~3/wOX6eGyTl5U/#comments</comments> <pubDate>Mon, 28 Nov 2011 22:44:51 +0000</pubDate> <dc:creator>Felix Mak</dc:creator> <category><![CDATA[Web Design Tutorials & Articles]]></category> <category><![CDATA[Web Tech]]></category> <guid
isPermaLink="false">http://www.sitepoint.com/?p=48539</guid> <description><![CDATA[ As a graphic designer working in print, it is important to understand and work to a set of fixed standards. This ensures that what the designer produces will actually be usable as a print item and also printable! For example in print, designing a simple business card has its own factors to watch for — this is also dependant on who you use to print your jobs. Some common issues to watch for would be if the job is of a standard size (and if the printer offers its own set of guidelines and sizes), if you decide to print in laser (which affects price as well as color), or offset, if you are using solid or process, how much bleed should you leave and if they have affordable metallics — the list could go on and on! Even with so many varied print issues, we feel comfortable ensconsed in our guidelines and the familiar set of difficulties. ]]></description> <content:encoded><![CDATA[<p></p><p> As a graphic designer working in print, it is important to understand and work to a set of fixed standards. This ensures that what the designer produces will actually be usable as a print item and also printable! For example in print, designing a simple business card has its own factors to watch for — this is also dependant on who you use to print your jobs. Some common issues to watch for would be if the job is of a standard size (and if the printer offers its own set of guidelines and sizes), if you decide to print in laser (which affects price as well as color), or offset, if you are using solid or process, how much bleed should you leave and if they have affordable metallics — the list could go on and on! Even with so many varied print issues, we feel comfortable ensconsed in our guidelines and the familiar set of difficulties.</p><p>View article:<br
/> <a
target="_blank" href="http://feedproxy.google.com/~r/DesignFestival/~3/wOX6eGyTl5U/" title="DesignFestival: Designing for the Web: Resolution and Size">DesignFestival: Designing for the Web: Resolution and Size</a></p><div
style="text-align:center;padding-bottom:50px;"><div
style="float:left;padding-left:30px;"> <script>GA_googleFillSlot("Edit_300x100_C");</script> </div><div
style="float:right;padding-right:30px;"> <script>GA_googleFillSlot("Edit_300x100_D");</script> </div></div><div
style="clear:both"></div>]]></content:encoded> <wfw:commentRss>http://feedproxy.google.com/~r/DesignFestival/~3/wOX6eGyTl5U/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>DesignFestival: 10 Essential iPad Apps for Web Designers</title><link>http://feedproxy.google.com/~r/DesignFestival/~3/cIWhRfu17Sk/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=designfestival-10-essential-ipad-apps-for-web-designers</link> <comments>http://feedproxy.google.com/~r/DesignFestival/~3/cIWhRfu17Sk/#comments</comments> <pubDate>Wed, 16 Nov 2011 22:28:51 +0000</pubDate> <dc:creator>Joel Falconer</dc:creator> <category><![CDATA[Design]]></category> <category><![CDATA[Inspiration]]></category> <category><![CDATA[Web Design Tutorials & Articles]]></category> <category><![CDATA[Web Tech]]></category> <category><![CDATA[inspiration]]></category> <guid
isPermaLink="false">http://www.sitepoint.com/?p=48076</guid> <description><![CDATA[ It’s hard to find a great set of iPad apps that you can rely on as a designer amidst the constantly growing App Store, and most articles are filled with irrelevant apps — like social media clients — and apps with duplicate functionality, like three vector apps that all do the same things. In this article, I want to help you narrow it down to just ten insanely useful apps that each fill a specific function in the list, and that will be useful for any web designer. You might have found alternatives that suit your tastes, but for the designer with a new iPad, this should be a great starting point. Adobe Ideas Adobe Ideas  is a sketching app for the iPad that allows you to get ideas down while out and about for later reference. ]]></description> <content:encoded><![CDATA[<p></p><p> It’s hard to find a great set of iPad apps that you can rely on as a designer amidst the constantly growing App Store, and most articles are filled with irrelevant apps — like social media clients — and apps with duplicate functionality, like three vector apps that all do the same things. In this article, I want to help you narrow it down to just ten insanely useful apps that each fill a specific function in the list, and that will be useful for any web designer. You might have found alternatives that suit your tastes, but for the designer with a new iPad, this should be a great starting point. Adobe Ideas Adobe Ideas  is a sketching app for the iPad that allows you to get ideas down while out and about for later reference.</p><p>View article:<br
/> <a
target="_blank" href="http://feedproxy.google.com/~r/DesignFestival/~3/cIWhRfu17Sk/" title="DesignFestival: 10 Essential iPad Apps for Web Designers">DesignFestival: 10 Essential iPad Apps for Web Designers</a></p><div
style="text-align:center;padding-bottom:50px;"><div
style="float:left;padding-left:30px;"> <script>GA_googleFillSlot("Edit_300x100_C");</script> </div><div
style="float:right;padding-right:30px;"> <script>GA_googleFillSlot("Edit_300x100_D");</script> </div></div><div
style="clear:both"></div>]]></content:encoded> <wfw:commentRss>http://feedproxy.google.com/~r/DesignFestival/~3/cIWhRfu17Sk/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>DesignFestival: 20 Dark Websites For Your Inspiration</title><link>http://feedproxy.google.com/~r/DesignFestival/~3/Ty8i4mRV2KE/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=designfestival-20-dark-websites-for-your-inspiration</link> <comments>http://feedproxy.google.com/~r/DesignFestival/~3/Ty8i4mRV2KE/#comments</comments> <pubDate>Wed, 16 Nov 2011 00:17:58 +0000</pubDate> <dc:creator>Joel Falconer</dc:creator> <category><![CDATA[Design]]></category> <category><![CDATA[Inspiration]]></category> <category><![CDATA[Web Design Tutorials & Articles]]></category> <category><![CDATA[Web Tech]]></category> <guid
isPermaLink="false">http://www.sitepoint.com/?p=48007</guid> <description><![CDATA[ Dark websites can be hard to pull off. Making content readable, for one thing, can be difficult — we’re often reminded that black on white is the most readable setup. It’s also harder to pull off space without the whitespace, making poorly considered designs look claustrophobic. ]]></description> <content:encoded><![CDATA[<p></p><p> Dark websites can be hard to pull off. Making content readable, for one thing, can be difficult — we’re often reminded that black on white is the most readable setup. It’s also harder to pull off space without the whitespace, making poorly considered designs look claustrophobic.</p><p>See more here:<br
/> <a
target="_blank" href="http://feedproxy.google.com/~r/DesignFestival/~3/Ty8i4mRV2KE/" title="DesignFestival: 20 Dark Websites For Your Inspiration">DesignFestival: 20 Dark Websites For Your Inspiration</a></p><div
style="text-align:center;padding-bottom:50px;"><div
style="float:left;padding-left:30px;"> <script>GA_googleFillSlot("Edit_300x100_C");</script> </div><div
style="float:right;padding-right:30px;"> <script>GA_googleFillSlot("Edit_300x100_D");</script> </div></div><div
style="clear:both"></div>]]></content:encoded> <wfw:commentRss>http://feedproxy.google.com/~r/DesignFestival/~3/Ty8i4mRV2KE/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using memcached
Database Caching 36/39 queries in 0.242 seconds using memcached
Object Caching 1719/1722 objects using memcached
Content Delivery Network via cdn.sitepoint.com

Served from: www.sitepoint.com @ 2012-02-09 07:15:46 -->
