<?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: Francisco Hernandez</title>
    <description>The latest articles on DEV Community by Francisco Hernandez (@franciscoh017).</description>
    <link>https://dev.to/franciscoh017</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F829381%2F602ef2ec-b27d-400a-9841-64742a4afebc.png</url>
      <title>DEV Community: Francisco Hernandez</title>
      <link>https://dev.to/franciscoh017</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/franciscoh017"/>
    <language>en</language>
    <item>
      <title>Learning to Fit the Room: A Skill I Built to Practice Concision</title>
      <dc:creator>Francisco Hernandez</dc:creator>
      <pubDate>Mon, 12 Oct 2026 01:31:31 +0000</pubDate>
      <link>https://dev.to/franciscoh017/learning-to-fit-the-room-a-skill-i-built-to-practice-concision-3dem</link>
      <guid>https://dev.to/franciscoh017/learning-to-fit-the-room-a-skill-i-built-to-practice-concision-3dem</guid>
      <description>&lt;p&gt;&lt;em&gt;How working on my own communication led me to build Concision, a portable skill for AI agents.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I’ve received the same kind of feedback more than once at work: I can go too far into detail when I explain something.&lt;/p&gt;

&lt;p&gt;I care deeply about the work. When I’ve spent time figuring something out, I want to share the whole story: the problem, what we tried, what we learned, and why we made certain decisions. Sometimes that’s exactly what a conversation needs. Sometimes it’s more than the person asked for.&lt;/p&gt;

&lt;p&gt;I work closely with engineers, product, and management. The same piece of work can turn into three very different conversations. An engineer might want to understand the trade-offs. Someone from product might be thinking about the people using the feature. Management may need to know where we stand and whether a decision is needed. Knowing the work well doesn’t automatically mean I’m explaining it in the way each person needs.&lt;/p&gt;

&lt;p&gt;Spanish is my first language, and much of my professional communication happens in English. That adds another layer, but the challenge isn’t simply finding the right words. It’s choosing which details matter in the moment.&lt;/p&gt;

&lt;p&gt;I wanted to get better at that throughout my day. That’s where Concision started.&lt;/p&gt;

&lt;h2&gt;
  
  
  A way to practice
&lt;/h2&gt;

&lt;p&gt;“Be more concise” is advice I understand. Applying it consistently is harder.&lt;/p&gt;

&lt;p&gt;It’s easy to ask an AI assistant to shorten a message. But shorter isn’t always clearer. A Teams update might need a quick conclusion and a next step. A technical document needs enough detail for someone else to follow the work. A spoken explanation needs to sound like something I’d actually say, not a paragraph lifted from a report.&lt;/p&gt;

&lt;p&gt;I wanted a skill that helped me ask: Who am I speaking to? What do they need to understand? What can I leave out without changing the meaning?&lt;/p&gt;

&lt;p&gt;Those are choices I want to get better at making myself. Using the same principles with an AI assistant gives me a way to practice them consistently.&lt;/p&gt;

&lt;h2&gt;
  
  
  Finding a structure for the idea
&lt;/h2&gt;

&lt;p&gt;As I explored this, I came across Harsha Perera’s article, &lt;a href="https://medium.com/@harshacoach/the-art-of-being-concise-3706c96f383f" rel="noopener noreferrer"&gt;The Art of Being Concise&lt;/a&gt;. It describes four connected elements: the real question, the audience, curiosity, and knowing where you stand.&lt;/p&gt;

&lt;p&gt;That gave me a framework for something I’d been trying to improve personally. Being knowledgeable or passionate about a subject doesn’t automatically mean I’m communicating it in the way someone else needs.&lt;/p&gt;

&lt;p&gt;I used Perera’s ideas as inspiration for Concision, a portable SKILL.md for AI agents. It can help edit a message, explain a topic, offer feedback when I ask for it, or work through a draft with me. Underneath those different uses is the same principle: understand the purpose and the person first, then decide how much to say.&lt;/p&gt;

