un site web responsive en une heure

79
Raphaël Goetter Raphaël Goetter UN SITE WEB RESPONSIVE EN UNE HEURE ? UN SITE WEB RESPONSIVE EN UNE HEURE ? TOP CHRONO ! TOP CHRONO !

Upload: raphael-goetter

Post on 16-Nov-2014

16.005 views

Category:

Technology


1 download

DESCRIPTION

La grande majorité des sites actuels offrent une expérience utilisateur désastreuse sur un écran réduit : textes et menus de navigation minuscules, zoom obligatoire, débordements qui “cassent” le design, multi-colonnes non adaptées, contenus superflus, etc. Cette présentation a pour objectif de proposer des solutions concrètes pour adapter rapidement un site web existant au média mobile à travers quelques exercices pratiques fondés sur les possibilités avancées du langage CSS en Responsive Web Design.

TRANSCRIPT

Page 1: Un site web responsive en une heure

Raphaël GoetterRaphaël Goetter

UN SITE WEB RESPONSIVE ENUNE HEURE ?

UN SITE WEB RESPONSIVE ENUNE HEURE ?

TOP CHRONO !TOP CHRONO !

Page 2: Un site web responsive en une heure

alsacreations.fralsacreations.comgoetter.frknacss.commobitest.me

@goetter

alsacreations.fralsacreations.comgoetter.frknacss.commobitest.me

@goetter

Raphaël GoetterRaphaël Goetter

Page 3: Un site web responsive en une heure

EN UNE HEURE, VOUS AVEZ DIT ?EN UNE HEURE, VOUS AVEZ DIT ?

SANS DECONNER ?!

SANS DECONNER ?!

Page 4: Un site web responsive en une heure

C'EST PASPOSSIBLE !C'EST PASPOSSIBLE !

KTHXBYKTHXBY

Page 5: Un site web responsive en une heure

AVANT DE SE LANCER...

Analyser et comprendre le code existant(template de CMS qui « laisse à désirer »)

Identifier les problèmes en amont(largeurs, iframes, points de rupture)

Faire un choix de maquette et d'ergo

Faire un choix de navigation

Penser « Performance Web »

Penser « HD » et « Retina »

Analyser et comprendre le code existant(template de CMS qui « laisse à désirer »)

Identifier les problèmes en amont(largeurs, iframes, points de rupture)

Faire un choix de maquette et d'ergo

Faire un choix de navigation

Penser « Performance Web »

Penser « HD » et « Retina » → COMPTER 2 à 4 jours → COMPTER 2 à 4 jours

Page 6: Un site web responsive en une heure

AVANT DE SE LANCER...(bis)

Connaître le contexte mobile(navigateurs, moteurs, spécificités)

Comprendre le Viewport(device-width, pixel-ratio, viewport)

Maîtriser les CSS3 Media Queries(et HTML / CSS en général)

Connaître le contexte mobile(navigateurs, moteurs, spécificités)

Comprendre le Viewport(device-width, pixel-ratio, viewport)

Maîtriser les CSS3 Media Queries(et HTML / CSS en général)

→ COMPTER... pfiouu → COMPTER... pfiouu

Page 7: Un site web responsive en une heure

PENDANTProduire du code pour écrans multiples(tablettes, smartphones, écrans larges)

Produire des adaptations pour 2 orientations

Penser « tactile »(positions et largeurs des zones tactiles)

Prendre en compte tous les gabarits(home, page-type, formulaires, galeries, etc.)

Ajouter / développer du JavaScript dédié

Produire du code pour écrans multiples(tablettes, smartphones, écrans larges)

Produire des adaptations pour 2 orientations

Penser « tactile »(positions et largeurs des zones tactiles)

Prendre en compte tous les gabarits(home, page-type, formulaires, galeries, etc.)

Ajouter / développer du JavaScript dédié

→ COMPTER... 3 à 6 jours → COMPTER... 3 à 6 jours

