SlideShare uma empresa Scribd logo
1 de 40
Baixar para ler offline
Progressive Advancement
         by way of Progressive Enhancement
         with a sprinkle of Regressive Enhancement, where possible


                                                          Paul Irish
                                                    Google Chrome
                                                  FRONTEND2010



Sunday, September 12, 2010
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
OMG Browser wars




Sunday, September 12, 2010
Shiny new toys




                             svg
Sunday, September 12, 2010
Contenteditable




Sunday, September 12, 2010
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
So why have we had a different approach
           when it comes to the desktop?




Sunday, September 12, 2010
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
How then?




Sunday, September 12, 2010
Modernizr
Sunday, September 12, 2010
Sunday, September 12, 2010
Feature Detection


Sunday, September 12, 2010
sni
                                   ffin
                                        g   use
                                               rag
                                                  ent
                                                     s ==
                                                            = sn
                                                                iffin
                                                                     g gl
                                                                            ue




Sunday, September 12, 2010
Sunday, September 12, 2010
Sunday, September 12, 2010
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
// 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
Sunday, September 12, 2010
OM
                             onl G it’s
                                y3
                                   .7k
                                       !




Sunday, September 12, 2010
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
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
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
Modernizr
              http://modernizr.com
                             @modernizr




                                          Yah, it’s open source. Fork it, baby.


Sunday, September 12, 2010
Sunday, September 12, 2010
CSS3 Please!




Sunday, September 12, 2010
.. but how can i convince my team
                        to use this stuff for modern
                                           browsers?




Sunday, September 12, 2010
Be the champion of performance.




Sunday, September 12, 2010
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
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
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
Make the case




Sunday, September 12, 2010
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
Tantek sez:




Sunday, September 12, 2010
Tantek’s list:
     dependable:             roughly usable:   experimentable:
      doctype                 canvas            geolocation
      charset                                   web sockets
      selfclose, quotes      awkward:           web sql database
      new semantics           form inputs       indexeddatabase
      audio/video             meter/progress    webstorage
                              autofocus,        web workers
                             placeholder




Sunday, September 12, 2010
Paul’s list:
     dependable:             roughly usable:   experimentable:
      doctype                 canvas            web sql database
      charset                 geolocation       indexeddatabase
      selfclose, quotes       web sockets       webstorage
      new semantics           autofocus,        web workers
      audio/video            placeholder
      data-* attrs
      drag n drop            awkward:
      contenteditable         form inputs
                              meter/progress


Sunday, September 12, 2010
Sunday, September 12, 2010
Sunday, September 12, 2010
Sunday, September 12, 2010
Me:
                             http://paulirish.com
                                   @paul_irish




Sunday, September 12, 2010
OM
                                                          G
                                                    THX
                                                        !
                             Me:
                             http://paulirish.com
                                   @paul_irish




Sunday, September 12, 2010

Mais conteúdo relacionado

Semelhante a Progressive Advancement, by way of progressive enhancement

Ga london-html5&mobile advertising-tomlimongello
Ga london-html5&mobile advertising-tomlimongelloGa london-html5&mobile advertising-tomlimongello
Ga london-html5&mobile advertising-tomlimongelloTom Limongello
 
Introduction to Canvas and Native Web Vector Graphics
Introduction to Canvas and Native Web Vector GraphicsIntroduction to Canvas and Native Web Vector Graphics
Introduction to Canvas and Native Web Vector Graphicsdylanks
 
Sencha Touch beta — Amazing Mobile Web Apps with HTML5, CSS3 & JavaScript
Sencha Touch beta — Amazing Mobile Web Apps with HTML5, CSS3 & JavaScriptSencha Touch beta — Amazing Mobile Web Apps with HTML5, CSS3 & JavaScript
Sencha Touch beta — Amazing Mobile Web Apps with HTML5, CSS3 & JavaScriptDavid Kaneda
 
Zeno rocha - HTML5 APIs para Mobile
Zeno rocha - HTML5 APIs para MobileZeno rocha - HTML5 APIs para Mobile
Zeno rocha - HTML5 APIs para MobileiMasters
 
Using CartoDB to analyze OpenStreetMap data
Using CartoDB to analyze OpenStreetMap dataUsing CartoDB to analyze OpenStreetMap data
Using CartoDB to analyze OpenStreetMap dataandrewxhill
 
DjangoCon 2009 Keynote
DjangoCon 2009 KeynoteDjangoCon 2009 Keynote
DjangoCon 2009 KeynoteTed Leung
 
