<?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>CSS-Tricks</title> <link>http://css-tricks.com</link> <description>Tips, Tricks, and Techniques on using Cascading Style Sheets.</description> <lastBuildDate>Fri, 19 Mar 2010 12:31:32 +0000</lastBuildDate> <generator>http://wordpress.org/?v=2.9.2</generator> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/CssTricks" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="csstricks" /><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">CssTricks</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><item><title>The Hard Part First</title><link>http://css-tricks.com/the-hard-part-first/</link> <comments>http://css-tricks.com/the-hard-part-first/#comments</comments> <pubDate>Fri, 19 Mar 2010 12:31:32 +0000</pubDate> <dc:creator>Chris Coyier</dc:creator> <category><![CDATA[Article]]></category><guid isPermaLink="false">http://css-tricks.com/?p=5941</guid> <description><![CDATA[I like the submit form on Art in my Coffee. It packs a lot of features into a compact space and is clear about what you are able to do and what is required of you. But best of all, I like how the very first thing it asks of you is the hardest part [...]]]></description> <content:encoded><![CDATA[<p>I like the <a href="http://artinmycoffee.com/submit">submit form on Art in my Coffee</a>. It packs a lot of features into a compact space and is clear about what you are able to do and what is required of you. But best of all, I like how the very first thing it asks of you is the hardest part of the whole form.</p><p><img src="http://css-tricks.com/wp-content/csstricks-uploads/hardestpart.png" width="570" height="387" alt="" title="" /></p><p>It&#8217;s just a simple file input box, why is that the &#8220;hardest part&#8221;? Think what that input box represents.</p><ol><li>User has a device capable of capturing a photo</li><li>User has transferred that photo to his/her computer</li><li>User knows the location of that photo file on his/her computer</li><li>User is ready to brave the file selection dialog box to select it</li></ol><p><span id="more-5941"></span></p><p>In a form like this, if the user doesn&#8217;t have a digital photo ready to go, they really shouldn&#8217;t be filling out the submit form. Having the file input as the first thing stops folks from doing any unnecessary work.</p><p>Conversely, users that <em>do</em> have an digital photo ready to go get to choose it right away. That act of choosing a file gets them heavily engaged in the process of filling out this form from the get-go. Choosing a file is a pretty intimate experience as far as web forms go. Once that is done, there will be some excitement in filling the rest of it out so it can be submitted.</p><p>I think this goes beyond this particular form. The overall message being: <em>let users do the thing they want to do right away</em> (likely &#8220;the hard part&#8221;) and the rest of the form will be a breeze for them. Take this example:</p><p><img src="http://css-tricks.com/wp-content/csstricks-uploads/questionfirst.png" width="570" height="494" alt="" title="" /></p><p>Here we ask if the user has a question right away. They are probably at this form to begin with because they <em>do</em> have a question. Let&#8217;s let them ask it first thing. Once they&#8217;ve written it out, they are pretty committed to this form and have some momentum. Filling out their name/email/phone will be easy.</p><p>As opposed to this:</p><p><img src="http://css-tricks.com/wp-content/csstricks-uploads/namefirst.png" width="570" height="495" alt="" title="" /></p><p>I can imagine this being met with far less enthusiasm. <em>Ugh, more hoops to jump through, I just want to ask a question.</em> Of course you are asking the exact same questions in both examples and a purely logical user would understand that of course name and contact information needs to gathered. But that doesn&#8217;t matter, the user is thinking about their question, not what other information this form wants. Let them do the hard part first.</p><p>&nbsp;</p><p>I wish I had some A/B testing to throw at you here, but I don&#8217;t. I&#8217;d like to do some on this some day. So this is just me tossing out what I think is a good UI choice based on my own professional judgment.</p> ]]></content:encoded> <wfw:commentRss>http://css-tricks.com/the-hard-part-first/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>What Changed?</title><link>http://css-tricks.com/what-changed/</link> <comments>http://css-tricks.com/what-changed/#comments</comments> <pubDate>Thu, 18 Mar 2010 12:01:45 +0000</pubDate> <dc:creator>Chris Coyier</dc:creator> <category><![CDATA[Article]]></category><guid isPermaLink="false">http://css-tricks.com/?p=5936</guid> <description><![CDATA[If something was working, but now it&#8217;s broken, then something changed.Many things are the same, some are different.This is true with anything: your watch, a remote control, even your relationships. It&#8217;s certainly true with websites. If your website used to work fine, but now it won&#8217;t load, then something changed. To fix it, you need [...]]]></description> <content:encoded><![CDATA[<p>If something was working, but now it&#8217;s broken, then something changed.</p><div class="image-wrap"> <img src="http://css-tricks.com/wp-content/csstricks-uploads/today-yesterday.jpg" width="570" height="200" alt="" title="" /><br /> Many things are the same, some are different.</div><p>This is true with anything: your watch, a remote control, even your relationships. It&#8217;s certainly true with websites. If your website used to work fine, but now it won&#8217;t load, then something changed. To fix it, you need to figure out what that thing was.</p><p>Pretty obvious? Sure, if everything is working great for you right now. But the minute something breaks, it&#8217;s really easy to get into the WELL EVERYTHING WAS WORKING FINE YESTERDAY mode.</p><p>What could it have been?</p><p><span id="more-5936"></span></p><ul><li>Has any new software been installed?</li><li>Has any code changed?</li><li>Have you asked everyone with access to it?</li><li>Is your allowed disk space full? Maybe something you don&#8217;t often think about was filling it, like server logs.</li><li>Did any file permissions change?</li><li>Are all the external resources your site depends on functioning properly and up to speed? Think: external JavaScript links, external RSS feeds, advertising services, APIs, etc.</li><li>How is incoming traffic? Major spike? Are you watching analytics? More traffic means more server resources, so you&#8217;ll need to watch things like your memory usage.</li><li>Is your database server responding properly? Is your database itself in good condition?</li><li>Did anything change with your web host?</li><li>Is your domain registration up to date?</li><li>Is the DNS server you use responding properly?</li><li>Is there a chance you were hacked?</li></ul><p>I once had a conversation with a Joyent employee who said that in the overwhelming majority of cases, a website was down because of something the user did, not the hosting. But still, I think a good host will help you figure out what the problem is if it is their fault or not.</p> ]]></content:encoded> <wfw:commentRss>http://css-tricks.com/what-changed/feed/</wfw:commentRss> <slash:comments>24</slash:comments> </item> <item><title>Meet the Pseudo Class Selectors</title><link>http://css-tricks.com/pseudo-class-selectors/</link> <comments>http://css-tricks.com/pseudo-class-selectors/#comments</comments> <pubDate>Wed, 17 Mar 2010 11:55:23 +0000</pubDate> <dc:creator>Chris Coyier</dc:creator> <category><![CDATA[Article]]></category><guid isPermaLink="false">http://css-tricks.com/?p=5762</guid> <description><![CDATA[Pseudo class selectors CSS selectors with a colon preceding them. You are probably very familiar with a few of them. Like hover: a:hover { /* Yep, hover is a pseudo class */ } They are immensely useful in a variety of situations. Some of them are CSS3, some CSS2&#8230; it depends on each particular one. Outside of IE, [...]]]></description> <content:encoded><![CDATA[<p>Pseudo class selectors CSS selectors with a colon preceding them. You are probably very familiar with a few of them. Like hover:</p><pre><code class="css">a:hover {
 /* Yep, hover is a pseudo class */
}</code></pre><p>They are immensely useful in a variety of situations. Some of them are CSS3, some CSS2&#8230; it depends on each particular one. Outside of IE, they have great browser support. In IE land, even IE8, support is pretty barren. However, the IE9 preview has <a href="http://ie.microsoft.com/testdrive/benchmarks/CSS3info/Default.html">full support of them</a>. The link-related ones work but not much else.  Let&#8217;s take a brief look at each one of them. Don&#8217;t worry, there isn&#8217;t that many.</p><p><span id="more-5762"></span></p><h3>Link-related pseudo class selectors</h3><p><strong>:link</strong> &#8211; Perhaps the most confusion-causing link-related pseudo selector. Aren&#8217;t all &lt;a&gt;&#8217;s links? Well not if they don&#8217;t have an href attribute. This selects only those that do, thus is essentially the same as a[href]. This selector will become a lot more useful should <a href="http://meyerweb.com/eric/thoughts/2008/07/23/any-element-linking-demo/">any-element linking</a> become reality.</p><p><strong>:visited</strong> &#8211; Selects links that have already been visited by the current browser.</p><p><strong>:hover</strong> &#8211; When the mouse cursor rolls over a link, that link is in it&#8217;s hover state and this will select it.</p><p><strong>:active</strong> &#8211; Selects when the link while it is being activated (being clicked on or otherwise activated). For example, for the &#8220;pressed&#8221; state of a button-style link or to <a href="http://css-tricks.com/one-pixel-shift-buttons/">make all links feel more button-like</a>.</p><p>There is a fun technique to remember all the link pseduo class selectors. Look at the first letter if each: LVHA &#8230; <a href="http://css-tricks.com/remember-selectors-with-love-and-hate/"><strong>L</strong>O<strong>V</strong>E <strong>H</strong><strong>A</strong>TE</a>.</p><h3>Input &#038; link related pseudo class selectors</h3><p><strong>:focus</strong> &#8211; Defining hover styles for links is great, but it doesn&#8217;t help out those who used keyboard navigation to get to the link. :focus will select links that are the current focus of the keyboard. This is not limited to links, but can be used (and really should be used) on inputs and textareas as well. <a href="http://antonpeck.com/journal/article/focus_on_the_hover/">Some would tell you</a> to define a :focus style for anything that has a :hover style.</p><div class="image-wrap"> <img src="http://css-tricks.com/wp-content/csstricks-uploads/formwithfocus.png" width="392" height="293" alt="" title="" /><br /> Form with a text input in focus. Yellow background is a focus style.</div><p><strong>:target</strong> &#8211; The target pseudo class is used in conjunction with ID&#8217;s, and match when the hash tag in the current URL match that ID. So if you are at URL www.yoursite.com/#home then the selector <tt>#home:target</tt> will match. Then can be extremely powerful. For example, you can create a <a href="http://css-tricks.com/css3-tabs/">tabbed area</a> where the tabs link to hash tags and then the panels &#8220;activate&#8221; by matching :target selectors and (for example) using z-index to move to the top.</p><p><strong>:enabled</strong> &#8211; Selects inputs that are in the default state of enabled and ready to be used.</p><p><strong>:disabled</strong> &#8211; Selects inputs that have the <tt>disabled</tt> attribute. A lot of browsers will make the input a faded out gray, you can control that with this selector.</p><div class="image-wrap"> <img src="http://css-tricks.com/wp-content/csstricks-uploads/disabledelements.png" width="374" height="95" alt="" title="" /></div><p><strong>:checked</strong> &#8211; Selects checkboxes that are, wait for it, checked.</p><p><strong>:indeterminate</strong> &#8211; Selects radio buttons that are in the purgatory state of neither chosen or unchosen (like when a page loads with radio button choices but no default is set).</p><div class="image-wrap"> <img src="http://css-tricks.com/wp-content/csstricks-uploads/radiopurgatory.png" width="80" height="61" alt="" title="" /><br /> Set of radio buttons in purgatory. Or more accurately, in their :indeterminate status.</div><h3>Position/Number-based pseudo class selectors</h3><p><strong>:root</strong> &#8211; Selects the element that is at the root of the document. Almost certainly will select the &lt;html> element, unless you are specifically working in some weird environment that somehow also allows CSS. Perhaps XML.</p><p><strong>:first-child</strong> &#8211; Selects the first element of its type within a parent.</p><p><strong>:last-child</strong> &#8211; Selects the last element of its type within a parent.</p><p><strong>:nth-child(N)</strong> &#8211; Selects elements based on a simple provided algebraic expression (e.g. &#8220;2n&#8221; or &#8220;4n-1&#8243;). Has the ability to do things like select even/odd elements, &#8220;every third&#8221;, &#8220;the first five&#8221;, and things like that. Covered in <a href="http://css-tricks.com/how-nth-child-works/">more detail here</a> with a <a href="http://css-tricks.com/examples/nth-child-tester/">tester tool</a>.</p><p><strong>:nth-of-type(N)</strong> &#8211; Works like :nth-child, but used in places where the elements at the same level are of different types. Like if inside a div you had a number of paragraphs and a number of images. You wanted to select all the odd images. :nth-child won&#8217;t work there, you&#8217;d use <tt>div img:nth-of-type(odd)</tt>. Particularly useful when working with definition lists and their alternating &lt;dt> and &lt;dd> elements.</p><p><strong>:first-of-type</strong> &#8211; Selects the first element of this type within any parent. So if you have two divs, each had within it a paragraph, image, paragraph, image. Then <tt>div img:first-of-type</tt> would select the first image inside the first div and the first image inside the second div.</p><p><strong>:last-of-type</strong> &#8211; Same as above, only would select the last image inside the first div and the last image inside the second div.</p><p><strong>:nth-last-of-type(N)</strong> &#8211; Works like :nth-of-type, but it counts up from the bottom instead of the top.</p><p><strong>:nth-last-child(N)</strong> &#8211; Works like :nth-child, but it counts up from the bottom instead of the top.</p><p><strong>:only-of-type</strong> &#8211; Selects only if the element is the only one of its kind within the current parent.</p><p><img src="http://css-tricks.com/wp-content/csstricks-uploads/relationalpseudos2.png" width="570" height="541" alt="" title="" /></p><h3>Relational pseudo class selectors</h3><p><strong>:not(S)</strong> &#8211; Removes elements from an existing matched set that match the selector inside the parameter of :not(). So for example, all divs <em>except</em> those with a class of &#8220;music&#8221; = <tt>div:not(.music)</tt>. The spec says that :not selectors cannot be nested, but they can be chained. Some browsers (Firefox) also support comma-separated selectors as the selector parameter, although chaining them would be a far safter bet. Also useful in conjunction with attribute selectors, e.g. <tt>input:not([disabled])</tt>.</p><p><strong>:empty</strong> &#8211; Selects elements which contain no text and no child elements. e.g. <tt>&lt;p>&lt;/p></tt></p><h3>Text-related pseudo class selectors / elements</h3><p><strong>:first-letter</strong> &#8211; Selects the first letter of the text in the element. Typical use: dropcaps.</p><p><strong>:first-line</strong> &#8211; Selects the first line of text in the element. Typical use: setting the first sentence in small-caps as a typographical eye-catcher / lead-in.</p><p><strong>:lang</strong> &#8211; This pseudo selector is in the CSS3 spec but only implemented in IE 8+. Will match anything that either has or is a descendant of an element with a matching lang attribute. For example, :lang(fr) will match any paragraph, even without a lang attribute, if the parent body had lang=&#8221;fr&#8221; as an attribute.</p><p><strong>::selection</strong> &#8211; Allows the changing of style of selected text. For Firefox, you can use ::-moz-selection. <a href="http://css-tricks.com/overriding-the-default-text-selection-color-with-css/">More information here</a>.</p><h4>Quick note</h4><p>You can chain pseduo selectors just like you can <a href="http://css-tricks.com/multiple-class-id-selectors/">chain class and ID selectors</a>. This is particularly useful here while we are looking at :first-letter and :first-line. You probably wouldn&#8217;t want to drop cap every single paragraph on the page, but just the first one, so, <tt>p:first-child:first-letter {   }</tt></p><div class="image-wrap"> <img src="http://css-tricks.com/wp-content/csstricks-uploads/dropcap.png" width="246" height="139" alt="" title="" /><br /> Dropcap using :first-letter, which enlarges the font size and floats to the left.</div><h3>Content-related pseudo &#8220;elements&#8221;</h3><p><strong>:before</strong> &#8211; Is able to add content before a certain element. For example, adding an opening quote before a blockquote or perhaps an preceding image to set apart a particular paragraph.</p><p><strong>:after</strong> &#8211; Is able to add content after a certain element. For example, a closing quote to a blockquote. Also used commonly for the <a href="http://css-tricks.com/snippets/css/clear-fix/">clearfix</a>, where an empty space is added after the element which clears the float without any need for extra HTML markup.</p><h4>Quick note</h4><p>These are appropriately called pseudo &#8220;elements&#8221; (not selectors) because they don&#8217;t select any &#8220;real&#8221; element that exists on the page. This goes for these two, as well as the previous sections :first-letter and :first-line. Make sense? Like the first letter that :first-letter selects isn&#8217;t an element all to itself, it&#8217;s just a part of an existing element, hence, pseudo element.</p><h3>Deprecated</h3><p><strong>:contains()</strong> &#8211; As far as I know, this is gone. The current CSS3 spec has removed it. I don&#8217;t know the story, let me know if you do. At a glance, it looks ridiculously useful (being able to select objects based on the textual content they contain). It may be because of problems, or having content in selectors being undesirable. My preference would be to have it select by elements rather than text, like p:contains(img), but alas, no such luck.</p><p><strong>:required / :optional / :read-only / :read-write</strong> &#8211; Just use attribute selectors instead.</p><h3>jQuery Usage</h3><p>jQuery can use all of these in its selectors, which if awesome. Even <em>awesomer</em>, jQuery has additional pseudo class selectors available.</p><p><strong>:first</strong> &#8211; The same as :nth-child(1)</p><p><strong>:eq(X)</strong> &#8211; The same as :nth-child(X)</p><p><strong>:contains(&#8216;text&#8217;)</strong> &#8211; This is removed from CSS, but still works in jQuery.</p><p><strong>:lt(X)</strong> &#8211; The same as :nth-child(-n+X), as in it selects the &#8220;first X elements&#8221;</p><p><strong>:gt(X) </strong>- The same as :nth-child(n+X), as in it selects everything except the &#8220;first (X-1) elements&#8221;</p><p><strong>:even</strong> &#8211; The same as :nth-child(even) or :nth-child(2n)</p><p><strong>:odd</strong> &#8211; The same as :nth-child(odd) or :nth-child(2n+1)</p><p><strong>:has(S)</strong> &#8211; Works like I wish CSS :contain did, where it tests if the element has a descendant of a certain selector before matching.</p><p>There are actually a whole bunch more, and all of them are clever and useful (or at least an improvement on readability) See the <a href="http://api.jquery.com/category/selectors/">selector documentation</a> for more.</p><h3>Specificity</h3><p>The specificity of a pseudo class selector is less than a regular class selector. It&#8217;s the lowest value, the same value as an element selector:</p><pre><code class="css">li            {}  /* specificity = 0,0,0,1 */
li:first-line {}  /* specificity = 0,0,0,2 */
li.red  {}        /* specificity = 0,0,1,1 */</code></pre><p>So in the example above, the :first-line selector would &#8220;beat&#8221; the regular list item selector, but the class selector will &#8220;beat&#8221; both of them.</p> ]]></content:encoded> <wfw:commentRss>http://css-tricks.com/pseudo-class-selectors/feed/</wfw:commentRss> <slash:comments>56</slash:comments> </item> <item><title>Review of LightCMS</title><link>http://css-tricks.com/review-of-lightcms/</link> <comments>http://css-tricks.com/review-of-lightcms/#comments</comments> <pubDate>Tue, 16 Mar 2010 12:40:51 +0000</pubDate> <dc:creator>Chris Coyier</dc:creator> <category><![CDATA[Article]]></category><guid isPermaLink="false">http://css-tricks.com/?p=5821</guid> <description><![CDATA[Back in the summer of last year, I did a little roundup I called The &#8220;Light&#8221; CMS Trend. Ironically enough, one that wasn&#8217;t included was LightCMS. I&#8217;ve been checking it out (yes, this is a sponsored review) and it definitely fits the category, with some features that set it apart.LightCMS is a Light CMS Really easy [...]]]></description> <content:encoded><![CDATA[<p>Back in the summer of last year, I did a little roundup I called <a href="http://css-tricks.com/the-light-cms-trend/">The &#8220;Light&#8221; CMS Trend</a>. Ironically enough, one that wasn&#8217;t included was <a href="http://www.speaklight.com/">LightCMS</a>. I&#8217;ve been checking it out (yes, this is a sponsored review) and it definitely fits the category, with some features that set it apart.</p><p><img src="http://css-tricks.com/wp-content/csstricks-uploads/lightcms.png" width="570" height="100" alt="" title="" /></p><p><span id="more-5821"></span></p><h3>LightCMS is a Light CMS</h3><p><strong>Really easy updates.</strong> That is the whole point of a &#8220;light&#8221; CMS. They don&#8217;t have as many features or as much extensibility as a &#8220;full&#8221; CMS (e.g. WordPress), but they do make the job of editing content on a site more intuitive, especially for less technology-inclined clients.</p><p>For example, to log in to your site, you append /login to the URL, and you&#8217;ll be presented with a login screen directly in the skin of your site.</p><div class="image-wrap"> <img src="http://css-tricks.com/wp-content/csstricks-uploads/lightcms-login.jpg" width="496" height="534" alt="" title="" /><br /> Any client can appreciate that.</div><p>Some of what LightCMS does is common to many CMSs. It is for managing content and building websites. It lets clients do this themselves (literally every single client I&#8217;ve had in the past many years has wanted this, whether they actually do it or not). There are users. There are templates. Some features of LightCMS are unique to it, which I&#8217;ll cover later.</p><h3>Editing</h3><p>The most important part, the editing of content, is a nice clean process. Content is kept on the page in modules. The modules can be drag &#8216;n dropped around (or manually moved) as well as of course editing and deleted.</p><div class="image-wrap"> <img src="http://css-tricks.com/wp-content/csstricks-uploads/lightcms-dragndrop.png" width="527" height="430" alt="" title="" /><br /> Drag and drop modules</div><div class="image-wrap"> <img src="http://css-tricks.com/wp-content/csstricks-uploads/lightcmseditmenu.png" width="235" height="216" alt="" title="" /><br /> Module menu</div><p>I enjoy how clean and polished all of this is. There is a lot of detail in an app with this many features and options, and it easily could have been half-assed.</p><h3>Differentiation</h3><h4>Hosted</h4><p>A common approach to the &#8220;light CMS&#8221; thing is to either give the CMS access to your site via FTP credentials, or put files on your server which do the job of editing. Either way, it&#8217;s your server. That can be a good thing, I know a lot of times I like having things under my control a lot of times. However, none of them are free, so it&#8217;s an expense you have on top of what you already pay for hosting. LightCMS is fully hosted.</p><p>They have a bunch of plans (literally 6) from free to a premier $99/month plan. The plans vary in number of users who can access the account, number of pages you can control, and the storage.</p><div class="image-wrap"> <img src="http://css-tricks.com/wp-content/csstricks-uploads/lightcmsplans.jpg" width="570" height="327" alt="" title="" /><br /> Some of the pricing plans</div><p>Fully hosted means that, by default, your site lives at a subdomain on lightcms, for example: http://yourwebsite.publishpath.com/.  That may work for you, but probably not. Not very professional and all. You can easily use your own domain name though, with a simple CNAME change.</p><p>Fully hosted also means no manual upgrading. Not to mention customer support.</p><h4>FTP</h4><p>Even with the hosting, and the otherwise kind of clean/sanitized environment, you can get direct FTP access. Nice.</p><h4>Widgetry</h4><p>Another unique feature is how they give you functional bits you can add to pages as modules (I think they call them &#8220;elements&#8221;) just like your own custom ones. For example, a blog element, calendar element, a robust form builders, photo gallery, donations buttons, etc.</p><div class="image-wrap"> <img src="http://css-tricks.com/wp-content/csstricks-uploads/lightcmswidgets.png" width="399" height="256" alt="" title="" /></div><h3>Reselling</h3><p>They have kind of a white label option, where you can have your clients pay for the service, and you earn money from that. They charge $19/month, and you can set the price at whatever you want (you earn whatever on top of 19 you charge). Might be nice for some folks, but probably not something I would use. I prefer billing my own clients, so I&#8217;ll just pay for it and mark it up in my own invoices, but hey whatever works.</p><h3>Your own designs</h3><p>It should go without saying, but you can use your own designs with this. Basically you create a template with HTML files in a specific naming convention (Home.html, Inside.html, Admin.html, etc). Inside those templates you declare editable regions with &#8220;tokens&#8221; like this:</p><pre><code class="html">&lt;$region$&gt; &lt;$/region$&gt;</code></pre><p>Once you got it all together, you just zip it up and upload it and your new design will be available as a template.</p><h3>Try it</h3><p>I think it&#8217;s a pretty decent little system. Go check out their <a href="http://www.speaklight.com/why-lightcms">Why LightCMS? page</a> (and the tour) for a more thorough overview of what it does than what I presented.</p> ]]></content:encoded> <wfw:commentRss>http://css-tricks.com/review-of-lightcms/feed/</wfw:commentRss> <slash:comments>82</slash:comments> </item> <item><title>CSS Off Results</title><link>http://css-tricks.com/css-off-results/</link> <comments>http://css-tricks.com/css-off-results/#comments</comments> <pubDate>Mon, 15 Mar 2010 13:30:32 +0000</pubDate> <dc:creator>Chris Coyier</dc:creator> <category><![CDATA[Article]]></category><guid isPermaLink="false">http://css-tricks.com/?p=5886</guid> <description><![CDATA[Alright so after one missed deadline, the results are here! You can browse all the scores and see peoples entries on the CSS Off results page.Winners Of course all these people did a great job. For their benefit, we&#8217;re just going to nitpick offer a little constructive criticism. 1st Place &#8211; Steven Schrab &#8211; View entry Notes: [...]]]></description> <content:encoded><![CDATA[<p>Alright so after one missed deadline, the results are here! You can browse all the scores and see peoples entries on the <a href="http://css-tricks.com/examples/CSS-OFF-2010/">CSS Off results page</a>.</p><p><a href="http://css-tricks.com/examples/CSS-OFF-2010/"><img src="http://css-tricks.com/wp-content/csstricks-uploads/cssresultsheader.png" width="570" height="200" alt="" title="" /></a></p><p><span id="more-5886"></span></p><h3>Winners</h3><p>Of course all these people did a <strong>great job</strong>. For their benefit, we&#8217;re just going to <strike>nitpick</strike> offer a little constructive criticism.</p><h4>1<sup>st</sup> Place &#8211; <a href="http://www.gsdesign.com/">Steven Schrab</a> &#8211; <a href="http://css-tricks.com/examples/CSS-OFF-2010/83/">View entry</a></h4><p><strong>Notes:</strong> Take it a little easier on the image compression. CSS image replacement on title looked good, but would be impractical.</p><h4>2<sup>nd</sup> Place &#8211; <a href="http://e26.co.uk/">Edd Sowden</a> &#8211; <a href="http://css-tricks.com/examples/CSS-OFF-2010/2/">View entry</a></h4><p><strong>Notes:</strong> IE 8 could have used some fallback alpha transparency support. IE 6 had the raw stylesheet, which usually is awesome, but would have been good to support for this contest.</p><h4>3<sup>rd</sup> Place &#8211; <a href="http://mustafaquilon.com/">Mustafa Quilon</a> &#8211; <a href="http://css-tricks.com/examples/CSS-OFF-2010/42/">View entry</a></h4><p><strong>Notes:</strong> Would have preferred a Helvetica at the top of the font stack over Gill Sans. Missed the shadows on the footer lines as they go under the article page.</p><h4>4<sup>th</sup> Place &#8211; <a href="http://www.pamgriffith.net/">Pam Griffith</a> &#8211; <a href="http://css-tricks.com/examples/CSS-OFF-2010/39/">View entry</a></h4><p><strong>Notes:</strong> The <tt>font-stretch</tt> property caused some big differences in the header type between WebKit and Gecko.</p><p>These winners have been contacted, who will then in turn select the winning commenters on the <a href="http://css-tricks.com/the-great-css-off-giveaway/">original post</a>. Once they have been selected, those people will be contacted and then prize selecting will begin.</p><h3>As a whole</h3><p>Everyone who entered should pat themselves on the back. As a whole everyone did a great job and should be proud. It was a for a good cause and good practice. I just mention this because I&#8217;m sure there will be some of you who are unhappy with their score. Don&#8217;t take it too seriously&#8230;</p><h3>Judging</h3><p>Entries were judged by myself and Doug Neiner. We each judged different alternating parts of each entry. You probably know me. Here is Doug:</p><p><img src="http://css-tricks.com/wp-content/csstricks-uploads/dougsmall.jpg" alt="" style="float: left; margin: 0 10px 2px 0;" /></p><p>Doug is a designer, developer, and owner of <a href="http://pixelgraphics.us/">Pixel Graphic Design Studio</a>. He is CTO of Fuel and blogger at <a href="http://fuelyourcoding.com/">Fuel Your Coding</a>. He also has a <a href="http://dougneiner.com/">personal website</a>.</p><div style="clear: both;"></div><p>&nbsp;</p><p>We judged on the following 100 point scale:</p><table rules="all" cellpadding="5" cellspacing="5" id="judge-table"><tr><td>Clean, Consistent Style</td><td>1 – 10 points</td><td>All code (HTML/CSS) organized and readable</td></tr><tr><td>Semantics</td><td>1 – 5 points</td><td>Smart elements and class/ID names used. Bonus for HTML5</td></tr><tr><td>Folder Organization</td><td>1 – 5 points</td><td>Structure of folder made sense and was organized</td></tr><tr><td>Matched Original Design</td><td>1 – 20 points</td><td>How close it was to original mockup in a modern browser</td></tr><tr><td>Good Choice Points</td><td>1 – 20 points</td><td>Made smart choices: things that should be text were text, the button was done in a smart flexible way, rollovers looked good, etc.</td></tr><tr><td>Modern Browser Support</td><td>1 – 10 points</td><td>Firefox 3, Safari 4</td></tr><tr><td>Slightly Outdated Browser Support</td><td>1 – 5 points</td><td>IE 7</td></tr><tr><td>Old Browser Support</td><td>1 – 5 points</td><td>IE 6</td></tr><tr><td>File Size</td><td>1 – 10 points</td><td>The largest (reasonable) entry got a 1, the smallest got a 10, then it was judged on that line</td></tr><tr><td>Image Quality</td><td>1 – 10 points</td><td>How the images looked. This was to balance the file size. Most points to entries who balanced nice images with small file sizes.</td></tr><tr><td>Total</td><td>100 max</td><td></td></tr></table><h3>Specific Problem Areas</h3><p>We were fairly lenient on fonts when it came to all the Helvetica Neue business. PC&#8217;s don&#8217;t come with that font, so if you used image replacement in the header, that was fine. Using image replacement for the article title isn&#8217;t a good idea though, so that was taken off for. I would have rather seen a wrong font than something that unflexible.</p><p>After all that judging, these are the things that tripped people up the most:</p><p><img src="http://css-tricks.com/wp-content/PROBLEMAREAS.jpg" width="570" height="466" alt="" title="" /></p><h4>1. Line Height</h4><p>There was text all over this mockup, with a variety of line-heights. This was often overlooked or misjudged. Line height is crucial for displaying text that feels good to read.</p><h4>2. Subtle Shadows</h4><p>As the three little lines went under the article box, there was a subtle shadow there.</p><h4>3. Grid</h4><p>The legs of the clock lined up nicely with the edges of the three photo boxes in the mockup. Many designs didn&#8217;t get that right. If the clock was placed in a fluid width manner yet lined up when the window size was about the size of the mockup, that was acceptable.</p><h4>4. Web text</h4><p>The text in the three &#8220;quote&#8221; boxes at the bottom was Georgia in three different colors. That definitely should have been web text sitting on top of those boxes, not an image, even if it was image replacement or had proper ALT text. Web text renders better, is easier to update, is selectable, etc.</p><h3>Interesting Entries</h3><p>None of these entries were winners, but they all did interesting stuff, check it out!</p><p><a href="http://css-tricks.com/examples/CSS-OFF-2010/103/">#103</a> &#8211; Fixed position footer and the content slides underneath it.<br /> <a href="http://css-tricks.com/examples/CSS-OFF-2010/117/">#117</a> &#8211; View source =)<br /> <a href="http://css-tricks.com/examples/CSS-OFF-2010/104/">#104</a> &#8211; One of the examples with animations for the arms of the clock<br /> <a href="http://css-tricks.com/examples/CSS-OFF-2010/58/">#58</a> &#8211; Total reinvention of the design<br /> <a href="http://css-tricks.com/examples/CSS-OFF-2010/127/">#127</a> &#8211; Maybe the only attempt at fixed positioning the clock<br /> <a href="http://css-tricks.com/examples/CSS-OFF-2010/11/">#11</a> &#8211; Used the <a href="http://css-tricks.com/jquery-magicline-navigation/">MagicLine</a></p><h3>Wrap up</h3><p>It has been a long road! The important lesson we learned from putting on the event is that it&#8217;s a lot more work that the original idea seemed to be. But we got through it! Next time we&#8217;ll be more upfront about the timeframe and have the process more ironed out. Some sponsors will be good to to keep the thing cost neutral for everyone.</p><p>If you missed it up top, the <a href="http://css-tricks.com/examples/CSS-OFF-2010/">results are here</a>.</p> ]]></content:encoded> <wfw:commentRss>http://css-tricks.com/css-off-results/feed/</wfw:commentRss> <slash:comments>100</slash:comments> </item> <item><title>New Poll: Server Side Languages</title><link>http://css-tricks.com/new-poll-server-side-languages/</link> <comments>http://css-tricks.com/new-poll-server-side-languages/#comments</comments> <pubDate>Fri, 12 Mar 2010 14:01:43 +0000</pubDate> <dc:creator>Chris Coyier</dc:creator> <category><![CDATA[Article]]></category><guid isPermaLink="false">http://css-tricks.com/?p=5889</guid> <description><![CDATA[A bit of a cookie-cutter poll this time, but sometimes those lead to the biggest and most interesting discussions. This is for the folks around here who are more of web developers than web designers: What is your server-side language of choice? Poll is on the site in the sidebar for your voting pleasure. I know many of [...]]]></description> <content:encoded><![CDATA[<p>A bit of a cookie-cutter poll this time, but sometimes those lead to the biggest and most interesting discussions. This is for the folks around here who are more of web developers than web designers:</p><blockquote><p>What is your server-side language of choice?</p></blockquote><p>Poll is on the site in the sidebar for your voting pleasure.</p><p>I know many of you probably know multiple languages. Some of you probably are forced to write in particular languages for you job. For this poll, choose the language that you actually <em>like</em> the most.</p><p><span id="more-5889"></span></p><p>And yes, I know the are more choices than in the list, that&#8217;s what &#8220;Other&#8221; is for, and I&#8217;d love to hear what those others are and why you prefer that language. For example, I&#8217;ve been hearing more and more about server-side JavaScript. Also if it&#8217;s not obvious, this is sans-framework. If you like Rails, clearly that&#8217;s Ruby. Django is Python. CodeIgnitor is PHP. Etc, etc.</p> ]]></content:encoded> <wfw:commentRss>http://css-tricks.com/new-poll-server-side-languages/feed/</wfw:commentRss> <slash:comments>205</slash:comments> </item> <item><title>Poll Results: Punctuation Inside or Out?</title><link>http://css-tricks.com/poll-results-puncation/</link> <comments>http://css-tricks.com/poll-results-puncation/#comments</comments> <pubDate>Thu, 11 Mar 2010 13:00:07 +0000</pubDate> <dc:creator>Chris Coyier</dc:creator> <category><![CDATA[Article]]></category><guid isPermaLink="false">http://css-tricks.com/?p=5876</guid> <description><![CDATA[Quite a lot of people weighed in on this poll that went out in January. The question was: Should tags like em and strong go &#60;em>(outside)&#60;/em> punctuation characters, or (&#60;strong>inside them&#60;/strong>)? Like many polls around here, the question was interesting and stirred up some great conversation, but the question itself was probably flawed. There were only two [...]]]></description> <content:encoded><![CDATA[<p>Quite a lot of people weighed in on this poll that went out <a href="http://css-tricks.com/new-poll-tagpunctuation-placement/">in January</a>. The question was:</p><blockquote><p>Should tags like em and strong go &lt;em>(outside)&lt;/em> punctuation characters, or (&lt;strong>inside them&lt;/strong>)?</p></blockquote><p>Like many polls around here, the question was interesting and stirred up some great conversation, but the question itself was probably flawed. There were only two choices: outside and inside, referring to placement of the HTML tags. So if &#8220;outside&#8221;, in the example in the question above, the parentheses would be italicized by the &lt;em> tags. If &#8220;inside&#8221;, in the same example above, the parentheses would be regular text and the text inside them would be bolded by the &lt;strong> tags.</p><p>What I was expecting was someone to chime in with the <em>&#8220;absolute official rules on the right way to do it according to the typographic gods of the land.&#8221;</em> That didn&#8217;t really happen. Instead the general consensus was <em>&#8220;it depends.&#8221;</em></p><p>As for the poll results, at the time of this writing, 6,261 people have voted and the results are 55% in favor of &#8220;inside&#8221;:</p><p><img src="http://css-tricks.com/wp-content/csstricks-uploads/insideoutsideresults.png" width="570" height="150" alt="" title="" /></p><p><span id="more-5876"></span></p><h3>It depends&#8230;</h3><p>The following examples are still debatable, but these feel like the most correct way to go, as agreeded upon by most commenters in the original poll article.</p><div class="example"> Come and see me &lt;em>today&lt;/em>!</div><p>The punctuation is left outside of the tag because the word &#8220;today&#8221; alone is what is being emphasized.</p><hr /><div class="example"> &lt;em>Holy Crap!&lt;/em> That’s a really cool blog post.</div><p>The punctuation is inside, because the whole phrase &#8220;Holy Crap!&#8221; is what is being emphasized.</p><hr /><div class="example"> Goat heads (&lt;em>see page 85&lt;/em>) are very nutritious.</div><p>There is split evidence on this one. Some would say that because that whole phrase is an &#8220;injection&#8221; into the sentence is should be grouped with the tag (outside) and all emphasized. Other more official sources say parentheses should never be emphasized. Personally I&#8217;d go outside. Seems like there could be awkward typography tension with the last letter being italic butting up against and upright parentheses.</p><hr /><div class="example"> The books title was &lt;em>Gimme! Gimme! Gimme!&lt;/em></div><p>Punctuation in book titles always go inside the tags.</p><hr /><div class="example"> Was that really Meg Ryan in &lt;em>Cherry 2000&lt;/em>?</div><p>Again it&#8217;s the title alone being emphasized, so having the question mark outside is the general consensus. I feel weird on this one, for some reason I like the opposite when it ends a sentence like this and prefer seeing the question mark follow suite with the previous words. This is a case where actually &lt;i> may be more appropriate&#8230;</p><h3>HTML5 and &lt;b> &#038; &lt;i></h3><p>Ever since I&#8217;ve been a web designer I&#8217;ve been scoffing at the use of the deprecated &lt;b> and &lt;i> tags and dutifully fixing them with the more semantic &lt;strong> and &lt;em> tags. This always made sense to me as we are applying emphasis with these tags, not any specific styling. For example, you might want to leave the text roman for a strong tag but apply a background behind it instead to call it out.</p><p>But now that we are pretty much ready to rock with HTML5, we see the &lt;b> and &lt;i> tags return. WTF, you ask? Well, that&#8217;s what I thought, until you read up and think on it a bit. HTML5 is not replacing strong and em, these are just coming back in addition to them, and all four will live in harmony. In general, you&#8217;ll still use em and strong to emphasize words in text, but you should use b and i <em>when you are bolding for the sake of bolding or italicizing for the sake of italicizing</em>.</p><p>For example, book titles in text should be italicized. Not emphasized, italicized. That is a case of italicizing for the sake of italicizing and makes more sense to use the &lt;i> tag.</p> ]]></content:encoded> <wfw:commentRss>http://css-tricks.com/poll-results-puncation/feed/</wfw:commentRss> <slash:comments>26</slash:comments> </item> <item><title>CSS Off Update</title><link>http://css-tricks.com/css-off-update-2/</link> <comments>http://css-tricks.com/css-off-update-2/#comments</comments> <pubDate>Wed, 10 Mar 2010 13:23:15 +0000</pubDate> <dc:creator>Chris Coyier</dc:creator> <category><![CDATA[Article]]></category><guid isPermaLink="false">http://css-tricks.com/?p=5869</guid> <description><![CDATA[I was telling everyone to check back Wednesday for CSS Off results. Well&#8230; #facepalm. Huge apologies, we still aren&#8217;t quite ready. As it turns out judging 136 entries is quite a huge task. The important bit: come hell or high water, results will be posted Monday. You&#8217;ll be able to browse all the entries and [...]]]></description> <content:encoded><![CDATA[<p>I was telling everyone to check back Wednesday for CSS Off results. Well&#8230; #facepalm. Huge apologies, we still aren&#8217;t quite ready. As it turns out judging 136 entries is quite a huge task. The important bit: come hell or high water, <strong>results will be posted Monday</strong>. You&#8217;ll be able to browse all the entries and see how we scored each based on the criteria we chose. So between the organization, initial judging, top entries judging, and crafting the results page&#8230;  it has been a long road. Not to mention we didn&#8217;t anticipate so many entries! Anyway, no more excuses, see you Monday with results.</p><p>I got a nice card from Doctors Without Borders from the donation made based on the number of entries, so in the meantime we can all feel good about that =).</p> ]]></content:encoded> <wfw:commentRss>http://css-tricks.com/css-off-update-2/feed/</wfw:commentRss> <slash:comments>17</slash:comments> </item> <item><title>Rabble Rabble Rabble!</title><link>http://css-tricks.com/rabble-rabble-rabble/</link> <comments>http://css-tricks.com/rabble-rabble-rabble/#comments</comments> <pubDate>Tue, 09 Mar 2010 16:50:24 +0000</pubDate> <dc:creator>Chris Coyier</dc:creator> <category><![CDATA[Article]]></category><guid isPermaLink="false">http://css-tricks.com/?p=5865</guid> <description><![CDATA[CSS3 is a big mess! 4+ rules for making a corner round or adding a drop shadow! Preposterous! Where are the standards?! I&#8217;ve been hearing a ton of that. There is something of a point here. We all like standards, no question they are a good thing for the industry. Seeing a bunch of messy/repeated code [...]]]></description> <content:encoded><![CDATA[<blockquote><p>CSS3 is a big mess! <a href="http://css3please.com/">4+ rules</a> for making a corner round or adding a drop shadow! Preposterous! Where are the standards?!</p></blockquote><p>I&#8217;ve been hearing a ton of that. There is something of a point here. We all like standards, no question they are a good thing for the industry. Seeing a bunch of messy/repeated code like CSS3 can produce doesn&#8217;t feel like the clean happy code that standards is supposed to be all about.</p><p>But here is the deal.</p><p>The specs for these things aren&#8217;t done yet. Standards move frigging slowly. Browser vendors know we want this stuff, so they don&#8217;t wait for the spec, the use vendor-specific CSS attributes so we can start using/testing them now. This is good. It means they aren&#8217;t sitting on their asses waiting for a slow train that answers to no one. When the spec does get finished, they can roll out support for it in the standard way much quicker.</p><p>In my opinion, it would be <em>worse</em> for browsers to implement the new attributes without the vendor-specific prefixes, as that would <em>actually</em> be abandoning standards.</p> ]]></content:encoded> <wfw:commentRss>http://css-tricks.com/rabble-rabble-rabble/feed/</wfw:commentRss> <slash:comments>35</slash:comments> </item> <item><title>Updates / Links</title><link>http://css-tricks.com/updates-links/</link> <comments>http://css-tricks.com/updates-links/#comments</comments> <pubDate>Tue, 09 Mar 2010 14:04:25 +0000</pubDate> <dc:creator>Chris Coyier</dc:creator> <category><![CDATA[Article]]></category><guid isPermaLink="false">http://css-tricks.com/?p=5859</guid> <description><![CDATA[If you were interested in that CSS Tabs stuff from yesterday, check out the new demo. I got a little obsessed with it and tried out a bunch more things. Still nothing I&#8217;d call a 100% perfect replacement to using JavaScript for tabs, but getting a lot cleaner and closer. I&#8217;m sure most of you read [...]]]></description> <content:encoded><![CDATA[<p>If you were interested in that CSS Tabs stuff from yesterday, <a href="http://css-tricks.com/examples/CSSTabs/">check out the new demo</a>. I got a little obsessed with it and tried out a bunch more things. Still nothing I&#8217;d call a 100% perfect replacement to using JavaScript for tabs, but getting a lot cleaner and closer.</p><p>I&#8217;m sure most of you read these sites anyway, but just in case&#8230;</p><p><span id="more-5859"></span></p><p>I thought Nettuts ran a pretty sweet article about jQuery and it&#8217;s <a href="http://net.tutsplus.com/tutorials/javascript-ajax/uncovering-jquerys-hidden-features/">hidden features</a> by James Padolsey. For example, I always forget how awesomely easy it is to serialize from inputs (like for AJAX submission). Serialize = find all the inputs in the form and build a query string with the name/value pairs, instead of doing all that yourself/hard coding it.</p><p>Then Smashing Magazine ran a great one by Andy Rutledge answering <a href="http://www.smashingmagazine.com/2010/03/08/common-questions-about-design-professionalism/">common questions about design professionalism</a>. Andy is an opinionated dude and I love how he dished out some hard facts here. For example, if you are asking questions like &#8220;I&#8217;m just staring freelancing and I&#8217;m wondering how I can get more clients&#8230;&#8221; then you probably shouldn&#8217;t be freelancing. Plus, a heaping helping of personal responsibility.</p><p>Jeff Starr over on Digging Into WordPress wrote up a nice guide on <a href="http://digwp.com/2010/03/add-plugin-to-wordpress-plugin-repository/">getting a plugin into the official plugin repository</a>. I&#8217;m a little disappointed in myself I&#8217;ve never done this before. I&#8217;m not much of a deep backend dude, but still, I have a few ideas that I think would make cool plugins.</p><p>I&#8217;m gonna close comments here just because anything that needs to be said about any of these things is probably best said at that article.</p> ]]></content:encoded> <wfw:commentRss>http://css-tricks.com/updates-links/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss><!-- This site's performance optimized by W3 Total Cache. Dramatically improve the speed and reliability of your blog!

Learn more about our WordPress Plugins: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced)
Database Caching 10/24 queries in 0.015 seconds using apc
Content Delivery Network via cdn.css-tricks.com

Served from: css-tricks.com @ 2010-03-19 05:40:20 -->
