<?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>Jeez Tech &#187; Design</title>
	<atom:link href="http://jeez.eu/category/design/feed/" rel="self" type="application/rss+xml" />
	<link>http://jeez.eu</link>
	<description>Jeez Aggressive Technology</description>
	<lastBuildDate>Mon, 24 May 2010 13:41:51 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='jeez.eu' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
		<item>
		<title>Google Visualizations From A To Z</title>
		<link>http://jeez.eu/2009/10/19/google-visualizations-from-a-to-z/</link>
		<comments>http://jeez.eu/2009/10/19/google-visualizations-from-a-to-z/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 20:26:23 +0000</pubDate>
		<dc:creator>Kerasiotis Vasileios</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Service]]></category>
		<category><![CDATA[Visualization]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://jeez.eu/?p=642</guid>
		<description><![CDATA[Google has released an API that you can use to create nifty visualizations for your webpages and applications. [...]]]></description>
			<content:encoded><![CDATA[<p>Google has released an API that you can use to create nifty visualizations for your webpages and applications. So basicaly it is an easy way to present data in ways like :</p>
<p><strong>Piecharts</strong></p>
<p><a href="http://jeez.eu/wp-content/uploads/2009/10/pie1.png" rel="lightbox[642]"><img class="alignnone size-full wp-image-644" title="pie" src="http://jeez.eu/wp-content/uploads/2009/10/pie1.png" alt="pie" width="394" height="208" /></a></p>
<p><strong>Barcharts</strong></p>
<p><a href="http://jeez.eu/wp-content/uploads/2009/10/bars1.png" rel="lightbox[642]"><img class="alignnone size-full wp-image-646" title="bars" src="http://jeez.eu/wp-content/uploads/2009/10/bars1.png" alt="bars" width="324" height="127" /></a></p>
<p><strong>Radar Charts</strong></p>
<p><a href="http://jeez.eu/wp-content/uploads/2009/10/radar.png" rel="lightbox[642]"><img class="alignnone size-full wp-image-647" title="radar" src="http://jeez.eu/wp-content/uploads/2009/10/radar.png" alt="radar" width="218" height="199" /></a></p>
<p>and many more interesting ways.</p>
<p>So, lets see how we can use this great API to display our data in a more informative way. For demonstration purposes, we will create a simple page where some statistics will be presented using the API. The statistics will be pulled from a spreadsheet that we have previously uploaded to the Google Docs service with simple SQL like queries. The application will look like this:</p>
<p><a href="http://jeez.eu/wp-content/uploads/2009/10/appwire1.png" rel="lightbox[642]"><img class="alignnone size-large wp-image-648" title="appwire" src="http://jeez.eu/wp-content/uploads/2009/10/appwire1-600x450.png" alt="appwire" width="600" height="450" /></a></p>
<p>We will be able to select the visualization type to use from the dropbox and the visualization will be displayed in the big white box.</p>
<h3>Creating the Spreadsheet</h3>
<p>Nothing special here. We will just create a simple spreadsheet with some fictional values. Then we will link this spreadsheet to our application.</p>
<p>Go to <a title="Google Docs" href="http://docs.google.com/" target="_blank">Google Docs</a> and create a new spreadsheet. We will name it vistutorial and it will have 4 columns :</p>
<ul>
<li>Name</li>
<li>Age</li>
<li>Salary</li>
<li>Programming Language</li>
</ul>
<p>The spreadsheet will look like this:</p>
<p><a href="http://jeez.eu/wp-content/uploads/2009/10/vistutorial.png" rel="lightbox[642]"><img class="alignnone size-large wp-image-650" title="vistutorial" src="http://jeez.eu/wp-content/uploads/2009/10/vistutorial-600x292.png" alt="vistutorial" width="600" height="292" /></a></p>
<p>Now we need to get the URL that we will use to our application. Select the cells you want to be visible, go to <strong>Insert</strong>-&gt;<strong>Gadget </strong>and select any gadget from the list. Any gadget will do. Click on the &#8220;<strong>Apply and Close</strong>&#8221; button and the gadget will be displayed in a floating window. On the upper right corner of the gadget window, you can see an arrow, click on it and select &#8220;get query data source url&#8221;. The URL to use in our application will be displayed. Copy this URL and note it somewhere.</p>
<h3>Using Visualizations</h3>
<p>All you need to use Google visualizations  is to: load some JavaScript files provided by Google, create a Div layer in your page and draw the visualization. This can be better shown in a 1-2-3 steps example:</p>
<p>1) Load Libraries:</p>
<pre class="brush: jscript;">&lt;script type=&quot;text/javascript&quot; src=&quot;http://www.google.com/jsapi&quot;&gt;&lt;/script&gt;</pre>
<p>2) Create the visualization container:</p>
<pre class="brush: xml;">&lt;div id=&quot;chart_div&quot;&gt;&lt;/div&gt;</pre>
<p>3) Draw the visualization:</p>
<pre class="brush: jscript;">
//Load the visualization library with the visualization packages that we will use
google.load('visualization', '1', {'packages':['piechart','table', 'linechart','motionchart','ImageChart','gauge']});
//Draw the piechart with our data
var chart = new google.visualization.PieChart(document.getElementById('vis_chart'));
 chart.draw(data, {width: 700, height: 340, is3D: true});
