SlideShare a Scribd company logo
1 of 33
Making it smooth
Interface Styling & Scripting for
        WebKit Mobile
 David Aurelio – uxebu Consulting Ltd. & Co. KG
We open the mobile web.
Topics
     Layout
   Transforms
   Animation
     Styling
JavaScript Support
TouchScroll
JavaScript/CSS 3 Based Scrolling




        http://u.nu/8uvg8
Flexible Boxes s t r e t c h




Photo: http://www.flickr.com/photos/18773952@N00/416987309 – by mahalie – cc licensed
display: (-webkit-)box;
horizontal/vertical box positioning
flexible boxes
swiss army knife for layout tasks
In WebKit and Gecko for years
W3C Draft: “Flexible Box Layout Module”
Layout w/Header & Footer
Layout w/Header & Footer
   <div class="screen">
! <div class="head"><!-- Header bar --></div>
! <div class="contents"><!-- Screen contents --></div>
! <div class="footer"><!-- Footer / toolbar --></div>
</div>

.screen {
! display: -webkit-box;
! -webkit-box-orient: vertical;
! -webkit-box-pack: justify;
}

.contents {
! -webkit-box-flex: 1;
}
Horizontal Tab Bar
Horizontal Tab Bar
   <div class="tabs">
! <a href="#about">About</a>
! <a href="#horiz">Horizontal</a>
! <a href="#twodim">2-Dimensional</a>
</div>

.tabs {
! display: -webkit-box;
! -webkit-box-pack: justify;
}

.tabs > a {
! width: 1px;
! -webkit-box-flex: 1;
}
More in “display: box”
display order vs. source order
alignment
multiple lines
CSS Transforms




Photo: http://www.flickr.com/photos/jiazi/1061447777/ – by jiazi – cc licensed
CSS 3 Transforms




            }
Rotate




                Matrix
Skew

Translate

Scale
-webkit-transform: …
rotate(30deg) rotateX/Y/Z rotate3d
skew(20deg [, 10deg]) skewX/Y
translate translateX/Y/Z translate3d
scale(1.2) scaleX/Y scale3d
matrix(1, 0, 0, 1, 0, 0) matrix3d
perspective(200)
Demos
More Style                                                       Border Images


                                              Transparency Masks




                       Gradients




