TeamStation AI System Report LATAM IT Salaries 2024
Progressive Advancement, by way of progressive enhancement
1. Progressive Advancement
by way of Progressive Enhancement
with a sprinkle of Regressive Enhancement, where possible
Paul Irish
Google Chrome
FRONTEND2010
Sunday, September 12, 2010
2. Your mother does
NOT find a website
she likes the look of,
and then opens it
another browser.
~Andy Clarke (@malarkey)
Sunday, September 12, 2010
6. A Question...
if you’re designing a mobile experience,
do you start with how its going to look
in blackberry and s60 and winmobile?
or do you design it to look fucking great
in android, iOS, happy new webkits...
and function decently on the rest?
Sunday, September 12, 2010
7. So why have we had a different approach
when it comes to the desktop?
Sunday, September 12, 2010
8. So we create an experience that takes
advantage of hotness when we have it.
and function decently when we don’t.
Sunday, September 12, 2010
16. Native No Native
Implementation Implementation
.box { .no-borderradius .box {
// use border-radius // maybe less padding?
} }
if (Modernizr.borderradius == false){
// call up DD_roundies, etc.
}
Sunday, September 12, 2010
17. // geo-location bridge
function getLocation(callback){
if (getLocation.cache) return callback(getLocation.cache);
if (Modernizr.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
callback(getLocation.cache = {
"lat": position.coords.latitude,
"lon": position.coords.longitude,
"obj": position
})
});
} else {
$.getScript('//www.google.com/jsapi',function(){
callback(getLocation.cache = {
"lat": google.loader.ClientLocation.latitude,
"lon": google.loader.ClientLocation.longitude,
"obj": google.loader.ClientLocation
})
});
}
}
// usage
getLocation(function(pos){
console.log("I'm located at ",pos.lat,' and ',pos.lon);
});
Sunday, September 12, 2010
19. OM
onl G it’s
y3
.7k
!
Sunday, September 12, 2010
20. We got you covered, b.
Rounded corners 2D Transformations
@font-face fonts CSS Gradients
Canvas SVG
rgba(), hsla() colors Geolocation
border-image CSS Columns
box-shadow HTML5 Forms
HTML5 Audio & Video Web Workers
CSS Animations Offline Web Apps
CSS Transitions …
Sunday, September 12, 2010
21. We got you covered, b.
Rounded corners 2D Transformations webGL
@font-face fonts CSS Gradients SMIL
Canvas SVG hashchange event
rgba(), hsla() colors Geolocation localStorage
border-image CSS Columns sessionStorage
box-shadow HTML5 Forms postMessage
HTML5 Audio & Web Workers html5 drag ‘n drop
Video
Offline Web Apps web sql database
CSS Animations
CSS Transitions
Sunday, September 12, 2010
22. We got you covered, b.
Rounded corners 2D Transformations webGL
@font-face fonts CSS Gradients SMIL
Canvas SVG hashchange event
rgba(), hsla() colors Geolocation localStorage
border-image CSS Columns sessionStorage
box-shadow HTML5 Forms postMessage
HTML5 Audio & Web Workers html5 drag ‘n drop
Video
Offline Web Apps web sql database
CSS Animations
CSS Transitions or just take the tests
by themselves, sans-library
Sunday, September 12, 2010
23. Modernizr
http://modernizr.com
@modernizr
Yah, it’s open source. Fork it, baby.
Sunday, September 12, 2010
28. A Performance Policy
2 truths
1. Both you and the client want the most
responsive experience possible.
2. Everything added to the page slows it
down.
Sunday, September 12, 2010
29. A Performance Policy
During IA, IxD and visual design
communicate impact of design decisions
Tell the client all browsers will not have the
same experience
It’s not worthwhile to have feature parity
Sunday, September 12, 2010
30. When performance is poor
There are three options:
1. Redevelop the code
2. Drop the feature
3. Redesign approach of the UI
Sunday, September 12, 2010
32. Killing code is a good thing
HTML5 form controls UI libraries
HTML5 drag ‘n drop jQuery.fn.draggable()
css transitions .animate()
VS
border-radius
border-image large image sprites
background gradients
localStorage cookies
Sunday, September 12, 2010