WebKit CSS Animation Examples

July 19, 2008 By: admin Category: CSS, WebKit, Dev, iPhone

According to WebKit.org, the WebKit supports the simplest kind of animation called a transition.

Transitions are specified using the following properties:

  • transition-property - What property should animate, e.g., opacity.
  • transition-duration - How long the transition should last.
  • transition-timing-function - The timing function for the transition (e.g., linear vs. ease-in vs. a custom cubic bezier function).
  • transition - A shorthand for all three properties.

Last week, I’ve noticed that Apple had published some new documentations at Developer Connection, including
Safari CSS Animation Guide for iPhone OS and Safari CSS Transforms Guide for iPhone OS (Go to download page).
Since I read the WebKit.org blog entry last year, I was interested in the CSS animation so I finally decided to give it try.

I spent some time writing several CSS tests, ran on several different WebKit browsers. and my conclusion is that:

  1. the animation and transforms are pretty buggy on current iPhone Safari.
  2. the current WebKit nightly (as of July 19) has some bugs so animation doesn’t work when swapping class names
  3. with oncick event handler attributes like, using this.className='newClassName'.

The className swap was working perfectly, until I installed the newer build, r35231.
I will file the bug to Webit.org soon.

On latest build, build r35075 - r35231 (the newest one I tested),
changing the values of style object properties, instead, as
onclick="this.style.opacity='0'"

I wanted to create the animation entirely absent of JavaScript, but now I need to use a function to handle multiple style properties…


UPDATE / CORRECTION (July 23, 08) - please see “More Update on CSS Animation”

I still haven’t gotten a chance to try iPhone 3G yet, and I tested only on my old iPhone with the latest upgrade.
Are there any differences in between two Safaris? I doubt it.

Anyway, Open the test page I wrote in a new window!

Animate Opacity

Opacity Transition Test

Expected result: When a user mouse-overs the box, an object appears smoothly (opacity=.5) in 2 sec.
On mouse-click, the image fades in completely (opacity=1).

	
.box1 img{
	opacity: 0;
	-webkit-transition: opacity 2s ease-out;   /* shorthand for all three properties */
}
.box1 img:hover {
	opacity: .8;
}
	
	
<div class="box1">
	<img src="images/apple.png"/>
</div>
	

Animate Position - Move to right

Position Transition Test

Expected result: the image moves to the right as fading out.

	
.box2{
	opacity: 1;
  	-webkit-transition-property: opacity, left;
	-webkit-transition-duration: 1s, 1.5s;
	transition-timing-function: ease-in;
}
	
	
<div class="box2" onclick="this.style.opacity='0'; this.style.position='relative'; this.style.left='500px'">
	<img src="images/apple.png"/>
</div>
	

Animate Letters - Letter-Spacing

Letter-Spacing Test

Expected result: When the text is clicked, each letter spaces out as fading away.

It is pretty cumbersome to handle multiple style properties with onclick, so I added a JavaScript function to take care:

	
function switchStyles(style,obj) {
	for(var prop in obj)
		style[prop] = obj[prop];
}
	


UPDATE / CORRECTION (July 23, 08) - You don’t need this hassle with JS. Please see “More Update on CSS Animation”

	
.box3{
	color: green;
	opacity: 1;
  	-webkit-transition-property: opacity, letter-spacing;
	-webkit-transition-duration: 1.5s, 2s;
	transition-timing-function: ease-out, linear;
}
	
	
<div class="box3"
     onclick="switchStyles(this.style,{
	    color : 'lime',
	    opacity : '0',
	    letterSpacing : '3em'
});">
	some text to be clicked here.
</div>
	

Transform - Click to spin the image and fade away

Position Transition Test

Expected result: the image rotates twice (360 deg x 2) around the Z axis, as fading.

	
.box4{
  	-webkit-transition-property: -webkit-transform, opacity;
	-webkit-transition-duration: 2s;
	transition-timing-function: cubic-bezier(0.42, 0, 0.58, 1.0); /* equivalent to ease-in-out */
}
	
	
<div class="box4"
	 onclick="switchStyles(this.style,{
	    webkitTransform: 'rotate(720deg) translate(1000px,0px)',
		opacity: '0'
});">
	<img src="images/apple.png"/>
</div>
	

Also, I tried CSS gradients. These still don’t seem to work on iPhone but worked on all recent WebKit nightly.

CSS Gradients - Linear and Radial

Gradients Test

Expected results:
Linear - Green to white top-to-bottom linear gradient
Radial - White to pink center-to-outer radial gradient
Actual results:
Nicely working on WbKit nightly builds. Failed miserably on both Mac desktop and iPhone Safari 3.1.

Screenshot of the results on WebKit nightly


