<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="https://chierchia.fr/wp-content/plugins/pretty-rss-feeds/xslt/pretty-feed.xsl" type="text/xsl" media="screen" ?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ange Chierchia</title>
	<atom:link href="https://chierchia.fr/feed/" rel="self" type="application/rss+xml" />
	<link>https://chierchia.fr/</link>
	<description>Développeur Web full-stack</description>
	<lastBuildDate>Sun, 08 Feb 2026 20:21:29 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://chierchia.fr/wp-content/uploads/cropped-16350293-SSDKVqo3-32x32.jpg</url>
	<title>Ange Chierchia</title>
	<link>https://chierchia.fr/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
					<title>Menu horizontal CSS : les sprites, c’était malin en 2009, beaucoup moins en 2026</title>
					<link>https://chierchia.fr/2026/02/menu-horizontal-css-sprites-2026/</link>
					<comments>https://chierchia.fr/2026/02/menu-horizontal-css-sprites-2026/#respond</comments>
		
		<dc:creator><![CDATA[<span class='p-author h-card'>Ange Chierchia</span>]]></dc:creator>
		<pubDate>Mon, 16 Feb 2026 06:45:00 +0000</pubDate>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[front-end]]></category>
		<category><![CDATA[javascript]]></category>
		<guid isPermaLink="false">https://chierchia.fr/?p=8600</guid>

					<description><![CDATA[En 2009, les sprites CSS optimisaient les menus horizontaux. En 2026, Flexbox, SVG et CSS modernes permettent des menus accessibles, responsives et maintenables.]]></description>
										<content:encoded><![CDATA[<div class='e-content'>
<p>La technique des sprites CSS a longtemps été une excellente solution pour optimiser les menus à base d&rsquo;image, mais en plus de 15 ans, le Web a bien évolué. En 2026, on peut (on doit <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f914.png" alt="🤔" class="wp-smiley" style="height: 1em; max-height: 1em;" />) construire des menus horizontaux plus souples, responsives et accessibles. Dans cet article, on va voir comment recréer l&rsquo;idée d&rsquo;un « <a href="https://chierchia.fr/2009/06/creer-un-menu-horizontal-avec-des-sprites-css/" type="post" id="1417">menu horizontal avec sprites CSS</a> » en utilisant des techniques modernes, en gardant les mêmes objectifs qu&rsquo;à l&rsquo;époque : esthétique et performance.</p>



<span id="more-8600"></span>



<h2 class="wp-block-heading">Pourquoi les sprites CSS ne sont plus la solution par défaut</h2>



<p>La technique des sprites consistait à regrouper tous les états graphiques (normal, survol, actif) dans une seule grande image, puis à afficher la bonne portion via <code>background-position</code>. Ça réduisait le nombre de requêtes HTTP nécessaires, ce qui était crucial avant l&rsquo;arrivée de HTTP/2.</p>



<p>Aujourd&rsquo;hui, cette approche a plusieurs limites pour un menu de navigation, même si elle fonctionne toujours :</p>



<ul class="wp-block-list">
<li>Maintenance lourde : chaque changement de pictogramme ou de texte implique de recalculer les positions.</li>



<li>Mauvaise adaptation aux écrans haut densité (Retina, 4K), sauf en multipliant les versions d&rsquo;images.</li>



<li>Accessibilité limitée : le texte est souvent masqué au profit d&rsquo;images purement décoratives.</li>



<li>Utilité réduite : HTTP/2, les formats d&rsquo;image modernes (WebP, SVG) rendent ce gain de requêtes moins critique.</li>
</ul>



<p>La technique des sprites reste pertinente pour certains cas (animations, jeux en HTML5), mais pour un simple menu de navigation, des alternatives modernes font clairement mieux le job aujourd&rsquo;hui.</p>



<h2 class="wp-block-heading">Structure HTML moderne</h2>



<p>La base n&rsquo;a pas fondamentalement changé depuis 2009 : une liste non ordonnée reste un excellent choix pour construire une navigation. En revanche, on va profiter d&rsquo;HTML5, des attributs ARIA et des bonnes pratiques en matière d&rsquo;accessibilité.</p>



<pre class="wp-block-code"><code>&lt;nav class="main-nav" aria-label="Navigation principale"&gt;
    &lt;a class="main-nav__logo" href="/"&gt;
        &lt;span class="sr-only"&gt;Retour à l'accueil&lt;/span&gt;
        &lt;!-- Logo SVG inline ou image --&gt;
        &lt;svg aria-hidden="true" viewBox="0 0 100 20"&gt;
            &lt;!-- ... --&gt;
        &lt;/svg&gt;
    &lt;/a&gt;
    
    &lt;button class="main-nav__toggle" aria-expanded="false" aria-controls="main-menu"&gt;
        &lt;span class="sr-only"&gt;Ouvrir le menu&lt;/span&gt;
        &lt;span class="main-nav__toggle-bar"&gt;&lt;/span&gt;
        &lt;span class="main-nav__toggle-bar"&gt;&lt;/span&gt;
        &lt;span class="main-nav__toggle-bar"&gt;&lt;/span&gt;
    &lt;/button&gt;

    &lt;ul id="main-menu" class="main-nav__list"&gt;
        &lt;li class="main-nav__item"&gt;
            &lt;a class="main-nav__link is-active" href="/" aria-current="page"&gt;Home&lt;/a&gt;
        &lt;/li&gt;
        &lt;li class="main-nav__item"&gt;
            &lt;a class="main-nav__link" href="/services"&gt;Services&lt;/a&gt;
        &lt;/li&gt;
        &lt;li class="main-nav__item"&gt;
            &lt;a class="main-nav__link" href="/references"&gt;Références&lt;/a&gt;
        &lt;/li&gt;
        &lt;li class="main-nav__item"&gt;
            &lt;a class="main-nav__link" href="/contact"&gt;Contact&lt;/a&gt;
        &lt;/li&gt;
    &lt;/ul&gt;
&lt;/nav&gt;</code></pre>



<p>Quelques points importants : </p>



<ul class="wp-block-list">
<li>Utilisation de <code>&lt;nav&gt;</code> et <code>aria-label</code> pour expliciter le rôle de la zone.</li>



<li>Un bouton de type « hamburger » pour le mobile, relié à la liste via <code>aria-controls</code>.</li>



<li>Une classe <code>is-active</code> pour gérer l&rsquo;onglet actif côté CSS.</li>
</ul>



<h2 class="wp-block-heading">Mise en page avec Flexbox (bye-bye <code>float</code> !)</h2>



<p>Là où mon article d&rsquo;origine utilisait <code>float: left</code> sur les <code>&lt;li&gt;</code>, on peut aujourd&rsquo;hui aligner le menu avec Flexbox. Plus simple et plus&#8230; flexible ! (ouais, je suis un marrant <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f923.png" alt="🤣" class="wp-smiley" style="height: 1em; max-height: 1em;" />).</p>



<pre class="wp-block-code"><code>.main-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding: 0.75rem 1.5rem;
    background: linear-gradient(90deg, #1f2933, #111827);
    color: #ffffff;
}

.main-nav__logo {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    color: inherit;
}

.main-nav__list {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.main-nav__link {
    position: relative;
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0;
    font-weight: 500;
    color: #e5e7eb;
    text-decoration: none;
    transition: color 200ms ease-out;
}</code></pre>



<p>Ici, la liste devient une simple rangée flex, ce qui rend l&rsquo;ajout ou la suppression d&rsquo;éléments beaucoup plus naturel que la gestion de coordonnées de sprites. On peut aussi, si besoin, passer sur CSS Grid pour gérer un en-tête plus complexe.</p>



<h2 class="wp-block-heading">Effets de survol modernes</h2>



<p>Au lieu de gérer les états normal/hover/actif via une image sprite, on peut recréer des effets visuels sophistiqués en pur CSS : soulignement animé, fond dégradé, « pill » qui se déplace, etc.</p>



<h3 class="wp-block-heading">Exemple : soulignement animé avec un pseudo-élément</h3>



<pre class="wp-block-code"><code>.main-nav__link::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -0.2rem;
    width: 100%;
    height: 2px;
    border-radius: 999px;
    background: linear-gradient(90deg, #f59e0b, #ec4899);
    transform-origin: center;
    transform: scaleX(0);
    transition: transform 0.2s ease-out;
}

.main-nav__link:hover::after,
.main-nav__link:focus-visible::after,
.main-nav__link.is-active::after {
    transform: scaleX(1);
}

.main-nav__link:hover,
.main-nav__link:focus-visible,
.main-nav__link.is-active {
    color: #fff;
}</code></pre>



<p>Avec cette approche, on reproduit l&rsquo;idée d&rsquo;un état survolé distinct, sans aucune image et avec un rendu parfaitement net sur tous les écrans. On améliore aussi l&rsquo;accessibilité en stylant <code>:focus-visible</code> pour la navigation au clavier.</p>



<h2 class="wp-block-heading">Icônes : du sprite bitmap au SVG</h2>



<p>Autre gros virage : la façon d’intégrer des icônes. Là où l&rsquo;on utilisait auparavant une sprite PNG, on privilégie maintenant :</p>



<ul class="wp-block-list">
<li>une « Icon Font » (de moins en moins recommandée),</li>



<li>des SVG inline (avec <code>&lt;svg&gt;</code> dans le HTML),</li>



<li>ou une sprite SVG via <code>&lt;symbol&gt;</code> et <code>&lt;use&gt;</code></li>
</ul>



<h3 class="wp-block-heading">Exemple avec une sprite SVG</h3>



<pre class="wp-block-code"><code>&lt;svg aria-hidden="true" style="display:none"&gt;
    &lt;symbol id="icon-home" viewBox="0 0 24 24"&gt;
        &lt;!-- … --&gt;
    &lt;/symbol&gt;
    &lt;symbol id="icon-services" viewBox="0 0 24 24"&gt;
        &lt;!-- … --&gt;
    &lt;/symbol&gt;
&lt;/svg&gt;

&lt;nav class="main-nav" aria-label="Navigation principale"&gt;
    &lt;ul class="main-nav__list"&gt;
        &lt;li class="main-nav__item"&gt;
            &lt;a class="main-nav__link is-active" href="#home"&gt;
                &lt;svg class="main-nav__icon" aria-hidden="true"&gt;
                    &lt;use href="#icon-home"&gt;&lt;/use&gt;
                &lt;/svg&gt;
                &lt;span&gt;Home&lt;/span&gt;
            &lt;/a&gt;
        &lt;/li&gt;
        &lt;!-- … --&gt;
    &lt;/ul&gt;
&lt;/nav&gt;</code></pre>



<pre class="wp-block-code"><code>.main-nav__icon {
    width: 1.1rem;
    height: 1.1rem;
    margin-right: 0.4rem;
    flex-shrink: 0;
}
</code></pre>



<p>Les avantages sont nombreux : un rendu vectoriel, une couleur facilement personnalisable en CSS (via <code>fill</code> et optionnellement <code>currentColor</code>), et plus aucune gymnastique de <code>background-position</code> !</p>



<h2 class="wp-block-heading">Rendre le menu responsive</h2>



<p>Un menu horizontal moderne doit s&rsquo;adapter à toutes les tailles de fenêtre. On peut combiner CSS à un petit peu de JavaScript pour gérer l&rsquo;ouverture et la fermeture du menu sur mobile.</p>



<h3 class="wp-block-heading">CSS : basculer en mode « hamburger » sur mobile</h3>



<pre class="wp-block-code"><code>.main-nav__toggle {
    display: none;
    border: none;
    background: transparent;
    cursor: pointer;
    padding: 0.25rem;
}

.main-nav__toggle-bar {
    display: block;
    width: 1.5rem;
    height: 2px;
    margin: 0.2rem 0;
    border-radius: 999px;
    background-color: #e5e7eb;
    transition: transform 0.2s ease-out, opacity 0.2s ease-out;
}

/* Mobile */
@media (max-width: 768px) {
    .main-nav {
        flex-wrap: wrap;
        align-items: center;
        row-gap: 0;
    }

    .main-nav__toggle {
        display: flex;
        flex-direction: column;
        margin-left: auto;
    }

    .main-nav__list {
        flex-basis: 100%;
        flex-direction: column;
        align-items: flex-start;
        gap: 0.75rem;
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.25s ease-out;
    }

    .main-nav__list.is-open {
        max-height: unset;
        overflow: initial;
    }
}</code></pre>



<h3 class="wp-block-heading">JavaScript : gestion de l&rsquo;état « ouvert »</h3>



<pre class="wp-block-code"><code>const navToggle = document.querySelector('.main-nav__toggle');
const navList = document.querySelector('#main-menu');

if (navToggle &amp;&amp; navList) {
    navToggle.addEventListener('click', () =&gt; {
        const isOpen = navToggle.getAttribute('aria-expanded') === 'true';
        navToggle.setAttribute('aria-expanded', String(!isOpen));
        navList.classList.toggle('is-open', !isOpen);
    });
}</code></pre>



<p>Ce petit script suffit amplement pour un menu responsive classique, tout en respectant les attributs ARIA pour les lecteurs d&rsquo;écran. Des implémentations plus avancées peuvent gérer le focus, l&rsquo;échappement au clavier ou les sous-menus (dropdown, mega menu, etc.)</p>



<h2 class="wp-block-heading">Accessibilité et UX, à ne surtout plus ignorer</h2>



<p>Si mon article d&rsquo;origine se concentrait surtout sur la technique des sprites et l&rsquo;optimisation des requêtes HTTP, un menu moderne doit aussi intégrer de vraies bonnes pratiques d&rsquo;accessibilité (et on aurait dû s&rsquo;en rendre compte déjà à l&rsquo;époque des mises en page en&nbsp;<code>&lt;table&gt;</code>&nbsp;<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f631.png" alt="😱" class="wp-smiley" style="height: 1em; max-height: 1em;" />).</p>



<p>Quelques points clés :</p>



<ul class="wp-block-list">
<li>Utiliser des textes visibles plutôt que de les masquer derrière une image.</li>



<li>Prévoir des styles de <code>:focus-visible</code> suffisamment contrastés pour la navigation clavier.</li>



<li>S&rsquo;assurer que le contraste texte/fond est suffisant pour une lecture confortable.</li>



<li>Gérer l&rsquo;état actif (<code>aria-current="page"</code>) pour que l&rsquo;utilisateur sache où il se trouve.</li>
</ul>



<h2 class="wp-block-heading">17 ans de progrès en un menu</h2>



<p>En 2009, les sprites CSS étaient une astuce magique pour booster les performances d&rsquo;un menu horizontal un peu « design ». Aujourd&rsquo;hui, grâce à Flexbox, SVG, des CSS modernes et un peu de JavaScript (bye jQuery ! <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f92d.png" alt="🤭" class="wp-smiley" style="height: 1em; max-height: 1em;" />), on obtient un résultat plus performant, plus accessible et infiniment plus maintenable. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f60e.png" alt="😎" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p class="codepen" data-height="300" data-default-tab="result" data-slug-hash="wBWYPdP" data-pen-title="Untitled" data-user="nighcrawl" style="height: 300px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;">
      <span>See the Pen <a href="https://codepen.io/nighcrawl/pen/wBWYPdP">
  Untitled</a> by Ange Chierchia (<a href="https://codepen.io/nighcrawl">@nighcrawl</a>)
  on <a href="https://codepen.io">CodePen</a>.</span>
      </p>
      <script async src="https://public.codepenassets.com/embed/index.js"></script>
</div>]]></content:encoded>
					
					<wfw:commentRss>https://chierchia.fr/2026/02/menu-horizontal-css-sprites-2026/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
					<title>Three Ways phpMyAdmin Saves Your WordPress Site and Your Sanity</title>
					<link>https://chierchia.fr/2026/02/three-ways-phpmyadmin-saves-your-wordpress-site-and-your-sanity/</link>
					<comments>https://chierchia.fr/2026/02/three-ways-phpmyadmin-saves-your-wordpress-site-and-your-sanity/#respond</comments>
		
		<dc:creator><![CDATA[<span class='p-author h-card'>Ange Chierchia</span>]]></dc:creator>
		<pubDate>Mon, 09 Feb 2026 06:00:00 +0000</pubDate>
				<category><![CDATA[Bookmarks]]></category>
		<category><![CDATA[Notes]]></category>
		<guid isPermaLink="false">https://chierchia.fr/?p=7983</guid>

					<description><![CDATA[Bookmarked https://iterativewonders.com/2025/11/30/three-ways-phpmyadmin-saves-your-wordpress-site-and-your-sanity/. phpMyAdmin, c&#8217;est un peu l&#8217;outil qu&#8217;on oublie jusqu&#8217;au moment où tout part en vrille. L&#8217;article rappelle trois trucs super pratiques : corriger les URL cassées après une migration (parce qu&#8217;on a tous déjà galéré avec ça), nettoyer les révisions qui bouffent la base, et réparer les tables corrompues en deux clics. Ce qui [&#8230;]]]></description>
										<content:encoded><![CDATA[<div class='e-content'><div class="wp-block-indieblocks-bookmark"><div class="u-bookmark-of h-cite"><p><i>Bookmarked <a class="u-url" href="https://iterativewonders.com/2025/11/30/three-ways-phpmyadmin-saves-your-wordpress-site-and-your-sanity/">https://iterativewonders.com/2025/11/30/three-ways-phpmyadmin-saves-your-wordpress-site-and-your-sanity/</a>.</i></p></div></div>

phpMyAdmin, c&rsquo;est un peu l&rsquo;outil qu&rsquo;on oublie jusqu&rsquo;au moment où tout part en vrille. L&rsquo;article rappelle trois trucs super pratiques : corriger les URL cassées après une migration (parce qu&rsquo;on a tous déjà galéré avec ça), nettoyer les révisions qui bouffent la base, et réparer les tables corrompues en deux clics.

Ce qui me plaît, c&rsquo;est que c&rsquo;est direct et sans bullshit. Pas de plugin miracle à installer, juste une connexion à la base et quelques requêtes SQL bien senties. C&rsquo;est le genre de conseil qu&rsquo;on donne à un pote qui flippe devant son site planté.

Bon, évidemment, faut pas jouer avec la base les yeux fermés. Backup d&rsquo;abord, explore ensuite. Mais franchement, phpMyAdmin reste un couteau suisse indispensable quand WordPress fait sa crise. Ça rassure de savoir qu&rsquo;on peut encore mettre les mains dans le cambouis.</div>]]></content:encoded>
					
					<wfw:commentRss>https://chierchia.fr/2026/02/three-ways-phpmyadmin-saves-your-wordpress-site-and-your-sanity/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
					<title>8 février 2026 à 21:20</title>
					<link>https://chierchia.fr/2026/02/8-fevrier-2026-a-2120/</link>
					<comments>https://chierchia.fr/2026/02/8-fevrier-2026-a-2120/#respond</comments>
		
		<dc:creator><![CDATA[<span class='p-author h-card'>Ange Chierchia</span>]]></dc:creator>
		<pubDate>Sun, 08 Feb 2026 20:20:22 +0000</pubDate>
				<category><![CDATA[Notes]]></category>
		<guid isPermaLink="false">https://chierchia.fr/?p=8629</guid>

					<description><![CDATA[En parcourant mon reader RSS, je suis tombé sur cet article https://www.alwaystwisted.com/articles/ive-been-compiling-my-sass-wrong-for-years et ça m’a fait réaliser que j’avais moi aussi ce warning quand je compile mes SCSS au boulot. Premier truc que je ferai en arrivant demain matin !]]></description>
										<content:encoded><![CDATA[<div class='e-content'>En parcourant mon reader RSS, je suis tombé sur cet article <a href="https://www.alwaystwisted.com/articles/ive-been-compiling-my-sass-wrong-for-years">https://www.alwaystwisted.com/articles/ive-been-compiling-my-sass-wrong-for-years</a> et ça m’a fait réaliser que j’avais moi aussi ce warning quand je compile mes SCSS au boulot. Premier truc que je ferai en arrivant demain matin !</div>
]]></content:encoded>
					
					<wfw:commentRss>https://chierchia.fr/2026/02/8-fevrier-2026-a-2120/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
					<title>CSS @scope: An Alternative To Naming Conventions​​​​​​​​​​​​​​​​</title>
					<link>https://chierchia.fr/2026/02/css-scope-an-alternative-to-naming-conventions/</link>
					<comments>https://chierchia.fr/2026/02/css-scope-an-alternative-to-naming-conventions/#respond</comments>
		
		<dc:creator><![CDATA[<span class='p-author h-card'>Ange Chierchia</span>]]></dc:creator>
		<pubDate>Fri, 06 Feb 2026 06:25:00 +0000</pubDate>
				<category><![CDATA[Bookmarks]]></category>
		<category><![CDATA[Notes]]></category>
		<guid isPermaLink="false">https://chierchia.fr/?p=8543</guid>

					<description><![CDATA[Bookmarked CSS @scope: An Alternative To Naming Conventions And Heavy Abstractions — Smashing Magazine. Alors là, je dois dire que @scope me parle vraiment. J’ai passé des années à jongler avec BEM, SMACSS, et toutes ces conventions de nommage qui finissent par te donner l’impression d’écrire du morse plutôt que du CSS. L’idée de pouvoir [&#8230;]]]></description>
										<content:encoded><![CDATA[<div class='e-content'>
<div class="wp-block-indieblocks-bookmark"><div class="u-bookmark-of h-cite"><p><i>Bookmarked <a class="u-url p-name" href="https://www.smashingmagazine.com/2026/02/css-scope-alternative-naming-conventions/">CSS @scope: An Alternative To Naming Conventions And Heavy Abstractions — Smashing Magazine</a>.</i></p></div></div>



<p>Alors là, je dois dire que @scope me parle vraiment. J’ai passé des années à jongler avec BEM, SMACSS, et toutes ces conventions de nommage qui finissent par te donner l’impression d’écrire du morse plutôt que du CSS. L’idée de pouvoir scoper du CSS natif sans avoir à préfixer chaque classe avec le nom du composant trois fois, c’est exactement ce qu’il me fallait.</p>



<p>Ce qui me botte, c’est que ça reste lisible. Pas de .card__header&#8211;modifier à rallonge. Juste du CSS qui dit clairement “ça s’applique dans ce contexte, point final”. Et le support navigateur est déjà là pour une bonne partie. Bon, évidemment, il faut un peu de temps pour que tout le monde suive, mais l’approche progressive me va bien.</p>



<p>Je pense tester ça sur mon prochain side project, histoire de voir comment ça se comporte dans la vraie vie. Parce qu’en vrai, les conventions c’est bien, mais si le langage peut gérer le problème nativement, pourquoi se compliquer la vie ?</p>
</div>]]></content:encoded>
					
					<wfw:commentRss>https://chierchia.fr/2026/02/css-scope-an-alternative-to-naming-conventions/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
					<title>Windsurf et moi : journal d’un dev qui apprend à parler à une IA</title>
					<link>https://chierchia.fr/2026/02/windsurf-et-moi-journal-dun-dev-qui-apprend-a-parler-a-une-ia/</link>
		
		<dc:creator><![CDATA[<span class='p-author h-card'>Ange Chierchia</span>]]></dc:creator>
		<pubDate>Mon, 02 Feb 2026 06:45:00 +0000</pubDate>
				<category><![CDATA[Journal]]></category>
		<category><![CDATA[Gutenberg]]></category>
		<category><![CDATA[IA]]></category>
		<category><![CDATA[JSX]]></category>
		<category><![CDATA[React]]></category>
		<category><![CDATA[vibe coding]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://chierchia.fr/?p=7980</guid>

					<description><![CDATA[Ça fait deux semaines que j&#8217;utilise Windsurf pour développer un plugin WordPress.Le principe ? Ajouter des options sur les blocs Gutenberg natifs (en React/JSX), et gérer des Custom Post Types proprement. Rien de dingue sur le papier.Mais en vrai, c&#8217;est le genre de projet où tu te retrouves vite avec du code front mélangé au [&#8230;]]]></description>
										<content:encoded><![CDATA[<div class='e-content'>
<p>Ça fait deux semaines que j&rsquo;utilise <strong>Windsurf</strong> pour développer un plugin WordPress.<br>Le principe ? Ajouter des options sur les blocs Gutenberg natifs (en React/JSX), et gérer des Custom Post Types proprement.</p>



<p>Rien de dingue sur le papier.<br />Mais en vrai, c&rsquo;est le genre de projet où tu te retrouves vite avec du code front mélangé au code métier, des fichiers qui grossissent, et un moment où tu te demandes « mais pourquoi j&rsquo;ai foutu ça là ? ».</p>



<p>Avant, j&rsquo;aurais passé une journée entière à refactoriser pour que ce soit propre.<br />Là, j&rsquo;ai tenté de faire équipe avec l&rsquo;IA.</p>



<p>Spoiler : c&rsquo;est ni parfait, ni magique. Mais franchement, c&rsquo;est troublant.</p>



<h2 class="wp-block-heading">Le moment où j&rsquo;ai compris que c&rsquo;était différent</h2>



<p>Au début, je lui ai juste balancé :</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>« J&rsquo;ai du code pour étendre des blocs Gutenberg. Aide-moi à séparer proprement le front-end de la logique métier. »</p>
</blockquote>



<p>Windsurf ne m&rsquo;a pas juste craché trois suggestions de fonctions.<br />Il a <strong>réorganisé des fichiers</strong>.<br />Il a créé des dossiers, proposé une archi, déplacé du code React d&rsquo;un côté, les enregistrements de CPT de l&rsquo;autre.</p>



<p>Pas parfait, hein. Mais cohérent.</p>



<p>Et moi, pendant ce temps, je ne codais presque pas.<br />Je lisais, je validais, je virais ce qui ne me plaisait pas.</p>



<p>C&rsquo;est là que j&rsquo;ai senti le truc : je n&rsquo;étais plus vraiment en train de « coder ».<br />J&rsquo;étais en train de <strong>piloter</strong>.</p>



<h2 class="wp-block-heading">Font Awesome sur les boutons : ou comment j&rsquo;ai réécrit mes prompts 15 fois</h2>



<p>Le truc qui m&rsquo;a le plus pris la tête, c&rsquo;est l&rsquo;ajout d&rsquo;<strong>icônes Font Awesome sur les blocs <code>core/button</code></strong>.</p>



<p>Sur le papier, c&rsquo;est simple :<br />tu rajoutes un control dans le panneau Gutenberg, tu laisses l&rsquo;utilisateur choisir une icône, tu l&rsquo;affiches côté front avec la bonne classe Font Awesome.</p>



<p>Dans la réalité ?<br />Windsurf m&rsquo;a sorti :</p>



<ul class="wp-block-list">
<li>Des contrôles Gutenberg qui ne compilaient pas.</li>



<li>Des attributs qui disparaissaient au save/reload.</li>



<li>Du JSX bancal avec des icônes qui se dupliquaient ou qui partaient dans le mauvais sens.</li>



<li>Une fois, il m&rsquo;a même proposé d&rsquo;importer <strong>tout Font Awesome en JS côté éditeur</strong> (merci, mais non).</li>
</ul>



<p>Le problème, c&rsquo;est que je lui demandais des trucs trop vagues.<br />Genre :</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>« Ajoute une option pour choisir une icône Font Awesome. »</p>
</blockquote>



<p>Résultat : il partait dans tous les sens.</p>



<p>J&rsquo;ai dû affiner. Beaucoup.<br />Jusqu&rsquo;à arriver à des prompts du style :</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>« Ajoute un SelectControl dans InspectorControls pour choisir parmi 5 icônes Font Awesome.<br />L&rsquo;attribut doit s&rsquo;appeler <code>faIcon</code>, de type string.<br />L&rsquo;icône doit s&rsquo;afficher avant le texte du bouton, côté front uniquement, avec la classe <code>fa-solid fa-{nomIcone}</code>. »</p>
</blockquote>



<p>Là, ça commençait à tourner.</p>



<p>Mais j&rsquo;ai quand même dû <strong>tout recommencer à zéro</strong> une fois, parce qu&rsquo;il m&rsquo;avait généré une logique tellement tordue que je ne m&rsquo;y retrouvais plus.</p>



<h2 class="wp-block-heading">Ce que j&rsquo;ai appris : parler à une IA, c&rsquo;est un métier</h2>



<p>Ce qui m&rsquo;a le plus marqué, c&rsquo;est à quel point <strong>la façon dont tu poses la question change tout</strong>.</p>



<p>Si tu dis :<br />« Fais-moi un truc pour gérer des icônes »,<br />tu obtiens du code générique, verbeux, à moitié cassé.</p>



<p>Si tu dis :<br />« Crée un attribut <code>faIcon</code> de type string, ajoute un SelectControl avec 5 options fixes, affiche l&rsquo;icône en <code>&lt;i&gt;</code> avec la classe correspondante dans le RichText »,<br />là, ça roule.</p>



<p>Et ça, pour moi, c&rsquo;est nouveau.<br />Avant, coder, c&rsquo;était : je sais ce que je veux, je le tape.<br />Maintenant, c&rsquo;est : je sais ce que je veux, <strong>j&rsquo;apprends à le formuler pour qu&rsquo;une IA le fasse</strong>.</p>



<p>C&rsquo;est presque un exercice de specs en temps réel.<br />Et franchement, ça m&rsquo;a forcé à être plus <strong>clair dans ma tête</strong> sur ce que je voulais vraiment.</p>



<h2 class="wp-block-heading">La structure du plugin : là où l&rsquo;IA m&rsquo;a vraiment aidé</h2>



<p>Ce qui est cool, c&rsquo;est que Windsurf m&rsquo;a aidé à mettre en place une archi propre dès le début.</p>



<p>Avant, j&rsquo;aurais fait un gros <code>index.php</code>, un dossier <code>assets</code>, et je me serais dit « je rangerai plus tard ».<br />Jamais fait, évidemment.</p>



<p>Là, il m&rsquo;a proposé direct :</p>



<ul class="wp-block-list">
<li>Un dossier <code>src/blocks</code> pour tout le code React/JSX qui étend les blocs Gutenberg.</li>



<li>Un dossier <code>includes</code> pour les CPT et la logique métier.</li>



<li>Un build propre avec webpack (enfin… plus ou moins propre, j&rsquo;ai dû ajuster).</li>



<li>Une séparation claire entre ce qui tourne côté éditeur et ce qui se charge côté front.</li>
</ul>



<p>C&rsquo;est pas révolutionnaire.<br />Mais c&rsquo;est exactement ce que j&rsquo;aurais dû faire depuis le début, et que je faisais jamais par flemme.</p>



<p>L&rsquo;IA m&rsquo;a forcé à être <strong>structuré dès le départ</strong>, parce qu&rsquo;elle avait besoin de comprendre où mettre les fichiers.</p>



<p>Et résultat : mon code est plus maintenable. Plus facile à relire. Moins bordélique.</p>



<h2 class="wp-block-heading">Les moments de frustration (parce qu&rsquo;il y en a)</h2>



<p>Je ne vais pas mentir : il y a eu des phases où j&rsquo;ai eu envie de tout fermer et de retourner coder comme avant.</p>



<p>Genre :</p>



<ul class="wp-block-list">
<li>Quand l&rsquo;IA me modifiait 4 fichiers alors que je lui avais demandé d&rsquo;en toucher qu&rsquo;un.</li>



<li>Quand elle « corrigeait » du JSX qui marchait très bien, merci.</li>



<li>Quand elle m&rsquo;inventait des hooks React qui n&rsquo;existent pas, et que je perdais 20 minutes à comprendre pourquoi ça plantait.</li>
</ul>



<p>Il y a aussi ce moment bizarre où tu te rends compte que <strong>tu lis plus de code que tu n&rsquo;en écris</strong>.<br />Et parfois, ça frustre.<br />Parce que coder, c&rsquo;est pas juste produire du code. C&rsquo;est aussi réfléchir, tâtonner, trouver des solutions.</p>



<p>Avec l&rsquo;IA, tu sautes une partie de ce process.<br />Des fois c&rsquo;est génial.<br />Des fois, tu te sens un peu… spectateur.</p>



<h2 class="wp-block-heading">Ce que je retiens après deux semaines</h2>



<p><strong>Windsurf, c&rsquo;est un outil de structure avant tout.</strong><br />Il te force à penser ton projet proprement, parce qu&rsquo;il a besoin de comprendre où il met les pieds.</p>



<p><strong>C&rsquo;est aussi un amplificateur de clarté mentale.</strong><br />Si tu ne sais pas vraiment ce que tu veux, il va partir en vrille.<br />Si tu es clair, il va vite.</p>



<p><strong>Mais ça reste un assistant, pas un dev.</strong><br />Tu ne peux pas lui laisser la main sur tout.<br />Surtout si tu fais du React/JSX un peu poussé, ou si tu touches à des trucs sensibles (attributs Gutenberg, save/edit, etc.).</p>



<p>Le truc à retenir ?<br /><strong>L&rsquo;IA produit le squelette. Toi, tu mets la chair.</strong></p>



<p>Et franchement, pour l&rsquo;instant, ça me va bien comme ça.</p>



<h2 class="wp-block-heading">Et toi, t&rsquo;en es où ?</h2>



<p>Je suis curieux de savoir si d&rsquo;autres devs WordPress ont testé ce genre d&rsquo;outils sur des projets Gutenberg.<br />Parce que franchement, entre le JSX, les attributs, le <code>save</code> vs <code>edit</code>, et tout le bordel de la compilation&#8230; c&rsquo;est pas toujours évident de savoir ce qu&rsquo;on peut déléguer à l&rsquo;IA et ce qu&rsquo;il vaut mieux garder sous contrôle.</p>



<p>Si t&rsquo;as des retours d&rsquo;expérience, des prompts qui marchent bien (ou qui partent complètement en couille), ou juste une opinion tranchée sur le fait de coder avec une IA, balance-moi ça.</p>



<p>Parce qu&rsquo;au fond, on est tous un peu en train d&rsquo;apprendre ensemble comment bosser avec ces trucs-là.<br />Et autant partager les galères, non ?</p>
</div>]]></content:encoded>
					
		
		
			</item>
		<item>
					<title>dimanche 01 février 2026 @ 12:15:02</title>
					<link>https://chierchia.fr/2026/02/20260201121502/</link>
					<comments>https://chierchia.fr/2026/02/20260201121502/#comments</comments>
		
		<dc:creator><![CDATA[<span class='p-author h-card'>Ange Chierchia</span>]]></dc:creator>
		<pubDate>Sun, 01 Feb 2026 11:15:02 +0000</pubDate>
				<category><![CDATA[Notes]]></category>
		<guid isPermaLink="false">https://chierchia.fr/?p=8026</guid>

					<description><![CDATA[J’ai fais le fifou ce week-end ! J’en avais un peu marre des couleurs de mon blog, alors j’ai un tout petit peu rafraîchi tout ça ! Et en prime j’ai utilisé ma couleur préférée #vismavie #osef]]></description>
										<content:encoded><![CDATA[<div class='e-content'><p>J’ai fais le fifou ce week-end ! J’en avais un peu marre des couleurs de mon blog, alors j’ai un tout petit peu rafraîchi tout ça ! Et en prime j’ai utilisé ma couleur préférée #vismavie #osef</p>


<p></p>
</div>]]></content:encoded>
					
					<wfw:commentRss>https://chierchia.fr/2026/02/20260201121502/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
					<title>Accessible faux nested interactive controls</title>
					<link>https://chierchia.fr/2026/01/accessible-faux-nested-interactive-controls/</link>
					<comments>https://chierchia.fr/2026/01/accessible-faux-nested-interactive-controls/#respond</comments>
		
		<dc:creator><![CDATA[<span class='p-author h-card'>Ange Chierchia</span>]]></dc:creator>
		<pubDate>Mon, 19 Jan 2026 06:15:00 +0000</pubDate>
				<category><![CDATA[Bookmarks]]></category>
		<category><![CDATA[Notes]]></category>
		<guid isPermaLink="false">https://chierchia.fr/?p=7937</guid>

					<description><![CDATA[Bookmarked Accessible faux-nested interactive controls &#8211; Piccalilli. Andy Bell propose une solution élégante pour contourner l&#8217;interdiction HTML d&#8217;imbriquer des éléments interactifs : créer une fausse zone cliquable qui reste accessible. L&#8217;idée, c&#8217;est d&#8217;utiliser un pseudo-élément positionné en absolu qui couvre toute la card, tout en gardant les vrais boutons ou liens interactifs au-dessus via&#160;z-index. Ça [&#8230;]]]></description>
										<content:encoded><![CDATA[<div class='e-content'>
<div class="wp-block-indieblocks-bookmark"><div class="u-bookmark-of h-cite"><p><i>Bookmarked <a class="u-url p-name" href="https://piccalil.li/blog/accessible-faux-nested-interactive-controls/">Accessible faux-nested interactive controls &#8211; Piccalilli</a>.</i></p></div></div>



<p>Andy Bell propose une solution élégante pour contourner l&rsquo;interdiction HTML d&rsquo;imbriquer des éléments interactifs : créer une fausse zone cliquable qui reste accessible. L&rsquo;idée, c&rsquo;est d&rsquo;utiliser un pseudo-élément positionné en absolu qui couvre toute la card, tout en gardant les vrais boutons ou liens interactifs au-dessus via&nbsp;<code>z-index</code>. Ça évite le balisage dégueu avec des&nbsp;<code>&lt;div&gt;</code>&nbsp;cliquables partout.</p>



<p>Ce qui me plaît, c&rsquo;est que ça reste propre côté DOM et que l&rsquo;accessibilité n&rsquo;est pas sacrifiée sur l&rsquo;autel du design. Pas de&nbsp;<code>role="button"</code>&nbsp;sur des trucs qui n&rsquo;en sont pas, pas de JavaScript tarabiscoté pour gérer les clics. Juste du CSS malin et un peu de réflexion sur la hiérarchie des interactions.</p>



<p>Bon, faut quand même faire gaffe : si tu multiplies les zones cliquables imbriquées, ça peut vite devenir le bordel pour l&rsquo;utilisateur. Mais pour une card avec un lien principal et quelques actions secondaires, c&rsquo;est nickel. Andy donne même un exemple concret avec du code commenté, ce qui aide à bien piger la mécanique. Bref, une technique à garder dans un coin.</p>
</div>]]></content:encoded>
					
					<wfw:commentRss>https://chierchia.fr/2026/01/accessible-faux-nested-interactive-controls/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
					<title>Date is out and Temporal is in</title>
					<link>https://chierchia.fr/2026/01/date-is-out-and-temporal-is-in/</link>
					<comments>https://chierchia.fr/2026/01/date-is-out-and-temporal-is-in/#comments</comments>
		
		<dc:creator><![CDATA[<span class='p-author h-card'>Ange Chierchia</span>]]></dc:creator>
		<pubDate>Fri, 09 Jan 2026 06:30:00 +0000</pubDate>
				<category><![CDATA[Bookmarks]]></category>
		<category><![CDATA[Notes]]></category>
		<guid isPermaLink="false">https://chierchia.fr/?p=7809</guid>

					<description><![CDATA[Bookmarked Date is out, Temporal is in &#8211; Piccalilli. On a tous galéré avec `Date()` en JavaScript. Les fuseaux horaires qui décalent tout, les calculs foireux, les librairies tierces pour compenser. Bref, un bordel. Temporal arrive enfin pour régler ça. Une API moderne, pensée dès le départ pour gérer proprement les dates, heures, durées et [&#8230;]]]></description>
										<content:encoded><![CDATA[<div class='e-content'>
<div class="wp-block-indieblocks-bookmark"><div class="u-bookmark-of h-cite"><p><i>Bookmarked <a class="u-url p-name" href="https://piccalil.li/blog/date-is-out-and-temporal-is-in/">Date is out, Temporal is in &#8211; Piccalilli</a>.</i></p></div></div>



<p>On a tous galéré avec `Date()` en JavaScript. Les fuseaux horaires qui décalent tout, les calculs foireux, les librairies tierces pour compenser. Bref, un bordel.</p>



<p>Temporal arrive enfin pour régler ça. Une API moderne, pensée dès le départ pour gérer proprement les dates, heures, durées et fuseaux. Fini de bidouiller avec des +86400000 pour ajouter un jour, fini les bugs silencieux quand on change de timezone.</p>



<p>Ce qui me plaît surtout, c&rsquo;est la clarté : `Temporal.PlainDate`, `Temporal.ZonedDateTime`, `Temporal.Duration`&#8230; Chaque type a son rôle, pas d&rsquo;ambiguïté. Tu sais ce que tu manipules. Et les méthodes sont intuitives, cohérentes.</p>



<p>Le support navigateur progresse doucement, mais ça vaut le coup de s&rsquo;y intéresser maintenant. Parce que franchement, quand ça sera là partout, on se demandera comment on a pu vivre avec l&rsquo;ancien système.</p>
</div>]]></content:encoded>
					
					<wfw:commentRss>https://chierchia.fr/2026/01/date-is-out-and-temporal-is-in/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
					<title>Web development tip: disable pointer events on link images</title>
					<link>https://chierchia.fr/2025/12/web-development-tip-disable-pointer-events-on-link-images/</link>
					<comments>https://chierchia.fr/2025/12/web-development-tip-disable-pointer-events-on-link-images/#comments</comments>
		
		<dc:creator><![CDATA[<span class='p-author h-card'>Ange Chierchia</span>]]></dc:creator>
		<pubDate>Tue, 02 Dec 2025 05:58:00 +0000</pubDate>
				<category><![CDATA[Bookmarks]]></category>
		<category><![CDATA[Notes]]></category>
		<guid isPermaLink="false">https://chierchia.fr/?p=7513</guid>

					<description><![CDATA[Bookmarked https://lapcatsoftware.com/articles/2025/11/2.html. Quand j’ai lu le billet du gars de LapcatSoftware, j’ai eu ce petit frisson “yeah, ça, ça a du sens”. Il explique qu’il vaut mieux désactiver les pointer-events sur les images utilisées comme liens — notamment les badges “Download on the App Store”. Sur iOS, la feature « Live Text » crée un [&#8230;]]]></description>
										<content:encoded><![CDATA[<div class='e-content'>
<div class="wp-block-indieblocks-bookmark"><div class="u-bookmark-of h-cite"><p><i>Bookmarked <a class="u-url" href="https://lapcatsoftware.com/articles/2025/11/2.html">https://lapcatsoftware.com/articles/2025/11/2.html</a>.</i></p></div></div>



<p class="p1">Quand j’ai lu le billet du gars de LapcatSoftware, j’ai eu ce petit frisson “yeah, ça, ça a du sens”.</p>



<p class="p1">Il explique qu’il vaut mieux désactiver les pointer-events sur les images utilisées comme liens — notamment les badges “Download on the App Store”. Sur iOS, la feature « Live Text » crée un bordel : quand tu tapes longuement sur l’image, tu tombes sur… la sélection de texte, pas le lien. Résultat, l’UX est foirée pour les utilisateurs de Safari iOS.&nbsp;</p>



<p class="p1">Alors le taf, c’est simple : tu rends l’image non-clickable (pointer-events: none;) et tu t’assures que l’anchor parent a un display: inline-block — comme ça le lien est cliquable sur toute la surface de l’image, comme un lien normal.&nbsp;</p>



<p class="p1">Moi ce que j’aime, c’est ce genre de petit coup de polish à la dev front-end : ça prend 2 secondes, mais ça améliore l’expérience utilisateur — surtout sur mobile. Si t’es comme moi, “pixel perfect” ça te parle. Le genre de détail qu’on zappe souvent, mais qui compte.</p>
</div>]]></content:encoded>
					
					<wfw:commentRss>https://chierchia.fr/2025/12/web-development-tip-disable-pointer-events-on-link-images/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
					<title>Programming principles for self-taught front-end developers</title>
					<link>https://chierchia.fr/2025/11/programming-principles-for-self-taught-front-end-developers/</link>
					<comments>https://chierchia.fr/2025/11/programming-principles-for-self-taught-front-end-developers/#respond</comments>
		
		<dc:creator><![CDATA[<span class='p-author h-card'>Ange Chierchia</span>]]></dc:creator>
		<pubDate>Thu, 20 Nov 2025 05:48:00 +0000</pubDate>
				<category><![CDATA[Bookmarks]]></category>
		<category><![CDATA[Notes]]></category>
		<guid isPermaLink="false">https://chierchia.fr/?p=7483</guid>

					<description><![CDATA[Bookmarked Programming principles for self taught front-end developers &#8211; Piccalilli. Andy Bell balance des principes solides pour les autodidactes du front. J&#8217;aime bien son approche parce qu&#8217;elle casse l&#8217;idée qu&#8217;il faut tout savoir pour être légitime. Il insiste sur la simplicité d&#8217;abord, les fondamentaux avant les frameworks, et surtout : résoudre des vrais problèmes plutôt [&#8230;]]]></description>
										<content:encoded><![CDATA[<div class='e-content'>
<div class="wp-block-indieblocks-bookmark"><div class="u-bookmark-of h-cite"><p><i>Bookmarked <a class="u-url p-name" href="https://piccalil.li/blog/programming-principles-for-self-taught-front-end-developers/">Programming principles for self taught front-end developers &#8211; Piccalilli</a>.</i></p></div></div>



<p>Andy Bell balance des principes solides pour les autodidactes du front. J&rsquo;aime bien son approche parce qu&rsquo;elle casse l&rsquo;idée qu&rsquo;il faut tout savoir pour être légitime. Il insiste sur la simplicité d&rsquo;abord, les fondamentaux avant les frameworks, et surtout : résoudre des vrais problèmes plutôt que d&rsquo;accumuler des technos sur son CV.</p>



<p>Ce qui me parle le plus, c&rsquo;est son conseil de pas se laisser impressionner par la complexité des autres. On a tous tendance à croire que les devs « officiels » maîtrisent tout sur le bout des doigts, alors qu&rsquo;en vrai, personne ne sait tout. L&rsquo;impostor syndrome, ça touche tout le monde, diplômé ou pas.</p>



<p>Il rappelle aussi qu&rsquo;être autodidacte, c&rsquo;est souvent avoir développé une capacité d&rsquo;apprentissage autonome qui vaut de l&rsquo;or. Ça forge une débrouillardise que les cursus classiques n&rsquo;offrent pas toujours. Bref, un article qui fait du bien à l&rsquo;ego et qui recentre sur l&rsquo;essentiel : construire des trucs qui marchent, proprement.</p>



<p></p>
</div>]]></content:encoded>
					
					<wfw:commentRss>https://chierchia.fr/2025/11/programming-principles-for-self-taught-front-end-developers/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
