<?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/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>css Archives - Michael Sunarlim</title>
	<atom:link href="https://sunarlim.com/tag/css/feed/" rel="self" type="application/rss+xml" />
	<link>https://sunarlim.com/tag/css/</link>
	<description>Random blurbs about web development, e-commerce and technology</description>
	<lastBuildDate>Fri, 05 Aug 2016 10:35:06 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.4.5</generator>

<image>
	<url>https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/07/cropped-MS_Square_512x512.png?fit=32%2C32&#038;ssl=1</url>
	<title>css Archives - Michael Sunarlim</title>
	<link>https://sunarlim.com/tag/css/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">30613895</site>	<item>
		<title>Shopify PageSpeed Score: Pushing the limits on Bluelounge website</title>
		<link>https://sunarlim.com/2016/08/shopify-pagespeed/</link>
					<comments>https://sunarlim.com/2016/08/shopify-pagespeed/#respond</comments>
		
		<dc:creator><![CDATA[Michael]]></dc:creator>
		<pubDate>Tue, 02 Aug 2016 18:35:48 +0000</pubDate>
				<category><![CDATA[Case Studies]]></category>
		<category><![CDATA[E-Commerce]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Web Tools]]></category>
		<category><![CDATA[Work Related]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[pagespeed]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[shopify]]></category>
		<guid isPermaLink="false">https://sunarlim.com/?p=2242</guid>

					<description><![CDATA[<p>In order to improve the site's SEO even further, Bluelounge requested to improve their Shopify site's PageSpeed score to above 90/100 on both Desktop and Mobile. These are my notes to achieve 95/100 PageSpeed score on an e-commerce site. The steps explained here may not be applicable to all Shopify powered sites, but hopefully you will be able to pick up a point or two. </p>
<p>The post <a href="https://sunarlim.com/2016/08/shopify-pagespeed/">Shopify PageSpeed Score: Pushing the limits on Bluelounge website</a> appeared first on <a href="https://sunarlim.com">Michael Sunarlim</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><a href="https://www.bluelounge.com/" target="_blank">Bluelounge</a> is an International design studio and recognized for its clever and unique products to solve everyday problems. Their products range from cable management, chargers, device stands, bags, to desk. I had worked with them from 2007 to 2013. When I started to go freelancing full-time, they were also one of my first clients. I consulted for their e-commerce requirements at the time and advised to switch their platform to <a href="https://www.shopify.com/?ref=mayks" target="_blank">Shopify</a>. They took the suggestion and so the development began.</p>
<p>The new site was built completely from the ground up. We developed the custom theme with primary goal to have the fastest load time while keeping all of required functionality and ability to display unique page layout for each of Bluelounge&#8217;s 30+ products. I invited <a href="https://about.me/nizamilputra" target="_blank">Rizqi Nizamil Putra</a> into the team to help with the front-end development as time was of the essence as well. We completed the project on time and boy, the results were better than our expectations. Thanks for Shopify&#8217;s solid infrastructure, most of the web pages loaded in less than 2 seconds. A critical factor when you are building an e-commerce site.</p>
<div id="attachment_2252" style="width: 750px" class="wp-caption aligncenter"><a href="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/www.bluelounge.com_.png?ssl=1"><img fetchpriority="high" decoding="async" aria-describedby="caption-attachment-2252" class="size-large wp-image-2252" src="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/www.bluelounge.com_.png?resize=740%2C580&#038;ssl=1" alt="Bluelounge new website with Shopify" width="740" height="580" srcset="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/www.bluelounge.com_.png?resize=1024%2C802&amp;ssl=1 1024w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/www.bluelounge.com_.png?resize=300%2C235&amp;ssl=1 300w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/www.bluelounge.com_.png?resize=768%2C602&amp;ssl=1 768w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/www.bluelounge.com_.png?resize=600%2C470&amp;ssl=1 600w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/www.bluelounge.com_.png?resize=780%2C611&amp;ssl=1 780w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/www.bluelounge.com_.png?resize=1200%2C940&amp;ssl=1 1200w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/www.bluelounge.com_.png?w=1440&amp;ssl=1 1440w" sizes="(max-width: 740px) 100vw, 740px" data-recalc-dims="1" /></a><p id="caption-attachment-2252" class="wp-caption-text">Bluelounge new website with Shopify</p></div>
<h2>You always want to make it better and faster&#8230;</h2>
<p>Move forward to June 2016, Bluelounge came with a very specific but interested request. In order to improve the site&#8217;s SEO even further, they asked whether it was possible to get the PageSpeed score above 90 for both Desktop and Mobile from <a href="https://developers.google.com/speed/pagespeed/insights/" target="_blank">Google&#8217;s PageSpeed Insights</a> and an A from <a href="https://gtmetrix.com/" target="_blank">GTMetrix website performance tool</a>.</p>
<p>To be honest, I initially considered the request quite difficult considering one of Shopify&#8217;s major limitations was that we did not have full control of the server and apps. After a bit of research on Shopify&#8217;s forums, this was a very common issue as found <a href="https://ecommerce.shopify.com/c/ecommerce-design/t/page-speed-issues-277406" target="_blank">here</a>, <a href="https://ecommerce.shopify.com/c/ecommerce-design/t/help-with-page-speed-291747" target="_blank">here</a>, and <a href="https://ecommerce.shopify.com/c/ecommerce-design/t/page-speed-issue-335193" target="_blank">here</a>. There are many suggestions there which you could take to improve the site&#8217;s performance bit by bit, mostly were already applied on Bluelounge website, but probably not enough to make it get &gt;90 PageSpeed score.</p>
<p>I took on the job nevertheless, the challenge intrigued me.</p>
<h2>Performance analysis</h2>
<p>When trying to improve a website&#8217;s performance, whether for SEO, load speed, or conversion rates, the first thing to do is to breakdown <span style="text-decoration: underline;">what have been done correctly</span> and <span style="text-decoration: underline;">what&#8217;s still missing</span>. That was exactly what I did.</p>
<h4>Theme related items done:</h4>
<ol>
<li>Avoid CSS @import; except for the web fonts which are loaded from MyFonts</li>
<li>Valid HTML structure; no console errors</li>
</ol>
<h4>Content based items done:</h4>
<ol>
<li>Optimize images</li>
<li>Specify image dimensions</li>
<li>Serve scaled images</li>
</ol>
<h4>Important items done by Shopify by default:</h4>
<ol>
<li>Leverage browser caching</li>
<li>Enable gzip compression</li>
<li>Enable Keep-Alive</li>
</ol>
<h4><span style="text-decoration: underline;">Critical items to improve:</span></h4>
<ol>
<li>Minify CSS</li>
<li>Minify JavaScript</li>
<li>Eliminate render-blocking JavaScript and CSS in above-the-fold content</li>
</ol>
<p>Even with the fast load time, PageSpeed still considered the site&#8217;s performance below standard and only rated it 83/100 for Desktop and 66/100 for Mobile.</p>
<div id="attachment_2248" style="width: 750px" class="wp-caption aligncenter"><a href="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-score-before.png?ssl=1"><img decoding="async" aria-describedby="caption-attachment-2248" class="wp-image-2248 size-large" src="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-score-before.png?resize=740%2C635&#038;ssl=1" alt="Bluelounge – PageSpeed score before" width="740" height="635" srcset="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-score-before.png?resize=1024%2C879&amp;ssl=1 1024w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-score-before.png?resize=300%2C258&amp;ssl=1 300w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-score-before.png?resize=768%2C659&amp;ssl=1 768w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-score-before.png?resize=600%2C515&amp;ssl=1 600w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-score-before.png?resize=780%2C670&amp;ssl=1 780w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-score-before.png?w=1200&amp;ssl=1 1200w" sizes="(max-width: 740px) 100vw, 740px" data-recalc-dims="1" /></a><p id="caption-attachment-2248" class="wp-caption-text">Bluelounge website PageSpeed score result before optimization</p></div>
<p>The first two items were relatively easy to do, with the right tools.</p>
<h3>Minifying and combining CSS files</h3>
<p>The website&#8217;s stylesheet had been built using SCSS with <a href="http://getbootstrap.com/" target="_blank">Bootstrap</a> for the framework, so minifying the output file alone was not enough to make PageSpeed happy with the file sizes.  I had to improvise. Using <a href="https://github.com/twbs/bootstrap-sass" target="_blank">Bootstrap for Sass</a>, I rebuilt the CSS by hand-picking Bootstrap components that were actually used and eliminated the rest. I also carefully merged individual CSS files into a single master stylesheet for most of the pages.</p>
<p>After minified, the final <span class="theme:github lang:default decode:true crayon-inline">bluelounge.v42.css</span>  is about 123KB in size.</p>
<h3>Minifying and combining JavaScript files</h3>
<p>Same as CSS, minifying alone was not enough if they files were still fragmented. PageSpeed really factored in the number of calls it had to make to load a web page. This time it was a bit more tricky though, as with JavaScript a small error or wrong order could break critical shopping cart functionality. It took extensive trial and error tests to get the desired output.</p>
<p>Luckily PageSpeed is more forgiving when it comes to JS files and I did not have to merge everything into a single file as I had done for the CSS. I still managed to combine 7 JS files into one to reduce the number of requests.</p>
<p>You could use these tools to combine and minify CSS and JS files:</p>
<ul>
<li><a href="http://jscompress.com/" target="_blank">JSCompress</a></li>
<li><a href="http://www.shrinker.ch/" target="_blank">shrinker</a></li>
<li><a href="http://refresh-sf.com/" target="_blank">Refresh-SF</a></li>
</ul>
<p><strong>Tip:</strong> always do thorough tests after merging and/or minifying CSS or JS files. At the very minimal, make sure you could still add items to cart, view shopping cart, and proceed to checkout.</p>
<h3>Eliminating render-blocking elements above the fold</h3>
<p>What is render-blocking content? In my own words: files or elements that delays the HTML page to be loaded as quickly as possible. Most JavaScript and CSS files are usually inserted within the <span class="theme:github lang:default decode:true crayon-inline ">&lt;head&gt;</span> . This means your browser will try to download all linked files while it tries to complete loading the rest of the page, thus creating a delay from the of first byte received until the page is rendered on your screen.</p>
<p>Above the fold means the initial area of your browser&#8217;s viewport before scrolling further.</p>
<p>The concept is simple: to get the browser to render above the fold content as quickly as possible by reducing as many unnecessary elements as possible. Unfortunately, it&#8217;s really easier to be said than done.</p>
<h4>Eliminating render-blocking CSS</h4>
<p>For quick and lazy approach, you could always move all your CSS calls to the bottom, before the closing <span class="theme:github lang:default decode:true crayon-inline ">&lt;/body&gt;</span>  tag. The problem with this is, and you probably have seen it on some sites, you would see the page shown with plain content first before it quickly shifted to the <em>stylized version </em>a second later. For Bluelounge, this was not an ideal solution. They did not want to sacrifice form over function, which was understandable.</p>
<p>The solution was to use inline CSS for essential above the fold styles within the <span class="theme:github lang:default decode:true crayon-inline ">&lt;head&gt;</span>  and call the rest of the stylesheet from external CSS file at the bottom of the page. I needed to create a mini version of the CSS and only include classes used to render above the fold content.</p>
<p>Why not inlining the entire CSS file and save the trouble from having to rebuild an entire CSS block? Because you want to keep the HTML code light. Inline CSS is not cacheable. If I put the entire CSS inline, I would add 74KB on every web page and PageSpeed would not like it either.</p>
<p>At the end my inline CSS was around 21KB, mostly from Bootstrap&#8217;s grid classes.</p>
<h4>Eliminating render-blocking JavaScript</h4>
<p>The final part was to optimize the JavaScript calls. I had been saving the hardest part for last. Shopify&#8217;s shopping cart functionality depends on JavaScript, specifically using jQuery library. What this implies is that I could not just move all JS calls to the bottom like with CSS. With the template structure at the time, some shopping cart ability like adding an item into cart works by loading the script block within the body of the page. If the jQuery library was called after the function, it would simply not work.</p>
<p>I had to restructure the JavaScript calls, removing any function made inside the content and combining them into an external JS file to be loaded at the bottom of the page. Some functions still needed to be retained as inline though. They required to call dynamic variable from Shopify&#8217;s liquid language. For these, I just move them further down.</p>
<p>After setting the right order of the scripts to be called, my work was done.</p>
<h2>The outcome</h2>
<p>The numbers speak for themselves.</p>
<div id="attachment_2262" style="width: 750px" class="wp-caption aligncenter"><a href="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-after-mobile.png?ssl=1"><img decoding="async" aria-describedby="caption-attachment-2262" class="size-large wp-image-2262" src="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-after-mobile.png?resize=740%2C740&#038;ssl=1" alt="Bluelounge Homepage – PageSpeed score 94/100 for Mobile" width="740" height="740" srcset="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-after-mobile.png?resize=1024%2C1024&amp;ssl=1 1024w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-after-mobile.png?resize=150%2C150&amp;ssl=1 150w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-after-mobile.png?resize=300%2C300&amp;ssl=1 300w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-after-mobile.png?resize=768%2C768&amp;ssl=1 768w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-after-mobile.png?resize=600%2C600&amp;ssl=1 600w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-after-mobile.png?resize=780%2C780&amp;ssl=1 780w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-after-mobile.png?w=1200&amp;ssl=1 1200w" sizes="(max-width: 740px) 100vw, 740px" data-recalc-dims="1" /></a><p id="caption-attachment-2262" class="wp-caption-text">Bluelounge Homepage – PageSpeed score 94/100 for Mobile</p></div>
<div id="attachment_2261" style="width: 750px" class="wp-caption aligncenter"><a href="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-after-desktop.png?ssl=1"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-2261" class="size-large wp-image-2261" src="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-after-desktop.png?resize=740%2C555&#038;ssl=1" alt="Bluelounge Homepage – PageSpeed score 95/100 for Desktop" width="740" height="555" srcset="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-after-desktop.png?resize=1024%2C768&amp;ssl=1 1024w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-after-desktop.png?resize=300%2C225&amp;ssl=1 300w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-after-desktop.png?resize=768%2C576&amp;ssl=1 768w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-after-desktop.png?resize=600%2C450&amp;ssl=1 600w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-after-desktop.png?resize=780%2C585&amp;ssl=1 780w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-after-desktop.png?w=1200&amp;ssl=1 1200w" sizes="(max-width: 740px) 100vw, 740px" data-recalc-dims="1" /></a><p id="caption-attachment-2261" class="wp-caption-text">Bluelounge Homepage – PageSpeed score 95/100 for Desktop</p></div>
<p>Of course PageSpeed score is different from page to page and you should not just measure the Homepage. In this case, most of the pages have the score of &gt;85. Mission accomplished.</p>
<p>These steps may not be applicable to all Shopify powered sites, but hopefully you will be able to pick up a point or two. Also keep in mind that if your site uses many third party apps that add calls to external assets, it is almost impossible to control those.</p>
<p>Interested to optimize your Shopify website? Please do not hesitate to <a href="https://sunarlim.com/contact/">drop me a line</a>.</p>
<p>The post <a href="https://sunarlim.com/2016/08/shopify-pagespeed/">Shopify PageSpeed Score: Pushing the limits on Bluelounge website</a> appeared first on <a href="https://sunarlim.com">Michael Sunarlim</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sunarlim.com/2016/08/shopify-pagespeed/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2242</post-id>	</item>
		<item>
		<title>Front End Frameworks Based on Google&#8217;s Material Design</title>
		<link>https://sunarlim.com/2014/11/front-end-frameworks-based-on-material-design/</link>
					<comments>https://sunarlim.com/2014/11/front-end-frameworks-based-on-material-design/#respond</comments>
		
		<dc:creator><![CDATA[Michael]]></dc:creator>
		<pubDate>Tue, 11 Nov 2014 10:18:33 +0000</pubDate>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[javascript]]></category>
		<guid isPermaLink="false">https://sunarlim.com/?p=1212</guid>

					<description><![CDATA[<p>If you love Material Design, there is no reason why you should not try to use it as the DNA of your next project. Luckily a bunch of talented people took very little time to make things easier for their fellow designers and developers to be able to take make use the framework to their site's design.</p>
<p>The post <a href="https://sunarlim.com/2014/11/front-end-frameworks-based-on-material-design/">Front End Frameworks Based on Google&#8217;s Material Design</a> appeared first on <a href="https://sunarlim.com">Michael Sunarlim</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>In recent years we&#8217;ve seen Google has taken design very seriously. I personally think their competition with Apple in the tablet/smartphone war (Android vs iOS) forced them to take their design/visual up a few levels.</p>
<p>Google is not only polishing the interface on their mobile OS platform, but streamlining most of their wonderful and indispensable web applications with a unified look and style. <a href="http://www.google.com/design/spec/material-design/introduction.html" target="_blank">Material Design</a> is the latest design/visual language developed by Google and announced at the Google I/O conference in June 2014. As with latest UI design philosophy, Google went with flat look and focused on the details. While the direction is open for personal&#8217;s opinions, in overall I think Google has done a remarkable job.</p>
<p>If you love Material Design, there is no reason why you should not try to use it as the DNA of your next project. Luckily a bunch of talented people took very little time to make things easier for their fellow designers and developers to be able to take make use the framework to their site&#8217;s design.</p>
<h3><a href="http://dogfalo.github.io/materialize/" target="_blank">Materialize</a></h3>
<p><a href="http://dogfalo.github.io/materialize/" target="_blank"><img loading="lazy" decoding="async" src="https://i0.wp.com/sunarlim.com/wp-content/uploads/2014/11/Optimize_Materialize_-_Documentation.png?resize=740%2C296&#038;ssl=1" alt="Materialize" width="740" height="296" class="alignnone size-full wp-image-1219" srcset="https://i0.wp.com/sunarlim.com/wp-content/uploads/2014/11/Optimize_Materialize_-_Documentation.png?w=1200&amp;ssl=1 1200w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2014/11/Optimize_Materialize_-_Documentation.png?resize=300%2C120&amp;ssl=1 300w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2014/11/Optimize_Materialize_-_Documentation.png?resize=1024%2C409&amp;ssl=1 1024w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2014/11/Optimize_Materialize_-_Documentation.png?resize=150%2C60&amp;ssl=1 150w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2014/11/Optimize_Materialize_-_Documentation.png?resize=400%2C160&amp;ssl=1 400w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2014/11/Optimize_Materialize_-_Documentation.png?resize=800%2C320&amp;ssl=1 800w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2014/11/Optimize_Materialize_-_Documentation.png?resize=200%2C80&amp;ssl=1 200w" sizes="(max-width: 740px) 100vw, 740px" data-recalc-dims="1" /></a></p>
<p>This one goes on the top of my list because it feels like most polished and actively developed. The framework homepage shows a clear example how you can create nice look on your websites using their components.</p>
<h3><a href="https://fezvrasta.github.io/bootstrap-material-design/" target="_blank">Bootstrap Material</a></h3>
<p><a href="https://fezvrasta.github.io/bootstrap-material-design/" target="_blank"><img loading="lazy" decoding="async" src="https://i0.wp.com/sunarlim.com/wp-content/uploads/2014/11/Optimize_Bootstrap_Material.png?resize=740%2C296&#038;ssl=1" alt="Material Design for Bootstrap" width="740" height="296" class="alignnone size-full wp-image-1218" data-recalc-dims="1" /></a></p>
<p>If you are already in love with <a href="http://getbootstrap.com/" target="_blank">Bootstrap</a> and do not want to fool around with another framework, there is a solution for that too through this project by applying Material Design as a Bootstrap theme. Note that as the time of writing, this theme is not ready for production.</p>
<h3><a href="http://material-ui.com/" target="_blank">Material UI</a></h3>
<p><a href="http://material-ui.com/" target="_blank"><img loading="lazy" decoding="async" src="https://i0.wp.com/sunarlim.com/wp-content/uploads/2014/11/Optimize_Material_UI.png?resize=740%2C272&#038;ssl=1" alt="Material UI" width="740" height="272" class="alignnone size-full wp-image-1220" srcset="https://i0.wp.com/sunarlim.com/wp-content/uploads/2014/11/Optimize_Material_UI.png?w=1200&amp;ssl=1 1200w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2014/11/Optimize_Material_UI.png?resize=300%2C110&amp;ssl=1 300w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2014/11/Optimize_Material_UI.png?resize=1024%2C376&amp;ssl=1 1024w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2014/11/Optimize_Material_UI.png?resize=150%2C55&amp;ssl=1 150w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2014/11/Optimize_Material_UI.png?resize=400%2C147&amp;ssl=1 400w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2014/11/Optimize_Material_UI.png?resize=800%2C294&amp;ssl=1 800w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2014/11/Optimize_Material_UI.png?resize=200%2C73&amp;ssl=1 200w" sizes="(max-width: 740px) 100vw, 740px" data-recalc-dims="1" /></a></p>
<p>Last but not least, if you use <a href="http://facebook.github.io/react/" target="_blank">React</a> for your JavaScript library, this framework is definitely for you.</p>
<hr />
<p>There you go. Hopefully the list is useful for you. If you know other front-end frameworks that are based on Material Design, please share them by replying to this post. I would love to check and possibly add them here.</p>
<p>The post <a href="https://sunarlim.com/2014/11/front-end-frameworks-based-on-material-design/">Front End Frameworks Based on Google&#8217;s Material Design</a> appeared first on <a href="https://sunarlim.com">Michael Sunarlim</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sunarlim.com/2014/11/front-end-frameworks-based-on-material-design/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1212</post-id>	</item>
		<item>
		<title>Custom CSS Signatures in Apple Mail</title>
		<link>https://sunarlim.com/2008/10/custom-css-signatures-in-apple-mail/</link>
					<comments>https://sunarlim.com/2008/10/custom-css-signatures-in-apple-mail/#respond</comments>
		
		<dc:creator><![CDATA[Michael]]></dc:creator>
		<pubDate>Wed, 01 Oct 2008 10:05:10 +0000</pubDate>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[mail]]></category>
		<guid isPermaLink="false">http://wp.sunarlim.com.com/?p=174</guid>

					<description><![CDATA[<p>This has been one of the best Apple Mail tips that I found from the web. All you need is some basic knowledge of (X)HTML and CSS and the rest is very well explained on the tutorial. Do not let that long and very detailed steps discourage you, it is actually very easy to do!... <span class="more"><a class="more-link" href="https://sunarlim.com/2008/10/custom-css-signatures-in-apple-mail/">Continue reading <span class="meta-nav">&#8594;</span></a></span></p>
<p>The post <a href="https://sunarlim.com/2008/10/custom-css-signatures-in-apple-mail/">Custom CSS Signatures in Apple Mail</a> appeared first on <a href="https://sunarlim.com">Michael Sunarlim</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>This has been one of the best Apple Mail tips that I found from the web.</p>
<p>All you need is some basic knowledge of (X)HTML and CSS and the rest is very well explained on the tutorial. Do not let that long and very detailed steps discourage you, it is actually very easy to do!</p>
<div style="width: 460px" class="wp-caption aligncenter"><a href="http://allforces.com/2006/04/14/css-signatures/"><img loading="lazy" decoding="async" title="Apple Mail CSS signature" src="https://i0.wp.com/allforces.com/wp-content/uploads/2006/04/mail-compose-signature-test.jpg?resize=450%2C308" alt="Create a fancy signature for your Apple Mail" width="450" height="308" data-recalc-dims="1" /></a><p class="wp-caption-text">Create a fancy signature for your Apple Mail</p></div>
<p><a href="http://allforces.com/2006/04/14/css-signatures/" target="_blank">Read the tutorial (by All Forces)</a></p>
<p>The post <a href="https://sunarlim.com/2008/10/custom-css-signatures-in-apple-mail/">Custom CSS Signatures in Apple Mail</a> appeared first on <a href="https://sunarlim.com">Michael Sunarlim</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sunarlim.com/2008/10/custom-css-signatures-in-apple-mail/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">174</post-id>	</item>
		<item>
		<title>CSS Reference</title>
		<link>https://sunarlim.com/2008/08/css-reference/</link>
					<comments>https://sunarlim.com/2008/08/css-reference/#respond</comments>
		
		<dc:creator><![CDATA[Michael]]></dc:creator>
		<pubDate>Wed, 27 Aug 2008 15:04:40 +0000</pubDate>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[css]]></category>
		<guid isPermaLink="false">http://wp.sunarlim.com.com/?p=120</guid>

					<description><![CDATA[<p>There are too many good CSS out there, possibly thousands, but I still want to share my most useful links. I always look that these sites first whenever I need something new or face some problem and need solution. Listmatic &#8211; Using CSS and a simple list to create radically different list options CSS Table... <span class="more"><a class="more-link" href="https://sunarlim.com/2008/08/css-reference/">Continue reading <span class="meta-nav">&#8594;</span></a></span></p>
<p>The post <a href="https://sunarlim.com/2008/08/css-reference/">CSS Reference</a> appeared first on <a href="https://sunarlim.com">Michael Sunarlim</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>There are too many good CSS out there, possibly thousands, but I still want to share my most useful links. I always look that these sites first whenever I need something new or face some problem and need solution.</p>
<ul>
<li><a href="http://css.maxdesign.com.au/listamatic/" target="_blank">Listmatic</a> &#8211; Using CSS and a simple list to create radically different list options</li>
<li><a href="http://icant.co.uk/csstablegallery/index.php" target="_blank">CSS Table Gallery</a> &#8211; A showcase of how CSS and data tables can work together to create usable and pretty results</li>
<li><a href="http://www.positioniseverything.net/" target="_blank">Position Is Everything</a> &#8211; Explain some obtuse CSS bugs in modern browsers, provide demo examples of interesting CSS behaviors, and show how to “make it work” without using tables for layout purposes</li>
<li><a href="http://www.alistapart.com/" target="_blank">A List Apart</a> &#8211; Explores the design, development, and meaning of web content, with a special focus on web standards and best practices</li>
<li><a href="http://www.brunildo.org/test/" target="_blank">CSS tests and experiments</a></li>
</ul>
<p>You can share yours too..</p>
<p>The post <a href="https://sunarlim.com/2008/08/css-reference/">CSS Reference</a> appeared first on <a href="https://sunarlim.com">Michael Sunarlim</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sunarlim.com/2008/08/css-reference/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">120</post-id>	</item>
		<item>
		<title>Disabling CSS on Safari</title>
		<link>https://sunarlim.com/2007/04/disabling-css-on-safari/</link>
					<comments>https://sunarlim.com/2007/04/disabling-css-on-safari/#respond</comments>
		
		<dc:creator><![CDATA[Michael]]></dc:creator>
		<pubDate>Thu, 05 Apr 2007 07:16:07 +0000</pubDate>
				<category><![CDATA[Browser]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[safari]]></category>
		<guid isPermaLink="false">http://wp.sunarlim.com.com/archives/13</guid>

					<description><![CDATA[<p>For all of you who ever use other than Safari as your primary browser, you might notice that Safari is lacking the feature to disable/enable CSS on a page/site. So it is always enabled. We can use something called Safari bookmarklets to solve this. Here&#8217;s how: From Safari, CMD+right click then choose &#8216;Copy Link&#8217; this... <span class="more"><a class="more-link" href="https://sunarlim.com/2007/04/disabling-css-on-safari/">Continue reading <span class="meta-nav">&#8594;</span></a></span></p>
<p>The post <a href="https://sunarlim.com/2007/04/disabling-css-on-safari/">Disabling CSS on Safari</a> appeared first on <a href="https://sunarlim.com">Michael Sunarlim</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>For all of you who ever use other than Safari as your primary browser, you might notice that Safari is lacking the feature to disable/enable CSS on a page/site. So it is always enabled.</p>
<p>We can use something called <em>Safari bookmarklets</em> to solve this. Here&#8217;s how:</p>
<ol>
<li>From Safari, CMD+right click then choose &#8216;Copy Link&#8217; <a title="Toggle Linked CSS" href="javascript:var%20Lt=document.getElementsByTagName('LINK');for(var%20x=0,ss=%5B%5D;Lt%5Bx%5D;x++)%7Bvar%20rel=Lt%5Bx%5D.rel;if(typeof(rel)=='string'&amp;&amp;rel.toLowerCase().indexOf('style')+1)%7Bss%5Bss.length%5D=Lt%5Bx%5D;%7D%7Dfor(var%20x=0;ss%5Bx%5D;x++)%7Bss%5Bx%5D.disabled=!ss%5Bx%5D.disabled;%7D">this link</a>.</li>
<li>Add the previously copied link as one of your bookmark, you may name it &#8216;Toggle Linked CSS&#8217; or anything.</li>
<li>Now, everytime you browse just click on that bookmark during a visit of a page and you can see it with its CSS disabled.</li>
<li>Confused? Just try to test it by clicking on the link above or the added bookmark on this site first then.</li>
</ol>
<p>Note that this trick does not work 100% on every site, but more than enough as an alternative.</p>
<p>The post <a href="https://sunarlim.com/2007/04/disabling-css-on-safari/">Disabling CSS on Safari</a> appeared first on <a href="https://sunarlim.com">Michael Sunarlim</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sunarlim.com/2007/04/disabling-css-on-safari/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">13</post-id>	</item>
		<item>
		<title>Switching to XHTML/CSS</title>
		<link>https://sunarlim.com/2007/03/switching-to-xhtmlcss/</link>
					<comments>https://sunarlim.com/2007/03/switching-to-xhtmlcss/#respond</comments>
		
		<dc:creator><![CDATA[Michael]]></dc:creator>
		<pubDate>Tue, 06 Mar 2007 01:57:08 +0000</pubDate>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Work Related]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[xhtml]]></category>
		<guid isPermaLink="false">http://wp.sunarlim.com.com/archives/10</guid>

					<description><![CDATA[<p>After spending years of layouting using tables in HTML, I decided to start working on my coming web projects using full XHTML/CSS. This would be a big step to keep up with the dynamics of WWW. I know it&#8217;s old news and kind of a bit late, but better than never. For the others who... <span class="more"><a class="more-link" href="https://sunarlim.com/2007/03/switching-to-xhtmlcss/">Continue reading <span class="meta-nav">&#8594;</span></a></span></p>
<p>The post <a href="https://sunarlim.com/2007/03/switching-to-xhtmlcss/">Switching to XHTML/CSS</a> appeared first on <a href="https://sunarlim.com">Michael Sunarlim</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>After spending years of layouting using tables in HTML, I decided to start working on my coming web projects using full XHTML/CSS. This would be a big step to keep up with the dynamics of WWW. I know it&#8217;s old news and kind of a bit late, but better than never.</p>
<p><a href="http://www.amazon.com/Professional-CSS-Cascading-Sheets-Design/dp/0764588338/ref=sr_1_1/103-1992193-2278258?ie=UTF8&amp;s=books&amp;qid=1173145794&amp;sr=1-1" target="_blank"><img loading="lazy" decoding="async" title="Professional CSS: Cascading Style Sheets for Web Design" src="https://i0.wp.com/ec2.images-amazon.com/images/P/0764588338.01._BO2,204,203,200_PIsitb-dp-500-arrow,TopRight,45,-64_OU01_AA240_SH20_SCLZZZZZZZ_.jpg?resize=240%2C240" border="0" alt="Professional CSS: Cascading Style Sheets for Web Design" width="240" height="240" align="left" data-recalc-dims="1" /></a>For the others who are also interested with this new web standard, I recommend Professional CSS: Cascading Style Sheets for Web Design as a reference book. Of all the books I&#8217;ve read about XHTML and CSS, this one gave me the best view and understanding as the writers give real life example with very detailed descriptions for implementing them. Even for non-experienced web designers or people who just started learning about web design, I would still recommend it as the first chapter explains all the basics to create a web project.</p>
<p>The other problem that has been holding me back to start was the supporting application. As powerful as Macromedia/Adobe Dreamweaver can be for a WYSIWYG HTML editor, it still lacks the support for full XHTML/CSS layouting. Finally, after months of searching and trying, I found <a href="http://www.westciv.com/style_master/" target="_blank">West Civ&#8217;s Style Master</a> (available for both Win and Mac). I have only tried it for a few hours, but already find almost all of the required features for the transition. Hope this is the app I&#8217;ve been looking for, or hopefully Adobe make a new breakthrough when they release the next version of Dreamweaver.</p>
<p>The post <a href="https://sunarlim.com/2007/03/switching-to-xhtmlcss/">Switching to XHTML/CSS</a> appeared first on <a href="https://sunarlim.com">Michael Sunarlim</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sunarlim.com/2007/03/switching-to-xhtmlcss/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">10</post-id>	</item>
	</channel>
</rss>