Photo: http://www.flickr.com/photos/senor_codo/234774166 – by Señor Codo – cc licensed
Frame: http://www.flickr.com/photos/eriwst/2303608353/ – by erwist – cc licensed
More Style
             Border Images
             -webkit-border-image:
                                url(…) 3 3 3 3 stretch


             Gradients
             -webkit-gradient(
                   linear, 0 0, 0 100%, from(#d67809),
                color-stop(0.5, #b51818), to(#b51887))


Transparency Masks
-webkit-mask-image: url(…)         +           =
-webkit-mask-box-image: …
More Style, Combined



        →
Movement: CSS Animations




Photo: http://www.flickr.com/photos/raindog/6359617/ – by raindog – cc licensed
Types of Animations
Transitions
Keyframe-based animations
Transitions
Transition between to states of a property
delay, duration, timing function
#mybox {
! -webkit-transition-property: opacity[, -webkit-transform];
! -webkit-transition-delay: 0.1s[, 0];
! -webkit-transition-duration: 120ms [, 2s];
! -webkit-transition-timing-function: ease-out [, ease];
}

document.getElementById("mybox").style.opacity = "0";
Keyframe based animations
Keyframes defined seperately
Encapsulate property state at keyframes
@-webkit-keyframes 'diagonal-slide' {
! from { -webkit-transform: translate(0, 0); }
! 50% { -webkit-transform: translate(-50px, -50px); }
! to { -webkit-transform: translate(100px, 100px); }
}

div {
! -webkit-animation-name: 'diagonal-slide';
! -webkit-animation-duration: 5s;
! -webkit-animation-iteration-count: 10;
}
Timing Functions
Cubic bezier curves
From (0, 0) to (1, 1)
Two explicit control points
cubic-bezier(0.2, 0.6, 0.8, 0.6)
Cubic Bezier Curves

                          y/out: progress →



                                                    t→



                                              x/in: elapsed time →

http://www.w3.org/TR/css3-transitions/ – Copyright © 2009 W3C® (MIT, ERCIM, Keio), All Rights Reserved.
Cubic Bezier Curves




Graphic from http://de.wikipedia.org/wiki/Datei:Bezier_cubic_anim.gif – public domain
Script Support for CSS




Photo: http://www.flickr.com/photos/86624586@N00/10187684/ – by kevinzim – cc licensed
Events
webkitTransitionEnd
webkitAnimationStart
webkitAnimationIteration
webkitAnimationEnd
Scripting Transforms
WebKitCSSMatrix
Instanciate from element state
var s = window.getComputedStyle(elm);
var m = new WebKitCSSMatrix(s.webkitTransform);


Transforming methods
Broken on Android < v2.0
Scripting Bezier Curves
Bezier calculation library
github.com/davidaurelio/css-beziers
approximate t for given x or y
Subdivide bezier curves
More?
Interfaces WebKitCSSKeyframesRule,
WebKitCSSKeyframeRule
document.styleSheets[i].cssRules[j]
Linkmania
http://uxebu.com/blog
http://static.uxebu.com/~david/touchscroll/
http://developer.apple.com/safari/library/navigation/
http://webkit.org/blog/
http://www.w3.org/TR/css3-flexbox/
http://www.w3.org/TR/css3-2d-transforms/
http://www.w3.org/TR/css3-3d-transforms/
http://www.w3.org/TR/css3-transitions/
http://www.w3.org/TR/css3-animations/
http://www.netzgesta.de/dev/cubic-bezier-timing-function.html
http://github.com/davidaurelio
Questions?
Thank You




Twitter: @void_0

david@uxebu.com

More Related Content

Similar to Interface Styling & Scripting on WebKit Mobile

[A5]deview 2012 pt hds webkit_gpu
[A5]deview 2012 pt hds webkit_gpu[A5]deview 2012 pt hds webkit_gpu
[A5]deview 2012 pt hds webkit_gpu
NAVER D2
 
How to build a html5 websites.v1
How to build a html5 websites.v1How to build a html5 websites.v1
How to build a html5 websites.v1
Bitla Software
 
[wcatx] Adaptive Images in Responsive Web Design
[wcatx] Adaptive Images in Responsive Web Design[wcatx] Adaptive Images in Responsive Web Design
[wcatx] Adaptive Images in Responsive Web Design
Christopher Schmitt
 
New Elements & Features in CSS3
New Elements & Features in CSS3New Elements & Features in CSS3
New Elements & Features in CSS3
Jamshid Hashimi
 
HTML5 and CSS3 – exploring mobile possibilities - Dynabyte event
HTML5 and CSS3 – exploring mobile possibilities - Dynabyte eventHTML5 and CSS3 – exploring mobile possibilities - Dynabyte event
HTML5 and CSS3 – exploring mobile possibilities - Dynabyte event
Robert Nyman
 
[refreshaustin] Adaptive Images in Responsive Web Design
[refreshaustin] Adaptive Images in Responsive Web Design[refreshaustin] Adaptive Images in Responsive Web Design
[refreshaustin] Adaptive Images in Responsive Web Design
Christopher Schmitt
 
[psuweb] Adaptive Images in Responsive Web Design
[psuweb] Adaptive Images in Responsive Web Design[psuweb] Adaptive Images in Responsive Web Design
[psuweb] Adaptive Images in Responsive Web Design
Christopher Schmitt
 
[refreshpitt] Adaptive Images in Responsive Web Design
[refreshpitt] Adaptive Images in Responsive Web Design[refreshpitt] Adaptive Images in Responsive Web Design
[refreshpitt] Adaptive Images in Responsive Web Design
Christopher Schmitt
 

Similar to Interface Styling & Scripting on WebKit Mobile (20)

I Can't Believe It's Not Flash
I Can't Believe It's Not FlashI Can't Believe It's Not Flash
I Can't Believe It's Not Flash
 
Minimalism in Web Development
Minimalism in Web DevelopmentMinimalism in Web Development
Minimalism in Web Development
 
[A5]deview 2012 pt hds webkit_gpu
[A5]deview 2012 pt hds webkit_gpu[A5]deview 2012 pt hds webkit_gpu
[A5]deview 2012 pt hds webkit_gpu
 
HTML5 - A Whirlwind tour
HTML5 - A Whirlwind tourHTML5 - A Whirlwind tour
HTML5 - A Whirlwind tour
 
How to build a html5 websites.v1
How to build a html5 websites.v1How to build a html5 websites.v1
How to build a html5 websites.v1
 
A brief look at CSS3 techniques by Aaron Rodgers, Web Designer @ vzaar.com
A brief look at CSS3 techniques by Aaron Rodgers, Web Designer @ vzaar.comA brief look at CSS3 techniques by Aaron Rodgers, Web Designer @ vzaar.com
A brief look at CSS3 techniques by Aaron Rodgers, Web Designer @ vzaar.com
 
Basics of html5, data_storage, css3
Basics of html5, data_storage, css3Basics of html5, data_storage, css3
Basics of html5, data_storage, css3
 
[wcatx] Adaptive Images in Responsive Web Design
[wcatx] Adaptive Images in Responsive Web Design[wcatx] Adaptive Images in Responsive Web Design
[wcatx] Adaptive Images in Responsive Web Design
 
CSS3 Takes on the World
CSS3 Takes on the WorldCSS3 Takes on the World
CSS3 Takes on the World
 
JavaONE 2012 Using Java with HTML5 and CSS3
JavaONE 2012 Using Java with HTML5 and CSS3JavaONE 2012 Using Java with HTML5 and CSS3
JavaONE 2012 Using Java with HTML5 and CSS3
 
Html5
Html5Html5
Html5
 
CSS3: Ready for Primetime?
CSS3: Ready for Primetime?CSS3: Ready for Primetime?
CSS3: Ready for Primetime?
 
[funka] Adaptive Images in Responsive Web Design
[funka] Adaptive Images in Responsive Web Design[funka] Adaptive Images in Responsive Web Design
[funka] Adaptive Images in Responsive Web Design
 
New Elements & Features in CSS3
New Elements & Features in CSS3New Elements & Features in CSS3
New Elements & Features in CSS3
 
HTML5 and CSS3 – exploring mobile possibilities - Dynabyte event
HTML5 and CSS3 – exploring mobile possibilities - Dynabyte eventHTML5 and CSS3 – exploring mobile possibilities - Dynabyte event
HTML5 and CSS3 – exploring mobile possibilities - Dynabyte event
 
[refreshaustin] Adaptive Images in Responsive Web Design
[refreshaustin] Adaptive Images in Responsive Web Design[refreshaustin] Adaptive Images in Responsive Web Design
[refreshaustin] Adaptive Images in Responsive Web Design
 
[psuweb] Adaptive Images in Responsive Web Design
[psuweb] Adaptive Images in Responsive Web Design[psuweb] Adaptive Images in Responsive Web Design
[psuweb] Adaptive Images in Responsive Web Design
 
Douban pulse
Douban pulseDouban pulse
Douban pulse
 
Html5 more than just html5 v final
Html5  more than just html5 v finalHtml5  more than just html5 v final
Html5 more than just html5 v final
 
[refreshpitt] Adaptive Images in Responsive Web Design
[refreshpitt] Adaptive Images in Responsive Web Design[refreshpitt] Adaptive Images in Responsive Web Design
[refreshpitt] Adaptive Images in Responsive Web Design
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 

Interface Styling & Scripting on WebKit Mobile

Editor's Notes

  1. - Modern CSS3-based techniques available in WebKit
  2. * My name is David (Aurelio) from uxebu (munich/amsterdam), a mobile web company * We develop cross platform mobile apps with JavaScript, HTML/CSS for the interface * we use the web technologies to increase our app&apos;s reach * Common codebase, distinct interface styles
  3. Topics: * Layout: CSS-support for easy layouts * Element transforms w/o reflows * Animation with transitions and keyframes * &amp;#x201C;Micro-styling&amp;#x201D; * Scripting transforms and animations
  4. Topics: * Layout: CSS-support for easy layouts * Element transforms w/o reflows * Animation with transitions and keyframes * &amp;#x201C;Micro-styling&amp;#x201D; * Scripting transforms and animations
  5. Topics: * Layout: CSS-support for easy layouts * Element transforms w/o reflows * Animation with transitions and keyframes * &amp;#x201C;Micro-styling&amp;#x201D; * Scripting transforms and animations
  6. Topics: * Layout: CSS-support for easy layouts * Element transforms w/o reflows * Animation with transitions and keyframes * &amp;#x201C;Micro-styling&amp;#x201D; * Scripting transforms and animations
  7. Topics: * Layout: CSS-support for easy layouts * Element transforms w/o reflows * Animation with transitions and keyframes * &amp;#x201C;Micro-styling&amp;#x201D; * Scripting transforms and animations
  8. TouchScroll: A JS-based scrolling layer for WebKit Mobile/Touch * CSS: box layout, transitions, transforms, gradients * JS: transform matrix, bezier curves
  9. First topic: layout with flexible boxes
  10. Flexible Box Layout: * Direction of document flow: Parent box lays out child boxes horizontally/vertically * Boxes can stretch along the axis individually * Similar to &amp;#x201C;display: table&amp;#x201D;, without its disadvantages * Boxes stay in the document flow, no floats, no absolute positioned elements * Many different types of layout tasks can be accomplished: header/footer layout, equal height columns, tile views. * Implemented in WebKit and Gecko; works on older runtimes, too (Nokia 5800) * W3C Working Draft, no futureless technique
  11. Flexible Box Layout: * Direction of document flow: Parent box lays out child boxes horizontally/vertically * Boxes can stretch along the axis individually * Similar to &amp;#x201C;display: table&amp;#x201D;, without its disadvantages * Boxes stay in the document flow, no floats, no absolute positioned elements * Many different types of layout tasks can be accomplished: header/footer layout, equal height columns, tile views. * Implemented in WebKit and Gecko; works on older runtimes, too (Nokia 5800) * W3C Working Draft, no futureless technique
  12. Flexible Box Layout: * Direction of document flow: Parent box lays out child boxes horizontally/vertically * Boxes can stretch along the axis individually * Similar to &amp;#x201C;display: table&amp;#x201D;, without its disadvantages * Boxes stay in the document flow, no floats, no absolute positioned elements * Many different types of layout tasks can be accomplished: header/footer layout, equal height columns, tile views. * Implemented in WebKit and Gecko; works on older runtimes, too (Nokia 5800) * W3C Working Draft, no futureless technique
  13. Flexible Box Layout: * Direction of document flow: Parent box lays out child boxes horizontally/vertically * Boxes can stretch along the axis individually * Similar to &amp;#x201C;display: table&amp;#x201D;, without its disadvantages * Boxes stay in the document flow, no floats, no absolute positioned elements * Many different types of layout tasks can be accomplished: header/footer layout, equal height columns, tile views. * Implemented in WebKit and Gecko; works on older runtimes, too (Nokia 5800) * W3C Working Draft, no futureless technique
  14. Flexible Box Layout: * Direction of document flow: Parent box lays out child boxes horizontally/vertically * Boxes can stretch along the axis individually * Similar to &amp;#x201C;display: table&amp;#x201D;, without its disadvantages * Boxes stay in the document flow, no floats, no absolute positioned elements * Many different types of layout tasks can be accomplished: header/footer layout, equal height columns, tile views. * Implemented in WebKit and Gecko; works on older runtimes, too (Nokia 5800) * W3C Working Draft, no futureless technique
  15. Example from TouchScroll: Simple header and footer layout &amp;#x2013; everyday task for phone developers, but not realizable with CSS2: Viewport behavior of WebKit Mobile optimized for document displaying, not for applications. * Show flexibility in browser
  16. * Simple markup * Even simpler styling
  17. * Simple markup * Even simpler styling
  18. * Simple markup * Even simpler styling
  19. * Simple markup * Even simpler styling
  20. * Simple markup * Even simpler styling
  21. * Simple markup * Even simpler styling
  22. * Simple markup * Even simpler styling
  23. Another example from TouchScroll: flexible tab bar &amp;#x2013; tabs resize horizontally like table cells * Show in Browser
  24. Again: simple markup and styling
  25. Again: simple markup and styling
  26. Again: simple markup and styling
  27. Again: simple markup and styling
  28. Again: simple markup and styling
  29. Again: simple markup and styling
  30. * It&amp;#x2019;s possible to display elements independently from source order (box-direction, box-ordinal-group) * alignment orthogonal to the display-axis
  31. * It&amp;#x2019;s possible to display elements independently from source order (box-direction, box-ordinal-group) * alignment orthogonal to the display-axis
  32. * It&amp;#x2019;s possible to display elements independently from source order (box-direction, box-ordinal-group) * alignment orthogonal to the display-axis
  33. Types of transforms: * All transforms exist for 2d and 3d (since when?) * Rotations, skews, translations, scalings * Matrix support (2x2, 4x4) * Don&amp;#x2019;t affect other elements in the document flow * Again, W3C drafts
  34. Types of transforms: * All transforms exist for 2d and 3d (since when?) * Rotations, skews, translations, scalings * Matrix support (2x2, 4x4) * Don&amp;#x2019;t affect other elements in the document flow * Again, W3C drafts
  35. Types of transforms: * All transforms exist for 2d and 3d (since when?) * Rotations, skews, translations, scalings * Matrix support (2x2, 4x4) * Don&amp;#x2019;t affect other elements in the document flow * Again, W3C drafts
  36. Types of transforms: * All transforms exist for 2d and 3d (since when?) * Rotations, skews, translations, scalings * Matrix support (2x2, 4x4) * Don&amp;#x2019;t affect other elements in the document flow * Again, W3C drafts
  37. Types of transforms: * All transforms exist for 2d and 3d (since when?) * Rotations, skews, translations, scalings * Matrix support (2x2, 4x4) * Don&amp;#x2019;t affect other elements in the document flow * Again, W3C drafts
  38. Types of transforms: * All transforms exist for 2d and 3d (since when?) * Rotations, skews, translations, scalings * Matrix support (2x2, 4x4) * Don&amp;#x2019;t affect other elements in the document flow * Again, W3C drafts
  39. Types of transforms: * All transforms exist for 2d and 3d (since when?) * Rotations, skews, translations, scalings * Matrix support (2x2, 4x4) * Don&amp;#x2019;t affect other elements in the document flow * Again, W3C drafts
  40. Types of transforms: * All transforms exist for 2d and 3d (since when?) * Rotations, skews, translations, scalings * Matrix support (2x2, 4x4) * Don&amp;#x2019;t affect other elements in the document flow * Again, W3C drafts
  41. Types of transforms: * All transforms exist for 2d and 3d (since when?) * Rotations, skews, translations, scalings * Matrix support (2x2, 4x4) * Don&amp;#x2019;t affect other elements in the document flow * Again, W3C drafts
  42. Types of transforms: * All transforms exist for 2d and 3d (since when?) * Rotations, skews, translations, scalings * Matrix support (2x2, 4x4) * Don&amp;#x2019;t affect other elements in the document flow * Again, W3C drafts
  43. Yellow: 3d transform module Animations hw-accelerated on the iPhone 3d transforms in Android 2.0 &amp;#x2013; bad performance, no perspective
  44. Yellow: 3d transform module Animations hw-accelerated on the iPhone 3d transforms in Android 2.0 &amp;#x2013; bad performance, no perspective
  45. Yellow: 3d transform module Animations hw-accelerated on the iPhone 3d transforms in Android 2.0 &amp;#x2013; bad performance, no perspective
  46. Yellow: 3d transform module Animations hw-accelerated on the iPhone 3d transforms in Android 2.0 &amp;#x2013; bad performance, no perspective
  47. Yellow: 3d transform module Animations hw-accelerated on the iPhone 3d transforms in Android 2.0 &amp;#x2013; bad performance, no perspective
  48. Yellow: 3d transform module Animations hw-accelerated on the iPhone 3d transforms in Android 2.0 &amp;#x2013; bad performance, no perspective
  49. Show demos on iPhone: poster circle, morphing power cube
  50. * border images: image as border, dividing it into nine fields * gradients: use everywhere instead of an image *
  51. * border images: image as border, dividing it into nine fields * gradients: use everywhere instead of an image *
  52. * border images: image as border, dividing it into nine fields * gradients: use everywhere instead of an image *
  53. * border images: image as border, dividing it into nine fields * gradients: use everywhere instead of an image *
  54. * border images: image as border, dividing it into nine fields * gradients: use everywhere instead of an image *
  55. * border images: image as border, dividing it into nine fields * gradients: use everywhere instead of an image *
  56. * All three techniques combined: border-image, gradient, mask * Advantage: better maintainability, fast changes
  57. * All three techniques combined: border-image, gradient, mask * Advantage: better maintainability, fast changes
  58. * All three techniques combined: border-image, gradient, mask * Advantage: better maintainability, fast changes
  59. * Transitions: smooth change between two states, easy to script * Animations: Keyframe-based, explicit starting state, repeatable
  60. * Transitions: smooth change between two states, easy to script * Animations: Keyframe-based, explicit starting state, repeatable
  61. * Transitions between two states for one or more properties (comma-separated) * Transitions have a duration, and optionally delay and timing function * On iPhone: Hardware acceleration for opacity and transform
  62. * Transitions between two states for one or more properties (comma-separated) * Transitions have a duration, and optionally delay and timing function * On iPhone: Hardware acceleration for opacity and transform
  63. * Transitions between two states for one or more properties (comma-separated) * Transitions have a duration, and optionally delay and timing function * On iPhone: Hardware acceleration for opacity and transform
  64. * Transitions between two states for one or more properties (comma-separated) * Transitions have a duration, and optionally delay and timing function * On iPhone: Hardware acceleration for opacity and transform
  65. * Keyframes are defined seperately from in CSS * Each keyframe contains information about property states * Are added to a selector * Optional timing function for each keyframe
  66. * Keyframes are defined seperately from in CSS * Each keyframe contains information about property states * Are added to a selector * Optional timing function for each keyframe
  67. * Keyframes are defined seperately from in CSS * Each keyframe contains information about property states * Are added to a selector * Optional timing function for each keyframe
  68. * Keyframes are defined seperately from in CSS * Each keyframe contains information about property states * Are added to a selector * Optional timing function for each keyframe
  69. * Easing functions represented by a cubic bezier curve * Normalized coordinate system [0, 1] * Two explicit control points within the coordinate system
  70. * Easing functions represented by a cubic bezier curve * Normalized coordinate system [0, 1] * Two explicit control points within the coordinate system
  71. * Easing functions represented by a cubic bezier curve * Normalized coordinate system [0, 1] * Two explicit control points within the coordinate system
  72. * Easing functions represented by a cubic bezier curve * Normalized coordinate system [0, 1] * Two explicit control points within the coordinate system
  73. * In/x-axis: Time * Many different curves * cubic function depends on variable &amp;#x201C;t&amp;#x201D; * solving for x or y involves complex numbers
  74. * In/x-axis: Time * Many different curves * cubic function depends on variable &amp;#x201C;t&amp;#x201D; * solving for x or y involves complex numbers
  75. * In/x-axis: Time * Many different curves * cubic function depends on variable &amp;#x201C;t&amp;#x201D; * solving for x or y involves complex numbers
  76. * In/x-axis: Time * Many different curves * cubic function depends on variable &amp;#x201C;t&amp;#x201D; * solving for x or y involves complex numbers
  77. * In/x-axis: Time * Many different curves * cubic function depends on variable &amp;#x201C;t&amp;#x201D; * solving for x or y involves complex numbers
  78. * construction in dependency of &amp;#x201C;t&amp;#x201D;
  79. * all bubbling * on iPhone 3G, webkitTransitionEnd fires late
  80. * all bubbling * on iPhone 3G, webkitTransitionEnd fires late
  81. * all bubbling * on iPhone 3G, webkitTransitionEnd fires late
  82. * all bubbling * on iPhone 3G, webkitTransitionEnd fires late
  83. * WebKitCSSMatrix represents a 4x4/16x16 transform matrix * Methods to translate, scale, rotate * Methods multiply, inverse * toString() returns CSS compatible matrix function definition
  84. * WebKitCSSMatrix represents a 4x4/16x16 transform matrix * Methods to translate, scale, rotate * Methods multiply, inverse * toString() returns CSS compatible matrix function definition
  85. * WebKitCSSMatrix represents a 4x4/16x16 transform matrix * Methods to translate, scale, rotate * Methods multiply, inverse * toString() returns CSS compatible matrix function definition
  86. * WebKitCSSMatrix represents a 4x4/16x16 transform matrix * Methods to translate, scale, rotate * Methods multiply, inverse * toString() returns CSS compatible matrix function definition
  87. * Same algorithm as WebKit for t approximasation * every cubic bezier curve may be divided at any given point, yielding two cubic bezier curves * Smoothly chained animations * Don&amp;#x2019;t use webkitTransitionEnd for chaining &amp;#x2013; fires late on iPhone 3G
  88. * Same algorithm as WebKit for t approximasation * every cubic bezier curve may be divided at any given point, yielding two cubic bezier curves * Smoothly chained animations * Don&amp;#x2019;t use webkitTransitionEnd for chaining &amp;#x2013; fires late on iPhone 3G
  89. * Same algorithm as WebKit for t approximasation * every cubic bezier curve may be divided at any given point, yielding two cubic bezier curves * Smoothly chained animations * Don&amp;#x2019;t use webkitTransitionEnd for chaining &amp;#x2013; fires late on iPhone 3G
  90. * Same algorithm as WebKit for t approximasation * every cubic bezier curve may be divided at any given point, yielding two cubic bezier curves * Smoothly chained animations * Don&amp;#x2019;t use webkitTransitionEnd for chaining &amp;#x2013; fires late on iPhone 3G
  91. * Two constructors in global scope * Useful for dynamic animation construction?
  92. * Two constructors in global scope * Useful for dynamic animation construction?