SlideShare une entreprise Scribd logo
Responsive Logic
13 juin 2014
True Story
Nous sommes le vendredi 13 juin
True Story
Nous sommes le vendredi 13 juin
True Story
Nous sommes le vendredi 13 juin
J’ai perdu 90% des slides cette nuit suite à un freeze...
True Story
Nous sommes le vendredi 13 juin
J’ai perdu 90% des slides cette nuit suite à un freeze...
Et aussi parce que j’ai un peu oublié de sauvegarder...
True Story
Nous sommes le vendredi 13 juin
J’ai perdu 90% des slides cette nuit suite à un freeze...
Et aussi parce que j’ai un peu oublié de sauvegarder...
Du coup je ferais la grève du GIF
Responsive logic - Kiwiparty
Qui suis-je ?
@JulienCabanes
Ça c’est mon Twitter mais je n’y suis pas très bavard
Et ça c’est mon GitHub, où je ne commit pas assez
Lead Developer chez Zee Agency à Paris
25 personnes, 10 développeurs
J’aime les blagues vaseuses, les métaphores, parler
avec mes mains et les sauvegardes automatiques.
Nous
Nos locaux
Nos clients
⌘S
Responsive logic - Kiwiparty
Responsive Design
Responsive Design
•Fluid Layout
Responsive Design
•Fluid Layout
•Flexible Images
Responsive Design
•Fluid Layout
•Flexible Images
•Media Queries
Responsive Design
•Fluid Layout
•Flexible Images
•Media Queries
Ethan Marcotte, 25 mai 2010
http://alistapart.com/article/responsive-web-design/
Fluid Layout
Flexible Images
Media Queries
Responsive logic - Kiwiparty
Responsive logic - Kiwiparty
Responsive Design
+ +
et c’est tout ?
Responsive Design
•Process ?
http://socialmediatoday.com/jacey-gulden/1344396/great-responsive-web-design-matter-process
•Maintenabilité ?
http://drewbarontini.com/articles/single-responsibility/
•Plus de questions que de réponses...
Questions...
•Grille ?
•Bootstrap ? Foundation ?
•Fait maison ?
•Les deux ?
Questions...
•max-width: 100%; ça suffit ?
•<picture> ou srcset ?
•picturefill vs. CMS ?
•background ?
Questions...
•Regrouper par composant ?
•Regrouper par media-query ?
•Bloat ?
• « En fait, le mobile c’est 640px et plus 480px »
• « En fait, la nav desktop marcherait mieux sur iPad »
Responsive logic - Kiwiparty
Responsive logic - Kiwiparty
Responsive Patterns
•Onglets vs. Accordéon
•Navigation simple vs. Off-Canvas
•Table vs.Table...
•Galerie vs. Carousel
•Carousel vs. Galerie verticale
http://bradfrost.github.io/this-is-responsive/patterns.html
Responsive Patterns
•Map iframe vs. Image + Lien
•Video embed vs. Image + Lien + à la volée
•Formulaire long vs. Formulaire simplifié
•Checkbox vs. Select multiple
•Autocomplete ? Datepicker ?
•Widget réseaux sociaux
•etc...
http://bradfrost.github.io/this-is-responsive/patterns.html
Progressive Enhancement
•Features HTML5 parfois plus présents
et/ou mieux implémentés sur mobile
•Mobile first ?
•Hack first ?
Responsive logic - Kiwiparty
Responsive [Logic]
•Layout conditionnel
•Contenu conditionnel
•Fonctionnalités conditionnelles
Layout conditionnel
http://bradfrostweb.com/blog/post/7-habits-of-highly-effective-media-queries/
• Le contenu détermine les breakpoints et non l’inverse
• Le layout est un bonus
• Utiliser des unités relatives
em pour la typographie et les espaces internes
% pour les dimensions et espaces externes
• Utiliser un préprocesseur pour gérer ses media-queries
Layout conditionnel
Organisation des media-queries :
• Par composants, quitte à utiliser ça pour le bloat
https://github.com/buildingblocks/grunt-combine-media-queries
• Nommer les media-queries
• D’abord avec des variables
• Ensuite avec des mixins
• Utiliser un mixin global pour gérer la sortie (IE, etc...)
http://css-tricks.com/conditional-media-query-mixins/
Layout conditionnel
Exemple :
@include when-sidebar-is-visible {
	 .sidebar {
	 	 display: block;
	 }
}
Layout conditionnel
Résultat :
@media (min-width: 840px) {
	 .sidebar {
	 	 display: block;
	 }
}
Responsive logic - Kiwiparty
Layout conditionnel
Là où ça se complique :
• min & max-width qui rentrent en concurrence
- éviter autant que possible le max-width (mobile first)
• même layout, contenu & contexte différent
- bon courage...
• l’ordre des éléments qui change...
- vertical stacking avec display: table / table-caption...
- https://github.com/filamentgroup/AppendAround
Responsive logic - Kiwiparty
⌘S
Contenu conditionnel
• Une bonne stratégie de contenu vaudra toujours mieux
que les hacks, mais ce ne sera pas plus simple pour
autant...
• Chargement conditionnel !
http://24ways.org/2011/conditional-loading-for-responsive-designs/
http://filamentgroup.com/lab/ajax_includes_modular_content/
et autres...
Fonctionnalités conditionnelles
Certains composants dépendent de contextes bien précis :
• media-queries
• feature-detection
• parent / children
• page ou template
• présence d’un autre composant sur la page
• visibilité dans le viewport
• etc...
Fonctionnalités conditionnelles
Selon ces contextes, les composants doivent :
• se charger
• se configurer
• s’exécuter
• s’interrompre
à l’entrée et à la sortie des contextes !
Responsive logic - Kiwiparty
Fonctionnalités conditionnelles
Comment gérer ses conditions côté JS ?
• matchMedia ?
• body:after ? http://adactio.com/journal/5429/
Solutions :
• Enquire.js : http://wicky.nillia.ms/enquire.js/
Défaut : ne gère que les media-queries
• Conditioner.js : http://conditionerjs.com/
Pratique : se base sur des data-attributes
Fonctionnalités conditionnelles
Comment partager ses conditions entre CSS & JS ?
• Format d’échange ? JSON ?
• SassyJSON : https://github.com/HugoGiraudel/SassyJSON
• sass-json-vars : http://viget.com/extend/sharing-data-
between-sass-and-javascript-with-json
• Principe : créer un fichier JSON réunissant les
conditions (breakpoints, etc...), pouvoir le lire à la fois
côté Sass et JS.
Responsive logic - Kiwiparty
Récapitulatif
• Sauvegardez. Souvent.
• Gardez de bonnes pratiques
• Nommez vos media-queries
• Trouvez un moyen de regrouper les règles (DRY)
• Testez. Souvent.
Merci

