<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Rachl.dev]]></title><description><![CDATA[Des codes snippets pour vous aider à vous repérer dans la jungle du web]]></description><link>https://rachl.dev</link><generator>GatsbyJS</generator><lastBuildDate>Tue, 14 Jan 2020 11:30:11 GMT</lastBuildDate><item><title><![CDATA[BlogDev #0 : Pourquoi j'ai choisi GatsbyJS pour mon blog]]></title><description><![CDATA[Lorsque j’ai commencé le développement de ce blog, j’avais deux objectifs en tête : Découvrir des choses et être utile. Pour satisfaire…]]></description><link>https://rachl.dev/pourquoi-j-ai-choisi-gatsbyjs-pour-mon-blog/</link><guid isPermaLink="false">https://rachl.dev/pourquoi-j-ai-choisi-gatsbyjs-pour-mon-blog/</guid><pubDate>Mon, 13 Jan 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Lorsque j’ai commencé le développement de ce blog, j’avais deux objectifs en tête : Découvrir des choses et être utile. Pour satisfaire cette première exigeance, j’ai choisi de le développer avec des technologies que je n’avais encore jamais utilisées en production, notamment &lt;a href=&quot;https://www.gatsbyjs.com/&quot;&gt;GatsbyJS&lt;/a&gt; : un générateur de site statique basé sur React.&lt;/p&gt;
&lt;p&gt;Gatsby fait l’objet d’une attention croissante depuis sa création en 2015. Il séduit par sa simplicité de mise en place (du moins pour les habitués du Javascript), ses excellentes performances et son adaptabilité. En effet, la communauté a déjà créé une quantité impressionnante de plugins et il est très simple de créer des composants personnalisés. Vous pouvez également y greffer de nombreux CMS (Wordpress, Netlify, Drupal, TinaCMS…) ou simplement éditer des articles en Markdown.&lt;/p&gt;
&lt;p&gt;J’ai choisi pour le moment de travailler sans CMS et d’utiliser Gatsby Starter Blog, le starter thème le plus minimaliste et populaire pour Gatsby. Malheureusement, s’il permet effectivement de mettre en ligne un blog simple en très peu de temps, certaines bonnes pratiques ne sont pas respectées, et des procédés gagneraient à être optimisés (Une librairie javascript pour gérer la taille de police ? vraiment ?).&lt;/p&gt;
&lt;p&gt;Dans cette série d’article, je vous parlerai donc des modifications que j’apporte au fur et à mesure à mon thème pour l’adapter à mes besoins et le rendre plus qualitatif (ou l’empirer, à vous d’en juger). Au programme : Se débarasser de Typography.js, utiliser SASS, ajouter des tags etc..&lt;/p&gt;
&lt;p&gt;Stay tuned !&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Smooth scrolling uniquement en CSS]]></title><description><![CDATA[Depuis de nombreuses années, nous nous sommes habitués aux boutons de retour vers le haut et aux liens internes qui adoptent le fameux…]]></description><link>https://rachl.dev/smooth-scrolling-css/</link><guid isPermaLink="false">https://rachl.dev/smooth-scrolling-css/</guid><pubDate>Tue, 07 Jan 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Depuis de nombreuses années, nous nous sommes habitués aux boutons de retour vers le haut et aux liens internes qui adoptent le fameux comportement &lt;span lang=&quot;en&quot;&gt;smooth scroll&lt;/span&gt; ou “défilement doux”.&lt;/p&gt;
&lt;p&gt;S’il était autrefois nécessaire d’utiliser du javascript pour créer cette transition, il est désormais possible d’obtenir le même effet avec &lt;strong&gt;une seule ligne de CSS&lt;/strong&gt;.&lt;/p&gt;
&lt;h2&gt;Scroll behavior&lt;/h2&gt;
&lt;p&gt;La propriété CSS &lt;code class=&quot;language-text&quot;&gt;scroll-behavior&lt;/code&gt; prend deux valeurs spécifiques :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code class=&quot;language-text&quot;&gt;auto&lt;/code&gt; : la valeur par défaut, sans transition.&lt;/li&gt;
&lt;li&gt;&lt;code class=&quot;language-text&quot;&gt;smooth&lt;/code&gt; : le fameux comportement de défilement doux.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Concrètement, pour appliquer le &lt;span lang=&quot;en&quot;&gt;smooth scrolling&lt;/span&gt; à l’entièreté de votre site il vous suffit de l’appliquer sur la balise &lt;code class=&quot;language-text&quot;&gt;html&lt;/code&gt; :&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;css&quot;&gt;&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;/* Smooth scrolling sur l&apos;entièreté du site */&lt;/span&gt;
&lt;span class=&quot;token selector&quot;&gt;html&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token property&quot;&gt;scroll-behavior&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; smooth&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Mais vous pouvez également choisir de l’appliquer à une section particulière :&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;css&quot;&gt;&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;/* Smooth scrolling dans l&apos;élément some-section */&lt;/span&gt;
&lt;span class=&quot;token selector&quot;&gt;.some-section&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token property&quot;&gt;scroll-behavior&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; smooth&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;Accessibilité&lt;/h2&gt;
&lt;p&gt;Un des grands avantages de cette solution est la possibilité de s’adapter simplement aux préférences des utilisateurs, en particulier ceux qui ont paramétré leur navigateur avec une réduction d’animation et de mouvements.&lt;/p&gt;
&lt;p&gt;Pour ce faire, il suffit d’ajouter une media query à notre premier code :&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;css&quot;&gt;&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;/* Smooth scrolling sur l&apos;entièreté du site */&lt;/span&gt;
&lt;span class=&quot;token selector&quot;&gt;html&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token property&quot;&gt;scroll-behavior&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; smooth&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token atrule&quot;&gt;&lt;span class=&quot;token rule&quot;&gt;@media&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token property&quot;&gt;prefers-reduced-motion&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; reduce&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token selector&quot;&gt;html&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;scroll-behavior&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; auto&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;Support navigateur&lt;/h2&gt;
&lt;p&gt;à ce jour, le support navigateur pour cette propriété est d’aproximativement 70 %, elle est mise en place sur firefox, chrome et opera, mais pas sur safari, IE et edge (avant la version 76).&lt;/p&gt;
&lt;p&gt;Le support à jour :&lt;/p&gt;
&lt;a href=&quot;http://caniuse.com/#feat=css-scroll-behavior&quot; class=&quot;link--image&quot;&gt;
  &lt;picture&gt;
    &lt;source type=&quot;image/webp&quot; srcset=&quot;https://caniuse.bitsofco.de/image/css-scroll-behavior.webp&quot;&gt;
    &lt;img src=&quot;https://caniuse.bitsofco.de/image/css-scroll-behavior.png&quot; alt=&quot;Data on support for the css-scroll-behavior feature across the major browsers from caniuse.com&quot;&gt;
  &lt;/picture&gt;