The syntax is as follows:
-webkit-gradient(<type>, <point> [, <radius>]?, <point> [, <radius>]? [, <stop>]*)

	
#gradientLinear{
	float: left;
	width: 180px;
	height: 180px;
	border: 1px solid #11276c;
	background:
		-webkit-gradient(linear, left top, left bottom, from(rgba(158,192,0,.85)), color-stop(1, #fff));
}

#gradientRadial{
	float: left;
	margin-left: .5em;
	width: 180px;
	height: 180px;
	border: 1px solid #11276c;
	background:
		-webkit-gradient(radial, center center, 3, 80 80, 100, from(rgb(255,255,255)), to(rgba(228,56,132,.85)), color-stop(0%,#fff));
}
	


Resources:

  1. Surfin’ Safari - CSS Animation
  2. Surfin’ Safari - Introducing CSS Gradients
  3. Safari CSS Animation Guide for iPhone OS
  4. Safari CSS Transform Guide for iPhone OS

iPhone Official Portal is Yahoo! … in Japan

July 16, 2008 By: admin Category: Yahoo!, iPhone

Y!Japan on iPhone

Well, this is because Yahoo! Japan is owned by Softbank. This would never happen for the US market :-p

I wasn’t involved any of this Japanese version of Y! Mobile site, but one of my colleagues in Sunnyvale, who should be busy preparing for his wedding now, has been crazy busy for this. Congrats on the launch!

More info: 誕生! iPhone にピッタリの Yahoo! Japan

On your iPhone, go to http://ipn.yahoo.co.jp

By the way, I haven’t gotten a new iPhone yet. I thought my new boss would give it to me but it didn’t happen. Thank you very much. 

iJesus 2

June 09, 2008 By: admin Category: iPhone

iPhone 3G

The cult leader Steve Jobs unveiled new iPhone 3G at WWDC.

The main highlights of the new Jesus phone are:

  • Faster 3G (over 2x faster than EDGE)
  • A built-in GPS
  • Discounted price - $199 for 8GB, $299 for 16GB
  • Thinner design
  • comes with black and white (not red as shown in the “leaked photo”…)
  • native apps, incl. Mobile Me email app.

Product (RED) for iPhone 2?

June 07, 2008 By: admin Category: iPhone

iPhone 2

OK, I’ve got my (RED) iPod, and now Apple is going ship it for the next-gen iPhone?

Although not sure about the credibility, according to the leaked photos posted on MobileCrunch, the iPhone 2 is 22% thinner than the current iPhone and comes with a front-facing camera for video-chat.

The color variations include black and red. Do I need to wait for iPhone 3 for pink??? (besides ordering a custom-made from ColorWare).

Y!Go Can Has Cheezburger?

June 04, 2008 By: admin Category: Yahoo!, Dev, iPhone

Lolcat on Y!Go

Last time I made CuteOverload into Apple iPhone WebApp, “iCuteOverload“, so this time I made I Can Has Cheesburger? into Yahoo!Go mobile widget.

Try it on Yahoo! Go client, or open up an web browser in your mobile device and go to http://beta.m.yahoo.com, login, go to “widget” by clicking the icon looks like a tool on top and add “I Can Has Cheezburger?”. Works on iPhone at the URL too!

Dev.mobi Event at Palo Alto

May 31, 2008 By: admin Category: dotMobi, Event, WAP, Dev

dev.mobi 

Today, I had a chance to attend dev.mobi developers’ session at Palo Alto.

I am actually a user of their web tools and documentations, and really like the way they are trying to set standard for developers.

In today’s session, I was able to find out more about their ongoing projects. Paul Nerger of dotMobi, explained the interesting new product from them is called Device Atlas. This is a comprehensive database of mobile device information, such as hardware info, OS, browser. supported graphic format etc., with easy-to-follow GUI. The first version was just released a few months ago and they are now working on new features such as integrations with Ready.mobi test suite, W3C checker Firefox plugin, providing analytics and competitive benchmarking.

One of the biggest pain for me to work on mobile web is a cross-browser issue. Surely there’re thousands of mobile devices means thousands of different browsers. I already appreciate for the OMA and WURFL for the data, so with more partners like Nokia, Vodafone, Volantis etc. Device Atlas seems to be so promising fore more accurate info.The data is available as json files. So for example, to get the screen resolution of a certain device, get the UA and simply call its json data.

By the way, just like me, Paul doesn’t like the term “WAP”. I do use the term to distinguish it from desktop web, but I always felt some sort of awkwardness to say it. Yeah, WAP rhymes with crap, right Paul!

$5 a Gallon? Take Public Transits

May 30, 2008 By: admin Category: Google

Google ad on MUNI bus

maps.google.com/bayarea

I saw this Google ad on the MUNI bus I take for commuting (yes. I take a MUNI and company shuttle to commute to Sunnyvale from SF!) and tried it and like it a lot.

map screenshot

This is a nice additional feature on Google Maps that gives you step-by-step transit directions including estimate travel time. It covers MUNI, BART, CalTrain, etc. also walking route. (but it looks like ferry is not covered).

Google Maps Bay Area Transit

Couture Phone from Chiristian Dior

May 25, 2008 By: admin Category: Girlie Stuff

Dior phones

There were Versace by Nokia, Dolce & Gabbana by Motorola, Prada by LG etc. And now Dior will have its own luxury mobile phone, manufactured by ModeLabs of France, with the high price-tag of $5000! This is like a Vertu price, sans the concierge service…

The Dior phones won’t be available in the US, or even Europe - available only in China and Russia.

Opera Lanches Widget SDK

May 21, 2008 By: admin Category: Opera, SDK, Google, Nokia, Dev, iPhone

Today, Opera launched Widget SDK, enabling web developers to deploy web apps on desktop, TV and mobile devices. Unlike Apple’s iPhone $99 SDK, it is free of charge.

Watch the step-by-step instruction video:

More Mobile App/Widget SDKs:

WTF!!!

May 11, 2008 By: admin Category: GirlieMac! News

I have lost all the past blog entries…

The web hosting company went out of business, and left all customers including me without any notice.

I didn’t even backup anything from MySQL.

All the blog entries you see before this post has been added retrospectively by scrapping some cached content from Yahoo and Google search results. (Nothing was found on Web Archive).

Also, I’d like to say thank you for you guys who have left comments for me. I am pretty upset for losing the comments :-(