<?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: Emmanuel Cartelli</title>
    <description>The latest articles on DEV Community by Emmanuel Cartelli (@fallingup68).</description>
    <link>https://dev.to/fallingup68</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%2F662486%2F9f6e4fb4-2ca4-47ba-9455-f7cffdd69b2e.png</url>
      <title>DEV Community: Emmanuel Cartelli</title>
      <link>https://dev.to/fallingup68</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/fallingup68"/>
    <language>en</language>
    <item>
      <title>Extracting Tailwind’s Color Palette Without Tailwind</title>
      <dc:creator>Emmanuel Cartelli</dc:creator>
      <pubDate>Sat, 12 Apr 2025 02:56:19 +0000</pubDate>
      <link>https://dev.to/fallingup68/extracting-tailwinds-color-palette-without-tailwind-4kp8</link>
      <guid>https://dev.to/fallingup68/extracting-tailwinds-color-palette-without-tailwind-4kp8</guid>
      <description>&lt;p&gt;As a solo developer juggling many roles (frontend, backend, design, logic, performance...), I often find myself building projects that are &lt;strong&gt;not&lt;/strong&gt; SPAs. Static websites, CMS-based pages, or SSR setups where the HTML is generated server-side — and where utility-first frameworks like Tailwind can become more of a burden than a help.&lt;/p&gt;

&lt;p&gt;But there’s one thing I’ve always loved about Tailwind:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💎 The color palette is just too good to pass up.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From the carefully tuned shades of &lt;code&gt;blue&lt;/code&gt;, &lt;code&gt;zinc&lt;/code&gt;, or &lt;code&gt;amber&lt;/code&gt;, to the new &lt;code&gt;OKLCH&lt;/code&gt; direction in v4 — Tailwind’s color system is &lt;strong&gt;well-designed, modern, and super versatile&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Yet I rarely use Tailwind itself, because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I prefer &lt;strong&gt;SCSS&lt;/strong&gt; and semantic class names&lt;/li&gt;
&lt;li&gt;I like having &lt;strong&gt;multiple Vite entry points&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;I have &lt;strong&gt;ADHD&lt;/strong&gt;, and large blocks of utility classes in HTML become overwhelming when I need to refactor or maintain style over time&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What I needed
&lt;/h2&gt;

&lt;p&gt;So I asked myself:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"What if I could just extract the Tailwind colors I love into formats I actually use?"&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;What I wanted was:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tailwind’s full color palette&lt;/li&gt;
&lt;li&gt;In &lt;strong&gt;HEX&lt;/strong&gt;, &lt;strong&gt;RGBA&lt;/strong&gt;, and &lt;strong&gt;OKLCH&lt;/strong&gt; formats&lt;/li&gt;
&lt;li&gt;Exported as clean variables:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;--blue-500&lt;/code&gt; (CSS)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;$blue-500&lt;/code&gt; (SCSS)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;@blue-500&lt;/code&gt; (LESS)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;blue-500 = ...&lt;/code&gt; (Stylus)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;With a simple CLI I could run on demand&lt;/li&gt;

&lt;li&gt;And the ability to only export &lt;strong&gt;the formats I need&lt;/strong&gt; (not all at once)&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;So I built this tool:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://www.npmjs.com/package/tailwind-colors-vars" rel="noopener noreferrer"&gt;&lt;code&gt;tailwind-colors-vars&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;tailwind-colors-vars&lt;/code&gt; is a CLI tool that extracts the default Tailwind colors and converts them into variable files for &lt;strong&gt;CSS&lt;/strong&gt;, &lt;strong&gt;SCSS&lt;/strong&gt;, &lt;strong&gt;LESS&lt;/strong&gt;, and &lt;strong&gt;Stylus&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;You can choose:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Format: &lt;code&gt;hex&lt;/code&gt;, &lt;code&gt;rgba&lt;/code&gt;, or &lt;code&gt;oklch&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Output style: &lt;code&gt;css&lt;/code&gt;, &lt;code&gt;scss&lt;/code&gt;, &lt;code&gt;less&lt;/code&gt;, &lt;code&gt;styl&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Flat output or grouped folders&lt;/li&gt;
&lt;li&gt;JSON export, or console print&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  💻 Installation
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install &lt;/span&gt;tailwind-colors-vars
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🚀 Usage
&lt;/h2&gt;