Page 8: Un site web responsive en une heure

ET APRES ? CORRIGER !

Bugs sur tableaux HTML, iframes, vidéos, etc.

Bugs CSS ou JS inexpliqués(table-cell, flexbox, événements, touch)

Modifier le HTML si nécessaire

Problèmes de compatibilités(anciens Android, Blackberry, etc.)

Bugs sur tableaux HTML, iframes, vidéos, etc.

Bugs CSS ou JS inexpliqués(table-cell, flexbox, événements, touch)

Modifier le HTML si nécessaire

Problèmes de compatibilités(anciens Android, Blackberry, etc.)

→ COMPTER... 1 à 3 jours → COMPTER... 1 à 3 jours

Page 9: Un site web responsive en une heure

TOTAL ?TOTAL ?ENTRE 6 ET 12 JOURSENTRE 6 ET 12 JOURS

… OU PLUS… OU PLUS

Page 10: Un site web responsive en une heure

LE RESPONSIVE,C'EST PAS

DU « BONUS » !

LE RESPONSIVE,C'EST PAS

DU « BONUS » !ÇA SE DÉCIDE

EN AMONTÇA SE DÉCIDE

EN AMONT

Page 11: Un site web responsive en une heure

AgoraCMS « bureau »

Page 12: Un site web responsive en une heure

Zoom nécessaire

Navigation aveugle

Design « cassé »

Mauvaise expérience

Zoom nécessaire

Navigation aveugle

Design « cassé »

Mauvaise expérience

AgoraCMS « mobile »

Page 13: Un site web responsive en une heure

AgoraCMS « Responsive » ?

Page 14: Un site web responsive en une heure

FACILE !

Page 15: Un site web responsive en une heure

Crédits : flickr.com/photos/bfishadowCrédits : flickr.com/photos/bfishadow

BON, ON S'Y MET ?

Page 16: Un site web responsive en une heure

NOTIONSINDISPENSABLES

NOTIONSINDISPENSABLESC'EST BIEN PARCE QUE C'EST VOUSC'EST BIEN PARCE QUE C'EST VOUS

Page 17: Un site web responsive en une heure

La surface d'affichage

Les Media Queries CSS3

Box-sizing pour vous servir

Halte aux débordements

La surface d'affichage

Les Media Queries CSS3

Box-sizing pour vous servir

Halte aux débordements

NOTIONS INDISPENSABLES

Page 18: Un site web responsive en une heure

Crédits : flickr.com kalexandersonCrédits : flickr.com kalexanderson

LA SURFACE D'AFFICHAGE

Page 19: Un site web responsive en une heure

DES VRAIS ET DES FAUX PIXELS

Page 20: Un site web responsive en une heure

DES VRAIS ET DES FAUX PIXELS

960px960px960px960px

Page 21: Un site web responsive en une heure

640px640px640px640px 320px320px320px320pxIPHONE4IPHONE4

IPHONE3IPHONE3

Page 22: Un site web responsive en une heure

LARGEUR PHYSIQUE« VRAIS PIXELS »« VRAIS PIXELS »

iPhone 3 : 320px

Samsung Galaxy S : 480px

iPhone 4, iPhone 5 : 640px

Nokia Lumia 920 : 768px

iPad, iPad Mini : 768px

Sony Xperia Z : 1080px

Samsung Galaxy S4 : 1080px

iPad 3 : 1536px

iPhone 3 : 320px

Samsung Galaxy S : 480px

iPhone 4, iPhone 5 : 640px

Nokia Lumia 920 : 768px

iPad, iPad Mini : 768px

Sony Xperia Z : 1080px

Samsung Galaxy S4 : 1080px

iPad 3 : 1536px

Page 23: Un site web responsive en une heure

« DEVICE-WIDTH »« FAUX PIXELS »« FAUX PIXELS »

iPhone 3, 4, 5 : 320px

Nokia Lumia 920 : 320px

Sony Xperia Z : 360px