</pre>
<h3>Implementing Visualizations to Our App</h3>
<p>The first thing we need to do is to create our application&#8217;s layout.</p>
<p><strong>HTML</strong>:</p>
<pre class="brush: xml;">&lt;html&gt;
&lt;title&gt;Google Visualization Tutorial&lt;/title&gt;
 &lt;head&gt;
 &lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;css/styles.css&quot;&gt;
 &lt;script type=&quot;text/javascript&quot; src=&quot;http://www.google.com/jsapi&quot;&gt;&lt;/script&gt;

 &lt;script type=&quot;text/javascript&quot; src=&quot;js/scripts.js&quot;&gt;&lt;/script&gt;
 &lt;script type=&quot;text/javascript&quot;&gt;
 // Load the Visualization API and the piechart package.
 google.load('visualization', '1', {'packages':['piechart','table', 'linechart','motionchart','ImageChart']});
 &lt;/script&gt;
 &lt;/head&gt;
 &lt;body&gt;
 &lt;div id=&quot;container&quot;&gt;
 &lt;div id=&quot;header&quot;&gt;
 &lt;select onChange=&quot;initialize();&quot; id=&quot;visualization&quot;&gt;
 &lt;option value=&quot;PieChart&quot;&gt;Piechart&lt;/option&gt;
 &lt;option value=&quot;Table&quot;&gt;Table&lt;/option&gt;
 &lt;option value=&quot;LineChart&quot;&gt;Linechart&lt;/option&gt;
 &lt;option value=&quot;MotionChart&quot;&gt;MotionChart&lt;/option&gt;
 &lt;option value=&quot;ImageChart&quot;&gt;ImageChart&lt;/option&gt;
 &lt;/select&gt;
 &lt;img src=&quot;css/logo.png&quot; id=&quot;logo&quot; /&gt;
 &lt;/div&gt;
 &lt;div id=&quot;vis_chart&quot;&gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;/body&gt;
&lt;/html&gt;</pre>
<p><strong>CSS</strong>:</p>
<pre class="brush: css;">#container{
 width:768px;
 margin:0 auto;
 padding:10px;
 background-color:#C9CFFF;
 min-height:500px;
}

select{
 width:200px;
 margin-right:100px;
}

#header{
 margin-bottom:30px;
}

#logo{
 float:right;
}

#vis_chart{
 -moz-border-radius: 5px;
 -webkit-border-radius: 5px;
 border: 1px solid #000; padding: 10px;
 clear:both;
 background-color:white;
 min-height:400px;
}</pre>
<p>On the first part, we are including the API library from Google, after that, we load the visualization library and we specify the packages we want to load:</p>
<pre class="brush: jscript;">google.load('visualization', '1', {'packages':['piechart','table', 'linechart','motionchart','ImageChart']});</pre>
<p>We also assign a method to the change event of the select element. The function initialize is responsible for our data to be available to our application:</p>
<pre class="brush: jscript;">function initialize() {
 // Replace the data source URL on next line with your data source URL.
 var query = new google.visualization.Query('http://spreadsheets.google.com/tq?range=A1:D11&amp;headers=-1&amp;key=0AtbpzGdXYTjpdDdkUlNLcjV2ZWNZNUVveFZzdU05dmc&amp;gid=0');

 // Send the query with a callback function.
 query.send(handleQueryResponse);
}</pre>
<p>In order to use your spreadsheet with the function above, you should replace the URL provided with the one you got from your gadget.</p>
<p>We see that the initialize method, will do a :</p>
<pre class="brush: jscript;">query.send(handleQueryResponse);</pre>
<p>This, tells us that the callback function that will handle the query response is handleQueryResponse which we will use to set the visualization to the one selected from the dropbox:</p>
<pre class="brush: jscript;">function handleQueryResponse(response) {
 var element = document.getElementById('visualization').value;
 if (response.isError()) {
 alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage());
 return;
 }
 var data = response.getDataTable();
 //first clear the visualization container
 document.getElementById('vis_chart').innerHTML = '';
 switch(element){
 case &quot;Table&quot;:
 var chart = new google.visualization.Table(document.getElementById('vis_chart'));
 chart.draw(data, {width: 700, height: 340});
 break;
 case &quot;PieChart&quot;:
 var chart = new google.visualization.PieChart(document.getElementById('vis_chart'));
 chart.draw(data, {width: 700, height: 340, is3D: true});
 break;
 case &quot;LineChart&quot;:
 var chart = new google.visualization.LineChart(document.getElementById('vis_chart'));
 chart.draw(data, {width: 700, height: 340});
 break;
 case &quot;MotionChart&quot;:
 var chart = new google.visualization.MotionChart(document.getElementById('vis_chart'));
 chart.draw(data, {width: 700, height: 340});
 break;
 case &quot;ImageChart&quot;:
 var chart = new google.visualization.ImageChart(document.getElementById('vis_chart'));
 chart.draw(data, {width: 700, height: 340});
 break;
 }
}</pre>
<p>This is it! Our application is able to get data from our spreadsheet and present it with the visualization of our choice. You can<a title="Google Visualization Demo 1" href="http://seotests.writer.gr/googlevis/simple/" target="_blank"> test the application</a> at this stage and see how it works.</p>
<h3>Using the Query language to get specific cells</h3>
<p>The visualization API supports an SQL like query language that we can use to select, perform actions and data manipulation to our data. For example we could select data based on any cell of our spreadsheet. Lets try to extend our application so that it will be able to display data based on selective criteria. We will add a radio group that will &#8220;order&#8221; our application to display data by programming language.</p>
<p>The first thing to do is add the radio group:</p>
<pre class="brush: xml;">&lt;form  id=&quot;languageselect&quot; &gt;&lt;fieldset onChange=&quot;filter();&quot;&gt;&lt;legend&gt;Filter by:&lt;/legend&gt;
 &lt;label&gt;ASP&lt;/label&gt;&lt;input type=&quot;radio&quot; name=&quot;lang&quot; value=&quot;ASP&quot;&gt;
 &lt;label&gt;C&lt;/label&gt;&lt;input type=&quot;radio&quot; name=&quot;lang&quot; value=&quot;C&quot;&gt;
 &lt;label&gt;Java&lt;/label&gt;&lt;input type=&quot;radio&quot; name=&quot;lang&quot; value=&quot;Java&quot;&gt;&lt;br /&gt;
 &lt;label&gt;PHP&lt;/label&gt;&lt;input type=&quot;radio&quot; name=&quot;lang&quot; value=&quot;PHP&quot;&gt;
 &lt;label&gt;Ruby&lt;/label&gt;&lt;input type=&quot;radio&quot; name=&quot;lang&quot; value=&quot;Ruby&quot;&gt;
 &lt;label&gt;VB&lt;/label&gt;&lt;input type=&quot;radio&quot; name=&quot;lang&quot; value=&quot;VB&quot;&gt;
 &lt;/fieldset&gt;</pre>