&lt;p&gt;Generate all formats in all styles:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;tailwind-colors &lt;span class="nt"&gt;-f&lt;/span&gt; all &lt;span class="nt"&gt;-e&lt;/span&gt; all
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Export only HEX in SCSS:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;tailwind-colors &lt;span class="nt"&gt;-f&lt;/span&gt; hex &lt;span class="nt"&gt;-e&lt;/span&gt; scss
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output to a custom directory:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;tailwind-colors &lt;span class="nt"&gt;-f&lt;/span&gt; rgba &lt;span class="nt"&gt;-e&lt;/span&gt; css &lt;span class="nt"&gt;-o&lt;/span&gt; theme/colors
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Export only OKLCH to JSON:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;tailwind-colors &lt;span class="nt"&gt;-f&lt;/span&gt; oklch &lt;span class="nt"&gt;--json-out&lt;/span&gt; colors.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Print to console without writing to files:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;tailwind-colors &lt;span class="nt"&gt;-f&lt;/span&gt; hex &lt;span class="nt"&gt;-e&lt;/span&gt; css &lt;span class="nt"&gt;--print&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Export to a flat folder (no &lt;code&gt;/scss/&lt;/code&gt;, &lt;code&gt;/less/&lt;/code&gt;, etc.):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;tailwind-colors &lt;span class="nt"&gt;-f&lt;/span&gt; hex &lt;span class="nt"&gt;-e&lt;/span&gt; scss &lt;span class="nt"&gt;--flat&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Output Structure
&lt;/h2&gt;

&lt;p&gt;Default (nested):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dist/
├── css/
│   └── colors-oklch.css
├── scss/
│   └── colors-hex.scss
...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With &lt;code&gt;--flat&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dist/
├── colors-oklch.css
├── colors-hex.scss
...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Why this helped &lt;em&gt;me&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;As someone who builds and maintains lots of small tools and sites (often alone), I really needed a way to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Get a &lt;strong&gt;solid, modern color system&lt;/strong&gt; without rebuilding one from scratch&lt;/li&gt;
&lt;li&gt;Avoid Tailwind’s mental load when I don’t need it&lt;/li&gt;
&lt;li&gt;Still get the benefits of Tailwind’s thoughtful palette in my own setup&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This CLI gives me a quick way to &lt;strong&gt;drop Tailwind’s palette&lt;/strong&gt; into any project — SCSS theme, WordPress, Pug, Liquid, Astro, you name it.&lt;/p&gt;

&lt;p&gt;It started as a personal productivity hack. But it might help you too.&lt;/p&gt;




&lt;h2&gt;
  
  
  Example: CSS Output (HEX)
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nd"&gt;:root&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="py"&gt;--blue-50&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#eff6ff&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;--blue-100&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#dbeafe&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;--blue-200&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#bfdbfe&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="err"&gt;...&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  🧪 Example: SCSS Output (OKLCH)
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight scss"&gt;&lt;code&gt;&lt;span class="nv"&gt;$zinc-950&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;oklch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="mi"&gt;.1790&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="mi"&gt;.0059&lt;/span&gt; &lt;span class="m"&gt;281&lt;/span&gt;&lt;span class="mi"&gt;.68&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nv"&gt;$blue-500&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;oklch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="mi"&gt;.6278&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="mi"&gt;.1825&lt;/span&gt; &lt;span class="m"&gt;264&lt;/span&gt;&lt;span class="mi"&gt;.92&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nc"&gt;...&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  GitHub &amp;amp; npm
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.npmjs.com/package/tailwind-colors-vars" rel="noopener noreferrer"&gt;npm package&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/15fathoms/tailwind-colors-vars" rel="noopener noreferrer"&gt;GitHub repo&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Happy theming!&lt;/p&gt;

</description>
      <category>tailwindcss</category>
      <category>css</category>
      <category>opensource</category>
      <category>cli</category>
    </item>
    <item>
      <title>APPRENDRE À UTILISER GRID</title>
      <dc:creator>Emmanuel Cartelli</dc:creator>
      <pubDate>Tue, 10 Aug 2021 06:39:29 +0000</pubDate>
      <link>https://dev.to/fallingup68/apprendre-a-utiliser-grid-4c8n</link>
      <guid>https://dev.to/fallingup68/apprendre-a-utiliser-grid-4c8n</guid>
      <description>&lt;h2&gt;
  
  
  Prérequis
&lt;/h2&gt;

&lt;p&gt;Vous n'avez pas besoin de prérequis particulier si ce n'est la connaissance des balises html et quelques notions de css.&lt;/p&gt;

&lt;h2&gt;
  
  
  0. Introduction
&lt;/h2&gt;

&lt;p&gt;Utiliser "Grid" en CSS est une alternative à Flexbox qui peut s'avérer très utile pour construire une section quadrillée ou même un page complète.&lt;/p&gt;

&lt;p&gt;Je trouve, à titre personnel que "Grid", n'est que trop peu utilisé et c'est bien dommage car flex ne semble pas toujours logique en fonction de la tâche à effectuer. &lt;/p&gt;

&lt;p&gt;Dans certains cas (que nous allons développer), vous verrez à quel point "Grid" peut se montrer très utile et encore plus quand il est combiné avec flex ! Sortez votre éditeur on est parti !&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Fabriquer sa première grille
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1.1 Le conteneur de grille
&lt;/h3&gt;