Samsung Galaxy S4 : 360px

iPad 1, 2, 3 : 768px

iPad mini : 768px

iPhone 3, 4, 5 : 320px

Nokia Lumia 920 : 320px

Sony Xperia Z : 360px

Samsung Galaxy S4 : 360px

iPad 1, 2, 3 : 768px

iPad mini : 768px

Page 24: Un site web responsive en une heure

« VIEWPORT »« FAUX PIXELS »« FAUX PIXELS »

Safari : 980px

Opera mini : 850px

Opera mobile : 980px

Android 1 : 800px

Android 2 : 800px

Android 3 : 800px

Android 4 : 980px

IE mobile : 1024px

Safari : 980px

Opera mini : 850px

Opera mobile : 980px

Android 1 : 800px

Android 2 : 800px

Android 3 : 800px

Android 4 : 980px

IE mobile : 1024px

Page 25: Un site web responsive en une heure

www.mobitest.me

Page 26: Un site web responsive en une heure

640px640px640px640pxIPHONE4IPHONE4

320px320px320px320px

980px980px980px980px

DEVICE-WIDTHDEVICE-WIDTH

VIEWPORTVIEWPORT

LARGEUR PHYSIQUELARGEUR PHYSIQUE

Page 27: Un site web responsive en une heure

IPHONE4IPHONE4

320px320px320px320px

980px980px980px980px

DEVICE-WIDTHDEVICE-WIDTH

VIEWPORTVIEWPORT

Niveau de zoom :320 / 980 = 0,33xNiveau de zoom :320 / 980 = 0,33x

Page 28: Un site web responsive en une heure

Crédits : flickr.com st3f4nCrédits : flickr.com st3f4n

FORCER LE VIEWPORT

Page 29: Un site web responsive en une heure

<meta name="viewport" content="width=device-width">

LA BALISE META « VIEWPORT »

Largeur de fenêtre = device-widthLargeur de fenêtre = device-width

Page 30: Un site web responsive en une heure

<meta name="viewport" content="width=device-width">

LA BALISE META « VIEWPORT »

<meta name="viewport" content="initial-scale=1.0">

Niveau de zoom = 1Niveau de zoom = 1

Page 31: Un site web responsive en une heure

VIEWPORT DANS LES SPECS

@viewport { width: device-width; zoom: 1;}

Déjà reconnu par Opera, IE Mobile 10 et Firefox mobile (ex. @-o-viewport)Déjà reconnu par Opera, IE Mobile 10 et Firefox mobile (ex. @-o-viewport)

Page 32: Un site web responsive en une heure

Niveau de zoom :320 / 320 = 1xNiveau de zoom :320 / 320 = 1x

<meta name="viewport" content="initial-scale=1.0">

Page 33: Un site web responsive en une heure

Crédits : flickr.com st3f4nCrédits : flickr.com st3f4n

LES MEDIA QUERIES CSS3

Page 34: Un site web responsive en une heure

<link rel="stylesheet" href="styles.css" media="screen" >

Pas de Media Queries ?Pas de Media Queries ?

Tous les écrans sont ciblésTous les écrans sont ciblés

Page 35: Un site web responsive en une heure

<link rel="stylesheet" href="mobile.css" media="screen and (max-width: 640px)" >

<link rel="stylesheet" href="styles.css" media="screen" >

Avec Media Queries :Avec Media Queries :

Sont ciblés : écrans dont la fenêtre est inférieure ou égale à 640 pixelsSont ciblés : écrans dont la fenêtre est inférieure ou égale à 640 pixels

Page 36: Un site web responsive en une heure

@media (max-width:640px) { body { width: auto; }}

Dans un fichier CSS :Dans un fichier CSS :

Ici : plein de styles CSS dédiés aux petits écrans

Ici : plein de styles CSS dédiés aux petits écrans

Page 37: Un site web responsive en une heure

body { background-color: black; }

@media (max-width:640px) { body { background-color: red; }}

