Créez des animations CSS captivantes
Créez des animations CSS captivantes
OFFERT
3 HEURES
DE FORMATION [Link]
en anglais
ANIMATION
BEL/LUX : 8,90€ - DOM/S : 8,90€ - CAL/S : 1100 CFP - POL/S : 1150 CFP - CH : 15,80FS - CAN : 14,95$CAD - MAR : 90 MAD - IT/[Link] : 8,50€
CSS
10 ÀUTILISERTOUTDESUITE
API HTML
TUT
ORI
EL
60 IMAGES
PAR SECONDE
LA COUV
EN
ACTION
Page 40
20 TECHNIQUES ÉTONNANTES
RECRÉEZ LES MEILLEURS EFFETS D’AUJOURD’HUI
CONSTRUISEZ
UNE APPLI ACTIVÉE
PAR LA VOIX
Codez une to-do list avec [Link]
L 18927 - 87 - F: 7,90 € - RD MASTERCLASS
CONSOLES
100 PAGES
Sommaire
Numéro 87
ANIMATIO
Mixed Reality
Afin d’aligner WebAR sur WebVR, Mozilla
propose l’API WebXR. Web Design enquête…
CSS
09 Tops et ressources du Web
Besoin d’un framework ou d’une
bibliothèque ? Commencez ici !
11 WordPress :
il est temps de changer
Le fondateur de Make Do chante les louanges
de Gutenberg, le nouvel éditeur du CMS.
14 Lightbox
Une galerie de sites inspirants et les techniques
utilisées pour les créer.
20 TECHNIQUES ÉTONNA
différents par un design incroyablement
fascinant.
40 Animation CSS
Voici comment recréer certaines des meilleures
animations qu’on trouve aujourd’hui sur le web
API
Mozilla et Google ont récemment placé la barre
encore plus haut en offrant des consoles
avancées dans leurs navigateurs web. Nous
vous montrons les deux différentes approches
et comment les utiliser au mieux dans
vos projets.
70 ________________________________________________ dossier
image_sommaire+[Link] 1
Bonus offerts
Vos bonus à télécharger
sur [Link]
Trouver les numéros précédents et spéciaux
Ne ratez aucun
TION
numéro
SS
Abonnez-vous
Jetez un oeil page 25
Abonnement annuel en page 68
Web Workshop
Le nouvel éditeur,
ONNANTES
48 Vidéo d’instructions
Gutenberg, vise à tout [Link]
placer dans un système Ajouter une vidéo pour présenter votre app.
de création de mises
D’AUJOURD’HUI en page plus moderne 62 Effet de texte
Web développeur
78 Les consoles des navigateurs
Nous vous montrons les deux différentes approches
et comment les utiliser au mieux dans vos projets.
90 Activation vocale
32 14 Faites vos premiers pas vers les appareils à commande
Profil : 51North Lightbox : Name That Place vocale en développant une app de gestion de tâches
Faire passer le message Testez vos connaissances avec ce quiz
avec [Link] et [Link].
sommaire_______________________________________________ 7
26/02/2018 15:27
40 ________________________________________________ dossier
dossier _________________________________________________ 41
l
a typographie a toujours eu un rôle 2. Mettre la particule à jour [Link](force);
important pour les designers, qui Pour déplacer la particule, une fonction update va être }
sélectionnent la meilleure police pour exécutée à chaque image. Elle calculera la vélocité de la
transmettre un message et le présenter particule et l’accélération de la vélocité. La vélocité sera 5. Afficher la particule
de façon optimale. Au cours des huit dernières années, limitée par une variable globale que nous ajouterons plus La fonction show aff iche la particule. Elle commence par
les webdesigners ont eu la possibilité d’ajouter des tard. La vélocité est ajoutée à la position de la particule ajouter un contour gris clair d’un pixel pour créer la ligne. La
polices personnalisées dans leurs designs. Ils ont individuelle. En créant d’abord une particule, nous ligne est dessinée entre sa position actuelle et sa dernière
aujourd’hui le même contrôle sur la typographie que les pourrons ensuite ajouter plusieurs milliers de particules position dans l’image précédente. La position précédente
designers print. En regardant les sites qui sont à l›écran à n’importe quel moment. est stockée pour son prochain passage dans la boucle.
récompensés ou élus « site du jour », on s’aperçoit que [Link] = function () { [Link] = function () {
l’utilisation de la typographie est au cœur du design et [Link]([Link]); stroke(180);
qu’elle leur permet de se démarquer des autres [Link]([Link]); strokeWeight(1);
productions. Il peut s’agir de formes de lettres animées, [Link]([Link]); line([Link].x, [Link].y, this.
de réactions aux interactions utilisateur, ou encore de [Link](0); prevPos.x, [Link].y);
textes géants qui occupent tout l’écran. L’effet que nous } [Link]();
allons créer dans ce tutoriel utilise des masques en forme }
de lettres sur des traînées de particules fluides qui vont 3. Suivre le courant [Link] = function () {
tournoyer dynamiquement et passer dans les lettres. Pour donner aux particules leur mouvement fluide, nous [Link].x = [Link].x;
L’animation sera très belle, et comme elle sera aff ichée allons ajouter un champ de propagation généré par le bruit. [Link].y = [Link].y;
dans l’élément canvas HTML5, nous allons la transformer La fonction créée ici permet de générer le courant puis de }
en 3D pour qu’elle pivote vers la souris lorsqu’elle se forcer les particules à le suivre, d’où son nom. La force de la
déplace sur l’écran. Cet effet est parfait pour les en-têtes direction du vecteur sera appliquée à la particule. 6. Envelopper
de sites, ou simplement pour attirer l’attention des [Link] = function (vectors) { La fonction edges calcule si la particule atteint le bord
utilisateurs sur un call-to-action. var x = floor([Link].x / scl); de l’écran. Si c’est le cas, elle l’enveloppe pour la
var y = floor([Link].y / scl); repositionner de l’autre côté. Ce morceau de code gère la
1. Commencer le processus var index = x + y * cols; position x. Nous détectons si la position x est supérieure
Ouvrez le dossier start des fichiers du projet dans votre var force = vectors[index]; à la largeur de l’écran. Si c’est le cas, nous envoyons
éditeur de code. Nous allons commencer par créer la [Link](force); la particule de l’autre côté de l’écran et vice versa.
classe d’objet particule. Elle nous servira à créer l’image } [Link] = function () {
aff ichée dans le texte. Ouvrez le fichier [Link] et if ([Link].x > width) {
ajoutez la variable suivante pour commencer à créer 4. Suivre, mais pas de trop près [Link].x = 0;
la particule de base. Pour éviter que toutes les particules s’agglomèrent,
function Particle() { ce qui est vite fait dans ce type de mouvements,
[Link] = createVector(random(width),
random((height - 100)));
nous ajoutons un facteur aléatoire à la position des
particules, pour qu’elles se dispersent légèrement.
Définir une particule
Une particule peut être vue comme un grain de
[Link] = createVector(0, 0); [Link] = function (vectors) { poussière vu dans un rayon de lumière. Numériquement,
[Link] = createVector(0, 0); [Link].x += random(-0.9, 0.9); elle peut représenter n’importe quoi, de la neige, de la
[Link] = maxSpeed; [Link].y += random(-0.9, 0.9); pluie, des explosions ou la manière dont un liquide se
déplace. Il faut généralement beaucoup de particules
[Link] = [Link](); }
pour créer un système de particules.
[Link] = function (force) {
À gauche
Cet effet est réalisé en grande partie grâce à la
bibliothèque [Link], qui ajoute un certain nombre d’outils
pratiques pour dessiner dans l’élément canvas HTML5.
Coin gauche
La mise en page basique en HTML5 a été créée en amont
pour que vous puissiez vous concentrer sur l’intégration
des lignes fluides de l’effet de texte en JavaScript.
Coin droit
Une fois que la classe d’objet particule est créée, un certain
nombre de particules sont ajoutés sur la page. Les lignes
fluides sont visibles avant l’ajout de l’effet de texte.
tutoriel ��������������������������������������������������51
P
lus un site web devient complexe, plus 2. Passer au calque supérieur barre latérale. N’oubliez pas de noter l’état de la barre
la performance est un problème. Pour l’instant, il n’y a pas de couche en plus et notre barre latérale dans le module.
On porte souvent beaucoup d’attention latérale est au milieu de la page. Cette couche let visible = false;
au chargement initial de la page, mais superposée doit occuper tout l’écran et mettre en avant [Link]('click',
moins à la performance du site à l’usage. Les utilisateurs la barre latérale. Nous devons modifier sa position et lui toggleSidebar);
veulent des pages fluides, tout le temps. Les navigateurs faire occuper 100% du viewport. function toggleSidebar() {
optimisent ce qu’ils peuvent, mais il n’est pas toujours Dans [Link], ajoutez du code pour que la couche if (visible) {
facile de savoir quelles étaient les intentions initiales superposée remplisse tout l’écran. N’oubliez pas d’ajuster hideSidebar();
du développeur. le z-index pour qu’elle soit au-dessus du contenu de la } else {
Une bonne performance résulte d’un équilibre délicat page. showSidebar();
entre HTML, CSS et JavaScript. Ils jouent tous un rôle .sidebar { } }
dans l’affichage de la page, à différents stades. On peut position: fixed;
risquer de paralyser un site si on se concentre trop sur top: 0; 5. Ajouter le code pour afficher/
l’un d’entre eux. Plus on enlève de pression du thread left: 0; masquer
principal, plus il aura de temps pour répondre aux actions width: 100%; Plutôt que d’animer en JavaScript, nous allons utiliser
de l’utilisateur. En utilisant certaines nouvelles options du height: 100%; du CSS. Les navigateurs arrivent mieux à gérer les
navigateur, nous pouvons lui dire ce qu’il peut exécuter background-color: rgba(0,0,0,0.5); animations CSS que l’ajustement des positions top et left
en dehors du thread principal. z-index: 2; } avec JavaScript.
Dans ce tutoriel, nous allons créer deux petites Créez les fonctions show et hide qui ajoutent
animations sur l’interface pour donner vie à un site web 3. Masquer par défaut et retirent la classe visible de sidebar pour l’afficher
assez basique. La première sera une barre latérale Notre barre latérale est maintenant bien jolie, mais elle ou la masquer, et mettent l’état interne à jour.
glissante, pour laquelle nous utiliserons uniquement du est tout le temps à l’écran. Elle devrait être cachée au function showSidebar() {
CSS. La seconde animation sera liée à l’ajout d’un produit chargement de la page et ne s’afficher que lorsqu’elle [Link]('
dans le panier. Comme nous allons utiliser l’API Web est appelée. sidebar--visible');
Animations, nous devons utiliser un navigateur Normalement, nous pourrions régler le problème en visible = true;
compatible, comme Chrome ou Firefox. utilisant display: none, mais pour obtenir une animation }
fluide dès le départ, notre élément doit être prêt à function hideSidebar() {
1. Ajouter la structure de la barre bouger. [Link]('
latérale Ajouter deux propriétés dans les styles de sidebar sidebar--visible');
Avant de commencer, il est important d’avoir la bonne pour la rendre invisible et pour la rendre non-interactive, visible = false;
structure HTML. Nous voulons éviter d’ajouter du code puis inversez-les sur la classe visible. }
inutile qui compliquerait l’animation. .sidebar {
La <div> sidebar agira comme une couche […] 6. Cacher au clic sur la couche
superposée lorsque la navigation disparaît. Elle aura opacity: 0; superposée
un élément <nav> enfant qui devient la barre latérale, pointer-events: none; Quand l’utilisateur clique sur la couche superposée
et qui sera le seul élément transformé. } ou sur un élément de la barre latérale, nous devons
Ouvrez [Link] et ajoutez le code suivant dans .[Link]--visible { à nouveau tout cacher.
la <div> sidebar : pointer-events: auto; Nous pouvons appliquer un écouteur sur le conteneur
<nav class="sidebar__contents"> opacity: 1; } de la barre latérale pour économiser de la mémoire en
<ul class="sidebar__nav">
<li class="sidebar__nav-item"> 4. Activer la visibilité de la barre
<a href="#home" class=" latérale Visibilité vs opacité
sidebar__nav-item-link">Accueil</a> Le bouton en haut à gauche va déclencher l’apparition visibility: hidden et opacity: 0 servent tous les deux
</li> de la barre latérale. Nous avons besoin de JavaScript à masquer un élément, mais modifier la visibilité va
redessiner la page, ce qui peut être gourmand en
</ul> pour montrer et masquer la barre latérale au clic. Ouvrez
termes de calculs et doit être évité.
</nav> [Link] et ajoutez un écouteur pour afficher/cacher la
À gauche
Modifier les
propriétés CSS
peut provoquer
différents
comportements
selon les
navigateurs. Le
site csstriggers.
com regroupe ces
comportements
par propriété.
Ci-dessus
N’oubliez pas d’inverser la propriété pointer-events, sinon les
utilisateurs ne pourront interagir avec la barre latérale qu’avec
le clavier.
tutoriel ������������������������������������������������� 55
LES MEILLEURES
API
DU MOMENT
DÉCOUVREZ LES API HTML ET EXTERNES DU WEB
DE LA PROCHAINE GÉNÉRATION
70 ________________________________________________ dossier
qui nous aident à développer des sites et des apps plus développeur pour intégrer des cartes
Google dans vos apps. Cela nécessite
DOM, l’intégration de graphismes ou de
sons, ou encore l’interface entre le code
facilement, ou à réduire l’écart entre les logiciels natifs et d’importer des scripts hébergés sur et l’appareil que vous utilisez. Vous avez
ceux des navigateurs. Suivre les avancées et adopter les les serveurs Google, puis d’utiliser des
objets et des fonctions de ces scripts en
probablement déjà lu la documentation
sur ces fonctionnalités en ligne lorsque
nouvelles API lorsqu’elles sont suffisamment supportées suivant la documentation de l’API. Les vous avez créé un site ou une app. Ces
peut vraiment vous simplifier la vie, et garantir une API comme celle-ci sont généralement
appelées des « API côté-serveur ».
API sont généralement basées sur une
seule spécification qui garantit que tous
expérience moderne pour vos utilisateurs. Néanmoins, vous n’avez peut-être les navigateurs implémentent les
jamais compris que les fonctionnalités fonctionnalités uniformément, pour que
SIMON JONES
Directeur d’ingénierie logicielle
JS basiques intégrées dans le navigateur
sont également composées d’un
votre code fonctionne dans tous les
navigateurs.
LES API COURAMMENT UTILISÉES L’ÉCOSYSTÈME JAVASCRIPT ENTIER EST CONSTRUIT À PARTIR D’API,
QUE VOUS CONNAISSEZ DÉJÀ SÛREMENT POUR LA PLUPART.
CANVAS & SVG XMLHTTPREQUEST WEB SOCKETS FONCTIONS DU DOM
[Link] [Link] [Link] [Link]
[Link] XMLHttpRequest est l’API JavaScript Web Sockets permet à une session de Même les fonctions JavaScript
Canvas et SVG sont les exemples utilisée pour envoyer des requêtes communication bidirectionnelle d’être principales permettent de faire des
les plus évidents d’API navigateur asynchrones à un serveur. Cela peut ouverte entre un navigateur et un choses comme manipuler le DOM.
largement utilisées. Toutes deux vous permettre, par exemple, de serveur. Cela permet au serveur d’offrir Voyez l’objet document comme un
proposent un ensemble simple de récupérer des données d’un serveur des mises à jours à l’utilisateur sans que point d’accès. Cela signifie que même
points d’accès et de fonctions et de mettre à jour une page sans avoir le navigateur ait besoin d’interroger le si elles sont définies dans une
JavaScript pour remplir leurs objectifs à recharger la page entière. Son nom est serveur à intervalles réguliers. Les Web spécification distincte, il y a peu de
respectifs. On pourrait également un anachronisme puisqu’elle fonctionne Sockets sont utilisés sur de nombreux différence entre les nouvelles API que
ajouter WebGL à la liste, pour les aussi bien avec JSON qu’avec XML. D’ici sites. Sur Stack Overflow, ils servent à nous allons explorer et les fonctions
graphismes en 3D, mais nous y quelque temps, elle sera probablement envoyer des notifications live en cas de JavaScript de base qui existent depuis
reviendrons plus tard. remplacée par l’API Fetch. réponse à des questions. des années.
dossier __________________________________________________71
LES CONSOLES
DES NAVIGATEURS MOZILLA ET GOOGLE ONT RÉCEMMENT PLACÉ LA BARRE ENCORE PLUS HAUT
EN OFFRANT DES CONSOLES AVANCÉES DANS LEURS NAVIGATEURS WEB. NOUS VOUS
MONTRONS LES DEUX DIFFÉRENTES APPROCHES ET COMMENT LES UTILISER
AU MIEUX DANS VOS PROJETS.
78_________________________________________________ dossier
À QUOI ÇA SERT ?
GOOGLE CHROME A UN ONGLET
CONSOLE DEPUIS LONGTEMPS.
EXAMINONS-LE DE PLUS PRÈS.
Les consoles peuvent servir à plusieurs
choses : traditionnellement, les
développeurs web les utilisent pour
afficher des informations textuelles
pour débugger ou pour afficher les
journaux de débogage. Google a pour
objectif d’améliorer les fonctionnalités
existantes de l’onglet Console, qui ont
déjà cependant fait leurs preuves.
Google va même jusqu’à intégrer sur
son système d’exploitation mobile une
des options de journalisation les plus
avancées. Si vous avez déjà utilisé
LogCat et que vous devez revenir à
une implémentation inférieure, vous
allez souffrir. Google concentre donc
le travail de ses équipes sur des
DÉBUTER
fonctionnalités qui améliorent
POUR OUVRIR LA CONSOLE, IL SUFFIT DE FAIRE CTRL+MAJ+J. d’avertissement indiquent que vous
l’expérience existante. Par exemple, les Une fois que la fenêtre de la console est [Link](“Ceci est une pouvez obtenir plus d’informations.
informations peuvent désormais être à l’écran, il est temps de commencer à erreur !”); Une option très pratique vous
regroupées, pour pouvoir mieux suivre afficher des informations du journal. Au [Link](“Ceci est un permet de modifier l’affichage en
les données du journal qui ne cessent lieu de simplement utiliser [Link], avertissement...”); passant des paramètres CSS ou printf :
d’augmenter. vous pouvez désormais utiliser un [Link](“Au revoir !”); [Link](“%cGros texte bleu”,
En bref, la console web de Chrome ensemble de fonctions. } “color: blue; font-size:
est la référence pour récupérer des Exécutez l’extrait de code JavaScript runMe() x-large”);
données à utiliser pour des analyses suivant pour générer les résultats Comme vous pouvez le voir, les [Link](“%s has %d points”,
approfondies. Chrome offre même une affichés sur la capture ci-dessus : avertissements et les erreurs sont “Sam”, 100);
solution simple pour mesurer le temps <html> affichés de couleurs différentes dans le N’oubliez pas que les résultats de la
d’exécution. En bref, la console propose <body> journal. Cela vous permet de remarquer console peuvent être sauvegardés à tout
un ensemble de fonctionnalités <script> facilement les erreurs pertinentes. De moment. Faites simplement un clic droit
vraiment intéressantes qui méritent function runMe(){ plus, les petites icônes affichées sur le sur la fenêtre de la console et
toute votre attention. [Link](“Bonjour!”); côté gauche des lignes d’erreur et sélectionnez Save as.
dossier _________________________________________________79
en anglais
2018
AVRIL - MAI
T I O N
JavaScript
A
jQuery
M
RECEVEZ
CSS3
I
HTML5
AN
CSS +
BEL/LUX : 8,90€
- DOM/S : 8,90€
- CAL/S
: 1100 CFP - POL/S
1 AN - 6 NUMÉROS
LA COUV
EN
: 1150 CFP - CH
ACTION
Page 3
: 15,80FS - CAN
60 IMAGES
TUTO
RIEL
10API HTML
lencheur avec CSS
LE LIVRE WEBDESIGN
- MAR : 90 MAD
Bloq
NNJOAURND’THUESI
TE
À UTILISER TOUT DE SUI
ES É TO
IQ U GALLERY
- IT/[Link]
20 T E C H N FETS D’AU
NT : 8,50€
EURS EF
RECRÉEZ LES MEILL
au prix de 42€
CONSTRUISEZTIVÉE
UNE APPLI AC MASTERCLASS
PAR LA oVO IX CONSOLES
DE NAVIGATEUR
list avec [Link]
Codez une to-d
seulement
CRÉEZ DES EFFETS
ger dans votre code
Des outils pour plon
au lieu de 65,30€
indd 1
001_COUV.
BDMAR18_
10MAGWE
SOIT 36 %
DE RÉDUCTION !*
ABONNEMENT À
A découper ou à photocopier, puis à retourner complété et accompagné de votre règlement à l’adresse suivante :
CRM ART – WEB DESIGN – Service Abonnements – CS15245 – 31152 Fenouillet cedex - France
Informatique et Libertés : en application de l’article L.27 de la loi du 6 janvier 1978, relative
à l’informatique et aux libertés, vous disposez d’un droit d’accès et de rectification pour toute
information vous concernant en vous adressant à notre siège social. Les informations requises sont
❒ Oui, je m’abonne à Web Design pour 1 an - 6 nos + Le livre webdesign gallery au prix de 42 € au lieu de 65,30 € (36 % de réduction)*
❒ Oui, je m’abonne à Web Design pour 1 an - 6 nos, au prix de 38 € au lieu de 47,40 € (20 % de réduction)
L’abonnement prendra effet à partir de Web Design n° 88, parution le 23 mai 2018, si le coupon est renvoyé avant le 11 mai 2018.
NOM PRÉNOM
ADRESSE
nécessaires à l’établissement de votre abonnement.
n
WD87D
* offre valable jusqu’au 22 mai 2018, en France Métropolitaine uniquement. Si vous êtes à l’étranger ou dans les DOM-TOM, abonnez-vous sur la boutique en ligne à l’adresse suivante :
[Link]. Le livre webdesign gallery est disponible pour tout abonnement à l’offre de 42€, dans la limite des stocks disponibles. Ce produit peut être acheté séparément au
prix de 17,90 € auprès du Service client : service-client@[Link]