SlideShare una empresa de Scribd logo
1 de 22
Descargar para leer sin conexión
Building the new AppExchange
using Responsive Design

Pratima Nambiar, salesforce.com, Tech Lead, AppExchange
Jochem Geerdink, salesforce.com, Product Designer, AppExchange
Safe Harbor
 Safe harbor statement under the Private Securities Litigation Reform Act of 1995:

 This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties
 materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results
 expressed or implied by the forward-looking statements we make. All statements other than statements of historical fact could be
 deemed forward-looking, including any projections of product or service availability, subscriber growth, earnings, revenues, or other
 financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any
 statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services.

 The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new
 functionality for our service, new products and services, our new business model, our past operating losses, possible fluctuations in our
 operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of
 intellectual property and other litigation, risks associated with possible mergers and acquisitions, the immature market in which we
 operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new
 releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization
 and selling to larger enterprise customers. Further information on potential factors that could affect the financial results of
 salesforce.com, inc. is included in our annual report on Form 10-Q for the most recent fiscal quarter ended July 31, 2012. This
 documents and others containing important disclosures are available on the SEC Filings section of the Investor Information section of
 our Web site.

 Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently
 available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based
 upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-
 looking statements.
Agenda

   Background
   Demo of responsive features of the new AppExchange
   Responsive Web Design highlights
   Integrating with Force.com
AppExchange
AppExchange Goes Mobile
Mobile Technologies Considered

   Native app
   Mobile version of the application
   Web application using Responsive Web Design
Agenda

   Background
   Demo of responsive features of the new AppExchange
   Responsive Web Design highlights
   Integrating with Force.com
Agenda

   Background
   Demo of responsive features of the new AppExchange
   Responsive Web Design highlights
   Integrating with Force.com
Definition

 Responsive Web Design (RWD) is an approach to web design
 in which a site is crafted to provide an optimal viewing
 experience—easy reading and navigation with a minimum of
 resizing, panning, and scrolling—across a wide range of devices
 (from desktop computer monitors to mobile phones).


 In short: the site should be usable on all devices and should feel
 optimized for all devices.
How to RWD?

 Media queries!


 Media queries allow the page to use different CSS styles based
 on device capabilities.


 For RWD, we will look at browser width.
Media queries code structure
@media screen and (max-width: 767px) {
    …
}

@media screen and (min-width: 768px) and (max-width: 979px) {
    …
}

@media screen and (min-width: 980px) {
    …
}
RWD and Images

 1. Use background images when possible.


 2. How to create flexible or fluid images


 3. Lazy load images for better page performance
Background Image Example: logo
<div class="df-logo">
    <a href="#">AppExchange</a>
</div>




.df-logo a {                                           /* S: Phone */
      display: block;                                  @media (max-width: 767px) {
      text-indent: -9999px;                                .df-logo a { display: none; }
      width: 223px;                                        .df-logo {
      height: 47px;                                            width: 100px;
      background: url(appex-logo.png) no-repeat 0 0;           height: 21px;
}                                                              margin-left: -50px;
                                                               position: absolute;
                                                               top: 5px;
                                                               left: 50%;
                                                               background: url(appex-logo-small.png) no-repeat 0 0;
                                                           }
                                                       }
How to Create Flexible or Fluid Images
<div class="df-tile">                       .df-tile {
  <div class="tile-content">                    width: 240px;
    <div class="tile-img tile-img-brand">       height: 200px;
         <img src="tile-01-280.png" />      }
    </div>
  </div>                                    .df-tile .tile-img-brand {
</div>                                          padding: 10px;
                                            }


                                            .df-tile img {
                                                border: 1px solid #999;
                                                max-width: 100%;
                                                width: auto; /* IE */
                                                height: auto; /* IE */
                                            }
Lazy Load Images for Better Page Performance
<div class="tile-img tile-img-brand">
 <img src="p.gif" data-src="tile-01-280.png" class="desktop-img" />
</div>
Lazy Load Images for Better Page Performance
<span id="phone-test"></span>
<span id="small-test"></span>             /* S: Phone */
<span id="large-test"></span>             @media screen and (max-width: 767px) {
                                              #phone-test { display: block; }
                                          }
