<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ajax Bestiary &#187; CSS</title>
	<atom:link href="http://www.ajaxbestiary.com/category/css/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ajaxbestiary.com</link>
	<description>AJAX Development, News, Techniques &#38; More</description>
	<lastBuildDate>Wed, 01 Feb 2012 12:46:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Grids a la CANVAS</title>
		<link>http://www.ajaxbestiary.com/2011/12/29/grids-a-la-canvas/</link>
		<comments>http://www.ajaxbestiary.com/2011/12/29/grids-a-la-canvas/#comments</comments>
		<pubDate>Thu, 29 Dec 2011 12:00:14 +0000</pubDate>
		<dc:creator>Dave Mahon</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[grid]]></category>
		<category><![CDATA[html5]]></category>

		<guid isPermaLink="false">http://www.ajaxbestiary.com/?p=556</guid>
		<description><![CDATA[There are lots of grid libraries out there. Naturally, this means we need to reinvent the wheel. With HTML5, we have a fantastic new tool called the CANVAS tag which frees us from the limitations of CSS. The canvas tag is beautifully documented and supported on most modern browsers. Further, aside from IE 6-8, the [...]]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p>There are lots of <a href="http://gridr.atomeye.com/">grid</a> <a href="http://twitter.github.com/bootstrap/">libraries</a> <a href="http://blueprintcss.org/">out</a> <a href="http://developer.yahoo.com/yui/grids/">there</a>. Naturally, this means we need to reinvent the wheel. With HTML5, we have a fantastic new tool called the CANVAS tag which frees us from the limitations of CSS.</p>
<p>The canvas tag is <a href="http://blog.nihilogic.dk/2009/02/html5-canvas-cheat-sheet.html">beautifully documented</a> and <a href="http://en.wikipedia.org/wiki/Canvas_element#Support">supported on most modern browsers</a>. Further, aside from IE 6-8, the vast majority of the browsers support the element <strong>as it is defined</strong>, which means we don&#8217;t need wrapping libraries to deal with browser quirks.</p>
<p>Using all of these libraries as baselines, there are a few essential pieces of functionality:<br />
We must be dimension agnostic. Whether our space is 480px or 2560px wide, it should work well<br />
We must support any number of columns<br />
We must support <em>n</em>-wide columns<br />
We must support arbitrary gutter sizes<br />
We must get results consistent with those other libraries</p>
<p>To that end, I present the grid() function. It returns an object with an array of offsets, as well as plenty of other information that facilitates writing still more content to the canvas (or advanced features like simulating sub-columns). It has no library dependencies, although it currently does not gracefully handle older browsers.</p>
<p>Basic usage is simple:<br />
<code>
<pre>result = AB.grid(canvas, 16, 20);</pre>
<p></code></p>
<p>This one line takes the canvas element specified in the first parameter and divides it into 16 columns separated by 20 pixel gutters. The function returns an object that looks like this:</p>
<p><code>
<pre>
{
   cols: 16,
   element: canvas#tutorial,
   gutter: 20,
   offsets: [0, 60, 120, ..., 900],
   width: 40
}
</pre>
<p></code></p>
<p>You can also pass arrays:<br />
<code>
<pre>result = AB.grid(canvas, [1, 3, 1], 10);</pre>
<p></code></p>
<p>This divides the element into a 20% panel on the left and right and 60% in the middle. Now our response looks like this:</p>
<p><code>
<pre>
{
   cols: 3,
   element: canvas#tutorial,
   gutter: 20,
   offsets: [0, 194, 756],
   width: 186
}
</pre>
<p></code></p>
<p>Let&#8217;s go changing the colors:<br />
<code>
<pre>result = AB.grid(canvas, [1, 4], 10, { foreground: '#CCC', background: '#EEE' });</pre>
<p></code></p>
<p>Need to pad the outer margins as well?<br />
<code>
<pre>result = AB.grid(canvas, [1, 4], 10, { includeOuter: true });</pre>
<p></code></p>
<p>Maybe we just want to simulate the arithmetic, without drawing anything?<br />
<code>
<pre>result = AB.grid(canvas.width, [1, 4], 10);</pre>
<p></code></p>
<p>This would also work:<br />
<code>
<pre>result = AB.grid(canvas, [1, 4], 10, { overrideWidth: canvas.width });</pre>
<p></code></p>
<p>Now you&#8217;re probably saying that this is all well and good, but why bother when we are already using a CSS layout library for the site in general? Aside from making it easier to construct graphs, we can also use this to generate perfectly sized images within the client.</p>
<p>The following three lines will create an image tag from a canvas and do it faster than the human eye can detect:</p>
<p><code>
<pre>
var img = document.createElement('img');
img.setAttribute('src', canvas.toDataURL());
document.getElementsByTagName('body')[0].appendChild(img);
</pre>
<p></code></p>
<p>You could almost as easily assign it as a background image (here I am finally employing jQuery):<br />
<code>
<pre>
$('body').css('background', 'url(' + canvas.toDataURL() + ')');
</pre>
<p></code></p>
<p>Note that you must wrap the image data in the strings <code>url(</code> and <code>)</code> for this to work.</p>
<p>Check out the code on <a href="https://github.com/ajaxbestiary/ajaxbestiary.github.com">GitHub</a>.</p>
<p><img src="http://www.ajaxbestiary.com/?voyeur=1"></p>
<!-- google_ad_section_end -->
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxbestiary.com/2011/12/29/grids-a-la-canvas/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CSS and mobile device orientation</title>
		<link>http://www.ajaxbestiary.com/2011/12/19/css-and-mobile-device-orientation/</link>
		<comments>http://www.ajaxbestiary.com/2011/12/19/css-and-mobile-device-orientation/#comments</comments>
		<pubDate>Mon, 19 Dec 2011 22:52:52 +0000</pubDate>
		<dc:creator>Dave Mahon</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[orientation]]></category>

		<guid isPermaLink="false">http://www.ajaxbestiary.com/?p=551</guid>
		<description><![CDATA[As frustrating as dealing with mobile device orientation can be for event handling, it&#8217;s very easy with CSS. For example, it is entirely feasible to rotating the screen to display alternate content within your mobile web app. Let&#8217;s create a small sample document. &#60;body&#62; &#60;div class=&#34;landscape&#34;&#62; Visible Only in Landscape &#60;/div&#62; &#60;div class=&#34;portrait&#34;&#62; Visible Only [...]]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p>As frustrating as dealing with mobile device orientation can be for <a href="http://www.ajaxbestiary.com/2011/12/15/tilt-the-joys-of-mobile-web/" title="Tilt: The “joys” of mobile web">event handling</a>, it&#8217;s very easy with CSS.</p>
<p>For example, it is entirely feasible to rotating the screen to display alternate content within your mobile web app.</p>
<p>Let&#8217;s create a small sample document.</p>
<p><code>
<pre>
&lt;body&gt;
  &lt;div class=&quot;landscape&quot;&gt;
    Visible Only in Landscape
  &lt;/div&gt;
  &lt;div class=&quot;portrait&quot;&gt;
    Visible Only in Portrait
  &lt;/div&gt;
&lt;/body&gt;
</pre>
<p></code></p>
<p>Now let&#8217;s add the CSS rules:</p>
<p><code>
<pre>
@media only screen and (orientation: landscape) {
  .landscape {
    display: block;
  }

  .portrait {
    display: none;
  }
}
@media only screen and (orientation: portrait) {
  .landscape {
    display: none;
  }

  .portrait {
    display: block;
  }
}
</pre>
<p></code></p>
<p>It&#8217;s incredibly simple and you&#8217;ve now offloaded this handling to the browser. These selectors are currently supported on iOS and Android, so you can trust that it will work reliably.</p>
<p><img src="http://www.ajaxbestiary.com/?voyeur=1"></p>
<!-- google_ad_section_end -->
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxbestiary.com/2011/12/19/css-and-mobile-device-orientation/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Getting Started With Chrome Frame</title>
		<link>http://www.ajaxbestiary.com/2011/06/06/getting-started-with-chrome-frame/</link>
		<comments>http://www.ajaxbestiary.com/2011/06/06/getting-started-with-chrome-frame/#comments</comments>
		<pubDate>Tue, 07 Jun 2011 02:47:24 +0000</pubDate>
		<dc:creator>Don Albrecht</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Chrome frame]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Trident]]></category>

		<guid isPermaLink="false">http://www.ajaxbestiary.com/?p=416</guid>
		<description><![CDATA[As a follow up to my last post, I thought I&#8217;d put out an instruction on actually creating a Google Chrome retreat. Step 1: Add a Chrome Frame header to your site. Add this to the head of the Chrome Frame dependent pages: &#60;meta http-equiv="X-UA-Compatible" content="chrome=1"&#62;. If this isn&#8217;t practical, You can also configure your [...]]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p>As a follow up to my last post, I thought I&#8217;d put out an instruction on actually creating a Google Chrome retreat.</p>
<h3>Step 1: Add a Chrome Frame header to your site.</h3>
<p>Add this to the head of the Chrome Frame dependent pages:</p>
<p><code>&lt;meta</code> <code>http-equiv</code><code>=</code><code>"X-UA-Compatible"</code> <code>content</code><code>=</code><code>"chrome=1"</code><code>&gt;. </code></p>
<p>If this isn&#8217;t practical, You can also configure your server to send an HTTP header of</p>
<p><code>X-UA-Compatible: </code><code>chrome=1</code></p>
<p>I advise against this approach, however because server configs won&#8217;t be immediately available to other users on a site.  By its nature, a Chrome Frame retreat should be considered a reasonably unique event.  It&#8217;s good to clearly document this dependency for anyone else who may need to debug things later.  Once you&#8217;ve started to retreat, make sure you&#8217;re applying the header to every page of the site.  The two engines render things differently and you may create an inconsistent experience for your users if they are transitioning between Chrome Frame and Trident environments frequently.  In my experience, border-radius and drop shadow toggling on and off is a pretty strong &#8220;It&#8217;s Broken&#8221; signal for end users.</p>
<p>Step 2: Identify your Dependency Wall.</p>
<ol>
<li>Identify the range of pages / screens in your web app that you can&#8217;t support in IE.</li>
<li>Identify the navigation routes to those pages.</li>
<li>Leverage the routes to find natural locations for gatekeepers.
<ol>
<li>
<ol>
<li>Login Screens (the perfect location)</li>
<li>Tutorial Screens (A natural context fit for users)</li>
<li>An Advanced Mode (Similar to the &#8220;enriched mode&#8221; Microsoft uses for ActiveX requiring cloud apps).</li>
</ol>
</li>
</ol>
<ul>
<li>If you&#8217;re lucky, this will be a screen somewhere beyond your conversion pipeline.</li>
</ul>
</li>
<li>Create an interception event for IE users.  You can bake this into your app, but the easy way is with conditional comments.
<ol>
<li>Identify the Dom Nodes in your layout that must be presented to the user for them to progress.</li>
<li>&lt;div id=&#8217;loginbox&#8217;&gt;&#8230;&lt;/div&gt;</li>
<li>Create a conditional comment to hide the nodes and prompt the user to install Chrome Frame.</li>
</ol>
<ol>
<li>Be careful of z-index.  The chrome install iframe doesn&#8217;t work well if IE is floating some other content node on top of the install button.</li>
<li>UN-INSTALL chrome frame once you&#8217;ve tested your retreat perimeter.  This is a big deal for ongoing development as you won&#8217;t be testing in IE otherwise.</li>
<li>Becareful about your conversion pipeline.  Your key selling points may be behind the perimeter, but the act of demanding Chrome Frame is a pretty severe barrier to forward movement.</li>
</ol>
</li>
<p><code>&lt;html&gt;<br />
&lt;body&gt; &lt;div id='prompt'&gt;&lt;/div&gt;</code><code> &lt;!--[if IE]&gt;</code><br />
<code> &lt;script</code> <code>type</code><code>=</code><code>"text/javascript"</code><br />
<code> src</code><code>=</code><code>"http://ajax.googleapis.com/ajax/libs/chrome-frame/1/CFInstall.min.js"</code><code>&gt;</code><code>&lt;/script&gt;</code><br />
<code> &lt;style&gt;<br />
#loginBox{<br />
display:none;<br />
}<br />
&lt;/style&gt; </code><span style="color: #351c75;"></span><br />
<code> &lt;script&gt; </code></p>
<p><code> window.attachEvent("onload", function() {</code><br />
<code> </code><code>CFInstall</code><code>.</code><code>check</code><code>({</code><br />
<code> mode: </code><code>"inline"</code><code>, </code><br />
<code> </code><code>}); </code> });<br />
<code> &lt;/script&gt; </code><code> &lt;![endif]--&gt;</code><br />
<code>&lt;/body&gt;<br />
&lt;/html&gt;</code></p>
<h3>Other Lessons Learned</h3>
<p>Here&#8217;s a few lessons learned from deploying this.</p>
<p>&nbsp;</ol>
<p><img src="http://www.ajaxbestiary.com/?voyeur=1"></p>
<!-- google_ad_section_end -->
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxbestiary.com/2011/06/06/getting-started-with-chrome-frame/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A Great Pure CSS Timeline Implementation</title>
		<link>http://www.ajaxbestiary.com/2009/07/12/a-great-pure-css-timeline-implementation/</link>
		<comments>http://www.ajaxbestiary.com/2009/07/12/a-great-pure-css-timeline-implementation/#comments</comments>
		<pubDate>Sun, 12 Jul 2009 11:21:38 +0000</pubDate>
		<dc:creator>Don Albrecht</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Widget]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[timeline]]></category>

		<guid isPermaLink="false">http://www.ajaxbestiary.com/?p=455</guid>
		<description><![CDATA[Matt Bango has published a pretty awesome pure css timeline visualization.  Best part about it is that he&#8217;s documented it QUITE well. A few key concepts: The width of the nodes is pre-populated in the CSS The display is based on a pair of UL&#8217;s one for the timeline elements and one for the intervals [...]]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p>Matt Bango has published a pretty awesome pure css timeline visualization.  Best part about it is that he&#8217;s documented it QUITE well.</p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" title="MattBango CSS.png" src="http://www.ajaxbestiary.com/wp-content/uploads/2011/11/MattBango-CSS.png" alt="Pure CSS Timeline" width="400" height="119" border="0" /></p>
<p>A few key concepts:</p>
<ul>
<li>The width of the nodes is pre-populated in the CSS</li>
<li>The display is based on a pair of UL&#8217;s one for the timeline elements and one for the intervals at the bottom.</li>
<li>Width is allowed to be specified in a style attribute on the individual nodes</li>
</ul>
<p>There&#8217;s some pretty clear opportunities to automate the creation of this widget in javascript that I hope to circle back to some day.  In the mean time, you can check out the article and demo here:</p>
<p><a href="http://meyerweb.com/eric/thoughts/2008/01/21/structured-timeline/">http://mattbango.com/notebook/web-development/pure-css-timeline/</a></p>
<p><img src="http://www.ajaxbestiary.com/?voyeur=1"></p>
<!-- google_ad_section_end -->
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxbestiary.com/2009/07/12/a-great-pure-css-timeline-implementation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eric Meyer&#8217;s Structured Timeline From A Table</title>
		<link>http://www.ajaxbestiary.com/2008/01/28/eric-meyers-structured-timeline-from-a-table/</link>
		<comments>http://www.ajaxbestiary.com/2008/01/28/eric-meyers-structured-timeline-from-a-table/#comments</comments>
		<pubDate>Mon, 28 Jan 2008 11:39:05 +0000</pubDate>
		<dc:creator>Don Albrecht</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Widget]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[timeline]]></category>

		<guid isPermaLink="false">http://www.ajaxbestiary.com/?p=459</guid>
		<description><![CDATA[Eric Meyer recently posted an interesting take on marking up and styling a timeline from static html.  In his case, a table was used to present a timeline featuring multiple points in a single swim lane. Cool Trick Working my way through his description of the code, I was most impressed by his creative use [...]]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p>Eric Meyer recently posted an interesting take on marking up and styling a timeline from static html.  In his case, a table was used to present a timeline featuring multiple points in a single swim lane.</p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" title="EricMeyer Structured Timeline.png" src="http://www.ajaxbestiary.com/wp-content/uploads/2011/11/EricMeyer-Structured-Timeline.png" alt="Eric Meyer Timeline" width="600" height="221" border="0" /></p>
<h3>Cool Trick</h3>
<p>Working my way through his description of the code, I was most impressed by his creative use of title attributes in the CSS. Basically, by writing  CSS rules of the form:</p>
<p><code>#timeline p[title~="August"] {left: 62%;}</code></p>
<p>He uses the [title~="MonthName"] to determine where in terms of 1/12 of the year, the dot representing the event should be placed within the block representing the year.  This only requires the creation of 12 css rules for accurate placement. Since the title is standardized to be the date of the event, this allows him to take his queue for visual layout straight from the content being provided to the user.  Definitely a useful trick.</p>
<p>You can check out Eric Meyer&#8217;s Structured Timeline here:</p>
<p><a href="http://meyerweb.com/eric/thoughts/2008/01/21/structured-timeline/">http://meyerweb.com/eric/thoughts/2008/01/21/structured-timeline/</a></p>
<p>&nbsp;</p>
<p><img src="http://www.ajaxbestiary.com/?voyeur=1"></p>
<!-- google_ad_section_end -->
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxbestiary.com/2008/01/28/eric-meyers-structured-timeline-from-a-table/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blueprint Layout Tool 0.4 New URL, Significant Polish</title>
		<link>http://www.ajaxbestiary.com/2008/01/07/blueprint-layout-tool-04-new-url-significant-polish/</link>
		<comments>http://www.ajaxbestiary.com/2008/01/07/blueprint-layout-tool-04-new-url-significant-polish/#comments</comments>
		<pubDate>Mon, 07 Jan 2008 14:33:33 +0000</pubDate>
		<dc:creator>Don Albrecht</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Site Announcements]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Blueprint]]></category>
		<category><![CDATA[Blueprint CSS]]></category>
		<category><![CDATA[Blueprint Layout Tool]]></category>

		<guid isPermaLink="false">http://www.ajaxbestiary.com/2008/01/07/blueprint-layout-tool-04-new-url-significant-polish/</guid>
		<description><![CDATA[I&#8217;m pleased to announce a preview release of Blueprint Layout Tool 0.4. This version marks the migration of BLT to its own site at http://www.blueprintlayouttool.com and a focus on dramatic improvements to the source view. Unfortunately, the current development version only supports Firefox, IE, Opera &#38; Safari support will be coming soon. Key Features: Improvements [...]]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p> <img src="http://www.ajaxbestiary.com/wp-content/uploads/2008/01/blt4source-thumb.jpg" style="border-width: 0px" alt="BLT4source" border="0" height="182" width="520" /></p>
<p><img src="http://www.ajaxbestiary.com/wp-content/uploads/2008/01/blt4layout-thumb.jpg" style="border-width: 0px" alt="BLT4layout" border="0" height="162" width="520" />  I&#8217;m pleased to announce a preview release of Blueprint Layout Tool 0.4.  This version marks the migration of BLT to its own site at <a href="http://www.blueprintlayouttool.com">http://www.blueprintlayouttool.com</a> and a focus on dramatic improvements to the source view.  Unfortunately, the current development version only supports Firefox,  IE, Opera &amp; Safari support will be coming soon.</p>
<p><strong>Key Features:</strong></p>
<ul>
<li><font color="#333333">Improvements to style and polish of the interface</font></li>
<li><font color="#333333">Dramatic improvements to source view (Powered by CodePress &amp; PHPTidy)</font>
<ul>
<li><font color="#333333">Generated Source is well formatted and polished</font></li>
<li><font color="#333333">Generated Source is Syntax Highlighted</font></li>
<li><font color="#333333">Generated Source is cleaned of most extraneous markup</font></li>
</ul>
</li>
</ul>
<p><strong>Known Issues:</strong></p>
<ul>
<li><font color="#333333">Source View does not work in Safari and Opera</font></li>
<li><font color="#333333">Formatting is off in IE</font></li>
<li><font color="#333333">Generated source contains several Mozilla specific tags that still need to be cleaned.</font></li>
</ul>
<p>I would also like to take a few moments and draw your attention to Christian Montoya&#8217;s Blueprint Constructor application.  He takes a different approach to the interface and design of the Layout Tool and has created something quite useful and fun to use.  We will be working together to try and achieve similar conventions between our apps.</p>
<p>Check out Constructor at <a href="http://lab.christianmontoya.com/construct/" title="http://lab.christianmontoya.com/construct/">http://lab.christianmontoya.com/construct/</a></p>
<p>You can read about his design process on his blog at <a href="http://www.christianmontoya.com/2007/12/08/construct-01-alpha/" title="http://www.christianmontoya.com/2007/12/08/construct-01-alpha/">http://www.christianmontoya.com/2007/12/08/construct-01-alpha/</a></p>
<p><img src="http://www.ajaxbestiary.com/?voyeur=1"></p>
<!-- google_ad_section_end -->
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxbestiary.com/2008/01/07/blueprint-layout-tool-04-new-url-significant-polish/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Introducing SilkSprite 2.0 Same Great Icons, 46% less Bandwidth</title>
		<link>http://www.ajaxbestiary.com/2007/12/17/introducing-silksprite-20-same-great-icons-46-less-bandwidth/</link>
		<comments>http://www.ajaxbestiary.com/2007/12/17/introducing-silksprite-20-same-great-icons-46-less-bandwidth/#comments</comments>
		<pubDate>Mon, 17 Dec 2007 13:44:09 +0000</pubDate>
		<dc:creator>Don Albrecht</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Blueprint]]></category>
		<category><![CDATA[Labs]]></category>
		<category><![CDATA[Release]]></category>
		<category><![CDATA[SilkSprite]]></category>

		<guid isPermaLink="false">http://www.ajaxbestiary.com/2007/12/17/introducing-silksprite-20-same-great-icons-46-less-bandwidth/</guid>
		<description><![CDATA[Today I&#8217;m pleased to announce the release of SilkSprite 2.0.  Everything about SilkSprite stays the same but the decompressed file size drops by an astounding 46%. Key Improvements 11% decrease in size for sprite.css 50% decrease in size for sprites.png My special thanks go out to Andrew France for achieving such amazing compression of the [...]]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p>Today I&#8217;m pleased to announce the release of SilkSprite 2.0.  Everything about SilkSprite stays the same but the decompressed file size drops by an astounding 46%.</p>
<p><strong>Key Improvements </strong></p>
<ul>
<li>11% decrease in size for sprite.css</li>
<li>50% decrease in size for sprites.png</li>
</ul>
<p>My special thanks go out to <a href="http://avito.co.uk/">Andrew France</a> for achieving such amazing compression of the png file.</p>
<p>You can find the new version here:</p>
<p><a href="http://www.ajaxbestiary.com/Labs/SilkSprite/">http://www.ajaxbestiary.com/Labs/SilkSprite/ </a></p>
<p><img src="http://www.ajaxbestiary.com/?voyeur=1"></p>
<!-- google_ad_section_end -->
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxbestiary.com/2007/12/17/introducing-silksprite-20-same-great-icons-46-less-bandwidth/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Blueprint Layout Tool 0.3</title>
		<link>http://www.ajaxbestiary.com/2007/12/02/blueprint-layout-tool-03/</link>
		<comments>http://www.ajaxbestiary.com/2007/12/02/blueprint-layout-tool-03/#comments</comments>
		<pubDate>Sun, 02 Dec 2007 23:43:39 +0000</pubDate>
		<dc:creator>Don Albrecht</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[]]></category>
		<category><![CDATA[Blueprint]]></category>
		<category><![CDATA[Blueprint CSS]]></category>
		<category><![CDATA[Blueprint Layout Tool]]></category>

		<guid isPermaLink="false">http://www.ajaxbestiary.com/2007/12/02/blueprint-layout-tool-03/</guid>
		<description><![CDATA[I&#8217;ve made some progress and BLT in the last week and thought it has reached a good point to release for feedback. New Features Border Support All columns can be resized by clicking on them (even nested columns) All columns can be selected by clicking on them New Properties Panel Control Border &#38; Last attributes [...]]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p><img src="http://www.ajaxbestiary.com/wp-content/uploads/2007/12/blt3-thumb.jpg" style="border: 0px none " alt="BLT3" border="0" height="135" width="520" /></p>
<p>I&#8217;ve made some progress and BLT in the last week and thought it has reached a good point to release for feedback.</p>
<p><strong>New Features</strong></p>
<ul>
<li>Border Support</li>
<li>All columns can be resized by clicking on them (even nested columns)</li>
<li>All columns can be selected by clicking on them</li>
<li>New Properties Panel
<ul>
<li>Control Border &amp; Last attributes</li>
<li>Change ID on any div</li>
</ul>
</li>
<li>Improved sorting</li>
</ul>
<p>Please post your comments below.<br />
Get it online here:</p>
<p><a href="http://www.ajaxbestiary.com/Labs/BLT2/index.htm">http://www.ajaxbestiary.com/Labs/BLT2/ </a></p>
<p>Known Issues:</p>
<ul>
<li>Interface doesn&#8217;t work well on narrow screens</li>
<li>Occasional problems with sorts falling outside of the page</li>
<li>Output needs dramatic cleanup</li>
<li>Files need minified &amp; optimized to improve download time &amp; performance</li>
<li>Issues remain with formatting &amp; .png rendering on IE.  I hope to address these ASAP.</li>
</ul>
<p><font color="#000000">This version has been tested in safari 3, FF 2 &amp; IE 7.  Please test in other browsers if possible.</font></p>
<p><img src="http://www.ajaxbestiary.com/?voyeur=1"></p>
<!-- google_ad_section_end -->
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxbestiary.com/2007/12/02/blueprint-layout-tool-03/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Slick CSS Based Menu From CSS Play</title>
		<link>http://www.ajaxbestiary.com/2007/11/26/slick-css-based-menu-from-css-play/</link>
		<comments>http://www.ajaxbestiary.com/2007/11/26/slick-css-based-menu-from-css-play/#comments</comments>
		<pubDate>Mon, 26 Nov 2007 16:08:33 +0000</pubDate>
		<dc:creator>Don Albrecht</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Widget]]></category>
		<category><![CDATA[Menu]]></category>

		<guid isPermaLink="false">http://www.ajaxbestiary.com/2007/11/26/slick-css-based-menu-from-css-play/</guid>
		<description><![CDATA[Stu Nicolls released this excellent CSS menu.  It&#8217;s javascript free and provides incredibly rich interaction for something solely CSS based. Check it out here: http://www.cssplay.co.uk/menus/pro_drop6#nogo53 ]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p><img src="http://www.ajaxbestiary.com/wp-content/uploads/2007/11/promenu6.png" alt="CSSPlay Pro Menu" /></p>
<p>Stu Nicolls released this excellent CSS menu.  It&#8217;s javascript free and provides incredibly rich interaction for something solely CSS based.</p>
<p>Check it out here: <a href="http://www.cssplay.co.uk/menus/pro_drop6#nogo53">http://www.cssplay.co.uk/menus/pro_drop6#nogo53 </a></p>
<p><img src="http://www.ajaxbestiary.com/?voyeur=1"></p>
<!-- google_ad_section_end -->
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxbestiary.com/2007/11/26/slick-css-based-menu-from-css-play/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Blueprint Layout Tool 0.2.1</title>
		<link>http://www.ajaxbestiary.com/2007/11/15/blueprint-layout-tool-021/</link>
		<comments>http://www.ajaxbestiary.com/2007/11/15/blueprint-layout-tool-021/#comments</comments>
		<pubDate>Thu, 15 Nov 2007 05:30:49 +0000</pubDate>
		<dc:creator>Don Albrecht</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Blueprint CSS]]></category>
		<category><![CDATA[Blueprint Layout Tool]]></category>

		<guid isPermaLink="false">http://www.ajaxbestiary.com/2007/11/15/blueprint-layout-tool-021/</guid>
		<description><![CDATA[I&#8217;ve posted a bug fix release to the Layout Tool. Changes: Dramatic improvements to selecting Fixed script error for IE 7. Known Issues: There are still major issues with IE 7 and it doesn&#8217;t work well in IE 6 yet.  If anyone has a clue why the color of the div gets progressively darker in [...]]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p>I&#8217;ve posted a bug fix release to the Layout Tool.</p>
<p>Changes:</p>
<ul>
<li>Dramatic improvements to selecting</li>
<li>Fixed script error for IE 7.</li>
</ul>
<p>Known Issues:</p>
<p>There are still major issues with IE 7 and it doesn&#8217;t work well in IE 6 yet.  If anyone has a clue why the color of the div gets progressively darker in IE 7, I&#8217;d appreciate it.</p>
<p>You can testdrive the new version at:</p>
<p><a href="http://www.ajaxbestiary.com/Labs/BLT2/index.htm">http://www.ajaxbestiary.com/Labs/BLT2/index.htm</a></p>
<p><img src="http://www.ajaxbestiary.com/?voyeur=1"></p>
<!-- google_ad_section_end -->
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxbestiary.com/2007/11/15/blueprint-layout-tool-021/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

