<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>Zoe Rooney » Blog</title>
	
	<link>http://zoerooney.com</link>
	<description>Design. Development. Inspiration.</description>
	<lastBuildDate>Tue, 18 Jun 2013 02:29:04 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/zoerooney" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="zoerooney" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">zoerooney</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Responsive ≠ Accessible (At Least Not Always)</title>
		<link>http://zoerooney.com/blog/web-development/responsive-does-not-equal-accessible-always/</link>
		<comments>http://zoerooney.com/blog/web-development/responsive-does-not-equal-accessible-always/#comments</comments>
		<pubDate>Wed, 29 May 2013 02:01:09 +0000</pubDate>
		<dc:creator>Zoe</dc:creator>
				<category><![CDATA[web development]]></category>
		<category><![CDATA[random bits]]></category>
		<category><![CDATA[responsive design]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://zoerooney.com/?p=4450</guid>
		<description><![CDATA[<p>I was skimming through Daniel Kling&#8217;s post &#8220;Common misconceptions about responsive design&#8221; on Webdesigner Depot earlier today when I was brought up a little short by the second misconception. Responsive design doesn’t work for every use case I want you &#8230; <a href="http://zoerooney.com/blog/web-development/responsive-does-not-equal-accessible-always/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p><br><br>
<hr>
<br>
<em>Just a note - larger code blocks will no longer show up in some RSS readers, to allow all the awesomeness that comes with using Gists to display them. Sorry about that!<br><br>See this post on the website: <a href="http://zoerooney.com/blog/web-development/responsive-does-not-equal-accessible-always/">Responsive ≠ Accessible (At Least Not Always)</a></em></p>]]></description>
				<content:encoded><![CDATA[<p>I was skimming through Daniel Kling&#8217;s post <a href="http://www.webdesignerdepot.com/2013/05/common-misconceptions-about-responsive-design/">&#8220;Common misconceptions about responsive design&#8221; on Webdesigner Depot</a> earlier today when I was brought up a little short by the second misconception.</p>
<blockquote><p>Responsive design doesn’t work for every use case</p></blockquote>
<p>I want you to go over and read the whole post &#8211; I agree with a lot of what he says and I think it&#8217;s well-written and interesting, and also his responses to the comments are smart &#8211; but I have to say I very much disagree with that particular &#8220;misconception&#8221; and his explanation for it, and not just because I wrote a post last week on <a href="http://zoerooney.com/blog/business/is-responsive-worth-it-for-small-businesses-bloggers/" title="Is Responsive Worth It for Small Businesses &#038; Bloggers?">deciding when responsive is the right choice for a small business website or blog</a>. I commented on the post itself with my first thoughts but wanted to expand on them a bit here.
<p>Mr. Kling writes:</p>
<blockquote><p>The bottom line is that our web sites should be accessible to everyone no matter what device or screen resolution they are using, without restrictions.</p></blockquote>
<p>It&#8217;s funny because taken out of context I totally agree with that statement. I also agree with what Mr. Kling says in the post about fixed widths being limiting.</p>
<p>I think my biggest quibble with the argument I get from the text in context, however, is that responsive = accessible and non-responsive = inaccessible. I&#8217;ve used plenty of &#8220;regular&#8221; websites on my iPhone with no trouble at all and there are plenty of responsive sites that are hard to use. That doesn&#8217;t necessarily tell me that responsive/ not responsive is unimportant &#8211; rather it tells me that it&#8217;s only one of many important things about a site that lead to usability.</p>
<p>I guess what I&#8217;m trying to articulate is that many sites are sufficiently (even pleasantly) accessible without being responsive. A site does not have to scale or shift or use any of those other RWD techniques to be accessible and functional and usable. Also, scrolling or pinch-scaling are not exactly what I&#8217;d consider &#8220;restrictions.&#8221;</p>
<p>What&#8217;s more, I think it&#8217;s a bit of a scare tactic to imply otherwise, given that I <em>know</em> that many small businesses and individuals just don&#8217;t have the option of getting every last thing they want out of their new or redesigned website. (Side note: I don&#8217;t think Mr. Kling is out to scare small business owners in his post, it&#8217;s more that this &#8220;misconception&#8221; just one in a line of similar sentiments that have bubbled up without a lot of specifics and context and data behind them, and I think that while &#8220;dangerous&#8221; might be too strong a word, &#8220;unfortunate&#8221; is a fitting descriptor for that trend.)</p>
<p>While I am 100% for spending money where it counts, there are limits to what is reasonable to spend on a website and those limits should be determined by a combination of content strategy, purpose &#038; goals, and budget.</p>
<p>One counter-argument out there is that responsive doesn&#8217;t/ shouldn&#8217;t cost more than a regular project, but I think that&#8217;s only true in very specific cases and probably more so on the large-scale/ corporate/ we&#8217;d-otherwise-be-making-a-mobile-site/ simple layout with focus on text content type sites. For many of my clients, especially those in design-focused or otherwise creative businesses, the design of the site is a high priority, and the design decisions are often in conflict with making the site responsive, at least in budgetary terms.</p>
<p>As I said in my comment on the post, blogs are a great example of a use case where responsive is often a good choice. But I&#8217;d argue (and <a href="http://zoerooney.com/blog/business/is-responsive-worth-it-for-small-businesses-bloggers/" title="Is Responsive Worth It for Small Businesses &#038; Bloggers?">have argued</a>, also see two paragraphs ago) that there are a lot of other factors that go into the decision, including analytics on how people are actually using the site.</p>
<p>So I guess what I&#8217;m trying to say is that it&#8217;s ok to not go with a responsive site and that you shouldn&#8217;t feel that by opting against it your site will be inaccessible to visitors and you will have somehow failed the internet.</p>
<p><br><br>
<hr>
<br>
<em>Just a note - larger code blocks will no longer show up in some RSS readers, to allow all the awesomeness that comes with using Gists to display them. Sorry about that!<br><br>See this post on the website: <a href="http://zoerooney.com/blog/web-development/responsive-does-not-equal-accessible-always/">Responsive ≠ Accessible (At Least Not Always)</a></em></p>]]></content:encoded>
			<wfw:commentRss>http://zoerooney.com/blog/web-development/responsive-does-not-equal-accessible-always/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>FAQs, Lists, and jQuery: How to Create Drop Down Content Blocks</title>
		<link>http://zoerooney.com/blog/tutorials/faqs-lists-and-jquery-how-to-create-drop-down-content-blocks/</link>
		<comments>http://zoerooney.com/blog/tutorials/faqs-lists-and-jquery-how-to-create-drop-down-content-blocks/#comments</comments>
		<pubDate>Thu, 23 May 2013 11:15:03 +0000</pubDate>
		<dc:creator>Zoe</dc:creator>
				<category><![CDATA[tutorials]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[advanced custom fields]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[snippets]]></category>
		<category><![CDATA[widgets]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://zoerooney.com/?p=4353</guid>
		<description><![CDATA[<p>I&#8217;ve done a few jQuery-based drop down content areas for client projects lately &#8211; the kind where the additional content opens up on click so you can peruse the contents. This is a strategy often used for FAQs, such as &#8230; <a href="http://zoerooney.com/blog/tutorials/faqs-lists-and-jquery-how-to-create-drop-down-content-blocks/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p><br><br>
<hr>
<br>
<em>Just a note - larger code blocks will no longer show up in some RSS readers, to allow all the awesomeness that comes with using Gists to display them. Sorry about that!<br><br>See this post on the website: <a href="http://zoerooney.com/blog/tutorials/faqs-lists-and-jquery-how-to-create-drop-down-content-blocks/">FAQs, Lists, and jQuery: How to Create Drop Down Content Blocks</a></em></p>]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve done a few jQuery-based drop down content areas for client projects lately &#8211; the kind where the additional content opens up on click so you can peruse the contents. This is a strategy often used for FAQs, such as <a href="http://lovetaza.com/about/">the &#8220;About&#8221; page on Love Taza</a>, but it can also be used to great effect to condense some of the longer blog sidebar elements (see <a href="http://www.everlyso.com/">the categories and archives on Everly Clothing&#8217;s blog</a>).</p>
<p>When a reader recently asked about this functionality, I thought I&#8217;d go ahead and tackle it in a tutorial post.</p>
<p><strong>Quick Note:</strong> If you just need the drop down to appear on hover, and you don&#8217;t need it to stay open if the mouse is moved off the list, you can use CSS (think: navigation bar drop downs). If you want it to stay open after a click, you&#8217;ll need jQuery (or vanilla Javascript, if that&#8217;s your thing).</p>
<p>Here is an unstyled but working example of the general functionality we&#8217;ll be creating in this tutorial:</p>
<p><iframe width="100%" height="300" src="http://jsfiddle.net/n4FAh/embedded/result" allowfullscreen="allowfullscreen" frameborder="0"></iframe></p>
<p>And in case it&#8217;s a little more motivating, here&#8217;s a screenshot of a real-life styled version (you can try it action over on the <a href="http://www.everlyso.com/">EverlySo blog</a>):</p>
<p><img class="aligncenter size-full wp-image-4443" alt="dropdown-widget" src="http://zoerooney.com/wp-content/uploads/2013/05/dropdown-widget.png" width="666" height="368" /></p>
<p><span id="more-4353"></span></p>
<h2>Sidebar Drop Downs</h2>
<p>Content strategy-wise, this is a great technique for cleaning up those monster sidebar widgets that people probably really only need on demand, such as those for archives by date and for lists of categories. It&#8217;s a nice bridge between a cluttered and distracting sidebar and the <a href="https://medium.com/i-m-h-o/167ae2fae1fb">other extreme</a>. So let&#8217;s get to it!</p>
<h3>1. Create Your Widgets &amp; Give Them a Common Class</h3>
<p>Unless you&#8217;re creating totally custom widgets, you probably don&#8217;t have a ton of control over the exact structure of your sidebar widgets. That&#8217;s ok!</p>
<p>You can either manually select individual widgets by class or ID OR you can use a plugin that lets you add CSS classes to widgets. I usually do the latter because it allows the site owner to add more drop down widgets in the future with minimal support and training just by adding whichever class I define for the drop down/ expanding widgets.</p>
<p>I&#8217;ve used <a href="http://wordpress.org/plugins/widget-classes/">Widget Classes</a> for that specific use case. It hasn&#8217;t been updated in a long time but I&#8217;ve had good experiences &#8211; if that makes you nervous, <a href="http://wordpress.org/plugins/widget-css-classes/">this is another option</a>.</p>
<p>For reference, here&#8217;s the code I use to register my sidebars (nothing very original &#8211; it&#8217;s basically the same as Twenty Eleven, I think):</p>
<p><script src="https://gist.github.com/zoerooney/5632182.js?file=sidebar-dropdown-function.php"></script></p>
<p>That results in widget HTML that looks more or less like this:</p>
<p><script src="https://gist.github.com/zoerooney/5632182.js?file=sidebar-dropdown.html"></script></p>
<p><em>(If you&#8217;re so inclined, you can grab all the gists for this tutorial together. Grab the <a href="https://gist.github.com/zoerooney/5632182">sidebar code snippets here</a> and the <a href="https://gist.github.com/zoerooney/5632470">in-page snippets here</a>.)</em></p>
<h3>2. Hide the Widget Content &amp; Style</h3>
<p>There&#8217;s actually very little CSS required for this &#8211; just a bit to hide the actual widget content on page load:</p>
<p><script src="https://gist.github.com/zoerooney/5632182.js?file=sidebar-dropdown.css"></script></p>
<p>I&#8217;ve accounted for three common widget situations in this snippet &#8211; widgets with content wrapped in divs, lists, and forms &#8211; but I suppose it&#8217;s possible there are other configurations that you might want to account for as well (maybe <code>.widget.expand > p</code> would be a good addition).</p>
<p>It&#8217;s also nice to show some interactivity on hover over the titles, and you can get really fancy with icons/ graphics and pseudo-classes if you&#8217;re so inclined, so I&#8217;ve shown how you might handle those things in the above snippet as well.</p>
<h3>3. Add the Animation</h3>
<p>Just a little bit of jQuery gets the animation rolling:</p>
<p><script src="https://gist.github.com/zoerooney/5632182.js?file=sidebar-dropdown.js"></script></p>
<p>All my comments make it look much more complex than it actually is, I promise you. Throw that snippet into your <code>footer.php</code> file between some script tags and just before <code>wp_footer();</code> and you should be good to go!</p>
<h2>In-Page FAQ-Style Dropdowns</h2>
<p>The in-page drop downs are very similar &#8211; the main difference is that you&#8217;ve got to figure out how you&#8217;ll handle the content entry such that it&#8217;s easy to maintain (I wrote about <a title="Never Stop Tweaking Your Website" href="http://zoerooney.com/blog/business/never-stop-tweaking-your-website/">why ease of maintenance is so important</a> the other day).</p>
<p>Another content strategy decision is whether you&#8217;ll start the page with all answers collapsed. It might be a good idea to have the first answer open as a visual cue as to how the page works for the user. You&#8217;ll also want to consider whether the questions act independently &#8211; e.g. should clicking on a second question close the first and open the second, or can more than one be open at once and you have to click the same title again to close each block?
<p>Example where only one can be open at a time:</p>
<p><iframe width="100%" height="300" src="http://jsfiddle.net/nyHgV/1/embedded/result" allowfullscreen="allowfullscreen" frameborder="0"></iframe></p>
<h3>1. Create Your Content-Entry Mechanism</h3>
<p>Since this feature is often used for things like FAQ pages where the site owner is likely to want to add or remove content blocks and edit the content over time, it&#8217;s important to create a flexible system where they can easily pair their questions (the click area) and answers (the area that&#8217;s toggled).</p>
<p>I&#8217;m starting to sound like a broken record on this, I think, but I use <a href="http://www.advancedcustomfields.com/">Advanced Custom Fields</a> to handle the content entry. I&#8217;m telling you &#8211; best plugin ever. For this one, I use the <a href="http://www.advancedcustomfields.com/add-ons/repeater-field/">repeater field add-on</a>, which is $25 AUD for a multi-site license (that is an amazing deal, in my opinion).</p>
<p>All you do is create a repeater field, something like this:</p>
<div id="attachment_4445" class="wp-caption aligncenter" style="width: 610px"><a class="fancybox" href="http://zoerooney.com/wp-content/uploads/2013/05/create-faq-repeater-field.png"><img class="size-large wp-image-4445" alt="Click to enlarge" src="http://zoerooney.com/wp-content/uploads/2013/05/create-faq-repeater-field-700x617.png" width="600" height="528" /></a><p class="wp-caption-text">Click to enlarge</p></div>
<p>I like to use a limited WYSIWYG field with no media uploads and only the simple button set so people can add links easily, but you could use a text area field if you want to limit things even further. The above set-up lands you with an entry area that looks something like this:</p>
<div id="attachment_4447" class="wp-caption aligncenter" style="width: 610px"><a class="fancybox" href="http://zoerooney.com/wp-content/uploads/2013/05/faq-entry-fields.png"><img class="size-large wp-image-4447" alt="Click to enlarge" src="http://zoerooney.com/wp-content/uploads/2013/05/faq-entry-fields-700x368.png" width="600" height="315" /></a><p class="wp-caption-text">Click to enlarge.</p></div>
<h3>2. Lay Out Your Content</h3>
<p>Once you&#8217;ve got your content entry worked out, you&#8217;ve got to add said content to the page template. PSA: <a href="http://codex.wordpress.org/Child_Themes">Child Themes</a> are the way to go, also <a href="http://codex.wordpress.org/Page_Templates#Creating_a_Page_Template">here&#8217;s some info about page templates</a>.</p>
<p>For this particular layout, I want to have a containing div with the title and content inside &#8211; I&#8217;m creating the same overall structure as I showed for the sidebar widget, actually. This first snippet shows the PHP with the Advanced Custom Fields template tags in place:</p>
<p><script src="https://gist.github.com/zoerooney/5632470.js?file=in-page-dropdown.php"></script></p>
<p>And that results in the following HTML output (one of these for each Q&#038;A block the author has created):</p>
<p><script src="https://gist.github.com/zoerooney/5632470.js?file=in-page-dropdown.html"></script></p>
<p><strong>Side Note:</strong> There have been all kinds of discussions about semantic markup for FAQs (<a href="http://24ways.org/2007/my-other-christmas-present-is-a-definition-list/">definition lists</a> have come up <a href="http://css-tricks.com/utilizing-the-underused-but-semantically-awesome-definition-list/">a time or two</a>), but that is so not the point of this tutorial. My general opinion is that FAQs are not definitions, so DL is not quite right. If I could do it while maintaining the flexibility I want for the site owner, I&#8217;d probably use pretty much what I&#8217;ve got here but with a paragraph element for the answer instead of the div I&#8217;m using in the example.</p>
<h3>3. Hide the Answers</h3>
<p>Again, this is quite simple CSS (aside from any design-focused styling you might be doing). All you really need to do is hide the answers, although again I&#8217;ve included the hover effect on the question and also a bit of extra CSS to show the very first answer to start out:</p>
<p><script src="https://gist.github.com/zoerooney/5632470.js?file=in-page-dropdown.css"></script></p>
<h3>4. Create the Animation</h3>
<p>Just like with the sidebars, it&#8217;s a simple jQuery snippet to toggle the answers on click:</p>
<p><script src="https://gist.github.com/zoerooney/5632470.js?file=in-page-dropdown.js"></script></p>
<p>As you can see, I&#8217;ve included a commented out line that serves to hide all the answers on click just before the called-for answer is displayed, in case you do want to have that feature in your use case.</p>
<hr />
That&#8217;s it &#8211; easy drop-down content blocks with an eye towards content strategy and flexible maintenance are yours for the coding!</p>
<p><br><br>
<hr>
<br>
<em>Just a note - larger code blocks will no longer show up in some RSS readers, to allow all the awesomeness that comes with using Gists to display them. Sorry about that!<br><br>See this post on the website: <a href="http://zoerooney.com/blog/tutorials/faqs-lists-and-jquery-how-to-create-drop-down-content-blocks/">FAQs, Lists, and jQuery: How to Create Drop Down Content Blocks</a></em></p>]]></content:encoded>
			<wfw:commentRss>http://zoerooney.com/blog/tutorials/faqs-lists-and-jquery-how-to-create-drop-down-content-blocks/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Is Responsive Worth It for Small Businesses &amp; Bloggers?</title>
		<link>http://zoerooney.com/blog/business/is-responsive-worth-it-for-small-businesses-bloggers/</link>
		<comments>http://zoerooney.com/blog/business/is-responsive-worth-it-for-small-businesses-bloggers/#comments</comments>
		<pubDate>Wed, 22 May 2013 15:14:26 +0000</pubDate>
		<dc:creator>Zoe</dc:creator>
				<category><![CDATA[business]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[responsive design]]></category>
		<category><![CDATA[talking shop]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://zoerooney.com/?p=4366</guid>
		<description><![CDATA[<p>There&#8217;s a lot of information floating around about making your website &#8220;responsive,&#8221; much of it targeted at designers &#38; developers. I haven&#8217;t seen quite as much written for small businesses nor for bloggers, so I thought it might be helpful &#8230; <a href="http://zoerooney.com/blog/business/is-responsive-worth-it-for-small-businesses-bloggers/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p><br><br>
<hr>
<br>
<em>Just a note - larger code blocks will no longer show up in some RSS readers, to allow all the awesomeness that comes with using Gists to display them. Sorry about that!<br><br>See this post on the website: <a href="http://zoerooney.com/blog/business/is-responsive-worth-it-for-small-businesses-bloggers/">Is Responsive Worth It for Small Businesses &#038; Bloggers?</a></em></p>]]></description>
				<content:encoded><![CDATA[<p>There&#8217;s a lot of information floating around about making your website &#8220;responsive,&#8221; much of it targeted at designers &amp; developers. I haven&#8217;t seen quite as much written for small businesses nor for bloggers, so I thought it might be helpful to outline some of the concepts behind responsive design and some of the things you should consider as you embark on a site update to help you decide whether responsive design is right for your website.</p>
<div id="attachment_4437" class="wp-caption aligncenter" style="width: 610px"><a class="fancybox" href="http://zoerooney.com/wp-content/uploads/2013/05/viddyon-is-responsive.png"><img class="size-large wp-image-4437" alt="Click to enlarge, or visit the live site" src="http://zoerooney.com/wp-content/uploads/2013/05/viddyon-is-responsive-700x434.png" width="600" height="372" /></a><p class="wp-caption-text">A recent responsive client project, designed by <a href="http://amandajanejones.com">Amanda Jane Jones</a>. Click to enlarge the image, or <a href="http://viddyon.com">visit the live site</a></p></div>
<h2>Goals &amp; Strategy, Generally Speaking</h2>
<p>I am of the opinion that any decision you make about your business should be rooted in a solid understanding of both your goals and your overall business strategy, and decisions about your website are absolutely not an exception (see my thoughts on <a title="Get Started on the Right Foot: Planning Your Website" href="http://zoerooney.com/blog/business/website-planning/">planning</a> and <a title="Never Stop Tweaking Your Website" href="http://zoerooney.com/blog/business/never-stop-tweaking-your-website/">tweaking</a> your site).</p>
<div style="background: #eee; width: 175px; float: right; padding: 10px; margin: 5px 0 5px 15px; font-size: 1.15em;">Don&#8217;t default to responsive just because it&#8217;s the new big thing.</div>
<p>The only people who should be updating their website with the latest technology just to have the latest technology are companies that have their actual business based in that technology.</p>
<p>I made my updated website responsive because I code modern websites for a living, and it was important to me to show that I can work in that particular context. If you&#8217;re not a developer and/or you&#8217;re not interested in working on responsive design projects, you shouldn&#8217;t adopt it as a default just because it&#8217;s the new big thing in websites.</p>
<h2>What does responsive actually mean?</h2>
<p>Now that I&#8217;ve got my initial standpoint out there, let&#8217;s back up a little and make sure we&#8217;re on the same page as far as what &#8220;responsive&#8221; means &#8211; I get a lot of requests mentioning it in contexts where it&#8217;s clear people really aren&#8217;t sure.</p>
<p>Responsive design is designing and coding a site such that it responds to the parameters of the device being used to view it. At it&#8217;s most basic, this typically means the width of the content adjusts to always fit neatly within the frame of the browser across various screen and browser sizes. This often requires a combination of fluid/ flexible column and content widths, as well as &#8220;breakpoints&#8221; at which layouts change to better fit the new width.</p>
<h2>Readability</h2>
<p>One very good reason to go with a responsive site is if you&#8217;ve got a text-heavy site and you think people are likely to be trying to read it on a device other than a desktop or laptop computer. It can be challenging to read on tablets and phones when websites aren&#8217;t optimized for them, but a responsive design will both adjust the content column to fit the device and will usually adapt font sizes and spacing for maximum readability.</p>
<p>It&#8217;s probably obvious, but site owners for whom readability will be important are often bloggers or editors of writing-focused sites. However, while readability is certainly a compelling reason to consider a responsive site, it doesn&#8217;t necessarily follow that if you&#8217;ve got a lot of text you have to go responsive &#8211; your analytics and user base should also inform the final decision (more on that below). Especially for bloggers, you may find that most of your readers are actually getting your content via RSS or email, in which case they won&#8217;t even be seeing your responsive site.</p>
<h2>Access on the Go</h2>
<p>The other really great reason to go responsive is that your site content is highly likely to be accessed by visitors who are on the go, and therefor are likely using a smart phone or tablet.</p>
<p>One example of this is restaurant sites, or sites for other location-based businesses, where visitors may be coming to your site while actually out and about in the neighborhood. If you slow them down (or worse, block them entirely) by using technology that is unsuitable for a mobile device, you may actually lose business.</p>
<p>Or, if you&#8217;re in a field where you often need to display your content while away from a computer &#8211; for example, showing a portfolio or work samples during business meetings away from your office &#8211; you probably want to make sure your site is optimized for whatever device you&#8217;re using (iPads seem to be getting really popular for this sort of thing).</p>
<h2>A Basis in Analytics</h2>
<p>Beyond your goals for your site, and the above two examples of compelling reasons for responsive design, decision-making  should also be based in data where possible (e.g. for an existing site undergoing a redesign).</p>
<p>To be perfectly honest, when I used Google Analytics for data I never looked at it. Now I use <a href="http://Gaug.es">Gaug.es</a> and it is worth every penny &#8211; if you <a href="http://twitter.com/zoe_rooney">follow me on Twitter</a> you may have seen one of my occasional bursts of love for them where I post random data screenshots and gush an embarrassing amount. No, they don&#8217;t sponsor me. I just love their service, and here&#8217;s why:</p>
<p><img class="aligncenter size-full wp-image-4438" alt="browser-width-data" src="http://zoerooney.com/wp-content/uploads/2013/05/browser-width-data.png" width="547" height="544" /></p>
<p>This graphic shows my actual browser width data from April 2013. A full 88% of my visitors are viewing my site in a browser at least 1440px wide. That is pretty wide, my friends, and probably not what I&#8217;d expect if I were just guessing based on all the hype about mobile internet users, etc., etc.</p>
<p><img class="aligncenter size-large wp-image-4439" alt="platform-data" src="http://zoerooney.com/wp-content/uploads/2013/05/platform-data.png" width="529" height="223" /></p>
<p>There&#8217;s more! This second chart shows the stats on platforms used to access my site. Even if you&#8217;ve decided &#8220;yes&#8221; on responsive in general, there are decisions to be made about breakpoints and testing on devices and optimizing for devices, and this sort of data makes those decisions so much easier. (That tiny percentage of Android visitors? Kind of fascinating given recent generalized data in the news.)</p>
<h2>What Does it Cost?</h2>
<div style="background: #eee; width: 175px; float: left; padding: 10px; margin: 5px 15px 5px 0; font-size: 1.15em;">Goals + Site Purpose + Data + Budget = Responsive (or Not)</div>
<p>Sorry but there&#8217;s no good answer other than the perennial developer favorite &#8220;It depends.&#8221; I know, not that satisfying.</p>
<p>The thing is, it really does depend on a variety of factors from the design, layout, structure, and content strategy of the site to the technical specifics of breakpoints to the data on which sizes it makes sense to spend the most time on.</p>
<p>Very very roughly, I&#8217;d say it&#8217;s safe to expect responsive design and development to add anywhere from 30% to 70% to the cost of your project. Also, please assume quotes you get from designers and developers do NOT include responsive design and coding unless otherwise specified. It&#8217;s still the sort of thing that should and will be specified (and thoroughly discussed) if it&#8217;s on the table.</p>
<p>Of course, that cost should be another factor that goes into your overall decision-making process. While I do (obviously) think it&#8217;s worth spending money on a great website, it&#8217;s one part of your overall marketing/ communications strategy and responsive is only one part of an overall website strategy. Budget accordingly.</p>
<h2>End Game: Is it Worth It?</h2>
<p>Sorry, I don&#8217;t have a final answer for you (are you feeling let down?) but I can say that in many cases a responsive site is probably NOT your top priority for building your blog and business. All the data points I&#8217;ve discussed will hopefully help you decide if it&#8217;s a good choice given your particular set of circumstances. </p>
<div class="additional-resources">
<h2>Additional Reading:</h2>
<ul>
<li><a href="http://elliotjaystocks.com/blog/responsive-web-design-the-war-has-not-yet-been-won/">An interesting article</a> from Elliot Jay Stocks about how to think about what RWD (responsive web design) really is/ means. I don&#8217;t agree with all his points (especially about cost), but it&#8217;s a great read.</li>
<li><a href="http://mediaqueri.es/">MediaQueri.es</a> is one of my favorite resources to share with people just wrapping their head around RWD &#8211; lots of great examples in a nice clear gallery format.</li>
<li>There are tons of grid systems out there to act as starting points for RWD &#8211; <a href="http://goldengridsystem.com/">the Golden Grid System</a> is just one. I like the typography ideas in this one, in particular.</li>
<li>Getting into the details of RWD uncovers all kinds of complex issues and problems, such as how to handle images. <a href="http://css-tricks.com/which-responsive-images-solution-should-you-use/">This article from CSS Tricks</a> is a great overview of the image-related issues and possible solutions.</li>
<li>Type is another issue with responsive, and <a href="http://www.webdesignerdepot.com/2012/10/a-simple-guide-to-responsive-typography/">this is a great article</a> to start to understand why.</li>
<li>Of course, I always recommend everything from <a href="http://alistapart.com/topic/responsive-design">A List Apart</a>, including their <a href="http://www.abookapart.com/products/responsive-web-design">book on RWD</a>.</li>
<li>Also, I just found <a href="http://bradfrost.github.io/this-is-responsive/resources.html">the mother of all lists of RWD resources &#038; tools</a> which probably includes most of the above and then has about a million times more.</li>
</ul>
</div>
<p><br><br>
<hr>
<br>
<em>Just a note - larger code blocks will no longer show up in some RSS readers, to allow all the awesomeness that comes with using Gists to display them. Sorry about that!<br><br>See this post on the website: <a href="http://zoerooney.com/blog/business/is-responsive-worth-it-for-small-businesses-bloggers/">Is Responsive Worth It for Small Businesses &#038; Bloggers?</a></em></p>]]></content:encoded>
			<wfw:commentRss>http://zoerooney.com/blog/business/is-responsive-worth-it-for-small-businesses-bloggers/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Add a Rolling Date in WordPress</title>
		<link>http://zoerooney.com/blog/tutorials/add-a-rolling-date-in-wordpress/</link>
		<comments>http://zoerooney.com/blog/tutorials/add-a-rolling-date-in-wordpress/#comments</comments>
		<pubDate>Mon, 20 May 2013 11:49:07 +0000</pubDate>
		<dc:creator>Zoe</dc:creator>
				<category><![CDATA[tutorials]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[advanced custom fields]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[snippets]]></category>
		<category><![CDATA[themes]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://zoerooney.com/?p=4432</guid>
		<description><![CDATA[<p>I used to have this problem on my contact page where I wanted to clearly show my next availability. It was a problem because if I just put a lead time (e.g. 6-8 weeks), people didn&#8217;t seem to take the &#8230; <a href="http://zoerooney.com/blog/tutorials/add-a-rolling-date-in-wordpress/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p><br><br>
<hr>
<br>
<em>Just a note - larger code blocks will no longer show up in some RSS readers, to allow all the awesomeness that comes with using Gists to display them. Sorry about that!<br><br>See this post on the website: <a href="http://zoerooney.com/blog/tutorials/add-a-rolling-date-in-wordpress/">Add a Rolling Date in WordPress</a></em></p>]]></description>
				<content:encoded><![CDATA[<p>I used to have this problem on my contact page where I wanted to clearly show my next availability. It was a problem because if I just put a lead time (e.g. 6-8 weeks), people didn&#8217;t seem to take the time to do the math to figure out when that actually put my next openings. On the flip side, if I typed in the next opening manually, I invariably forgot to update it in a timely manner.</p>
<p>I&#8217;ve posted before about how I feel about small nuisances <a href="http://zoerooney.com/blog/business/never-stop-tweaking-your-website/" title="Never Stop Tweaking Your Website">on websites</a> and <a href="http://zoerooney.com/blog/web-development/small-efficiencies-for-a-front-end-development-workflow/" title="Small Efficiencies for a Front-end Development Workflow">in workflows</a> &#8211; the gist is that they drive me nuts and I feel compelled to fix them.</p>
<p>Eventually I decided on a two-pronged attack to this particular problem. One prong involved changing my quote request form to show multiple notices about timeline/ availability. The second prong involved coding <a href="http://zoerooney.com/contact/" title="Work With Me">my contact page</a> to display my next availability on a rolling basis, where I just enter the lead time as a single digit and the displayed date is calculated automatically based on the current date.</p>
<div id="attachment_4433" class="wp-caption aligncenter" style="width: 610px"><a href="http://zoerooney.com/wp-content/uploads/2013/05/next-opening.png" class="fancybox"><img src="http://zoerooney.com/wp-content/uploads/2013/05/next-opening-700x173.png" alt="Click to enlarge" width="600" height="148" class="size-large wp-image-4433" /></a><p class="wp-caption-text">Click to enlarge</p></div>
<h2>Step 1: Create a Custom Entry Field</h2>
<p>I definitely wanted to be able to update the lead time value on an ongoing basis from right within WordPress, since it tends to shift a bit based on scheduled time off, holidays, and of course client scheduling, so I used the <a href="http://www.advancedcustomfields.com/" title="Advanced Custom Fields">Advanced Custom Fields plugin</a> to add a simple input field to my contact page.</p>
<p><span id="more-4432"></span></p>
<h3>The ACF setup:</h3>
<p><img src="http://zoerooney.com/wp-content/uploads/2013/05/advanced-custom-fields-lead-time-field.png" alt="advanced-custom-fields-lead-time-field" width="658" height="638" class="aligncenter size-full wp-image-4435" /></p>
<h3>On the page:</h3>
<p><img src="http://zoerooney.com/wp-content/uploads/2013/05/lead-time-field.png" alt="lead-time-field" width="410" height="119" class="aligncenter size-full wp-image-4436" /></p>
<p>If you&#8217;re working on this yourself, make sure you enter a lead time and save the page &#8211; otherwise you&#8217;ll find yourself very confused when you add your template code and nothing appears. Yes, I&#8217;ve done that. More than once.</p>
<h2>Step 2: Add a Bit of Code to Your Page Template</h2>
<p>This assumes you&#8217;ve already got a page template going on for your special page, or you know <a href="http://codex.wordpress.org/Page_Templates#Creating_a_Page_Template">how to make one.</a></p>
<p>As an alternative to a new template in the theme, you could try using a plugin that lets you create your own PHP-based shortcodes, such as <a href="http://wordpress.org/extend/plugins/shortcode-exec-php/">this one</a> (haven&#8217;t used it, but it purports to do what you&#8217;d need).</p>
<h3>The Code:</h3>
<p><script src="https://gist.github.com/zoerooney/5602716.js"></script></p>
<p>Yep, it&#8217;s short. Hopefully the comments make it clear what the two lines do, but let&#8217;s break down that second one a bit so you can customize things if you&#8217;d like.</p>
<h3>About STRTOTIME();</h3>
<p>The whole backbone of this method is the PHP function <code>strtotime();</code>, dedicated to which there is apparently <a href="http://www.strtotime.net/">an entire mini-site</a>. I&#8217;m actually not that surprised, it&#8217;s a pretty sweet little function. What it does is convert the date/time however you tell it to relative to now. So in my example, I&#8217;ve told it to take the current date/time and add whatever value I&#8217;ve put in my custom field to it (using that variable I set in the first line).</p>
<p>The really cool part is the syntax &#8211; it accepts relative date formats such as &#8220;next Monday&#8221; or &#8220;tomorrow.&#8221; You can read up on all the accepted <a href="http://www.php.net/manual/en/datetime.formats.relative.php">relative formats</a>, as well as <a href="http://www.php.net/manual/en/datetime.formats.php">all the formats in general</a> if you&#8217;re into that sort of thing.</p>
<h3>About DATE();</h3>
<p>Once the date has been calculated, this snippet uses the PHP function <code>date();</code> to format and display it. There are <a href="http://php.net/manual/en/function.date.php">a ton of display and formatting options</a>, but basically you&#8217;re using characters to stand in for various formats of month, day, time, etc., display. I wanted to only show month and year, so I used <code>F Y</code> where <code>F</code> displays the full month name and <code>Y</code> displays all four digits of the year.</p>
<h2>Problem Solved!</h2>
<p>Now all I have to do is occasionally note if my lead time is drastically different than it&#8217;s been recently and update that one little digit accordingly. It&#8217;s easy to do, since it&#8217;s right in WordPress (where I spend lots of time anyway), and I can safely ignore it the rest of the time knowing that the page will always display the month and year the appropriate interval from the current day.<br />
<p><br><br>
<hr>
<br>
<em>Just a note - larger code blocks will no longer show up in some RSS readers, to allow all the awesomeness that comes with using Gists to display them. Sorry about that!<br><br>See this post on the website: <a href="http://zoerooney.com/blog/tutorials/add-a-rolling-date-in-wordpress/">Add a Rolling Date in WordPress</a></em></p>]]></content:encoded>
			<wfw:commentRss>http://zoerooney.com/blog/tutorials/add-a-rolling-date-in-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using the Referring Page in WordPress</title>
		<link>http://zoerooney.com/blog/tutorials/using-the-referring-page-in-wordpress/</link>
		<comments>http://zoerooney.com/blog/tutorials/using-the-referring-page-in-wordpress/#comments</comments>
		<pubDate>Fri, 17 May 2013 12:53:05 +0000</pubDate>
		<dc:creator>Zoe</dc:creator>
				<category><![CDATA[tutorials]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[functions]]></category>
		<category><![CDATA[snippets]]></category>
		<category><![CDATA[themes]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://zoerooney.com/?p=4079</guid>
		<description><![CDATA[<p>While a number of different projects over the last few months have included features where I&#8217;ve needed to use information from a URL to do something special with a page, two in particular stand out. These two required that I &#8230; <a href="http://zoerooney.com/blog/tutorials/using-the-referring-page-in-wordpress/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p><br><br>
<hr>
<br>
<em>Just a note - larger code blocks will no longer show up in some RSS readers, to allow all the awesomeness that comes with using Gists to display them. Sorry about that!<br><br>See this post on the website: <a href="http://zoerooney.com/blog/tutorials/using-the-referring-page-in-wordpress/">Using the Referring Page in WordPress</a></em></p>]]></description>
				<content:encoded><![CDATA[<p>While a number of different projects over the last few months have included features where I&#8217;ve needed to use information from a URL to do something special with a page, two in particular stand out. These two required that I use PHP to find out the referring page so that I could then define the actual content and structure of the page before it was created client-side.</p>
<h2>Client-Side, Referring Page URLs, WHAT?</h2>
<p>Let me back up just a little, since I know some of you may not be that familiar with this sort of thing but may still be curious about the techniques. When thinking about WordPress and PHP sites in general, it&#8217;s helpful to know that PHP is a server-side language. This means that everything going on in your PHP code is read by the server and performed before the page is ever created in the browser (on the client-side, or the side of the end user). This is why you don&#8217;t see any PHP in your browser web developer tools when you inspect the code &#8211; only the HTML and other stuff the PHP outputs.</p>
<p>Much of the time, the changes I&#8217;m making based on the referrer or URL are fairly minor, and a lot of the time I need them to be flexible based on the user&#8217;s interaction with the page. In these cases, I use special content in the URL such as fragments preceded by the hash symbol (#) or query strings, which use question marks and other symbols to set up a whole set of information right in the URL. Then, I use jQuery to read the URL and perform whatever page tweaks are necessary.</p>
<h3>jQuery Example: Fairmount Fibers</h3>
<p>I recently coded a wonderfully complex site for local Philadelphia business <a href="http://fairmountfibers.com">Fairmount Fibers</a>, the US distributor of Manos del Uruguay yarns, through <a href="http://aeolidia.com">Aeolidia</a> (the site was designed by <a href="http://ghostlyferns.com">Meg Lewis</a>). There is a <a href="http://fairmountfibers.com/patterns">directory of available patterns</a>, which can be filtered and sorted by yarn, pattern type, and whether the pattern is free or for purchase.</p>
<p><a href="http://zoerooney.com/wp-content/uploads/2013/05/fairmount-fibers-filtering.png" class="fancybox"><img src="http://zoerooney.com/wp-content/uploads/2013/05/fairmount-fibers-filtering-700x496.png" alt="fairmount-fibers-filtering" width="600" height="425" class="aligncenter size-large wp-image-4429" /></a></p>
<p>While the client wanted to highlight the free patterns in the navigation menu as well, it didn&#8217;t really make sense to create a whole second page that does the same thing as the main patterns page. Instead, I coded just the one page, and set up some visual changes based on whether the URL has <code>#free</code> at the end. When you click the &#8220;Free Patterns&#8221; link in the menu, you&#8217;re really just reloading the same page with that fragment on the URL. Then, the code reads that fragment and triggers changes to the page title and filtering.</p>
<p><span id="more-4079"></span></p>
<p>Here&#8217;s the code, including the filtering bits and thoroughly commented:</p>
<p><script src="https://gist.github.com/zoerooney/5598730.js?file=jquery-hash-filtering.js"></script></p>
<p>You can also check out all three code snippets from this tutorial over on <a href="https://gist.github.com/zoerooney/5598730">the full Gist page</a>.</p>
<h2>Referring URLs in PHP</h2>
<p>As mentioned, that jQuery method works on the client-side, meaning it happens in the browser and can respond to user interaction. The two projects I mentioned that lead to this post required code changes to be made on the server side, meaning the actual page itself or a piece of content on the page needed to exist or not based on where the visitor came from.</p>
<h3>PHP Example 1: Love Taza</h3>
<p>The first instance was for <a href="http://lovetaza.com/once-upon-a-time/">Love Taza&#8217;s &#8220;Once Upon a Time&#8221; archive page</a>, which features their favorite posts. Naomi and Josh wanted the page to show a grid of posts and then to display the full post content underneath the grid when an item is clicked.</p>
<p>In order to do this, I needed to be able to pull just the middle part of the individual post template onto the page using ajax, but only when the post was called up from this specific page. In all other instances when the individual post is called up, the header, sidebar, and footer also appear (e.g. the whole template is used).</p>
<p>WordPress actually has a <a href="http://codex.wordpress.org/Function_Reference/wp_get_referer">useful function for finding the referring page</a> &#8211; <code>wp_get_referer();</code> &#8211; so that&#8217;s what I used here:</p>
<p><script src="https://gist.github.com/zoerooney/5598730.js?file=url-is-specific.php"></script></p>
<h3>PHP Example 2: Em the Gem</h3>
<p>The Love Taza example is great when you have a specific URL you&#8217;re working with, but when I was creating the <a href="http://emthegem.com/blog/">blog section of Em the Gem</a>, I needed to include a &#8220;Back to the blog&#8221; link on single post pages and I quickly discovered I needed to be checking for any referring page that included /blog/ in the URL.</p>
<p>Think about it, the link needs to go back to the last blog archive page you were on before getting to the post. That may not be just the main http://emthegem.com/blog/ page &#8211; in fact it&#8217;ll ONLY be that page if the post is one of the most recent 5 posts and you got to it via the main blog page. In many cases, I bet you&#8217;d get to the post via a category archive or a page farther back in the blog. In other cases, you may get there from a non-blog page, in which case a link &#8220;Back to the blog&#8221; doesn&#8217;t actually make a whole lot of sense since it isn&#8217;t equivalent to your back action.</p>
<p>What I wanted was to find out if I came from a blog page and, if so, link back to it. If not, no link would display at all, minimizing potential confusion and awkwardness (nobody likes that). Solution:</p>
<p><script src="https://gist.github.com/zoerooney/5598730.js?file=referrer-contains-string.php"></script></p>
<p>In this one, I didn&#8217;t use the built-in WordPress function. But I could have &#8211; that wasn&#8217;t a specific for-a-reason decision, it just happened that way.</p>
<hr />
All of the above examples and decisions came out of necessity (there&#8217;s nothing that gets me going more than a good functionality challenge in a client project), but they&#8217;ve definitely made me ponder the potential use cases for finding the referring URL and/or providing information between pages using URLs and fragments.</p>
<p><br><br>
<hr>
<br>
<em>Just a note - larger code blocks will no longer show up in some RSS readers, to allow all the awesomeness that comes with using Gists to display them. Sorry about that!<br><br>See this post on the website: <a href="http://zoerooney.com/blog/tutorials/using-the-referring-page-in-wordpress/">Using the Referring Page in WordPress</a></em></p>]]></content:encoded>
			<wfw:commentRss>http://zoerooney.com/blog/tutorials/using-the-referring-page-in-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
