<?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>Inspect Element &#187; css3</title>
	<atom:link href="http://inspectelement.com/tag/css3/feed/" rel="self" type="application/rss+xml" />
	<link>http://inspectelement.com</link>
	<description>Web Design &#38; Development Blog</description>
	<lastBuildDate>Thu, 10 May 2012 12:41:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Pull Down for Navigation</title>
		<link>http://inspectelement.com/tutorials/pull-down-for-navigation-a-responsive-solution/</link>
		<comments>http://inspectelement.com/tutorials/pull-down-for-navigation-a-responsive-solution/#comments</comments>
		<pubDate>Mon, 27 Feb 2012 16:03:42 +0000</pubDate>
		<dc:creator>Tom Kenny</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[responsive]]></category>

		<guid isPermaLink="false">http://inspectelement.com/?p=8056</guid>
		<description><![CDATA[Mobile screen real estate is at a premium so I've tried to come up with a unique and interesting solution. <a href="http://inspectelement.com/tutorials/pull-down-for-navigation-a-responsive-solution/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Mobile screen real estate is at a premium and one of the biggest problems to solve is how to display navigation when screen widths become quite narrow so I decided to have a look and see what I could come up with using some nifty CSS and a touch of jQuery.</p>
<p>Trying to condense a navigation down onto a mobile screen tends to push the actual content of the site down and out of initial view. Luke Wroblewski has explored some solutions in <a href="http://www.abookapart.com/products/mobile-first">Mobile First</a> but I&#8217;ve developed something that I haven&#8217;t come across just yet. In fact, in the process of writing this tutorial, Brad Frost released a great roundup of <a href="http://bradfrostweb.com/blog/web/responsive-nav-patterns/">responsive navigation patterns</a> so I suppose this could be an additional technique to add to his list.</p>
<h2>Pull Down to Refresh</h2>
<p>Pull down to refresh was a concept first introduced to the mobile world by Loren Brichter in his Twitter app, Tweetie as you can see in the <a href="http://www.usabilitypost.com/2010/07/21/pull-down-to-refresh/">screenshot here</a>. Basically, pulling down on the list view when at the top updates the content. A simple and effective way of removing a button from the interface and a great use of touch screen input. This technique has been widely adopted amongst a range of different apps.</p>
<h2>Pull Down for Navigation</h2>
<p>You can see where I&#8217;m going with this but the whole thinking of replacing a UI element with a natural gesture (scrolling on a touch screen is about as close to a &#8216;natural gesture&#8217; you can get in technology) is very valuable on a mobile screen.</p>
<h2>Demo</h2>
<div class="buttons group"><a target="_blank" class="button full" href="http://inspectelement.com/demos/responsive/mobilenav/">See the demo in action</a> <a target="_blank" class="button full green" href="https://github.com/tkenny/Pull-down-for-Navigation">View on GitHub</a></div>
<p>Obviously the demo is best viewed on a smartphone device but hasn&#8217;t been tested on many Android as I devices I don&#8217;t have access to many! Works fine on iPhones. I&#8217;ve added the code onto GitHub but I&#8217;ve only just started using it. Right now it feels like a different language but please feel free to do whatever you need to do there if you want to improve it or use it for whatever you want to use it for.</p>
<p><img class="alignnone size-full wp-image-8195" title="Pull Down for Navigation" src="http://inspectelement.com/wp-content/uploads/2012/02/pull-down-for-navigation.jpg" alt="" width="783" height="746" /></p>
<p>Currently this exists as a great solution to single level navigation only. I haven&#8217;t tried to solve the second (and possibly third) level navigation just yet as I wanted to get this idea out as soon as possible.</p>
<p><span id="step1" class="step">Step 1</span></p>
<h2>The HTML</h2>
<pre class="brush: xml; title: ; notranslate">
&lt;nav id=&quot;mobile&quot;&gt;
	&lt;ul class=&quot;group&quot;&gt;
		&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Home&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Portfolio&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Blog&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;#&quot;&gt;About&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Contact&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Twitter&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Dribbble&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;#&quot;&gt;A Longer Navigation Item&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;
&lt;/nav&gt;
&lt;div id=&quot;site&quot;&gt;
&lt;header&gt;
&lt;nav id=&quot;main&quot;&gt;
	&lt;ul&gt;
		&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Home&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Portfolio&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Blog&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;#&quot;&gt;About&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Contact&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Twitter&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Dribbble&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;#&quot;&gt;A Longer Navigation Item&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;
&lt;/nav&gt;
&lt;/header&gt;
&lt;div class=&quot;container&quot;&gt;
	&lt;h1&gt;Pull Down for Navigation Demo&lt;/h1&gt;
	&lt;p&gt;Content here&lt;/p&gt;
&lt;/div&gt;
</pre>
<p>As you can see we have two nav elements. One is the main navigation which will be hidden at mobile widths and the other is the mobile navigation which will be hidden at all other widths and only shown when the browser window becomes too narrow.</p>
<p><span id="step2" class="step">Step 2</span></p>
<h2>The CSS</h2>
<pre class="brush: css; title: ; notranslate">#mobile { visibility: hidden; background: #21BBE1; position: fixed; z-index: 100; width: 100%; }
#mobile ul { margin: 0; }
#mobile ul li { width: 50%; float: left; }
#mobile a { color: #fff; padding: 15px 1.5em; display: block; border-bottom: 1px solid rgba(255, 255, 255, 0.25); text-decoration: none; text-shadow: 0 1px 1px rgba(0, 0, 0, 0.25); white-space: nowrap; text-overflow: ellipsis; overflow: hidden; }
#mobile li:nth-of-type(2n-1) a { border-right: 1px solid rgba(255, 255, 255, 0.25); }

#site { position: relative; z-index: 200; }
</pre>
<p>The first thing you&#8217;ll notice is the mobile navigation (#mobile) isn&#8217;t hidden by display: none; but by visiblity: hidden. This allows the jQuery code to work out what the height of the element is as we&#8217;ll want to move the page up by that amount to hide the navigation on load.</p>
<p>The <code>#site</code> div has to have a higher z-index than the navigation in order for it so slide over the top and the <code>#mobile</code> nav has fixed positioning so it doesn&#8217;t move it when scrolling.</p>
<pre class="brush: css; title: ; notranslate">
/*
Media Query Goodness --------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------- */
@media only screen and (min-width: 320px) and (max-width: 480px) {

	/* Hide the main nav for mobile widths */
	#main { display: none; }

	/* Make the mobile nav visible for mobile widths */
	#mobile { visibility: visible; }

}
</pre>
<p>Above shows the code for displaying the mobile menu on mobile sized screens and hiding the main menu.</p>
<pre class="brush: css; title: ; notranslate">
@media only screen and (min-device-width: 320px) and (max-device-width: 480px) {

	/* Add the &quot;Pull Down for Navigation&quot; bar, all controlled via CSS including the text */
	header:before { width: 100%; display: block; content: &quot;Pull Down for Navigation&quot;; padding: 0.75em 1.5em; margin: -1em -1.5em 1em; color: #878787; text-shadow: 0 1px 1px rgba(255, 255, 255, 1); border-bottom: 1px solid #a6a6a6; background-origin: content-box; text-indent: 22px;
		background-color: #e3e3e3;
		background-image: url(images/pull.png), url(images/down.png);
		background-position: right center, left center;
		background-repeat: no-repeat;
	}

}
</pre>
<p>Using a media query with <code>device-width</code> allows us to target mobile devices specifically and add a bar at the top with the text &#8220;Pull Down for Navigation&#8221;. As the vast majority of smartphones use touchscreen inputs I think it&#8217;s appropriate to word in this way as that&#8217;s exactly what you&#8217;ll be doing. As you can see, the whole bar is controlled through CSS including the text through the use of the <code>content</code> property.</p>
<p><span id="step3" class="step">Step 3</span></p>
<h2>The jQuery</h2>
<p>As much as I would have liked to complete this solution with only CSS, it isn&#8217;t quite possible. What&#8217;s basically happening in the jQuery is that we&#8217;re getting the height of the mobile navigation and then moving the site up by that number of pixels. Follow the comments in the jQuery code to see how it works.</p>
<pre class="brush: jscript; title: ; notranslate">&lt;script type=&quot;text/javascript&quot; charset=&quot;utf-8&quot;&gt;

    function checkWidth () {

    	// Get the height of the div and set it in a variable called mabileNavHeight to access later
    	var mobileNavHeight = $('#mobile').height();

        // Check to see if the browser width is less than 480px wide
        if ($(window).width() &lt; 481) {
    	    $('#site').css({
    	    	// Change the CSS top value of #site to whatever mobileNavHeight outputs
    	  		top: mobileNavHeight + 'px !important'
    		});
    		// Scroll the window the height of mobileNavHeight
    		$(window).scrollTop(mobileNavHeight);
        }

    	// Check to see if the browser width is more than 480px wide
        else if ($(window).width() &gt; 480) {
    	    $('#site').css({
    	    	// Make sure the top value of #site is 0 so we don't see the space for the mobile nav
    	  		top: 0 + 'px'
    		});
    		// Scroll to the absolute top of the page
    		$(window).scrollTop(0);
        }
    }

    $(document).ready(function(){
        // Check the window size when page loads
        checkWidth();
    });

&lt;/script&gt;
</pre>
<h2>Advantages and Disadvantages</h2>
<p><strong>Advantages</strong>:</p>
<ul>
<li>Keeps the navigation at the top</li>
<li>Allows content to move up the page and become the focus</li>
<li>Uses simple touch based input</li>
</ul>
<p><strong>Disadvantages</strong>:</p>
<ul>
<li>No solution for further levels of navigation</li>
<li>Maintaining two separate menus (although not a problem if dynamically generated)</li>
</ul>
<h2>Conclusion</h2>
<p>It&#8217;s clear that there isn&#8217;t a one-size-fits-all approach to responsive navigation design so this is just another alternative. What I love about responsive web design is that there is no &#8216;right&#8217; or &#8216;wrong&#8217; way. In this case it&#8217;s the context of how it&#8217;s used that&#8217;s important, much like all design.</p>
<p><strong>Update:</strong> I&#8217;m getting reports of it both working and not working on Android devices. Unfortunately I don&#8217;t have any way of testing on an Android device currently so would it would be great if someone can help test and get it working for more devices. Thanks! <a href="https://github.com/tkenny/Pull-down-for-Navigation">Grab the code from GitHub</a>.</p>
<p><strong>Update 2:</strong> Matthias Kretschmann on Twitter has informed me of some good news:</p>
<blockquote class="twitter-tweet"><p>@<a href="https://twitter.com/tkenny">tkenny</a> just a small heads up that your pull for navigation example works fine under Android 4 in Browser, Chrome beta &#038; Opera</p>
<p>&mdash; Matthias Kretschmann (@kremalicious) <a href="https://twitter.com/kremalicious/status/174360463843393536" data-datetime="2012-02-28T05:09:08+00:00">February 28, 2012</a></p></blockquote>
<p><script src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://inspectelement.com/tutorials/pull-down-for-navigation-a-responsive-solution/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Create a CSS3 Image Gallery with a 3D Lightbox Animation</title>
		<link>http://inspectelement.com/tutorials/create-a-css3-image-gallery-with-a-3d-lightbox-animation/</link>
		<comments>http://inspectelement.com/tutorials/create-a-css3-image-gallery-with-a-3d-lightbox-animation/#comments</comments>
		<pubDate>Tue, 19 Apr 2011 13:20:13 +0000</pubDate>
		<dc:creator>Tom Kenny</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[gallery]]></category>
		<category><![CDATA[images]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://inspectelement.com/?p=7617</guid>
		<description><![CDATA[For the most part, the CSS3 tutorials and examples out there are a little dull. Of course there are some really great examples out there such as Benjamin de Cock&#8217;s CSS Playground but most others consist of a drop-shadow here &#8230; <a href="http://inspectelement.com/tutorials/create-a-css3-image-gallery-with-a-3d-lightbox-animation/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>For the most part, the CSS3 tutorials and examples out there are a little dull. Of course there are some really great examples out there such as <a href="http://playground.deaxon.com/css/">Benjamin de Cock&#8217;s CSS Playground</a> but most others consist of a drop-shadow here and a few rounded corners there and nothing more. It&#8217;s time to start doing something more inspirational and useful at the same time.</p>
<p><img class="alignnone size-full wp-image-7637" title="3dgallery" src="http://inspectelement.com/wp-content/uploads/2011/04/3dgallery.jpg" alt="" width="645" height="452" /><br />
<span id="more-7617"></span></p>
<p>Having been inspired to get &#8216;<a href="http://hardboiledwebdesign.com/">Hardboiled</a>&#8216;, I&#8217;ve started playing around with a few cool techniques and exploring how to make the content accessible in less capable browsers while giving the best possible experiences to the ones that support the latest advancements in CSS. I&#8217;ve taken Benjamin&#8217;s CSS lightbox gallery and built upon by adding a few hover effects for the gallery grid itself and a 3D rotation for the lightbox content, all with the use of CSS.</p>
<p><a href="http://inspectelement.com/demos/css3/3dgallery/">View Demo</a></p>
<p><a href="http://inspectelement.com/demos/css3/3dgallery/"><img class="alignnone size-full wp-image-7640" title="3drotate" src="http://inspectelement.com/wp-content/uploads/2011/04/3drotate.jpg" alt="" width="645" height="365" /></a></p>
<h3>The :target Pseudo-Class</h3>
<p>First, let&#8217;s look at how the lightbox actually appears without JavaScript and only CSS with the use of the :target pseudo-class. If you&#8217;re writing CSS, you&#8217;re already using pseudo-classes as you&#8217;ll be familiar with :hover, :visited and :active.</p>
<p>You can link directly to a place on a page by adding a page anchor (#) with the ID of an element to the end of the URL:</p>
<pre><code>http://url.com/#info1</code></pre>
<p>You probably already knew that but what you may not know that you can affect the style of the element that is linked to via the :target pseudo-class. The following code would only be seen if a user clicks on a link with the target ID in:</p>
<pre><code>#info1:target { background-color: red; }</code></pre>
<p>In the case of the demo, we&#8217;re using any list item with an ID that has been &#8216;targeted&#8217; to display the lightbox <code>li[id]:target</code>. Pretty standard CSS is then used to display the lightbox on the page, even with a dark transparent overlay through the use of <code>opacity</code>.</p>
<h3>The Animation</h3>
<p>If we leave it at that, it&#8217;s pretty much the same as a standard lightbox or modal window so we&#8217;ll set it apart with a fun animation. Here is how we&#8217;ve created the animation with the help of keyframes (WebKit only for now):</p>
<pre><code>@-webkit-keyframes lightbox {
	0% { -webkit-transform: scale(5) rotateY(-270deg); }
	100% { -webkit-transform: scale(1) rotateY(0deg); }
}</code></pre>
<p>On it&#8217;s own, the code above won&#8217;t do anything so we need to reference it against the element(s) we want to animate.</p>
<pre><code>li[id]:target div { -webkit-animation: lightbox 0.75s cubic-bezier(0,0,0,1); }</code></pre>
<p>As you can see, the animation is called lightbox and that&#8217;s the first part of the <code>animation</code> property, followed by the duration and the timing function.</p>
<p>It&#8217;s very simple. We&#8217;re telling the div (the white box with the blue heading in the <a href="http://inspectelement.com/demos/css3/3dgallery/">demo</a>) to transform 5 times bigger with <code>scale(5)</code> and from a rotated position of -270 degress with <code>rotateY(-270deg)</code>. Then when the animation ends after 0.75s we want it to reset to it&#8217;s actual size and  rotation. The browser will create the animation in between (which is affected but the cubic-bezier timing function above).</p>
<h3>Less Capable Browsers</h3>
<p>The good thing about this is that browsers that don&#8217;t support CSS3 will fallback to an accessible version without the fancy animations thanks to the use of the page anchor and <a href="http://www.modernizr.com/">Modernizr</a>.</p>
<p><img class="alignnone size-full wp-image-7685" title="simple" src="http://inspectelement.com/wp-content/uploads/2011/04/simple.jpg" alt="" width="645" height="472" /></p>
<p>We do this by testing to see if CSS transforms aren&#8217;t supported and then adding CSS using the <code>.no-csstransforms</code> class. Why are we testing for a lack of CSS transforms and not CSS animation? It&#8217;s mainly to do with <code>:target pseudo-class</code> support which we can&#8217;t test for with Modernizr. It isn&#8217;t supported by older browsers, specifically IE8 and below but it is supported in all browsers with support for CSS transforms (as far as I know).</p>
<p>I&#8217;ve taken that one step further by creating an equal to or less than IE8 condition comment and <code>&lt;noscript&gt;</code> to <em>make sure</em> it is displayed the same in IE without JavaScript.</p>
<pre><code>&lt;!--[if lte IE 8]&gt;
&lt;noscript&gt;
&lt;style&gt;
    #information li { overflow: visible; position: relative; margin: 0 auto; margin-bottom: 25px; background: #fff; width: 600px; padding: 30px; height: auto; list-style: none; }
    #information li div a.close { position: relative; background: transparent; padding: 0; color: #0090e2; font-size: 12px; font-weight: normal; left: 0; top: 0; }
&lt;/style&gt;
&lt;/noscript&gt;
&lt;![endif]--&gt;</code></pre>
<p>We also want to replace the &#8216;x&#8217; (the close button in the lightbox) with &#8216;Back to top&#8217; text for lesser browsers to aid usability. We do that with a bit of jQuery and a test for no CSS transforms with Modernizr.</p>
<pre><code>if (!Modernizr.csstransforms) {
	$(document).ready(function(){
		$(".close").text("Back to top");
	});
}</code></pre>
<h3>Issues</h3>
<p>There are a couple of issues I need to point out:</p>
<ul>
<li>Double scrollbar when the lightbox content exceeds the height of the screen resolution</li>
<li>Animation is possibly slow on older machines (needs more testing)</li>
<li>Loads all content, whereas JavaScript solutions online load content when requested</li>
<li>If a browser has JavaScript turned off and doesn&#8217;t support CSS transforms, no content will be displayed. This is a problem with using Modernizr as a JS solution for browser feature testing.</li>
</ul>
<p>I recommend this should only be considered as a demonstration of CSS3 3D animations unless you don&#8217;t have much content in the lightbox, similar to the <a href="http://inspectelement.com/demos/css3/3dgallery/">demo</a>.</p>
<p>I&#8217;ll be looking to improve it all the time. In the meantime, let me know what you think and if you can offer any improvements or ideas please let me know in the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://inspectelement.com/tutorials/create-a-css3-image-gallery-with-a-3d-lightbox-animation/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Use CSS3 Now!</title>
		<link>http://inspectelement.com/articles/use-css3-now/</link>
		<comments>http://inspectelement.com/articles/use-css3-now/#comments</comments>
		<pubDate>Tue, 11 Jan 2011 10:29:47 +0000</pubDate>
		<dc:creator>Tom Kenny</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[css3]]></category>

		<guid isPermaLink="false">http://inspectelement.com/?p=7421</guid>
		<description><![CDATA[I posted a quick tutorial yesterday showing how to use a simple CSS3 technique to spin some icons on hover. I&#8217;ve posted CSS3 tutorials before but all of a sudden this latest one has already received a few negative comments &#8230; <a href="http://inspectelement.com/articles/use-css3-now/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I posted a quick tutorial yesterday showing how to use a simple <a href="http://inspectelement.com/articles/spin-those-icons-with-css3/">CSS3 technique to spin some icons on hover</a>. I&#8217;ve posted <a href="http://inspectelement.com/tag/css3/">CSS3 tutorials before</a> but all of a sudden this latest one has already received a few negative comments complaining that they can&#8217;t use CSS3 yet. Of course you can! Get over the way you used to do things, move with the times and embrace the new hotness right now. Today.</p>
<p><span id="more-7421"></span></p>
<p>Here are two of the most negative comments:</p>
<blockquote><p>Demonstrations of CSS3 are lame. What, 10% of the internet uses a browser capable of showing this stuff. What a waste of time.</p></blockquote>
<blockquote><p>That’s a pretty slick trick! I just wish I could use it now and not have to wait 3 years for the general public to catch up with their browser updates…</p></blockquote>
<p>I work on corporate websites in my full time job and I use CSS3 all the time. In fact I&#8217;m using that spinning icon technique in a site redesign I&#8217;m working on at the moment and their usage stats show IE at 67.1% for the last month. However, that number is trending <em>down</em> and usage stats for other browsers are <em>increasing</em> including Chrome, Safari and Firefox. This is not unique to this one site. Every corporate site I&#8217;ve checked is showing same characteristics with their users. Chances are, if this is happening in the corporate world, the stats will look even better in other industries.</p>
<p>It&#8217;s true, visitors with current versions of IE won&#8217;t see the example used in my tutorial but with good use of CSS3 you can enhance interaction for users of newer browsers and people who are upgrading. Browser usage is trending towards newer browsers if you look at the stats. For example, a year from now people who had older browsers and have upgraded their browser (or been upgraded by someone else) will start to notice these enhancements possibly giving them a <a href="http://inspectelement.com/articles/the-joy-of-discovery-in-web-design/">sense of discovery</a>. They may even notice them more than someone who hasn&#8217;t upgraded because they saw it IE first (still <em>fully accessible</em> of course) and <em>then</em> saw it in a modern browser. Certainly not a bad thing.</p>
<p>However, the average visitor who still uses older browsers will still see a fully accessible version of your site and they won&#8217;t check sites in multiple browsers to see what the differences are. That just doesn&#8217;t happen outside of the web design and development community. In the case of the tutorial in question, everything looks the same initially, so everyone is still getting the same access to content, just the interaction has been enhanced for more recent browsers. That&#8217;s the key. As long as everything is still accessible, start embracing CSS3 or you&#8217;ll get left behind.</p>
]]></content:encoded>
			<wfw:commentRss>http://inspectelement.com/articles/use-css3-now/feed/</wfw:commentRss>
		<slash:comments>30</slash:comments>
		</item>
		<item>
		<title>Hardboiled CSS3 Media Queries</title>
		<link>http://inspectelement.com/snippets/hardboiled-css3-media-queries/</link>
		<comments>http://inspectelement.com/snippets/hardboiled-css3-media-queries/#comments</comments>
		<pubDate>Tue, 12 Oct 2010 16:34:44 +0000</pubDate>
		<dc:creator>Tom Kenny</dc:creator>
				<category><![CDATA[Snippets]]></category>
		<category><![CDATA[css3]]></category>

		<guid isPermaLink="false">http://inspectelement.com/?p=7173</guid>
		<description><![CDATA[Andy Clarke offers a comprehensive starting point for media queries based on the specs of different devices such as smartphones and iPad as well as varying screen sizes. Apparently they&#8217;re part of a wider toolkit that he&#8217;ll be releasing with &#8230; <a href="http://inspectelement.com/snippets/hardboiled-css3-media-queries/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Andy Clarke offers a comprehensive starting point for media queries based on the specs of different devices such as smartphones and iPad as well as varying screen sizes. Apparently they&#8217;re part of a wider toolkit that he&#8217;ll be releasing with his book coming soon which is almost certainly going to be worth the wait.</p>
]]></content:encoded>
			<wfw:commentRss>http://inspectelement.com/snippets/hardboiled-css3-media-queries/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ultimate CSS Gradient Generator</title>
		<link>http://inspectelement.com/snippets/ultimate-css-gradient-generator/</link>
		<comments>http://inspectelement.com/snippets/ultimate-css-gradient-generator/#comments</comments>
		<pubDate>Wed, 06 Oct 2010 13:44:45 +0000</pubDate>
		<dc:creator>Tom Kenny</dc:creator>
				<category><![CDATA[Snippets]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[css3]]></category>

		<guid isPermaLink="false">http://inspectelement.com/?p=7165</guid>
		<description><![CDATA[A gradient generator web app that mimics Photoshop&#8217;s gradient creation tool. Could do without the IE filter though. If you really have to use a gradient for IE, just write a conditional comment and only let IE users clock up &#8230; <a href="http://inspectelement.com/snippets/ultimate-css-gradient-generator/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A gradient generator web app that mimics Photoshop&#8217;s gradient creation tool. Could do without the IE filter though. If you really <em>have</em> to use a gradient for IE, just write a conditional comment and only let IE users clock up another HTTP request.</p>
]]></content:encoded>
			<wfw:commentRss>http://inspectelement.com/snippets/ultimate-css-gradient-generator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Writing Clean CSS3 Code [updated]</title>
		<link>http://inspectelement.com/articles/writing-clean-css3-code/</link>
		<comments>http://inspectelement.com/articles/writing-clean-css3-code/#comments</comments>
		<pubDate>Wed, 01 Sep 2010 22:56:10 +0000</pubDate>
		<dc:creator>Tom Kenny</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[css3]]></category>

		<guid isPermaLink="false">http://inspectelement.com/?p=7042</guid>
		<description><![CDATA[One of the main problems with writing CSS3 code are the vendor prefixes. These are the -moz- or -webkit- you see before properties such as border-radius or text-shadow. They&#8217;re a necessary evil at worst and you&#8217;ll have to use them &#8230; <a href="http://inspectelement.com/articles/writing-clean-css3-code/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>One of the main problems with <em>writing</em> CSS3 code are the vendor prefixes. These are the <code>-moz-</code> or <code>-webkit-</code> you see before properties such as <code>border-radius</code> or <code>text-shadow</code>. They&#8217;re a <a href="http://www.alistapart.com/articles/prefix-or-posthack/">necessary evil</a> at worst and you&#8217;ll have to use them to get the most out of what CSS3 currently has to offer.</p>
<p>So what&#8217;s the problem? I&#8217;m very much a fan of the single line approach to writing CSS as seen below. It allows elements to sit under each other nicely, making them easier to find. Good commenting also helps.</p>
<p><img class="alignnone size-full wp-image-7050" title="regular" src="http://inspectelement.com/wp-content/uploads/2010/08/regular.gif" alt="" width="630" height="115" /><span id="more-7042"></span></p>
<p>The downside of vendor prefixes is declaring the same value more than once. Combine this with the single line approach above and you can see it starts to get messy with every CSS3 declaration on the same line. This will only get more difficult to read, with more CSS3 properties used.</p>
<p><img class="alignnone size-full wp-image-7053" title="multiplelinescss3" src="http://inspectelement.com/wp-content/uploads/2010/08/multiplelinescss3.gif" alt="" width="630" height="94" /></p>
<p>I&#8217;m a designer so I can&#8217;t have my code looking messy and ugly, especially when you&#8217;re working on sites you know your workmates will be working on some point too. My solution is to keep the regular old CSS on a single line but split CSS3 onto separate lines defined by vendor prefixes. Not exactly earth-shattering but now it&#8217;s cleaner and much easier to read <em>and edit</em> all those declarations of the same property. They all sit under each other making them easier to compare to one another. I also start with the shortest at the top working my way to the longest, again just keeping everything consistent, neater and easier to read.</p>
<p><img class="alignnone size-full wp-image-7054" title="css3nice" src="http://inspectelement.com/wp-content/uploads/2010/08/css3nice.gif" alt="" width="630" height="150" /></p>
<p>It even works well with extra CSS3 properties.</p>
<p><img src="http://inspectelement.com/wp-content/uploads/2010/08/css3galore.gif" alt="" /></p>
<p>I take the same approach if I&#8217;m using <code>rgba</code> for the background colour of an element. The first declaration is for older browsers such as IE which ignore the rgba line.</p>
<p><img class="alignnone size-full wp-image-7055" title="rgba" src="http://inspectelement.com/wp-content/uploads/2010/08/rgba.gif" alt="" width="630" height="185" /></p>
<h3>Over to You</h3>
<p>How do you deal with keeping your code beautiful and using multiple CSS3 vendor prefixes?</p>
<p><strong>Update: </strong>As a few people have pointed out in the comments as well as a <a href="http://twitter.com/nathansmith/status/22835179156">tweet</a> from <a href="http://twitter.com/nathansmith">@nathansmith</a>, you should be putting the vendor prefixes first and the final spec version last. <a href="http://css-tricks.com/ordering-css3-properties/">See CSS-Tricks</a>&#8216; comprehensive explanation.</p>
]]></content:encoded>
			<wfw:commentRss>http://inspectelement.com/articles/writing-clean-css3-code/feed/</wfw:commentRss>
		<slash:comments>50</slash:comments>
		</item>
		<item>
		<title>Use of CSS3 Goodness for GMail on the iPad</title>
		<link>http://inspectelement.com/snippets/gmail-on-the-ipad/</link>
		<comments>http://inspectelement.com/snippets/gmail-on-the-ipad/#comments</comments>
		<pubDate>Thu, 19 Aug 2010 15:15:36 +0000</pubDate>
		<dc:creator>Tom Kenny</dc:creator>
				<category><![CDATA[Snippets]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[iPad]]></category>

		<guid isPermaLink="false">http://inspectelement.com/?p=7004</guid>
		<description><![CDATA[An interesting note when writing translations in CSS3 for the iPad: &#8230; it seems that 2D translations are not hardware-accelerated. But, since any 2D translation is equivalent to a corresponding 3D translation with the same translations in the x and y &#8230; <a href="http://inspectelement.com/snippets/gmail-on-the-ipad/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>An interesting note when writing translations in CSS3 for the iPad:</p>
<blockquote><p>&#8230; it seems that 2D translations are not hardware-accelerated. But, since any 2D translation is equivalent to a corresponding 3D translation with the same translations in the x and y and no translation in the z axis, it is easy to use a hardware accelerated <code>translate3d(x, y, 0)</code> transform instead of a non-hardware accelerated <code>translate(x, y)</code> transform.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://inspectelement.com/snippets/gmail-on-the-ipad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Browser Prefixes aren&#8217;t as Evil as you Think</title>
		<link>http://inspectelement.com/snippets/browser-prefixes-are-not-as-evil-as-you-think/</link>
		<comments>http://inspectelement.com/snippets/browser-prefixes-are-not-as-evil-as-you-think/#comments</comments>
		<pubDate>Wed, 07 Jul 2010 16:27:10 +0000</pubDate>
		<dc:creator>Tom Kenny</dc:creator>
				<category><![CDATA[Snippets]]></category>
		<category><![CDATA[css3]]></category>

		<guid isPermaLink="false">http://inspectelement.com/?p=6731</guid>
		<description><![CDATA[Eric Meyer&#8217;s excellent thoughts on why browser prefixes are not as bad as some people make them out to be and I completely agree. So the next time you find yourself grumbling about declaring the same thing four times, once &#8230; <a href="http://inspectelement.com/snippets/browser-prefixes-are-not-as-evil-as-you-think/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Eric Meyer&#8217;s excellent thoughts on why browser prefixes are not as bad as some people make them out to be and I completely agree.</p>
<blockquote><p>So the next time you find yourself grumbling about declaring the same thing four times, once for each browser, remember that the pain is temporary. It’s a little like a vaccine—the shot hurts now, true, but it’s really not that bad in comparison to the disease it prevents. And in this case, you’re being vaccinated against a bad case of multi-year parser hacking and browser sniffing. We suffered through that long plague once already. Prefixes will, if used properly, ward off another outbreak for a long time to come.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://inspectelement.com/snippets/browser-prefixes-are-not-as-evil-as-you-think/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simulate Realism with CSS3</title>
		<link>http://inspectelement.com/tutorials/simulate-realism-with-css3/</link>
		<comments>http://inspectelement.com/tutorials/simulate-realism-with-css3/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 15:15:09 +0000</pubDate>
		<dc:creator>Tom Kenny</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://inspectelement.com/?p=6577</guid>
		<description><![CDATA[CSS3 is here to make our lives easier as web designers and developers. While it's not something we can always rely on heavily for layout purposes just yet, we can use it to enhance certain aspects of our designs by spending a considerably less amount of time doing so.

However, CSS3 has not been created for the sole purpose of making it easier and quicker to create a website but also so we can create much better sites than we ever could with CSS before. Here are a few examples of how CSS3 <a href="http://inspectelement.com/tutorials/simulate-realism-with-css3/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>CSS3 is here to make our lives easier as web designers and developers. While it&#8217;s not something we can always rely on heavily for layout purposes just yet, we can use it to <em>enhance</em> certain aspects of our designs by spending a considerably less amount of time doing so.</p>
<p><img class="alignnone size-full wp-image-6599" title="css3realism" src="http://inspectelement.com/wp-content/uploads/2010/02/css3realism.jpg" alt="" width="555" height="216" /></p>
<p>However, CSS3 has not been created for the sole purpose of making it easier and quicker to create a website but also so we can create much better sites than we ever could with CSS before. Here are a few examples of how CSS3 can improve the web.<span id="more-6577"></span><strong> </strong></p>
<h3>Polaroids – <a href="http://inspectelement.com/demos/css3/realism/polaroids.html">View Demo</a></h3>
<p><a href="http://inspectelement.com/demos/css3/realism/polaroids.html"><img class="alignnone size-full wp-image-6593" title="polaroid" src="http://inspectelement.com/wp-content/uploads/2010/02/polaroid.jpg" alt="" width="555" height="305" /></a></p>
<p>Despite not being around today, polaroid images are still iconic and because of this is still a great way to display photos. It&#8217;s simple enough to display a basic polaroid image using a white border on all sides with a thicker border for the bottom but we can enhance it with CSS3. As you&#8217;ll see in the <a href="http://inspectelement.com/demos/css3/realism/polaroids.html">demo</a>, viewed in the latest versions of Safari, Firefox or Chrome, you can add an extra layer of depth with the addition of <strong>drop-shadow</strong> and <strong>transitions</strong>.</p>
<pre><code>img {
	border: 15px solid #fff;
	border-bottom: 65px solid #fff;
	-webkit-box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
	-moz-box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
	-webkit-transform: rotate(1deg);
	-moz-transform: rotate(1deg);
}

img:hover {
	-webkit-box-shadow: 6px 6px 8px rgba(0, 0, 0, 0.1);
	-moz-box-shadow: 6px 6px 8px rgba(0, 0, 0, 0.1);
	-webkit-transform: rotate(1deg) scale(1.05);
	-moz-transform: rotate(1deg) scale(1.05);
}</code></pre>
<p>A subtle shadow gives the impression that is sitting on a flat surface and by scaling and increasing the size and positioning of the shadow on a hover state we can create the illusion that it has been raised slightly from the surface.</p>
<h3>Buttons – <a href="http://inspectelement.com/demos/css3/realism/buttons.html">View Demo</a></h3>
<p><a href="http://inspectelement.com/demos/css3/realism/buttons.html"><img class="alignnone size-full wp-image-6602" title="buttons" src="http://inspectelement.com/wp-content/uploads/2010/02/buttons.jpg" alt="" width="555" height="187" /></a></p>
<p>Why do buttons exist in web design? The web is an interactive medium and buttons are a form of interaction, they are easy to understand as a metaphor for real, physical buttons we use everyday on things like computers, mp3 players, televisions and any other electronic devices we use on a daily basis.</p>
<p>The key to making the buttons behave more like real physical buttons using CSS3 is using code such as shown below for the second button. To achieve a circle with CSS3, set a width and a height and define <strong>border-radius</strong> as half of those values.</p>
<pre><code>button.two {
	width: 30px;
	height: 30px;
	-webkit-border-radius: 15px;
	-moz-border-radius: 15px;
	border-radius: 15px;
	text-indent: -9999px;
	border: 1px solid #696969;
	background: #696969 url(power.png) no-repeat 6px 5px;
}</code></pre>
<p><code> </code></p>
<p>The active state uses CSS3&#8242;s gradient ability to create a gradient that goes from dark at the top to a lighter colour at the bottom. To further emphasise the depression of a button, a CSS transform is applied, scaling down the button slightly. To maintain the background image of the power button, include it in the background property and separate the gradient values with a comma.</p>
<pre><code>button.two:active {
	-webkit-transform: scale(0.97);
	-moz-transform: scale(0.97);
	background: url(power.png) no-repeat 6px 5px, -webkit-gradient(
		linear,
		left bottom,
		left top,
		color-stop(0.13, #696969),
		color-stop(0.72, #2a2a2a)
	);
	background: url(power.png) no-repeat 6px 5px, -moz-linear-gradient(
		center bottom,
		#696969 13%,
		#2a2a2a 62%
	);
}</code></pre>
<p><code> </code></p>
<p>The recessed border also uses CSS3 gradient to get the full effect. The border class is applied to a div containing the button.</p>
<pre><code>.border {
	margin: 0 auto;
	height: 42px;
	width: 42px;
	display: block;
	background-color: #fcfcfc;
	-webkit-border-radius: 21px;
	-moz-border-radius: 21px;
	border-radius: 21px;
	background: -webkit-gradient(
	    linear,
	    left bottom,
	    left top,
	    color-stop(0.13, #fcfcfc),
	    color-stop(0.72, #c0c0c0)
	);
	background: -moz-linear-gradient(
	    center bottom,
	    #fcfcfc 13%,
	    #c0c0c0 62%
	);
	-webkit-box-shadow: 0px 1px 1px rgba(255, 255, 255, 0.6);
}</code></pre>
<p><a href="http://inspectelement.com/demos/css3/realism/buttons.html">View the demo</a> in the latest versions of Safari, Chrome or Firefox.</p>
<h3>DVD Animation – <a href="http://inspectelement.com/demos/css3/realism/dvd.html">View Demo</a></h3>
<p><a href="http://inspectelement.com/demos/css3/realism/dvd.html"><img class="alignnone size-full wp-image-6615" title="dvdanim" src="http://inspectelement.com/wp-content/uploads/2010/02/dvdanim.jpg" alt="" width="555" height="266" /></a></p>
<p>CSS3 has an <a href="http://www.w3.org/TR/css3-animations/">animation module</a> which is plenty of fun to play with especially as you&#8217;ll be able to do things with CSS that you weren&#8217;t able to do before.</p>
<pre><code>a:hover img[alt*="Disc"] {
	-moz-transform: translate(50px,0) rotate(330deg);
	-webkit-transform: translate(50px,0) rotate(330deg);
	transform: translate(50px,0) rotate(330deg);
}</code></pre>
<p>Here the animation is being used to animate the DVDs as as you hover over the link that encapsulates bot the cover and the disc.</p>
<pre><code>img[alt*="Disc"] {
	-moz-transition: all .5s ease-in-out;
	-webkit-transition: all .5s ease-in-out;
	transition: all .5s ease-in-out;
}
</code></pre>
<p>Anyone who follows the work of <a href="http://twitter.com/mALarKeY">Andy Clarke</a> will likely have seen the DVD animation of the homepage of <a href="http://forabeautifulweb.com/">For a Beautiful Web</a>. The above code demonstrates how Andy implemented this effect. At this point I want to highlight what you can do when you see something interesting on the web. All you have to do is have a look at the source code to see exactly how it works and learn from it to see how you could use it in the future. Now I&#8217;m not saying copy someone&#8217;s work but adjust it to your or your client&#8217;s needs.</p>
<p>Zurb also have an <a href="http://www.zurb.com/playground/sliding-vinyl">excellent demonstration</a> of a similar effect which the wrote for <a href="http://www.smashingmagazine.com/2010/01/25/the-new-hotness-using-css3-visual-effects/">Smashing Magazine</a>.</p>
<h3>BONUS: 3D Book Animation – <a href="http://inspectelement.com/demos/css3/realism/book.html">View Demo</a></h3>
<p><a href="http://inspectelement.com/demos/css3/realism/book.html"><img class="alignnone size-full wp-image-6614" title="bookanim" src="http://inspectelement.com/wp-content/uploads/2010/02/bookanim.jpg" alt="" width="555" height="431" /></a></p>
<p>This one is for WebKit based browsers only so fire up the latest version of Safari or Chrome to see it <a href="http://inspectelement.com/demos/css3/realism/book.html">in action</a> and is based on <a href="http://webkit.org/blog-files/3d-transforms/image-flip.html">this example</a> found on the <a href="http://webkit.org/blog/">Surfin&#8217; Safari blog</a>. I&#8217;ll let you hunt around for code to see how it works as discovery is half the fun of learning about CSS. If you have any questions let me know in the comments and either myself or one of our great readers will help you out.</p>
]]></content:encoded>
			<wfw:commentRss>http://inspectelement.com/tutorials/simulate-realism-with-css3/feed/</wfw:commentRss>
		<slash:comments>43</slash:comments>
		</item>
		<item>
		<title>Tools and Resources to Improve your Typography on the Web</title>
		<link>http://inspectelement.com/articles/better-typography-tools/</link>
		<comments>http://inspectelement.com/articles/better-typography-tools/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 14:50:54 +0000</pubDate>
		<dc:creator>Tom Kenny</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[typography]]></category>

		<guid isPermaLink="false">http://inspectelement.com/?p=6437</guid>
		<description><![CDATA[Typography on the web has previously been confined to a set of web-safe fonts due to their dependance of being on every computer but now that has changed. It's one of the most satisfying and rewarding aspects of web design when you get it right but can also be one of the most difficult to do so. Here are some tools, resources and free fonts to help you on your quest for quality typography. <a href="http://inspectelement.com/articles/better-typography-tools/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Typography on the web has previously been confined to a set of web-safe fonts due to their dependance of being on every computer but now that has changed. It&#8217;s one of the most satisfying and rewarding aspects of web design when you get it right but can also be one of the most difficult to do so. Here are some tools, resources and free fonts to help you on your quest for quality typography.</p>
<p><img class="alignnone size-full wp-image-6479 hide" title="typography" src="http://inspectelement.com/wp-content/uploads/2010/02/typography.jpg" alt="" width="555" height="216" /></p>
<p><span id="more-6437"></span><strong></strong></p>
<h3><strong>Font Embedding</strong></h3>
<p>Font embedding has become the saviour of typography on the web. Without it, we would still be stuck using the usual array of &#8216;web-safe&#8217; fonts such as Arial, Georgia and Verdana. Not that there is anything wrong with them, just designers needed more choice and variety is the spice of life as they say. In fact web-safe fonts certainly played their part in forcing designers to create readable body text as they&#8217;re all very readable at smaller sizes.</p>
<h4>@font-face</h4>
<p>Advantages:</p>
<ul>
<li>Easy to setup (<a href="http://inspectelement.com/tutorials/go-beyond-web-safe-fonts-with-css3/">see previous post</a>)</li>
<li>Behaves exactly the same as regular text</li>
<li>Even works in <a href="http://randsco.com/index.php/2009/07/04/p680">IE6+</a> (albeit through Microsoft&#8217;s proprietary format)</li>
</ul>
<p>Disadvantages:</p>
<ul>
<li>Limited use of fonts due to no form of copy protection</li>
</ul>
<h4><a href="http://typekit.com/">TypeKit</a></h4>
<p><a href="http://typekit.com/"><img class="alignnone size-full wp-image-6444" title="typekit-logo" src="http://inspectelement.com/wp-content/uploads/2010/01/typekit-logo.jpg" alt="" width="165" height="52" /></a></p>
<p>Advantages:</p>
<ul>
<li>Huge selection of commercial fonts to choose from</li>
<li>All the benefits of @font-face but with copy protection</li>
</ul>
<p>Disadvantages:</p>
<ul>
<li>You don&#8217;t own the font for use in Photoshop designs etc.</li>
<li>Relies on JavaScript</li>
<li>Isn&#8217;t free (although it isn&#8217;t expensive)</li>
</ul>
<h4><a href="http://www.typotheque.com/site/index.php">Typotheque</a></h4>
<p><a href="http://www.typotheque.com/site/index.php"><img class="alignnone size-full wp-image-6468" title="logo" src="http://inspectelement.com/wp-content/uploads/2010/02/logo.gif" alt="" width="122" height="74" /></a></p>
<p>Advantages:</p>
<ul>
<li>Doesn&#8217;t use JavaScrip, only CSS</li>
<li>All the benefits of @font-face but with copy protection</li>
</ul>
<p>Disadvantages:</p>
<ul>
<li>Seemingly expensive</li>
</ul>
<h4><a href="http://cufon.shoqolate.com">Cufon</a></h4>
<p><a href="http://cufon.shoqolate.com"><img title="cufon" src="http://inspectelement.com/wp-content/uploads/2010/01/cufon.gif" alt="" width="196" height="68" /></a></p>
<p>Advantages:</p>
<ul>
<li>Works across all browsers</li>
</ul>
<p>Disadvantages:</p>
<ul>
<li>Requires JavaScript</li>
<li>Can&#8217;t select text</li>
</ul>
<h4>sIFR</h4>
<p><a href="http://inspectelement.com/wp-content/uploads/2010/02/logo_sifr2.gif"><img class="alignnone size-full wp-image-6449" title="logo_sifr2" src="http://inspectelement.com/wp-content/uploads/2010/02/logo_sifr2.gif" alt="" width="192" height="116" /></a></p>
<p>Advantages:</p>
<ul>
<li>Works across all browsers</li>
</ul>
<p>Disadvantages:</p>
<ul>
<li>Requires Flash</li>
</ul>
<h3>Font Discovery</h3>
<h4><a href="http://new.myfonts.com/WhatTheFont/">WhatTheFont</a></h4>
<p>Have you ever found a great font but don&#8217;t know what it is? I frequently get asked what font I&#8217;ve used for the Inspect Element logo. Well now you can snap a screenshot and upload it to <a href="http://new.myfonts.com/WhatTheFont/">WhatTheFont</a> which will return a list of the best matches of fonts. There have only been a couple of times where it hasn&#8217;t found the font I&#8217;ve been looking for but has worked flawlessly otherwise.</p>
<h4><a href="http://new.myfonts.com/">MyFonts</a></h4>
<p><a href="http://new.myfonts.com/"><img class="alignnone size-full wp-image-6457" title="logo-beta" src="http://inspectelement.com/wp-content/uploads/2010/02/logo-beta.gif" alt="" width="171" height="96" /></a></p>
<p>MyFonts gives you the ability to view an extensive selection of fonts with custom text before you buy.</p>
<h4><a href="http://www.fontshop.com/">FontShop</a></h4>
<p><a href="http://www.fontshop.com/"><img class="alignnone size-full wp-image-6458" title="fs_logo_lg" src="http://inspectelement.com/wp-content/uploads/2010/02/fs_logo_lg.gif" alt="" width="250" height="62" /></a></p>
<p>Online font store founded by extremely well respected typographer and designer Erik Spiekermann.</p>
<h4><a href="http://ilovetypography.com/">I Love Typography</a></h4>
<p><a href="http://ilovetypography.com/"><img class="alignnone size-full wp-image-6459" title="ilt" src="http://inspectelement.com/wp-content/uploads/2010/02/ilt.gif" alt="" width="300" height="55" /></a></p>
<p>You won&#8217;t go wrong by following I Love Typography to keep up with what&#8217;s going on in the world of Typography.</p>
<h3>Education</h3>
<h4><a href="http://typedia.com/">Typedia</a></h4>
<p><a href="http://typedia.com/"><img class="alignnone size-full wp-image-6464" title="typedia" src="http://inspectelement.com/wp-content/uploads/2010/02/typedia.gif" alt="" width="323" height="118" /></a></p>
<p>As the name suggests, Typedia aims to be an encyclopaedia of Type by blending the world of crowd-sourcing and social media and community. Not only is this a great place for font discovery but also a great place to <a href="http://typedia.com/learn/">learn</a> about typography.</p>
<h3>Free Fonts</h3>
<h4><a href="http://webfonts.info/wiki/index.php?title=Fonts_available_for_%40font-face_embedding">Fonts available for @font-face embedding</a></h4>
<p>You can&#8217;t just start using any font on the web. You have to respect individual licenses so this is a great resource displaying all fonts that have been specifically approved for @font-face embedding. The list is kept up to date as more fonts are added.</p>
<h4><a href="http://www.theleagueofmoveabletype.com/">The League of Moveable Type</a></h4>
<p>The League of Moveable Type, an open-source type movement, is very much a quality over quantity collection of free fonts.</p>
<h4><a href="http://www.josbuivenga.demon.nl/index.html">exljbris Font Foundry</a></h4>
<p>Similarly, exljbris Font Foundry is a collection of a few absolutely great fonts. All fonts are created and released by Jos Buivenga.</p>
<h4><a href="http://www.dafont.com/">dafont</a></h4>
<p>On the other end of the scale, dafont contains a huge number of fonts but finding a good font is like looking for a needle in a haystack. There are a few good hidden gems to be found though.</p>
<h4><a href="http://www.fontsquirrel.com/fontface">Font Squirrel&#8217;s Free @font-face Kits</a></h4>
<p>A number of free fonts for you to download complete with the CSS you need to use the fonts on your site.</p>
<h3>One more thing&#8230;</h3>
<p>Don&#8217;t forget to check out Elliot Jay Stocks&#8217; <a href="http://elliotjaystocks.com/blog/introducing-8-faces-magazine/">8 Faces magazine</a> when it launches as all signs point to it being excellent.</p>
]]></content:encoded>
			<wfw:commentRss>http://inspectelement.com/articles/better-typography-tools/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: enhanced

Served from: inspectelement.com @ 2012-05-21 13:57:33 -->