@media (max-width:640px) { body { width: auto; }}

Dans un fichier CSS :Dans un fichier CSS :

En pratique :En pratique :

Page 38: Un site web responsive en une heure

Fenêtre de largeur supérieure à 640pxFenêtre de largeur supérieure à 640px Moins de 640pxMoins de 640px

RÉSULTAT

Page 39: Un site web responsive en une heure

MEDIA QUERIESwidth / heightlargeur / hauteur de viewport

device-width / device-heightlargeur / hauteur du device

orientation : portrait ou landscape

etc.

width / heightlargeur / hauteur de viewport

device-width / device-heightlargeur / hauteur du device

orientation : portrait ou landscape

etc.

99

Page 40: Un site web responsive en une heure

Crédits : flickr.com jing_dongCrédits : flickr.com jing_dong

BOX-SIZING

Page 41: Un site web responsive en une heure

MA JOLIE BOÎTE

div { width: 500px; padding: 0;}

Page 42: Un site web responsive en une heure

MA JOLIE BOÎTE

div { width: 500px; padding: 0;}

500px500px500px500px

Page 43: Un site web responsive en une heure

MA JOLIE BOÎTE

div { width: 500px; padding: 10px;}

Page 44: Un site web responsive en une heure

MA JOLIE BOÎTE

div { width: 500px; padding: 10px;}

520px520px520px520px

Page 45: Un site web responsive en une heure

MA JOLIE BOÎTE

div { width: 50%; padding: 1em; border-width: 1px;}

Page 46: Un site web responsive en une heure

MA JOLIE BOÎTE

div { width: 50%; padding: 1em; border-width: 1px;}

50%+2em+2px50%+2em+2px50%+2em+2px50%+2em+2px 50%+2em+2px50%+2em+2px50%+2em+2px50%+2em+2px

Page 47: Un site web responsive en une heure

BOX-SIZING !

div { width: 50%; padding: 1em; border-width: 1px; }

50%50%50%50% 50%50%50%50%

box-sizing: border-box;

Page 48: Un site web responsive en une heure

BOX-SIZING !

* { -webkit-box-sizing : border-box; -moz-box-sizing: border-box; box-sizing: border-box;}

88

Page 49: Un site web responsive en une heure

Crédits : flickr.com jing_dongCrédits : flickr.com jing_dong

DÉBORDEMENTS

Page 50: Un site web responsive en une heure

FAUT QUE ÇA RENTRE !

