<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Paul Fleury</title>
    <description>The latest articles on DEV Community by Paul Fleury (@paulfleury).</description>
    <link>https://dev.to/paulfleury</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F496875%2Feebf14d0-8b62-40e2-a8c8-eff26826df03.png</url>
      <title>DEV Community: Paul Fleury</title>
      <link>https://dev.to/paulfleury</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/paulfleury"/>
    <language>en</language>
    <item>
      <title>Opacité vs CSS Filter</title>
      <dc:creator>Paul Fleury</dc:creator>
      <pubDate>Fri, 20 Dec 2024 14:31:09 +0000</pubDate>
      <link>https://dev.to/paulfleury/opacite-vs-css-filter-i47</link>
      <guid>https://dev.to/paulfleury/opacite-vs-css-filter-i47</guid>
      <description>&lt;p&gt;Quand on place du texte sur image on est toujours confronté au problème de la lisibilité.&lt;/p&gt;

&lt;p&gt;Je joue souvent avec l’opacité pour corriger ce problème. Et il y a la propriété CSS Filter et ses nombreux effets. &lt;/p&gt;

&lt;p&gt;Par défaut je pense que cette dernière propose un rendu plus qualitatif que l’opacité. Mais je veux en avoir le cœur net.&lt;/p&gt;

&lt;h3&gt;
  
  
  Avec l’opacité
&lt;/h3&gt;

&lt;p&gt;C’est facile. On ajoute une couleur de fond à l’élément parent et on joue avec la propriété &lt;code&gt;opacity&lt;/code&gt; de l’image.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.element-parent&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#000&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.element-image&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;opacity&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0.7&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Avec CSS Filter
&lt;/h3&gt;

&lt;p&gt;La propriété &lt;a href="https://developer.mozilla.org/fr/docs/Web/CSS/filter" rel="noopener noreferrer"&gt;filter&lt;/a&gt; permet d’appliquer des filtres ou des effets graphiques. &lt;br&gt;
Cette propriété propose les filtres suivants : blur, brightness, contrast, drop-shadow, grayscale, hue-rotate, invert, opacity, saturate et sepia.&lt;/p&gt;

&lt;p&gt;Le filtre qui m’intéresse ici c’est brightness.&lt;br&gt;
C’est encore plus facile que l’opacité. On applique la propriété &lt;code&gt;filter&lt;/code&gt; à l’élément image.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.element-image&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;brightness&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;0.7&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Le résultat
&lt;/h3&gt;

&lt;p&gt;J’ai fait un codepen pour comparer.&lt;br&gt;
A gauche la version &lt;code&gt;opacity&lt;/code&gt; et à droite la version &lt;code&gt;filter&lt;/code&gt;.&lt;br&gt;
Résultat des courses, je ne vois pas de différence !&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/paulfleury/embed/PwYmNXM?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;br&gt;
Alors si vous vous demandez quelle solution utiliser, je vous dit c'est comme voulvoul. Celle qui vous convient le mieux.&lt;/p&gt;

</description>
      <category>css</category>
      <category>filter</category>
    </item>
    <item>
      <title>Un blog statique sur mesure avec Notion headless</title>
      <dc:creator>Paul Fleury</dc:creator>
      <pubDate>Sun, 15 Dec 2024 05:12:14 +0000</pubDate>
      <link>https://dev.to/paulfleury/un-blog-statique-sur-mesure-avec-notion-headless-2d1e</link>
      <guid>https://dev.to/paulfleury/un-blog-statique-sur-mesure-avec-notion-headless-2d1e</guid>
      <description>&lt;p&gt;Quand je surfe internet, j’ai la manie d’aller voir sous le capot des sites web que je visite. La plupart du temps la motorisation est assurée par WordPress ou Webflow. Et la surprise, je découvre &lt;a href="https://super.so/" rel="noopener noreferrer"&gt;Super&lt;/a&gt;, un outil nocode qui permet de transformer des pages Notion en site web. &lt;/p&gt;

&lt;p&gt;J’ai trouvé l’idée très intéressante. Le principe que Notion, mon espace personnel, devienne le back office de mon site web ou de mon blog c’est vraiment cool. &lt;/p&gt;

&lt;p&gt;Après je ne vous cache pas que je me sens à l’étroit avec Super. Le nocode ce n’est pas ma came et en plus j’ai pas envie de claquer 150 balles par an.&lt;/p&gt;

&lt;p&gt;J’ai décidé de reprendre le concept de Super mais en version jamstack : utiliser Notion en headless pour générer un site statique avec &lt;a href="https://www.11ty.dev/" rel="noopener noreferrer"&gt;Eleventy&lt;/a&gt; et de déployer tout ça avec &lt;a href="https://vercel.com/" rel="noopener noreferrer"&gt;Vercel&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Voici les étapes du projet en version courte :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Installation de Notion et configuration des tables nécessaires (posts, pages, settings)&lt;/li&gt;
&lt;li&gt;Design et développement du blog avec Eleventy&lt;/li&gt;
&lt;li&gt;Intégration de l'API Notion via Node.js et le client Notion&lt;/li&gt;
&lt;li&gt;Implémentation de l'optimisation d'images avec &lt;a href="https://sharp.pixelplumbing.com/" rel="noopener noreferrer"&gt;Sharp&lt;/a&gt; et conversion en WebP&lt;/li&gt;
&lt;li&gt;Déploiement automatisé sur Vercel via Git&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pour compléter le tout, j’ai ajouté un bouton pour lancer un déploiement à partir de Notion.&lt;/p&gt;

&lt;p&gt;En résumé : Notion + Eleventy + Github + Vercel = un blog gratuit,  sur mesure et très performant. &lt;/p&gt;

&lt;p&gt;Le résultat est ici : &lt;a href="https://paulfleury.vercel.app/" rel="noopener noreferrer"&gt;https://paulfleury.vercel.app/&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Ce test m’a confirmé le gros potentiel de Notion comme solution headless et particulièrement avec les espaces de travail.&lt;/p&gt;

</description>
      <category>notion</category>
      <category>jamstack</category>
      <category>11ty</category>
      <category>vercel</category>
    </item>
  </channel>
</rss>