&lt;p&gt;The value for me is consistency. I want that principle to carry through a meeting, a Teams update, a piece of documentation, or whatever I’m working on next.&lt;/p&gt;

&lt;h2&gt;
  
  
  One story, three conversations
&lt;/h2&gt;

&lt;p&gt;To show what I mean without sharing actual work information, I made up a small performance pilot. A support application has a slow ticket search, and engineering is testing a cache. In one controlled staging comparison, p95 search latency drops from 820 to 510 milliseconds, while the error rate stays at 0.2%. Here, p95 is the response-time threshold within which roughly 95% of searches finish.&lt;/p&gt;

&lt;p&gt;Security and QA reviews are still pending. Nothing has been approved for production.&lt;/p&gt;

&lt;p&gt;Here’s how I’d shape that same information for three conversations using Concision’s principles.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;To engineering, in Teams:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Quick update on the search cache: in our staging test, p95 latency dropped from 820 ms to 510 ms with the cache enabled. Errors stayed at 0.2%.&lt;/p&gt;

&lt;p&gt;It’s a good sign, but Security still needs to check tenant isolation and access to cached results, and QA has permission changes and stale results to cover. Nothing’s approved for production. Engineering will send the design to Security on Tuesday.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;To product, in a conversation:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;We’ve been looking at ways to make ticket search faster for support staff. In one staging test, p95 response time went from 820 to 510 milliseconds, and errors stayed at 0.2%. We haven’t seen what that means for real users yet, though. We still need the security and QA checks before we can decide whether a limited rollout test makes sense.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;To management, in an email:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Hi,&lt;/p&gt;

&lt;p&gt;We saw a promising result from the search-cache pilot in staging: p95 latency went from 820 ms to 510 ms in one controlled test, with errors holding at 0.2%. Security and QA reviews are still open, and we need more representative performance testing before making a rollout recommendation.&lt;/p&gt;

&lt;p&gt;We’re not asking for production approval yet. Engineering will send the design to Security on October 13, and we’ll come back with a recommendation after the remaining checks.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;These are illustrative drafts from fictional information. The numbers and limitations haven’t changed. What changes is the conversation: engineering needs the open checks and handoff; product needs to connect the technical result to the user problem without assuming an impact we haven’t measured; management needs to know whether a decision is required.&lt;/p&gt;

&lt;p&gt;That’s what I want Concision to help me do: notice why one detail belongs in a message and another doesn’t. Over time, I want to make those calls more naturally myself.&lt;/p&gt;

&lt;p&gt;I want AI to support that practice while I remain responsible for what I say.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I’m sharing it
&lt;/h2&gt;

&lt;p&gt;I want to use Concision in my everyday work. And I know I’m not the only person moving between engineering, product, and management, trying to tell the same story in a way that makes sense to everyone involved.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/franciscoh017/concision" rel="noopener noreferrer"&gt;Concision is now available on GitHub&lt;/a&gt; under the MIT license, with installation instructions and examples other people can try or adapt. You can install it through the Skills CLI:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx skills add franciscoh017/concision
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The README covers installation for different agents and manual setup. The skill itself has no required APIs, connectors, or external skills.&lt;/p&gt;

&lt;p&gt;It’s a work in progress, and I plan to keep improving it as I use it. I’ve been using its principles while shaping this article, too.&lt;/p&gt;

&lt;p&gt;I still get excited about the work, and I still want to share what I’ve learned. I’m learning to give people the details they need, when they need them.&lt;/p&gt;