ERF :(ERF :(

Page 51: Un site web responsive en une heure

WORD-WRAP

div { word-wrap: break-word; overflow-wrap: break-word;}

66

Page 52: Un site web responsive en une heure

HYPHENS

div { -webkit-hyphens : auto; -moz-hyphens : auto; -ms-hyphens : auto; hyphens : auto;}

1010

Page 53: Un site web responsive en une heure

ET LES IMAGES ?

Tiens, c'est tout cassé là !Tiens, c'est tout cassé là !

Page 54: Un site web responsive en une heure

ET LES IMAGES ?

img { max-width : 100%; height : auto;}

/* IE8 uniquement (bugfix) */ .ie8 img { width : auto;}

Une bordure sur l'image ?Une bordure sur l'image ?

Page 55: Un site web responsive en une heure

CETTE FOIS, C'EST PARTI !

Page 56: Un site web responsive en une heure

ANALYSE DE L'EXISTANT

Page 57: Un site web responsive en une heure

ANALYSE DE L'EXISTANTANALYSE DE L'EXISTANT

Page 58: Un site web responsive en une heure

ANALYSE DE L'EXISTANT

Page 59: Un site web responsive en une heure

ANALYSE DE L'EXISTANT

6 fichiers CSS différents

42 fois « font-size »

70 fois « !important »

30 fois « margin: 0 »

27 fois « padding: 0 »

23 fois « position »

30 fois « float »

12 fois « clear »

6 fichiers CSS différents

42 fois « font-size »

70 fois « !important »

30 fois « margin: 0 »

27 fois « padding: 0 »

23 fois « position »

30 fois « float »

12 fois « clear » OK, no stress !OK, no stress !

Page 60: Un site web responsive en une heure

ON FIXE LE NIVEAU DE ZOOM

Page 61: Un site web responsive en une heure

FEUILLE DE STYLES MOBILE

Appliquée seulement sur écrans de largeur de fenêtre au maximum de 960 pixels

Appliquée seulement sur écrans de largeur de fenêtre au maximum de 960 pixels

Page 62: Un site web responsive en une heure

STYLES « RESET »

www.knacss.comwww.knacss.com

Page 63: Un site web responsive en une heure

RETOUR À LA NORMALE

Pour les éléments problématiques :• width : auto• height : auto• float : none • position : static• padding : 0• margin : 0• etc.

Page 64: Un site web responsive en une heure

QUELQUES PARTICULARITÉS

Page 65: Un site web responsive en une heure

TIENS, UN BADGE !

Page 66: Un site web responsive en une heure

STYLES SMARTPHONES

Page 67: Un site web responsive en une heure

RE-STYLAGE DU BADGE

Page 68: Un site web responsive en une heure

ADAPTATIONS DIVERSES

Page 69: Un site web responsive en une heure

LA NAVIGATION

2 colonnes + une séparation

Page 70: Un site web responsive en une heure

LA NAVIGATION (BIS)LA NAVIGATION (BIS)

Page 71: Un site web responsive en une heure

LA NAVIGATION (TER)LA NAVIGATION (TER)

Tout en douceur...

Page 72: Un site web responsive en une heure

AVANTAVANT

Page 73: Un site web responsive en une heure

TEMPS PASSÉ

Production effective de CSS = 6 heures

Compréhension de l'existant = 4 heures

Réflexions en amont, stratégie = 4 heures

Corrections bugs, anomalies = 1 heure

Production effective de CSS = 6 heures

Compréhension de l'existant = 4 heures

Réflexions en amont, stratégie = 4 heures

Corrections bugs, anomalies = 1 heure

→ TOTAL : 15 heures → TOTAL : 15 heures

Page 74: Un site web responsive en une heure

NON TRAITÉ

Seule la Homepage a été prise en compte

Ergonomie : le minimum vital a été fait pour smartphones et tablettes

Aucune adaptation faite pour les différentes orientations

Performances web : aucun effort n'a été fait dans ce domaine

Écrans « HD » et « Retina » : aucune prise en compte

Seule la Homepage a été prise en compte

Ergonomie : le minimum vital a été fait pour smartphones et tablettes

Aucune adaptation faite pour les différentes orientations

Performances web : aucun effort n'a été fait dans ce domaine

Écrans « HD » et « Retina » : aucune prise en compte

→ à « l'arrache » → à « l'arrache »

Page 75: Un site web responsive en une heure

ALLER PLUS LOIN...

ERF !

Page 76: Un site web responsive en une heure

ALLER PLUS LOIN

Page 77: Un site web responsive en une heure

Crédits : flickr.com/photos/udono

BREF : UN BON DÉBUT… MAIS INSUFFISANT

… MAIS INSUFFISANT

Page 78: Un site web responsive en une heure

Photos, illustrations : flickr.com (licence CC)

Police : DeliciousDelicious Heavy

Icones et pictos :iconfider.netfindicons.comicônes Star Wars : Everaldo Coelho (free)icônes noires : Token Dark par Brsev (free)

Photos, illustrations : flickr.com (licence CC)

Police : DeliciousDelicious Heavy

Icones et pictos :iconfider.netfindicons.comicônes Star Wars : Everaldo Coelho (free)icônes noires : Token Dark par Brsev (free)

CRÉDITS

Page 79: Un site web responsive en une heure

Raphaël Goetter @goetter

MERCI !MERCI !

Crédits : flickr.com/photos/st3f4n