Contenu connexe

PDF
La performance sur mobile
PDF
Performances web - quoi de neuf ?
PDF
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
PDF
JCertif 2013 - Vers un web moderne pour l'Afrique ?
PDF
Comment ça c'est pas du Flash ?
PDF
Mobile first : évitez de perdre des clients à cause d'un site trop lent
PDF
Responsive News : l'actualité mobile à la BBC
PDF
Confoo - 2012-02-27 au 2012-02-28 - HTML5 workshop
La performance sur mobile
Performances web - quoi de neuf ?
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
JCertif 2013 - Vers un web moderne pour l'Afrique ?
Comment ça c'est pas du Flash ?
Mobile first : évitez de perdre des clients à cause d'un site trop lent
Responsive News : l'actualité mobile à la BBC
Confoo - 2012-02-27 au 2012-02-28 - HTML5 workshop

Similaire à Responsive logic - Kiwiparty (20)

PPTX
Les jeudis de la découverte
PPSX
Plasticité2015 technovf
PPTX
Responsive Web Design - Enjeux, Solutions, Méthodologie
PDF
molka foods
PDF
Bien Démarrer avec le Responsive Web Design
PDF
WebApp #2 : responsive design
PPT
Responsive Web Design - BreizhCamp 2013
PDF
Un site web responsive en une heure
PPTX
582 agr-li - interface mobile - classe 1
PPT
Webmobile - Rendre son site compatible avec les nouveaux usages du WEB
PPTX
HTML5mtl - 2012-02-22 - Responsive Web Design
PDF
Introduction aux principes du Responsive Web Design
PPTX
Design adaptatif / Mobilité
PPTX
DrupalCamp Paris 2013 : Sites mobiles avec Drupal
PDF
MobiliteaTime #5 : Responsive & Adaptive Design
PDF
Responsive web design new14
PDF
Webdesign sites web et mobiles-strategies et enjeux-ergonomie
ODP
Responsible Design ou Le web moderne à destination de tous
PPT
Responsive Web design - defimedia
KEY
2012 cyril-wolfangel-responsive design-typo3
Les jeudis de la découverte
Plasticité2015 technovf
Responsive Web Design - Enjeux, Solutions, Méthodologie
molka foods
Bien Démarrer avec le Responsive Web Design
WebApp #2 : responsive design
Responsive Web Design - BreizhCamp 2013
Un site web responsive en une heure
582 agr-li - interface mobile - classe 1
Webmobile - Rendre son site compatible avec les nouveaux usages du WEB
HTML5mtl - 2012-02-22 - Responsive Web Design
Introduction aux principes du Responsive Web Design
Design adaptatif / Mobilité
DrupalCamp Paris 2013 : Sites mobiles avec Drupal
MobiliteaTime #5 : Responsive & Adaptive Design
Responsive web design new14
Webdesign sites web et mobiles-strategies et enjeux-ergonomie
Responsible Design ou Le web moderne à destination de tous
Responsive Web design - defimedia
2012 cyril-wolfangel-responsive design-typo3
Publicité

Responsive logic - Kiwiparty