&lt;p&gt;To me, concision isn’t saying less. It’s knowing what matters and saying enough for it to land.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>concision</category>
      <category>writing</category>
      <category>documentation</category>
    </item>
    <item>
      <title>Understanding CSS Selectors</title>
      <dc:creator>Francisco Hernandez</dc:creator>
      <pubDate>Sun, 13 Mar 2022 01:55:43 +0000</pubDate>
      <link>https://dev.to/franciscoh017/understanding-css-selectors-10bn</link>
      <guid>https://dev.to/franciscoh017/understanding-css-selectors-10bn</guid>
      <description>&lt;p&gt;Recently, I was chatting and mentoring a colleague, a Frontend programmer who consults me frequently whenever he is working with user interfaces, where some CSS is required. As long as I've known him this has always been a frequent query throughout our career, and during our last few interactions, I decided to pay a little more attention to the reasons why he wasn't getting the rules he wanted to apply to elements on the page to work for him.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwjkpb8n6wcx47cts530m.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwjkpb8n6wcx47cts530m.gif" alt="Frustrated Programming GIF" width="640" height="480"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;After several questions and answers, I realized that, despite being a very competent Frontend programmer, handling multiple JavaScript Frameworks such as Vue.js and React.js, and being able to use CSS libraries such as Bootstrap, Bulma and TailwindCSS, he seemed to possess a certain lack of knowledge of the basics of CSS, even though he claimed to know about it.&lt;/p&gt;

&lt;p&gt;As I contemplated this, and began to include comments with lessons and information that my colleague could understand and see as new learning, his inquiries decreased and his comments of victory in being able to do it on his own began to become more frequent.&lt;/p&gt;

&lt;p&gt;So, I have decided to make this &lt;strong&gt;brief guide&lt;/strong&gt; for all those who, for one reason or another, feel identified with my colleague's situation, or simply want to learn and/or refresh their CSS knowledge.&lt;/p&gt;




&lt;h2&gt;
  
  
  What are CSS selectors?
&lt;/h2&gt;

&lt;p&gt;If you've ever worked with Javascript or CSS, chances are you've come across one of these in the past. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A CSS selector is the initial part of a CSS rule. It is a pattern of elements or other terms that lets the browser know which HTML elements should be selected to apply the CSS properties found in the rule applied to them. &lt;br&gt;
&lt;em&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Selectors" rel="noopener noreferrer"&gt;MDN Web Docs - CSS Selectors&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo3htw2so9zf9q8um1zl8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo3htw2so9zf9q8um1zl8.png" alt="Anatomy of a CSS Declaration by MDN Web Docs" width="377" height="213"&gt;&lt;/a&gt;Anatomy of a CSS Declaration by MDN Web Docs&lt;/p&gt;

&lt;p&gt;That's right, as the image above describes, selectors are the first part of a CSS rule, and will always precede the opening braces of a CSS rule.&lt;/p&gt;

&lt;h2&gt;
  
  
  Types of selectors
&lt;/h2&gt;

&lt;p&gt;There are different groups of CSS selectors, and knowing which type of CSS selector you need in each situation will help you to always select the HTML elements you require in the right way.&lt;/p&gt;

&lt;h3&gt;
  
  
  Universal Selector
&lt;/h3&gt;

&lt;p&gt;The CSS universal selector &lt;code&gt;"*"&lt;/code&gt; matches elements of any type. It selects everything in the document (or inside the parent element if it is being chained together with another element and a descendant combinator).&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="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Type, class, and ID selectors
&lt;/h3&gt;

&lt;p&gt;This group includes selectors that select an HTML element such as a &lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt;:&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="nt"&gt;p&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Also, it includes selectors that select a &lt;code&gt;class&lt;/code&gt;:&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;.card&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or an ID:&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="nf"&gt;#login-modal&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Attribute selectors
&lt;/h3&gt;

&lt;p&gt;They provide various ways to select elements based on the presence of a certain attribute or an attribute with a certain value.&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="nt"&gt;a&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nt"&gt;target&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nt"&gt;target&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;"_blank"&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Pseudo-classes and pseudo-elements
&lt;/h3&gt;