<p>and the JavaScript function to handle the query:</p>
<pre class="brush: jscript;">function filter(){
 var element = document.getElementById('languageselect');
 for (var i=0; i&lt;element.length; i++)  {
 if (element[i].checked)  {
 var lang = element[i].value
 }
 }
 var query = new google.visualization.Query('http://spreadsheets.google.com/tq?range=A1:D11&amp;headers=-1&amp;key=0AtbpzGdXYTjpdDdkUlNLcjV2ZWNZNUVveFZzdU05dmc&amp;gid=0');
 query.setQuery(&quot;select * where D='&quot;+lang+&quot;'&quot;);
 query.send(handleQueryResponse);
}</pre>
<p>We set an optional query here:</p>
<pre class="brush: jscript;">query.setQuery(&quot;select * where D='&quot;+lang+&quot;'&quot;);</pre>
<p>This selects all rows from our spreadsheet that the programming language (the D column) equals the language we chosen. For an example of this new feature you can <a title="Google Visualization Demo 2" href="http://seotests.writer.gr/googlevis/filtered/" target="_blank">check here</a>.</p>
<h3>Handling Events</h3>
<p>You can handle events generated from user actions on your visualizations too. For example we can display the logo of the programming language the person codes in upon selection of a person. To handle events, we have to listen to the events generated by the visualization and handle the data. This can be done by doing this:</p>
<pre class="brush: jscript;">google.visualization.events.addListener(table, 'select', selectHandler);</pre>
<p>The above code will add a listener to the select event of the table visualization and it will call the selectHandler method to handle the event. So, based on this line of code, lets add the feature described above (display language logo) to our application. We need a placeholder for our logo:</p>
<pre class="brush: xml;">&lt;div id=&quot;langlogo&quot;&gt;&lt;/div&gt;</pre>
<p>and we should also modify our handleQueryResponse method and add the listener to our visualization. Our function now looks like this:</p>
<pre class="brush: jscript;">function handleQueryResponse(response) {
 var element = document.getElementById('visualization').value;
 if (response.isError()) {
 alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage());
 return;
 }
 var data = response.getDataTable();
 //first clear the visualization container
 document.getElementById('vis_chart').innerHTML = '';
 switch(element){
 case &quot;Table&quot;:
 var chart = new google.visualization.Table(document.getElementById('vis_chart'));
 chart.draw(data, {width: 700, height: 340,title: 'Jeez Tech Visualization Demo'});
 break;
 case &quot;PieChart&quot;:
 var chart = new google.visualization.PieChart(document.getElementById('vis_chart'));
 chart.draw(data, {width: 700, height: 340, is3D: true,title: 'Jeez Tech Visualization Demo'});
 break;
 case &quot;LineChart&quot;:
 var chart = new google.visualization.LineChart(document.getElementById('vis_chart'));
 chart.draw(data, {width: 700, height: 340,title: 'Jeez Tech Visualization Demo'});
 break;
 case &quot;MotionChart&quot;:
 var chart = new google.visualization.MotionChart(document.getElementById('vis_chart'));
 chart.draw(data, {width: 700, height: 340,title: 'Jeez Tech Visualization Demo'});
 break;
 case &quot;ImageChart&quot;:
 var chart = new google.visualization.ImageChart(document.getElementById('vis_chart'));
 chart.draw(data, {width: 700, height: 340,title: 'Jeez Tech Visualization Demo'});
 break;
 }
//Here we add the listener:
 google.visualization.events.addListener(chart, 'select', selectHandler);