Big app design for Node.js
Big app design for Node.jsBig app design for Node.js
Big app design for Node.jsSergi Mansilla
 
HTML5 e CSS3 - A nova novidade
HTML5 e CSS3 - A nova novidadeHTML5 e CSS3 - A nova novidade
HTML5 e CSS3 - A nova novidadeDiego Eis
 
Modern web application model
Modern web application modelModern web application model
Modern web application modelMichal Taberski
 
Augmented Reality with JavaScript and Appcelerator Titanium
Augmented Reality with JavaScript and Appcelerator TitaniumAugmented Reality with JavaScript and Appcelerator Titanium
Augmented Reality with JavaScript and Appcelerator TitaniumJeff Bonnes
 
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_Ken Collins
 
Joshfire Factory: Building Apps for Billion of Devices
Joshfire Factory: Building Apps for Billion of DevicesJoshfire Factory: Building Apps for Billion of Devices
Joshfire Factory: Building Apps for Billion of DevicesFrancois Daoust
 
Sassy Stylesheets with SCSS
Sassy Stylesheets with SCSSSassy Stylesheets with SCSS
Sassy Stylesheets with SCSSKathryn Rotondo
 
Macruby - RubyConf Presentation 2010
Macruby - RubyConf Presentation 2010Macruby - RubyConf Presentation 2010
Macruby - RubyConf Presentation 2010Matt Aimonetti
 
Responsive Design for the Web
Responsive Design for the WebResponsive Design for the Web
Responsive Design for the Webjonbuda
 
Responsive Web Design & Workflow
Responsive Web Design & WorkflowResponsive Web Design & Workflow
Responsive Web Design & Workflowhouhr
 
Cloud Austin 2013: Conferenced2013
Cloud Austin 2013: Conferenced2013Cloud Austin 2013: Conferenced2013
Cloud Austin 2013: Conferenced2013Karthik Gaekwad
 

Semelhante a Progressive Advancement, by way of progressive enhancement (20)

Ga london-html5&mobile advertising-tomlimongello
Ga london-html5&mobile advertising-tomlimongelloGa london-html5&mobile advertising-tomlimongello
Ga london-html5&mobile advertising-tomlimongello
 
Introduction to Canvas and Native Web Vector Graphics
Introduction to Canvas and Native Web Vector GraphicsIntroduction to Canvas and Native Web Vector Graphics
Introduction to Canvas and Native Web Vector Graphics
 
Sencha Touch beta — Amazing Mobile Web Apps with HTML5, CSS3 & JavaScript
Sencha Touch beta — Amazing Mobile Web Apps with HTML5, CSS3 & JavaScriptSencha Touch beta — Amazing Mobile Web Apps with HTML5, CSS3 & JavaScript
Sencha Touch beta — Amazing Mobile Web Apps with HTML5, CSS3 & JavaScript
 
Zeno rocha - HTML5 APIs para Mobile
Zeno rocha - HTML5 APIs para MobileZeno rocha - HTML5 APIs para Mobile
Zeno rocha - HTML5 APIs para Mobile
 
Using CartoDB to analyze OpenStreetMap data
Using CartoDB to analyze OpenStreetMap dataUsing CartoDB to analyze OpenStreetMap data
Using CartoDB to analyze OpenStreetMap data
 
07 problem-solving
07 problem-solving07 problem-solving
07 problem-solving
 
DjangoCon 2009 Keynote
DjangoCon 2009 KeynoteDjangoCon 2009 Keynote
DjangoCon 2009 Keynote
 
Big app design for Node.js
Big app design for Node.jsBig app design for Node.js
Big app design for Node.js
 
HTML5 e CSS3 - A nova novidade
HTML5 e CSS3 - A nova novidadeHTML5 e CSS3 - A nova novidade
HTML5 e CSS3 - A nova novidade
 
Modern web application model
Modern web application modelModern web application model
Modern web application model
 
Augmented Reality with JavaScript and Appcelerator Titanium
Augmented Reality with JavaScript and Appcelerator TitaniumAugmented Reality with JavaScript and Appcelerator Titanium
Augmented Reality with JavaScript and Appcelerator Titanium
 
Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_Dominion Enterprises _H@<k@th0n_
Dominion Enterprises _H@<k@th0n_
 
Joshfire Factory: Building Apps for Billion of Devices
Joshfire Factory: Building Apps for Billion of DevicesJoshfire Factory: Building Apps for Billion of Devices
Joshfire Factory: Building Apps for Billion of Devices
 