&lt;p&gt;This group of selectors includes pseudo-classes, which apply styles to certain states of an element:&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="nt"&gt;a&lt;/span&gt;&lt;span class="nd"&gt;:hover&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="nd"&gt;:visited&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="nd"&gt;:disabled&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;For the set of supported pseudo-classes, see the full specification on &lt;a href="https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements#pseudo-classes" rel="noopener noreferrer"&gt;MDN Web Docs&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And pseudo-elements, which select a specific part of an element, rather than the element itself.&lt;/p&gt;

&lt;p&gt;For example, if we wanted to select the first line of a p element, we could use the &lt;code&gt;::first-line&lt;/code&gt; pseudo-element, which would always select the first line within a text element:&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="nt"&gt;p&lt;/span&gt;&lt;span class="nd"&gt;::first-line&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or if we wanted to apply a rule to the marker or number of an item &lt;code&gt;&amp;lt;li&amp;gt;&lt;/code&gt; in a list, we could use the &lt;code&gt;::marker&lt;/code&gt; pseudo-element to accomplish this task:&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="nt"&gt;li&lt;/span&gt;&lt;span class="nd"&gt;::marker&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;For the set of supported pseudo-elements, see the full specification on &lt;a href="https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements#pseudo-classes" rel="noopener noreferrer"&gt;MDN Web Docs&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Combinators
&lt;/h3&gt;

&lt;p&gt;Finally, there are the combinators which, as the name suggests, are used to combine other selectors in order to precisely select elements in the document.&lt;/p&gt;

&lt;h4&gt;
  
  
  Descendant Combinator
&lt;/h4&gt;

&lt;p&gt;This is represented as a space &lt;code&gt;“ “&lt;/code&gt;, and combines two selectors, where those elements match where the second selector matches an element that has an ancestor (parent, parent's parent, parent's parent's parent, etc.) that matches with the first selector.&lt;br&gt;
It is similar to the Child Combinator, but has the peculiarity that it does not require a strictly parent-child relationship for the declared rule to be applied.&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="nt"&gt;selector1&lt;/span&gt; &lt;span class="nt"&gt;selector2&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Child Combinator
&lt;/h4&gt;

&lt;p&gt;Presented as a greater than symbol &lt;code&gt;“&amp;gt;”&lt;/code&gt; that is placed between two selectors. Matches only those elements where the second selector matches an element that is a direct child of the element that matches the first selector.&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="nt"&gt;selector1&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;selector2&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Adjacent Sibling Combinator
&lt;/h4&gt;

&lt;p&gt;Presented as a plus sign &lt;code&gt;“+”&lt;/code&gt; that is placed between two selectors. It matches only those elements matched by the second selector that are the next sibling element of the first selector.&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="nt"&gt;selector1&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nt"&gt;selector2&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  General Sibling Combinator
&lt;/h4&gt;

&lt;p&gt;The general sibling combinator &lt;code&gt;“~”&lt;/code&gt; separates two selectors and matches all iterations of the second element, that are following the first element (though not necessarily immediately), and are children of the same parent element.&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="nt"&gt;selector1&lt;/span&gt; &lt;span class="o"&gt;~&lt;/span&gt; &lt;span class="nt"&gt;selector2&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Analyzing my colleage's situation, and evaluating the occasions where other colleagues have resorted to my CSS skills to meet some requirement in the past, I can say that many programmers actually claim to know CSS, but very few really master concepts beyond of the &lt;code&gt;type, class, id, and descendant selectors&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;After learning, practicing, and putting this selector to good use, writing CSS rulesets will be a piece of cake!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F92ofzudvgbefcon155to.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F92ofzudvgbefcon155to.gif" alt="piece of cake, huh?" width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Finally, I leave this &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_selectors" rel="noopener noreferrer"&gt;CSS selectors cheat sheet&lt;/a&gt; that links to the MDN Docs reference of each CSS selector.&lt;/p&gt;

</description>
      <category>css</category>
      <category>beginners</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