//We set 2 global vars to be available for our handler :
window['data'] = data;
 window['chart'] = chart;
}</pre>
<p>Now, the only thing to do, is to add the selectHandler method. Just a simple method that will switch case on the programming language value and display the appropriate image:</p>
<pre class="brush: jscript;">var selectHandler = function(){
 var chart = window['chart'];
 var data = window['data'];
//get the selection object
 var selection = chart.getSelection();
 var message = '';
//go through the object
 for (var i = 0; i &lt; selection.length; i++) {
 var item = selection[i];
//Select the third column of the selected row
 var str = data.getFormattedValue(item.row, 3);
 }
 document.getElementById('langlogo').innerHTML = &quot;&lt;img src='./css/&quot;+str+&quot;.jpg'&gt;&quot;;
}</pre>
<p>Our application is able to handle select events now. You can <a title="Google Visualization Demo 3" href="http://seotests.writer.gr/googlevis/events/" target="_blank">check it out</a>.</p>
<p>Here is a screenshot of the application :</p>
<div id="attachment_652" class="wp-caption alignnone" style="width: 610px"><a href="http://jeez.eu/wp-content/uploads/2009/10/screen1.jpg" rel="lightbox[642]"><img class="size-large wp-image-652" title="screen" src="http://jeez.eu/wp-content/uploads/2009/10/screen1-600x397.jpg" alt="Our Visualization API demo" width="600" height="397" /></a><p class="wp-caption-text">Our Visualization API demo</p></div>
<p>We are ready. Our application is now able to display visualizations, filter them and handle user generated events. The  Google Visualizations API is a great tool to create awesome presentations of your data to your pages and applications. We will get back on it in a future post, explaining how you can implement your own data source and some other cool uses of the API.</p>
<img src="http://jeez.eu/?ak_action=api_record_view&id=642&type=feed" alt="" /><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fjeez.eu%2F2009%2F10%2F19%2Fgoogle-visualizations-from-a-to-z%2F&amp;linkname=Google%20Visualizations%20From%20A%20To%20Z"><img src="http://jeez.eu/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://jeez.eu/2009/10/19/google-visualizations-from-a-to-z/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>IE Only, Cool Features, That Should Exist On Other Browsers Too</title>
		<link>http://jeez.eu/2009/10/16/ie-only-cool-features-that-should-exist-on-other-browsers-too/</link>
		<comments>http://jeez.eu/2009/10/16/ie-only-cool-features-that-should-exist-on-other-browsers-too/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 17:13:47 +0000</pubDate>
		<dc:creator>Kerasiotis Vasileios</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://jeez.eu/?p=604</guid>
		<description><![CDATA[OK Internet Explorer (mainly &#60;7 ) is the source of headache for most of us.  The box model, [...]]]></description>
			<content:encoded><![CDATA[<p>OK Internet Explorer (mainly &lt;7 ) is the source of headache for most of us.  The box model, the transparency problem and it&#8217;s poor CSS support have made designers hack their code to have their designs look the same (not always though) on IE as they would on all other browsers. But, there are some awesome, IE specific, features that should be present on other browsers too. In this article, we will list some IE features that Firefox, Opera and other browsers should have.</p>
<h3>The CSS Filter Property</h3>
<p>Internet Explorer supports a <em>filter:command</em> style CSS property that can add some style to HTML elements on your pages. For example you can create a fade effect on any block element on your pages with:</p>
<pre class="brush: css;">ELEMENT {filter: Chroma(Color=#C1DEFF) Alpha(Opacity=200, FinishOpacity=0, Style=2, StartX=gradient start X position, StartY=gradient starting Y position, FinishX=gradient finishing X position, FinishY=gradient finishing Y position)
}</pre>
<p>where &#8220;ELEMENT&#8221; is any block element. You can use the above code to transform this image:</p>
<p><a href="http://jeez.eu/wp-content/uploads/2009/10/test.jpg" rel="lightbox[604]"><img class="alignnone size-full wp-image-605" title="test" src="http://jeez.eu/wp-content/uploads/2009/10/test.jpg" alt="test" width="360" height="471" /></a></p>
<p>to something like this:</p>
<p><a href="http://jeez.eu/wp-content/uploads/2009/10/effected.jpg" rel="lightbox[604]"><img class="alignnone size-full wp-image-609" title="effected" src="http://jeez.eu/wp-content/uploads/2009/10/effected.jpg" alt="effected" width="381" height="489" /></a></p>
<p>You can also create gradient div elements with the same trick. Another great method of the filter property is &#8220;<strong>filter:gray</strong>&#8221; which, when used on images, the images will be gray-scaled. So by doing this:</p>
<pre class="brush: css;">img{
filter:gray;
}</pre>
<p>will display the image like this:</p>
<p><a href="http://jeez.eu/wp-content/uploads/2009/10/grayed.jpg" rel="lightbox[604]"><img class="alignnone size-full wp-image-610" title="grayed" src="http://jeez.eu/wp-content/uploads/2009/10/grayed.jpg" alt="grayed" width="359" height="470" /></a></p>
<p>while by using the &#8220;<strong>filter:fliph</strong>&#8221; or &#8220;<strong>filter:flipv</strong>&#8221; methods, the images will be flipped horizontally and vertically accordingly. The next cool filter method is &#8220;<strong>filter:invert</strong>&#8221; which when used on images, would display the image like this:</p>
<p><a href="http://jeez.eu/wp-content/uploads/2009/10/inverted.jpg" rel="lightbox[604]"><img class="alignnone size-full wp-image-608" title="inverted" src="http://jeez.eu/wp-content/uploads/2009/10/inverted.jpg" alt="inverted" width="362" height="470" /></a></p>
<p>Another image transformation can be achieved with &#8220;<strong>filter:wave</strong>&#8220;. You might have guessed what this method does but if you didn&#8217;t, put this code in your page:</p>
<pre class="brush: css;">
img{
filter:wave(Strength=5,lightstrength=15)
}
</pre>
<p>and you should get an image with a wave effect like this:</p>
<p><a href="http://jeez.eu/wp-content/uploads/2009/10/wave.jpg" rel="lightbox[604]"><img class="alignnone size-full wp-image-611" title="wave" src="http://jeez.eu/wp-content/uploads/2009/10/wave.jpg" alt="wave" width="362" height="471" /></a></p>
<p>A method similar to the &#8220;filter:invert&#8221; method is &#8220;<strong>filter:xray</strong>&#8221; which produces the following effect:</p>
<p><a href="http://jeez.eu/wp-content/uploads/2009/10/xray.jpg" rel="lightbox[604]"><img class="alignnone size-full wp-image-612" title="xray" src="http://jeez.eu/wp-content/uploads/2009/10/xray.jpg" alt="xray" width="361" height="466" /></a></p>
<p>wait.. There&#8217;s some more.</p>
<p>You can pixelate any image with this code:</p>
<pre class="brush: css;">img{
 filter:progid:DXImageTransform.Microsoft.Pixelate(maxsquare=6)
}</pre>
<p>eg:</p>
<p><a href="http://jeez.eu/wp-content/uploads/2009/10/pixels.jpg" rel="lightbox[604]"><img class="alignnone size-full wp-image-613" title="pixels" src="http://jeez.eu/wp-content/uploads/2009/10/pixels.jpg" alt="pixels" width="359" height="471" /></a></p>
<p>add some blur with &#8220;<strong>filter:blur(strength=VALUE)</strong>&#8220;:</p>
<pre class="brush: css;">img{
blur(Strength=&quot;50&quot;)
}</pre>
<p><a href="http://jeez.eu/wp-content/uploads/2009/10/blur.jpg" rel="lightbox[604]"><img class="alignnone size-full wp-image-614" title="blur" src="http://jeez.eu/wp-content/uploads/2009/10/blur.jpg" alt="blur" width="360" height="469" /></a></p>
<p>or add some glowing effects to some text and keep the text selectable as shown here:</p>
<p><a href="http://jeez.eu/wp-content/uploads/2009/10/glow.png" rel="lightbox[604]"><img class="alignnone size-full wp-image-615" title="glow" src="http://jeez.eu/wp-content/uploads/2009/10/glow.png" alt="glow" width="202" height="72" /></a></p>
<p>with this code:</p>
<pre class="brush: css;">p{
filter: glow(Color=&quot;#000eee&quot;,Strength=&quot;6&quot;);
 width:200px;
 font-size:30px;
}</pre>
<p>and adding shadows to text can be done with this code:</p>
<pre class="brush: css;">p{
filter: dropShadow(color=&quot;#ddd0d0&quot;,offX=&quot;2&quot;,offY=&quot;2&quot;);
 width:200px;
 font-size:40px;
}</pre>
<p>The result is not 100% what we expected though since the transformation sharpens our text:</p>
<p><a href="http://jeez.eu/wp-content/uploads/2009/10/shadow.png" rel="lightbox[604]"><img class="alignnone size-full wp-image-616" title="shadow" src="http://jeez.eu/wp-content/uploads/2009/10/shadow.png" alt="shadow" width="205" height="139" /></a></p>
<p>The <a title="MSDN about filter" href="http://msdn.microsoft.com/en-us/library/ms532849%28VS.85%29.aspx" target="_blank">MSDN</a> site has a lot of info about the filter property and some other <a title="CSS Reference" href="http://msdn.microsoft.com/en-us/library/ms531209%28VS.85%29.aspx" target="_blank">IE specific CSS properties</a> in case you are interested in it.</p>
<p>We do not advise you to use any of these CSS properties on your pages here. We are just trying to show that some of these properties could be added to other browsers too, since most of them have to do with presentation and style. For example why use a heavy JS library to add some effects like fade or gray-scale when you can do it with 1 line of text?</p>
<p>For flame lovers:</p>
<p>We use Opera (70%) and FireFox (30%). So, no IE lovers here&#8230;</p>
<img src="http://jeez.eu/?ak_action=api_record_view&id=604&type=feed" alt="" /><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fjeez.eu%2F2009%2F10%2F16%2Fie-only-cool-features-that-should-exist-on-other-browsers-too%2F&amp;linkname=IE%20Only%2C%20Cool%20Features%2C%20That%20Should%20Exist%20On%20Other%20Browsers%20Too"><img src="http://jeez.eu/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://jeez.eu/2009/10/16/ie-only-cool-features-that-should-exist-on-other-browsers-too/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>CSS Snippets That Can Come Handy</title>
		<link>http://jeez.eu/2009/09/22/css-snippets-that-can-come-handy/</link>
		<comments>http://jeez.eu/2009/09/22/css-snippets-that-can-come-handy/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 15:20:43 +0000</pubDate>
		<dc:creator>Kerasiotis Vasileios</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://jeez.eu/?p=324</guid>
		<description><![CDATA[Sometimes doing something with CSS that looks the same for all browsers is pretty annoying. Some things might [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes doing something with CSS that looks the same for all browsers is pretty annoying. Some things might look different on different browsers. We all had the same headaches with IE for example. Not to mention the differences from one version of IE to another.</p>
<p>This is a list of ways to make things work ok on all major browsers.</p>
<h3>Sticky Footer</h3>
<p>A new solution from <a title="Sticky Footer" href="http://www.cssstickyfooter.com/" target="_blank">www.cssstickyfooter.com</a> promises 100% sticky footer with all major browsers, including Chrome.</p>
<p>CSS:</p>
<pre class="brush: css;">/*
Sticky Footer Solution
by Steve Hatcher

http://stever.ca

http://www.cssstickyfooter.com

*/

* {margin:0;padding:0;}

/* must declare 0 margins on everything, also for main layout components use padding, not
vertical margins (top and bottom) to add spacing, else those margins get added to total height
and your footer gets pushed down a bit more, creating vertical scroll bars in the browser */

html, body, #wrap {height: 100%;}

body &amp;gt; #wrap {height: auto; min-height: 100%;}

#main {padding-bottom: 150px;}  /* must be same height as the footer */

#footer {position: relative;
margin-top: -150px; /* negative value of footer height */
height: 150px;
clear:both;}

/* CLEAR FIX*/
.clearfix:after {content: &quot;.&quot;;
display: block;
height: 0;
clear: both;
visibility: hidden;}
.clearfix {display: inline-block;}
/* Hides from IE-mac \*/
* html .clearfix { height: 1%;}
.clearfix {display: block;}
/* End hide from IE-mac */
</pre>
<p>HTML:</p>
<pre class="brush: xml;">
&lt;div id=&quot;wrap&quot;&gt;&lt;/div&gt;
&lt;div id=&quot;footer&quot;&gt;&lt;/div&gt;
</pre>
<p>Here is a nice <a title="How to use the css sticky footer code" href="http://www.cssstickyfooter.com/using-sticky-footer-code.html" target="_blank">how-to</a> use the above snippets.</p>
<h3>Rounded Corners</h3>
<p>CSS3 supports rounded corners using the border-radius property, but untill all browsers support CSS3, rounded corners needs a little more coding to make. An excellent article on <a title="Creating Rounded Corners With CSS" href="http://cssglobe.com/post/3714/css-sprites-rounded-corners/" target="_blank">creating rounded corners using CSS Sprites</a> explaining a step by step process is all you need to start using them. No need to duplicate the code snippets here since it is worth reading it all.</p>
<h3>Min-Height in IE</h3>
<p><a title="Dustin Diaz" href="http://www.dustindiaz.com/min-height-fast-hack/" target="_blank">Dustin Diaz</a> posted a great snippet on his blog that fixes this annoying IE bug.</p>
<p>CSS:</p>
<pre class="brush: css;">selector {
min-height:500px;
height:auto !important;
height:500px;
}</pre>
<h3>Hover Effects on every element for IE</h3>
<p>Download <a title="CSS hover3.htc" href="http://www.xs4all.nl/~peterned/htc/csshover3.htc" target="_blank">this file from xs4all.com</a> and use this snippet in your CSS:</p>
<pre class="brush: css;">body { behavior: url(&quot;csshover3.htc&quot;); } </pre>
<p>You should first make sure that your server treats .htc files with a mime-type of text/x-component . To do this in Apache you should put this code in your .htaccess file:</p>
<p>AddType text/x-component .htc</p>
<h3>Image Ajax like Preloading using only CSS</h3>
<p>Grab a <a title="Ajax loading gif generator" href="http://www.ajaxload.info/" target="_blank">loader image</a> and try this on one of your pages (preferably large images):</p>
<p>CSS:</p>
<pre class="brush: css;">img { background: url(loader.gif) no−repeat 50% 50%; }</pre>
<h3>Fade text with CSS</h3>
<p>You can make your text fade using a fading image and some css. For example you can use <a title="fade.png" href="http://jeez.eu/wp-content/files/fade.png" target="_blank" rel="lightbox[324]">this image</a> and this code:</p>
<p>CSS:</p>
<pre class="brush: css;">#bottom_fade {
z-index: 99;
position: fixed;
bottom: 0%;
background-image: url(&quot;bottom-fade.png&quot;);
}</pre>
<p>to produce something like this:</p>
<p><a href="http://jeez.eu/wp-content/uploads/2009/09/sma.png" rel="lightbox[324]"><img class="alignnone size-large wp-image-331" title="sma" src="http://jeez.eu/wp-content/uploads/2009/09/sma-600x151.png" alt="sma" width="600" height="151" /></a></p>
<p>Using a little variation you can create gradient or glossy headers:</p>
<p>CSS:</p>
<pre class="brush: css;">h1 {
font: bold 330%/100% &quot;Lucida Grande&quot;;
position: relative;
color: #464646;
}
h1 span {
background: url(gradient.png) repeat-x;
position: absolute;
display: block;
width: 100%;
height: 31px;
}</pre>
<p>HTML:</p>
<pre class="brush: xml;">

&lt;h1&gt;&lt;span&gt; &lt;/span&gt;Content Here&lt;/h1&gt;</pre>
<p>For IE 6 users:</p>
<pre class="brush: css;">&lt;!--[if lt IE 7]&gt;

&lt;mce:style&gt;&lt;!  h1 span {   background: none;   filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='gradient.png', sizingMethod='scale'); } --&gt;

&lt;!--[endif]--&gt;</pre>
<h3>Center Elements with CSS</h3>
<pre class="brush: css;">element{
margin:0 auto;
}</pre>
<h3>Display Block Elements Side by Side</h3>
<pre class="brush: css;">DIV{
display:inline;
float:left;
}</pre>
<p>The DIV mentioned above can be any block element.</p>
<h3>Usability Feature on Links</h3>
<p>You can set an access key on each of your links. This will act as a shortcut and a user can access your link by holding the Alt+KEY. This can be done like this:</p>
<pre class="brush: xml;">&lt;a accesskey=&quot;s&quot; href=&quot;somelink.html&quot;&gt;Some File&lt;/a&gt;</pre>
<p>There is a way to display the accesskey on each link with css :</p>
<pre class="brush: css;">a:hover:after, a:focus:after
{
content: &quot; (&quot; attr(accesskey) &quot;) &quot;;
}
</pre>
<p>So when the user hovers the link, the link will display the shortcut in parenthesis. eg: <a title="Not a valid link" href="#" target="_blank">Some File (s)</a></p>
<h3>No Fieldset Border on Opera</h3>
<pre class="brush: css;">fieldset {border:0 solid}
</pre>
<h3>Styling XML With CSS Only</h3>
<p>Do you know you can style XML documents with CSS only? No extra knowledge needed, just plain css. You just have to set the display property of each element. So for example this code:</p>
<pre class="brush: xml;">
Hello
</pre>
<p>Can be transformed to a nice bordered block with red text using this css:</p>
<pre class="brush: css;">sample{
display:block;
border:1px solid silver;
padding:5px;
}

red{
color:red;
}</pre>
<p>Here is a <a title="Invalid Code" href="http://seotests.writer.gr/invalidcode/" target="_blank">full layout built with this technic</a>.</p>
<p><em>Note</em>: The above snippet works anywhere except&#8230; You know who.</p>
<h3>Exposing <a title="Microformats" href="http://microformats.org" target="_blank">Microformats</a> on Your Pages</h3>
<p>Just use the class name to do this. Generally microformats use these class names:</p>
<ul>
<li>hCard</li>
<li>hReview</li>
<li>hCalendar</li>
</ul>
<p>You can also expose microformats using :before, :after in combination with the &#8220;rel&#8221; attribute.</p>
<h3>Displaying Elements Centered Vertically</h3>
<p>Display text in the middle of a paragraph.</p>
<pre class="brush: css;">DIV.container {
min-height: 10em;
display: table-cell;
vertical-align: middle
}
</pre>
<pre class="brush: xml;">
&lt;div class=&quot;container&quot;&gt;

Vertical middle

&lt;/div&gt;</pre>
<img src="http://jeez.eu/?ak_action=api_record_view&id=324&type=feed" alt="" /><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fjeez.eu%2F2009%2F09%2F22%2Fcss-snippets-that-can-come-handy%2F&amp;linkname=CSS%20Snippets%20That%20Can%20Come%20Handy"><img src="http://jeez.eu/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://jeez.eu/2009/09/22/css-snippets-that-can-come-handy/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Some Premium Joomla Themes Designing Companies</title>
		<link>http://jeez.eu/2009/09/18/some-premium-joomla-themes-designing-companies/</link>
		<comments>http://jeez.eu/2009/09/18/some-premium-joomla-themes-designing-companies/#comments</comments>
		<pubDate>Fri, 18 Sep 2009 15:47:09 +0000</pubDate>
		<dc:creator>Kerasiotis Vasileios</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Showcases]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[Joomla Themes]]></category>
		<category><![CDATA[Templates]]></category>
		<category><![CDATA[Themes]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://jeez.eu/?p=305</guid>
		<description><![CDATA[Joomla is a state of the art publishing platform and CMS. It is also an open source software, [...]]]></description>
			<content:encoded><![CDATA[<p>Joomla is a state of the art publishing platform and CMS. It is also an open source software, that has a large community that supports it, creates plugins and extensions and themes.</p>
<p>Joomla is a great example of how someone can make money from open source. Name it premium plugins creation or templating, Joomla is a way to get you money.</p>
<p>We list here our favorite premium (we mean paid when we say premium) theme designing companies and some demo templates these companies created.</p>
<h3>1) <a title="Bonus Themes" href="http://www.bonusthemes.com" target="_blank">Bonus Themes</a></h3>
<p><a href="http://jeez.eu/wp-content/uploads/2009/09/bonusthemes.png" rel="lightbox[305]"><img class="alignnone size-large wp-image-306" title="bonusthemes" src="http://jeez.eu/wp-content/uploads/2009/09/bonusthemes-600x297.png" alt="bonusthemes" width="600" height="297" /></a></p>
<p><a href="http://jeez.eu/wp-content/uploads/2009/09/bonusthemes-delicious.png" rel="lightbox[305]"><img class="alignnone size-medium wp-image-307" title="bonusthemes-delicious" src="http://jeez.eu/wp-content/uploads/2009/09/bonusthemes-delicious-300x149.png" alt="bonusthemes-delicious" width="300" height="149" /></a> <a href="http://jeez.eu/wp-content/uploads/2009/09/bonusthemes-vip.png" rel="lightbox[305]"><img class="alignnone size-medium wp-image-308" title="bonusthemes-vip" src="http://jeez.eu/wp-content/uploads/2009/09/bonusthemes-vip-300x148.png" alt="bonusthemes-vip" width="300" height="148" /></a></p>
<p>The company published it&#8217;s first template on May 2007 and since then every month a new awesome template is published. Custom menus (cpmenu) and mods, give extra functionality to the templates.</p>
<h3>2) <a title="Rocket Themes for Joomla" href="http://www.rockettheme.com/joomla" target="_blank">RocketTheme</a></h3>
<p><a href="http://jeez.eu/wp-content/uploads/2009/09/rocketthemes.png" rel="lightbox[305]"><img class="alignnone size-large wp-image-310" title="rocketthemes" src="http://jeez.eu/wp-content/uploads/2009/09/rocketthemes-600x298.png" alt="rocketthemes" width="600" height="298" /></a></p>
<p><a href="http://jeez.eu/wp-content/uploads/2009/09/rocketthemes-moxy.png" rel="lightbox[305]"><img class="alignnone size-medium wp-image-311" title="rocketthemes-moxy" src="http://jeez.eu/wp-content/uploads/2009/09/rocketthemes-moxy-300x133.png" alt="rocketthemes-moxy" width="300" height="133" /></a> <a href="http://jeez.eu/wp-content/uploads/2009/09/rocketthemes-nexus.png" rel="lightbox[305]"><img class="alignnone size-medium wp-image-312" title="rocketthemes-nexus" src="http://jeez.eu/wp-content/uploads/2009/09/rocketthemes-nexus-300x133.png" alt="rocketthemes-nexus" width="300" height="133" /></a></p>
<p>RocketTheme&#8217;s Joomla Templates Club is the longest running and best known template club in the joomlasphere.&nbsp; RocketTheme was created by Andy Miller, aka rhuk, the author of the standard templates that are included in Joomla. The company also offers phpBB templates.</p>
<h3>3) <a title="JoomlaShack" href="http://www.joomlashack.com/" target="_blank">JoomlaShack</a></h3>
<p><a href="http://jeez.eu/wp-content/uploads/2009/09/joomlashack.png" rel="lightbox[305]"><img class="alignnone size-large wp-image-313" title="joomlashack" src="http://jeez.eu/wp-content/uploads/2009/09/joomlashack-600x298.png" alt="joomlashack" width="600" height="298" /></a></p>
<p><a href="http://jeez.eu/wp-content/uploads/2009/09/joomlashack-inspirion.png" rel="lightbox[305]"><img class="alignnone size-medium wp-image-314" title="joomlashack-inspirion" src="http://jeez.eu/wp-content/uploads/2009/09/joomlashack-inspirion-300x149.png" alt="joomlashack-inspirion" width="300" height="149" /></a> <a href="http://jeez.eu/wp-content/uploads/2009/09/joomlashack-weblogic.png" rel="lightbox[305]"><img class="alignnone size-medium wp-image-315" title="joomlashack-weblogic" src="http://jeez.eu/wp-content/uploads/2009/09/joomlashack-weblogic-300x149.png" alt="joomlashack-weblogic" width="300" height="149" /></a></p>
<p>JoomlaShack is a great place to get free and paid templates for Joomla. There is also theming support for the K2 component and clean coded templates.</p>
<h3>4) <a title="YOOtheme" href="http://www.yootheme.com/" target="_blank">YOOtheme</a></h3>
<p><a href="http://jeez.eu/wp-content/uploads/2009/09/youtheme.png" rel="lightbox[305]"><img class="alignnone size-large wp-image-316" title="youtheme" src="http://jeez.eu/wp-content/uploads/2009/09/youtheme-600x298.png" alt="youtheme" width="600" height="298" /></a></p>
<p><a href="http://jeez.eu/wp-content/uploads/2009/09/youtheme-crystal.png" rel="lightbox[305]"><img class="alignnone size-medium wp-image-317" title="youtheme-crystal" src="http://jeez.eu/wp-content/uploads/2009/09/youtheme-crystal-300x135.png" alt="youtheme-crystal" width="300" height="135" /></a> <a href="http://jeez.eu/wp-content/uploads/2009/09/youtheme-flux.png" rel="lightbox[305]"><img class="alignnone size-medium wp-image-318" title="youtheme-flux" src="http://jeez.eu/wp-content/uploads/2009/09/youtheme-flux-300x138.png" alt="youtheme-flux" width="300" height="138" /></a></p>
<p>Commercial template club for Joomla. YOOtheme offers a wide variety of stylish templates with professional Web 2.0 features.</p>
<h3>5) <a title="Theme Forest" href="http://themeforest.net/" target="_blank">Theme Forest</a></h3>
<p><a href="http://jeez.eu/wp-content/uploads/2009/09/themeforest.png" rel="lightbox[305]"><img class="alignnone size-large wp-image-319" title="themeforest" src="http://jeez.eu/wp-content/uploads/2009/09/themeforest-600x298.png" alt="themeforest" width="600" height="298" /></a></p>
<p><a href="http://jeez.eu/wp-content/uploads/2009/09/themeforest-corporate.png" rel="lightbox[305]"><img class="alignnone size-medium wp-image-320" title="themeforest-corporate" src="http://jeez.eu/wp-content/uploads/2009/09/themeforest-corporate-300x149.png" alt="themeforest-corporate" width="300" height="149" /></a> <a href="http://jeez.eu/wp-content/uploads/2009/09/themeforest-nightlight.png" rel="lightbox[305]"><img class="alignnone size-medium wp-image-321" title="themeforest-nightlight" src="http://jeez.eu/wp-content/uploads/2009/09/themeforest-nightlight-300x141.png" alt="themeforest-nightlight" width="300" height="141" /></a></p>
<p>ThemeForst is a themes marketplace. At ThemeForest you can buy and sell site templates and themes to skin popular CMS products like WordPress, Drupal and Joomla. Files are priced from just five dollars, based on the complexity, quality and use of the file. Anyone is free to sign up for an account and begin trading or purchasing files.</p>
<p>&nbsp;</p>
<p>Do you run a templating company for Joomla or any other CMS? If you do or if you have created any premium themes, please post a link here and show us your work.</p>
<img src="http://jeez.eu/?ak_action=api_record_view&id=305&type=feed" alt="" /><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fjeez.eu%2F2009%2F09%2F18%2Fsome-premium-joomla-themes-designing-companies%2F&amp;linkname=Some%20Premium%20Joomla%20Themes%20Designing%20Companies"><img src="http://jeez.eu/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://jeez.eu/2009/09/18/some-premium-joomla-themes-designing-companies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