&lt;p&gt;Dans votre éditeur, nous allons créer un premier boitier qui va contenir notre grille. Pour cet exemple, j'utiliserais la classe "grid-container". C'est simple, c'est clair et comme ca, on s'y retrouvera.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div class="grid-container"&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ce boitier représente notre grille dans laquelle nous allons placer nos éléments. Pour ce faire, nous avons besoin, par le biais du CSS, de lui dire qu'il doit se comporter comme une grille.&lt;/p&gt;

&lt;p&gt;Pour cela, il nous faut utiliser la propriété CSS "display", comme ceci :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.grid-container {
  display: grid;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Voilà, votre boitier sait qu'il doit afficher les éléments qu'il contient dans une grille.&lt;/p&gt;

&lt;p&gt;Et là vous allez me dire :&lt;br&gt;
"Oui mais... Il n'y a rien dedans...".&lt;br&gt;
Et vous avez parfaitement raison ! Nous allons donc remédier à ce problème sur le champ !&lt;/p&gt;
&lt;h3&gt;
  
  
  1.2 Le contenu de la grille
&lt;/h3&gt;

&lt;p&gt;Allez on ressort l'éditeur et on continue. Nous allons ajouter 2 boitiers dans notre grille.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div class="grid-container"&amp;gt;
  &amp;lt;div class="first element"&amp;gt;&amp;lt;/div&amp;gt;
  &amp;lt;div class="second element"&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Super, on a du contenu dans notre grille ! Mais on ne le voit pas encore... Pas de panique, ca arrive.&lt;br&gt;
Nous avons dit à notre boitier qui contient la grille qu'il devait s'affichait comme tel, mais nous ne lui avons pas précisé combien de ligne ou même de colonnes il devait afficher.&lt;br&gt;
Eh oui ! Il faut lui préciser ! &lt;/p&gt;
&lt;h3&gt;
  
  
  1.3 grid-template-columns
&lt;/h3&gt;

&lt;p&gt;Dans notre cas précis, je veux que ma grille se compose de deux colonnes. Je souhaite aussi que la première colonne prenne 70% de l'espace disponible et la seconde 30%. &lt;/p&gt;

&lt;p&gt;Pour cela rien de plus simple. Je retourne dans mon CSS, et je vais éditer encore une fois mon ".grid-container" et je lui ajoute la propriété suivante :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.grid-container {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Rajoutez aussi le code suivant pour afficher le rendu de votre grille :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/* a déclarer tout au début de votre css*/

html, body, .grid-container { height: 100%; margin: 0; }


/*Ici le "&amp;gt;" va venir pointer un élement enfant. 
Tandis que le "*" veut simplement dire "TOUS". 
Pour faire simple, j'ai ciblé tous les éléments enfants 
du conteneur ".grid-container;"*/

.grid-container &amp;gt; * {
  border: 1px solid red;
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ca y est ! nous voyons enfin un résultat concret ! &lt;br&gt;
Mais bon, concrètement, ca veut dire quoi cette ligne de code ?&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  grid-template-columns: repeat(2, 1fr);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Eh bien c'est très simple. cette propriété va nous permettre de créer des colonnes ! &lt;/p&gt;

&lt;p&gt;"Mais ca veut dire quoi "repeat(2, 1fr);" ?"&lt;/p&gt;

&lt;p&gt;Calme toi Ghislaine, j'y viens.&lt;/p&gt;

&lt;p&gt;Ca veut simplement dire je créé 1 colonne d'une taille de "1fr", et je répète l'opération deux fois. Ce qui me donne deux colonnes.&lt;br&gt;
Cette unité, fr, représente une fraction de l'espace disponible dans le conteneur de la grille.&lt;/p&gt;

&lt;p&gt;Il y a une autre façon de l'écrire, un peu plus embêtante selon moi, mais qui fait très bien l'affaire :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;grid-template-columns: 1fr 1fr;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bon, voilà nous avons notre grille, mais je souhaitais qu'une de mes colonnes fasses 70% et l'autre 30%. &lt;br&gt;
Encore une fois, rien de plus simple :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.grid-container {
  display: grid;
  grid-template-columns: 70% 30%;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nous avons bien notre grille d'affichée, elle a les bonnes proportions, mais nous pouvons faire mieux !&lt;br&gt;
Si on utilise un système de fraction on peut simplifier notre grille. 70% et 30%, ca représente respectivement 2/3 et 1/3.&lt;br&gt;
Vous vous souvenez de l'unité "fr" qu'on a vu juste au dessus ?&lt;br&gt;
eh bien on va l'utiliser pour fractionner notre grille. Ce qui doit vous donner :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.grid-container {
  display: grid;
  grid-template-columns: 2fr 1fr; 
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Et voilà ! Vous avez créé votre première grille ! &lt;br&gt;
Nous allons pouvoir passer au chapitre suivant et voir jusqu'où on peut aller avec 'Grid'.&lt;/p&gt;

</description>
      <category>css</category>
      <category>grid</category>
      <category>html</category>
    </item>
  </channel>
</rss>