&lt;/a&gt;
&lt;p&gt;Cela peut paraitre peu, mais compte tenu du peu de valeur ajoutée apportée par cette propriété, on peut tout à fait considérer que cette fonctionnalité entre dans le cadre de l’amélioration progressive. Si vous souhaitez toutefois une alternative avec un support plus large, vous pouvez vous tourner vers le script &lt;a href=&quot;https://github.com/cferdinandi/smooth-scroll&quot;&gt;Smooth Scroll&lt;/a&gt; de Chris Ferdinandi.&lt;/p&gt;
&lt;p&gt;Cette astuce a été découverte sur le blog &lt;a href=&quot;https://gomakethings.com/smooth-scrolling-links-with-only-css/&quot;&gt;Go Make Things&lt;/a&gt; du même auteur – Une mine d’or pour ceux qui cherchent à faire du développement lean et du Javascript pur.&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Comment synchroniser automatiquement votre navigateur avec Browsersync]]></title><description><![CDATA[Que vous soyez débutant, de la vieille école ou simplement sur un petit projet, vous n’avez pas forcément mis en place des solutions qui…]]></description><link>https://rachl.dev/synchroniser-automatiquement-navigateur/</link><guid isPermaLink="false">https://rachl.dev/synchroniser-automatiquement-navigateur/</guid><pubDate>Sat, 04 Jan 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Que vous soyez débutant, de la vieille école ou simplement sur un petit projet, vous n’avez pas forcément mis en place des solutions qui synchronisent automatiquement votre navigateur à chaque sauvegarde. Il existe pourtant un module &lt;abbr title=&quot;Node Package Manager&quot;&gt;npm&lt;/abbr&gt; qui peut se charger de cela à l’aide d’une seule ligne de commande : &lt;a href=&quot;https://www.Browsersync.io/&quot;&gt;Browsersync&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Qu’est-ce que npm ?&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Si npm est déjà installé sur votre ordinateur, vous pouvez passer directement à la partie suivante&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;npm, ou Node Package Manager est le gestionnaire de paquet officiel de node.js, la plateforme qui nous permet aujourd’hui d’exécuter du javascript côté serveur. npm permet de gérer très simplement les dépendances d’un site web et d’automatiser certaines tâches récurrentes, dont cette fameuse synchronisation de navigateur.&lt;/p&gt;
&lt;p&gt;Pour utiliser Browsersync vous devez donc tout d’abord &lt;strong&gt;installer &lt;a href=&quot;https://nodejs.org/fr/&quot;&gt;Node.js&lt;/a&gt;&lt;/strong&gt; (disponible sur Windows, Mac et Linux), qui embarque automatiquement npm.&lt;/p&gt;
&lt;h2&gt;Installer Browsersync&lt;/h2&gt;
&lt;p&gt;Pour l’installation de Browsersync, deux options s’offrent à vous : l’installer globalement afin de pouvoir le lancer sur tous vos projets, ou localement pour un usage ponctuel.&lt;/p&gt;
&lt;p&gt;J’ai personnellement choisi l’installation globale, pour simplifier le processus et éviter d’avoir à le télécharger à chaque fois (parce que la planète).&lt;/p&gt;
&lt;p&gt;Pour ce faire, il vous faut donc &lt;strong&gt;ouvrir un terminal&lt;/strong&gt; (ex : l’Invite de commandes sur windows) et exécuter la ligne de commande ci-dessous :&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;bash&quot;&gt;&lt;pre class=&quot;language-bash&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;npm&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;install&lt;/span&gt; -g browser-sync&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;Utiliser Browsersync sur un projet&lt;/h2&gt;
&lt;p&gt;Une des forces de Browsersync est qu’il peut être utilisé sur un site statique ou dynamique avec des changements mineurs sur la commande utilisée. Dans les deux cas, il vous suffit d’ouvrir un terminal dans le répertoire du projet que vous souhaitez surveiller et d’exécuter la commande appropriée :&lt;/p&gt;
&lt;h3&gt;Sur un site statique&lt;/h3&gt;
&lt;p&gt;Pour un site &lt;strong&gt;sans&lt;/strong&gt; serveur dynamique (basé sur des fichiers .html), utilisez :&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;bash&quot;&gt;&lt;pre class=&quot;language-bash&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;browser-sync start --server --files&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;**/*&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Browsersync lancera alors un petit serveur et surveillera les modifications de tous vos fichiers. Il est possible de changer certaines options, notamment la partie &lt;code class=&quot;language-text&quot;&gt;--files=&amp;quot;**/*&amp;quot;&lt;/code&gt;. Par exemple, si vous souhaitez surveiller uniquement le css, utilisez &lt;code class=&quot;language-text&quot;&gt;--files=&amp;quot;css/*.css&amp;quot;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.browsersync.io/docs/command-line&quot;&gt;Voir toutes les options possibles dans la documentation&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Sur un site dynamique&lt;/h3&gt;
&lt;p&gt;Pour un site qui tourne déjà sur un serveur dynamique local (php et autres), utilisez :&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;bash&quot;&gt;&lt;pre class=&quot;language-bash&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;browser-sync start --proxy &lt;span class=&quot;token string&quot;&gt;&quot;[URL-LOCALE-DU-PROJET]&quot;&lt;/span&gt; --files&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;**/*&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Browsersync entrera donc en mode proxy et se contentera de faire l’intermédiaire pour surveiller vos fichiers sans lancer de nouveau serveur. Comme pour les sites statiques, cette commande peut être personnalisée : &lt;a href=&quot;https://www.browsersync.io/docs/command-line&quot;&gt;Voir toutes les options possibles&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Récapitulatif&lt;/h2&gt;
&lt;p&gt;Pour résumer, voici les étapes nécessaires à la mise en place d’une synchronisation de navigateur avec Browsersync :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;installer &lt;a href=&quot;https://nodejs.org/fr/&quot;&gt;Node.js&lt;/a&gt; (si ce n’est pas déjà fait)&lt;/li&gt;
&lt;li&gt;Ouvrir un terminal.&lt;/li&gt;
&lt;li&gt;Installer Browsersync en exécutant la commande &lt;code class=&quot;language-text&quot;&gt;npm install -g browser-sync&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Naviguer dans le répertoire de votre projet et lancer Browsersync avec l’une des commandes suivantes :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sur un site statique : &lt;code class=&quot;language-text&quot;&gt;browser-sync start --server --files=&amp;quot;**/*&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Sur un site dynamique : &lt;code class=&quot;language-text&quot;&gt;browser-sync start --proxy &amp;quot;[URL-LOCALE-DU-PROJET]&amp;quot; --files=&amp;quot;**/*&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Une fois la synchronisation lancée, vous n’avez plus à vous soucier de recharger votre navigateur, il s’en chargera automatiquement à chaque fois que vous sauvegardez !&lt;/p&gt;
&lt;p&gt;Il existe d’autres façons d’utiliser Browsersync, notamment avec Gulp ou Grunt, mais cette solution est à mon avis la plus simple et la plus rapide à mettre en place lorsque l’on ne cherche pas à mettre en place un workflow complexe.&lt;/p&gt;
&lt;p&gt;Pour plus d’informations sur les autres possibilités d’installation et les options disponibles, &lt;a href=&quot;https://www.Browsersync.io/docs&quot;&gt;visitez la documentation&lt;/a&gt;&lt;/p&gt;</content:encoded></item></channel></rss>