Sassy Stylesheets with SCSS
Sassy Stylesheets with SCSSSassy Stylesheets with SCSS
Sassy Stylesheets with SCSS
 
Macruby - RubyConf Presentation 2010
Macruby - RubyConf Presentation 2010Macruby - RubyConf Presentation 2010
Macruby - RubyConf Presentation 2010
 
WebGL and three.js
WebGL and three.jsWebGL and three.js
WebGL and three.js
 
100% JS
100% JS100% JS
100% JS
 
Responsive Design for the Web
Responsive Design for the WebResponsive Design for the Web
Responsive Design for the Web
 
Responsive Web Design & Workflow
Responsive Web Design & WorkflowResponsive Web Design & Workflow
Responsive Web Design & Workflow
 
Cloud Austin 2013: Conferenced2013
Cloud Austin 2013: Conferenced2013Cloud Austin 2013: Conferenced2013
Cloud Austin 2013: Conferenced2013
 

Mais de Paul Irish

webfonts & @font-face :: in brief
webfonts & @font-face :: in briefwebfonts & @font-face :: in brief
webfonts & @font-face :: in briefPaul Irish
 
Squeezing The Best Out Of Webfonts
Squeezing The Best Out Of WebfontsSqueezing The Best Out Of Webfonts
Squeezing The Best Out Of WebfontsPaul Irish
 
Employing Custom Fonts
Employing Custom FontsEmploying Custom Fonts
Employing Custom FontsPaul Irish
 
jQuery Anti-Patterns for Performance & Compression
jQuery Anti-Patterns for Performance & CompressionjQuery Anti-Patterns for Performance & Compression
jQuery Anti-Patterns for Performance & CompressionPaul Irish
 
Practical Design Solutions from Japan
Practical Design Solutions from JapanPractical Design Solutions from Japan
Practical Design Solutions from JapanPaul Irish
 
Rich Typography Options For The Web - or - Why sIFR is Dead in 2009
Rich Typography Options For The Web - or - Why sIFR is Dead in 2009Rich Typography Options For The Web - or - Why sIFR is Dead in 2009
Rich Typography Options For The Web - or - Why sIFR is Dead in 2009Paul Irish
 

Mais de Paul Irish (6)

webfonts & @font-face :: in brief
webfonts & @font-face :: in briefwebfonts & @font-face :: in brief
webfonts & @font-face :: in brief
 
Squeezing The Best Out Of Webfonts
Squeezing The Best Out Of WebfontsSqueezing The Best Out Of Webfonts
Squeezing The Best Out Of Webfonts
 
Employing Custom Fonts
Employing Custom FontsEmploying Custom Fonts
Employing Custom Fonts
 
jQuery Anti-Patterns for Performance & Compression
jQuery Anti-Patterns for Performance & CompressionjQuery Anti-Patterns for Performance & Compression
jQuery Anti-Patterns for Performance & Compression
 
Practical Design Solutions from Japan
Practical Design Solutions from JapanPractical Design Solutions from Japan
Practical Design Solutions from Japan
 
Rich Typography Options For The Web - or - Why sIFR is Dead in 2009
Rich Typography Options For The Web - or - Why sIFR is Dead in 2009Rich Typography Options For The Web - or - Why sIFR is Dead in 2009
Rich Typography Options For The Web - or - Why sIFR is Dead in 2009
 

Último

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 

Último (20)

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 

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
  • 3. OMG Browser wars Sunday, September 12, 2010
  • 4. Shiny new toys svg 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
  • 13. sni ffin g use rag ent s == = sn iffin g gl ue 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
  • 26. .. but how can i convince my team to use this stuff for modern browsers? Sunday, September 12, 2010
  • 27. Be the champion of performance. 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
  • 31. Make the case 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
  • 34. Tantek’s list: dependable: roughly usable: experimentable: doctype canvas geolocation charset web sockets selfclose, quotes awkward: web sql database new semantics form inputs indexeddatabase audio/video meter/progress webstorage autofocus, web workers placeholder Sunday, September 12, 2010
  • 35. Paul’s list: dependable: roughly usable: experimentable: doctype canvas web sql database charset geolocation indexeddatabase selfclose, quotes web sockets webstorage new semantics autofocus, web workers audio/video placeholder data-* attrs drag n drop awkward: contenteditable form inputs meter/progress Sunday, September 12, 2010
  • 39. Me: http://paulirish.com @paul_irish Sunday, September 12, 2010
  • 40. OM G THX ! Me: http://paulirish.com @paul_irish Sunday, September 12, 2010