#phone-test, #small-test, #large-test {
    width: 1px;                           /* M: Portrait tablet */
    height: 1px;                          @media screen and (min-width: 768px) and (max-width: 979px) {
    display: none;                            #small-test { display: block; }
}                                         }


                                          /* XL: Desktop */
                                          @media screen and (min-width: 1220px) {
                                              #large-test { display: block; }
                                          }
Lazy Load Images for Better Page Performance
 getCurrentSiteState = function() {
      var state = 'medium';
      if     (jQuery('#phone-test').css('display') === 'block') { state = 'phone'; }
      else if (jQuery('#small-test').css('display') === 'block') { state = 'small'; }
      else if (jQuery('#large-test').css('display') === 'block') { state = 'large'; }
      return state;
 };
Lazy Load Images for Better Page Performance
 <div class="tile-img tile-img-brand">
      <img src="p.gif" data-src="tile-01-280.png" class="desktop-img" />
 </div>


 jQuery(document).ready(function() {
       loadDesktopImages();
 });


 loadDesktopImages = function() {
       if (getCurrentSiteState() !== 'phone') {
            jQuery('img.desktop-img').each(function() {
                  jQuery(this).attr('src’, jQuery(this).attr('data-src'));
            });
       }
 };
Agenda

   Background
   Demo of responsive features of the new AppExchange
   Responsive Web Design highlights
   Integrating with Force.com
Integrating with Force.com

   Tile Example
   Saved List Example
Pratima Nambiar   Jochem Geerdink
   Tech Lead       Product Designer
  AppExchange       AppExchange
Build Responsive AppExchange Using RWD

Más contenido relacionado

Similar a Build Responsive AppExchange Using RWD

Responsive Web Design e a Ubiquidade da Web
Responsive Web Design e a Ubiquidade da WebResponsive Web Design e a Ubiquidade da Web
Responsive Web Design e a Ubiquidade da WebEduardo Shiota Yasuda
 
Pinkoi Mobile Web
Pinkoi Mobile WebPinkoi Mobile Web
Pinkoi Mobile Webmikeleeme
 
Responsive Websites
Responsive WebsitesResponsive Websites
Responsive WebsitesJoe Seifi
 
Formatting Images with CSS in MadCap Flare - MadCap webinar, Scott DeLoach, C...
Formatting Images with CSS in MadCap Flare - MadCap webinar, Scott DeLoach, C...Formatting Images with CSS in MadCap Flare - MadCap webinar, Scott DeLoach, C...
Formatting Images with CSS in MadCap Flare - MadCap webinar, Scott DeLoach, C...Scott DeLoach
 
Responsive Web in Brief
Responsive Web in BriefResponsive Web in Brief
Responsive Web in BriefEPAM
 
Responsive UX - One size fits all @BigDesign conference #BigD12
Responsive UX - One size fits all   @BigDesign conference #BigD12Responsive UX - One size fits all   @BigDesign conference #BigD12
Responsive UX - One size fits all @BigDesign conference #BigD12touchtitans
 
PreDevCampSF - CSS3 Tricks
PreDevCampSF - CSS3 TricksPreDevCampSF - CSS3 Tricks
PreDevCampSF - CSS3 Tricksincidentist
 
Module 4 Minuteman Lexington Web Design Daniel Downs
Module 4 Minuteman Lexington Web Design Daniel DownsModule 4 Minuteman Lexington Web Design Daniel Downs
Module 4 Minuteman Lexington Web Design Daniel DownsDaniel Downs
 
Responsive layouts by Maqbool
Responsive layouts by MaqboolResponsive layouts by Maqbool
Responsive layouts by MaqboolNavin Agarwal
 
Responsive design: techniques and tricks to prepare your websites for the mul...
Responsive design: techniques and tricks to prepare your websites for the mul...Responsive design: techniques and tricks to prepare your websites for the mul...
Responsive design: techniques and tricks to prepare your websites for the mul...Andreas Bovens
 
Bruce Lawson: Progressive Web Apps: the future of Apps
Bruce Lawson: Progressive Web Apps: the future of AppsBruce Lawson: Progressive Web Apps: the future of Apps
Bruce Lawson: Progressive Web Apps: the future of Appsbrucelawson
 
User Interface Development with Mulberry
User Interface Development with MulberryUser Interface Development with Mulberry
User Interface Development with Mulberrymrdanimal
 
Mobile Web Development
Mobile Web DevelopmentMobile Web Development
Mobile Web DevelopmentJonathan Snook
 
Building Amazing Applications with JavaFX
Building Amazing Applications with JavaFXBuilding Amazing Applications with JavaFX
Building Amazing Applications with JavaFXRichard Bair
 
Илья Пухальский (EPAM Systems)
Илья Пухальский (EPAM Systems)Илья Пухальский (EPAM Systems)
Илья Пухальский (EPAM Systems)Ontico
 

Similar a Build Responsive AppExchange Using RWD (20)

Responsive Web Design e a Ubiquidade da Web
Responsive Web Design e a Ubiquidade da WebResponsive Web Design e a Ubiquidade da Web
Responsive Web Design e a Ubiquidade da Web
 
Responsive design
Responsive designResponsive design
Responsive design
 
Pinkoi Mobile Web
Pinkoi Mobile WebPinkoi Mobile Web
Pinkoi Mobile Web
 
Responsive Websites
Responsive WebsitesResponsive Websites
Responsive Websites
 
Formatting Images with CSS in MadCap Flare - MadCap webinar, Scott DeLoach, C...
Formatting Images with CSS in MadCap Flare - MadCap webinar, Scott DeLoach, C...Formatting Images with CSS in MadCap Flare - MadCap webinar, Scott DeLoach, C...
Formatting Images with CSS in MadCap Flare - MadCap webinar, Scott DeLoach, C...
 
Responsive Web in Brief
Responsive Web in BriefResponsive Web in Brief
Responsive Web in Brief
 
Responsive UX - One size fits all @BigDesign conference #BigD12
Responsive UX - One size fits all   @BigDesign conference #BigD12Responsive UX - One size fits all   @BigDesign conference #BigD12
Responsive UX - One size fits all @BigDesign conference #BigD12
 
PreDevCampSF - CSS3 Tricks
PreDevCampSF - CSS3 TricksPreDevCampSF - CSS3 Tricks
PreDevCampSF - CSS3 Tricks
 
Module 4 Minuteman Lexington Web Design Daniel Downs
Module 4 Minuteman Lexington Web Design Daniel DownsModule 4 Minuteman Lexington Web Design Daniel Downs
Module 4 Minuteman Lexington Web Design Daniel Downs
 
Responsive layouts by Maqbool
Responsive layouts by MaqboolResponsive layouts by Maqbool
Responsive layouts by Maqbool
 
Responsive design: techniques and tricks to prepare your websites for the mul...
Responsive design: techniques and tricks to prepare your websites for the mul...Responsive design: techniques and tricks to prepare your websites for the mul...
Responsive design: techniques and tricks to prepare your websites for the mul...
 
Bruce Lawson: Progressive Web Apps: the future of Apps
Bruce Lawson: Progressive Web Apps: the future of AppsBruce Lawson: Progressive Web Apps: the future of Apps
Bruce Lawson: Progressive Web Apps: the future of Apps
 
User Interface Development with Mulberry
User Interface Development with MulberryUser Interface Development with Mulberry
User Interface Development with Mulberry
 
Mobile Web Design Code
Mobile Web Design CodeMobile Web Design Code
Mobile Web Design Code
 
Core CSS3
Core CSS3Core CSS3
Core CSS3
 
Mobile Web Development
Mobile Web DevelopmentMobile Web Development
Mobile Web Development
 
Css3
Css3Css3
Css3
 
Building Amazing Applications with JavaFX
Building Amazing Applications with JavaFXBuilding Amazing Applications with JavaFX
Building Amazing Applications with JavaFX
 
CSS3 pronti all'uso
CSS3 pronti all'usoCSS3 pronti all'uso
CSS3 pronti all'uso
 
Илья Пухальский (EPAM Systems)
Илья Пухальский (EPAM Systems)Илья Пухальский (EPAM Systems)
Илья Пухальский (EPAM Systems)
 

Más de Salesforce Developers

Sample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce DevelopersSample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce DevelopersSalesforce Developers
 
Maximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component PerformanceMaximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component PerformanceSalesforce Developers
 
Local development with Open Source Base Components
Local development with Open Source Base ComponentsLocal development with Open Source Base Components
Local development with Open Source Base ComponentsSalesforce Developers
 
TrailheaDX India : Developer Highlights
TrailheaDX India : Developer HighlightsTrailheaDX India : Developer Highlights
TrailheaDX India : Developer HighlightsSalesforce Developers
 
Why developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX IndiaWhy developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX IndiaSalesforce Developers
 
CodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local DevelopmentCodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local DevelopmentSalesforce Developers
 
CodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web ComponentsCodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web ComponentsSalesforce Developers
 
Enterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web ComponentsEnterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web ComponentsSalesforce Developers
 
TrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsTrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsSalesforce Developers
 
Lightning web components - Episode 4 : Security and Testing
Lightning web components  - Episode 4 : Security and TestingLightning web components  - Episode 4 : Security and Testing
Lightning web components - Episode 4 : Security and TestingSalesforce Developers
 
LWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura InteroperabilityLWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura InteroperabilitySalesforce Developers
 
Lightning web components episode 2- work with salesforce data
Lightning web components   episode 2- work with salesforce dataLightning web components   episode 2- work with salesforce data
Lightning web components episode 2- work with salesforce dataSalesforce Developers
 
Lightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An IntroductionLightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An IntroductionSalesforce Developers
 
Migrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCPMigrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCPSalesforce Developers
 
Scale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in SalesforceScale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in SalesforceSalesforce Developers
 
Replicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureReplicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureSalesforce Developers
 
Modern Development with Salesforce DX
Modern Development with Salesforce DXModern Development with Salesforce DX
Modern Development with Salesforce DXSalesforce Developers
 
Integrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectIntegrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectSalesforce Developers
 

Más de Salesforce Developers (20)

Sample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce DevelopersSample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce Developers
 
Maximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component PerformanceMaximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component Performance
 
Local development with Open Source Base Components
Local development with Open Source Base ComponentsLocal development with Open Source Base Components
Local development with Open Source Base Components
 
TrailheaDX India : Developer Highlights
TrailheaDX India : Developer HighlightsTrailheaDX India : Developer Highlights
TrailheaDX India : Developer Highlights
 
Why developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX IndiaWhy developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX India
 
CodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local DevelopmentCodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local Development
 
CodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web ComponentsCodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web Components
 
Enterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web ComponentsEnterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web Components
 
TrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsTrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer Highlights
 
Live coding with LWC
Live coding with LWCLive coding with LWC
Live coding with LWC
 
Lightning web components - Episode 4 : Security and Testing
Lightning web components  - Episode 4 : Security and TestingLightning web components  - Episode 4 : Security and Testing
Lightning web components - Episode 4 : Security and Testing
 
LWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura InteroperabilityLWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura Interoperability
 
Lightning web components episode 2- work with salesforce data
Lightning web components   episode 2- work with salesforce dataLightning web components   episode 2- work with salesforce data
Lightning web components episode 2- work with salesforce data
 
Lightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An IntroductionLightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An Introduction
 
Migrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCPMigrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCP
 
Scale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in SalesforceScale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in Salesforce
 
Replicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureReplicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data Capture
 
Modern Development with Salesforce DX
Modern Development with Salesforce DXModern Development with Salesforce DX
Modern Development with Salesforce DX
 
Get Into Lightning Flow Development
Get Into Lightning Flow DevelopmentGet Into Lightning Flow Development
Get Into Lightning Flow Development
 
Integrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectIntegrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS Connect
 

Build Responsive AppExchange Using RWD

  • 1. Building the new AppExchange using Responsive Design Pratima Nambiar, salesforce.com, Tech Lead, AppExchange Jochem Geerdink, salesforce.com, Product Designer, AppExchange
  • 2. Safe Harbor Safe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-looking statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of product or service availability, subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services. The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our service, new products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of intellectual property and other litigation, risks associated with possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form 10-Q for the most recent fiscal quarter ended July 31, 2012. This documents and others containing important disclosures are available on the SEC Filings section of the Investor Information section of our Web site. Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward- looking statements.
  • 3. Agenda  Background  Demo of responsive features of the new AppExchange  Responsive Web Design highlights  Integrating with Force.com
  • 6. Mobile Technologies Considered  Native app  Mobile version of the application  Web application using Responsive Web Design
  • 7. Agenda  Background  Demo of responsive features of the new AppExchange  Responsive Web Design highlights  Integrating with Force.com
  • 8. Agenda  Background  Demo of responsive features of the new AppExchange  Responsive Web Design highlights  Integrating with Force.com
  • 9. Definition Responsive Web Design (RWD) is an approach to web design in which a site is crafted to provide an optimal viewing experience—easy reading and navigation with a minimum of resizing, panning, and scrolling—across a wide range of devices (from desktop computer monitors to mobile phones). In short: the site should be usable on all devices and should feel optimized for all devices.
  • 10. How to RWD? Media queries! Media queries allow the page to use different CSS styles based on device capabilities. For RWD, we will look at browser width.
  • 11. Media queries code structure @media screen and (max-width: 767px) { … } @media screen and (min-width: 768px) and (max-width: 979px) { … } @media screen and (min-width: 980px) { … }
  • 12. RWD and Images 1. Use background images when possible. 2. How to create flexible or fluid images 3. Lazy load images for better page performance
  • 13. Background Image Example: logo <div class="df-logo"> <a href="#">AppExchange</a> </div> .df-logo a { /* S: Phone */ display: block; @media (max-width: 767px) { text-indent: -9999px; .df-logo a { display: none; } width: 223px; .df-logo { height: 47px; width: 100px; background: url(appex-logo.png) no-repeat 0 0; height: 21px; } margin-left: -50px; position: absolute; top: 5px; left: 50%; background: url(appex-logo-small.png) no-repeat 0 0; } }
  • 14. How to Create Flexible or Fluid Images <div class="df-tile"> .df-tile { <div class="tile-content"> width: 240px; <div class="tile-img tile-img-brand"> height: 200px; <img src="tile-01-280.png" /> } </div> </div> .df-tile .tile-img-brand { </div> padding: 10px; } .df-tile img { border: 1px solid #999; max-width: 100%; width: auto; /* IE */ height: auto; /* IE */ }
  • 15. Lazy Load Images for Better Page Performance <div class="tile-img tile-img-brand"> <img src="p.gif" data-src="tile-01-280.png" class="desktop-img" /> </div>
  • 16. Lazy Load Images for Better Page Performance <span id="phone-test"></span> <span id="small-test"></span> /* S: Phone */ <span id="large-test"></span> @media screen and (max-width: 767px) { #phone-test { display: block; } } #phone-test, #small-test, #large-test { width: 1px; /* M: Portrait tablet */ height: 1px; @media screen and (min-width: 768px) and (max-width: 979px) { display: none; #small-test { display: block; } } } /* XL: Desktop */ @media screen and (min-width: 1220px) { #large-test { display: block; } }
  • 17. Lazy Load Images for Better Page Performance getCurrentSiteState = function() { var state = 'medium'; if (jQuery('#phone-test').css('display') === 'block') { state = 'phone'; } else if (jQuery('#small-test').css('display') === 'block') { state = 'small'; } else if (jQuery('#large-test').css('display') === 'block') { state = 'large'; } return state; };
  • 18. Lazy Load Images for Better Page Performance <div class="tile-img tile-img-brand"> <img src="p.gif" data-src="tile-01-280.png" class="desktop-img" /> </div> jQuery(document).ready(function() { loadDesktopImages(); }); loadDesktopImages = function() { if (getCurrentSiteState() !== 'phone') { jQuery('img.desktop-img').each(function() { jQuery(this).attr('src’, jQuery(this).attr('data-src')); }); } };
  • 19. Agenda  Background  Demo of responsive features of the new AppExchange  Responsive Web Design highlights  Integrating with Force.com
  • 20. Integrating with Force.com  Tile Example  Saved List Example
  • 21. Pratima Nambiar Jochem Geerdink Tech Lead Product Designer AppExchange AppExchange