<?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: Lucas Maidana</title>
    <description>The latest articles on DEV Community by Lucas Maidana (@lucasmmaidana).</description>
    <link>https://dev.to/lucasmmaidana</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%2F451401%2F43fa201e-386a-442b-8357-06ae61b493a9.jpeg</url>
      <title>DEV Community: Lucas Maidana</title>
      <link>https://dev.to/lucasmmaidana</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/lucasmmaidana"/>
    <language>en</language>
    <item>
      <title>Simplificá los estilos de tus botones y todas sus variantes con filtros CSS</title>
      <dc:creator>Lucas Maidana</dc:creator>
      <pubDate>Thu, 24 Mar 2022 22:06:41 +0000</pubDate>
      <link>https://dev.to/lucasmmaidana/simplifica-los-estilos-de-tus-botones-y-todas-sus-variantes-con-filtros-css-22i0</link>
      <guid>https://dev.to/lucasmmaidana/simplifica-los-estilos-de-tus-botones-y-todas-sus-variantes-con-filtros-css-22i0</guid>
      <description>&lt;p&gt;¡Hola! Les traigo un tip muy útil para cuando tienen que escribir los estilos de botones o links, y deben tener en cuenta los distintos estados o variantes de los mismos.&lt;br&gt;
Este es un ejemplo de dos tipos de botones y sus estados.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F92cfnzycwusxo8c8vaot.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F92cfnzycwusxo8c8vaot.png" alt="Tabla de botones que incluye las variantes default, hover, active, focus y disabled"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;El proceso lógico es empezar por los estilos del botón en su estado inicial y después desarrollar los estados mediante las &lt;a href="https://developer.mozilla.org/es/docs/Web/CSS/Pseudo-classes" rel="noopener noreferrer"&gt;pseudoclases&lt;/a&gt; correspondientes.&lt;br&gt;
Lo recomendable es que si estás replicando una interfaz de un wireframe o estás utilizando un UI kit, respetes todos los colores y estilos acordados. En cambio, si estás programando tu propia UI y sólamente querés que tus botones queden funcionales, te voy a mostrar cómo podés alivianarte mucho el trabajo. Obviamente también suponemos que no vas a usar una librería UI.&lt;/p&gt;

&lt;p&gt;Lo que lleva mucho tiempo al momento de estilizar los botones es buscar los colores correctos para los distintos estados, y se complica más aún si no tenés conocimientos sobre colores en UI. Y todavía más complicado si queremos tener botones con degradado porque tenemos que armar mínimo tres degradados que queden bien.&lt;br&gt;
Acá es cuando aparecen los &lt;a href="https://developer.mozilla.org/es/docs/Web/CSS/filter" rel="noopener noreferrer"&gt;filtros CSS&lt;/a&gt; 👐&lt;br&gt;
La idea es escribir sólo los estilos del estado por defecto, y obtener la apariencia de los demás estados mediante la propiedad filter, olvidándonos de todas las variaciones de los colores.&lt;br&gt;
En el siguiente ejemplo uso la función &lt;code&gt;brightness()&lt;/code&gt;. Entonces hago el botón más clarito para el hover y lo hago más oscuro para active y focus.&lt;br&gt;
Pero también podés usar otras funciones como &lt;code&gt;opacity()&lt;/code&gt;, &lt;code&gt;grayscale()&lt;/code&gt; y &lt;code&gt;saturate(&lt;/code&gt;). Es cuestión de probar lo que mejor se ajuste al aspecto que querés conseguir.&lt;br&gt;
Podemos ver que incluso podemos aplicar lo mismo para enlaces.&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/LucasMaidana/embed/jOqREYj?height=600&amp;amp;default-tab=css,result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;En resumen:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;button:hover {
    filter: brightness(1.15);
}
button:active, button:focus {
    filter: brightness(0.95);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Podés encontrar más ejemplos en los links que dejo al final.&lt;br&gt;
Muchas gracias por leerme. Ojalá te sirva este tip para tus próximos proyectos. 💪&lt;/p&gt;

&lt;h3&gt;
  
  
  Fuentes:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://weblog.west-wind.com/posts/2020/Jul/28/Using-the-brightness-CSS-Filter-to-generically-highlight-Content" rel="noopener noreferrer"&gt;Using the brightness() CSS Filter to generically highlight Content - Rick Strahl's Web Log&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codepen.io/parkji/pen/bxunC" rel="noopener noreferrer"&gt;Button styles using filter and brightness&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://cafecito.app/lucasmaidana" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.cafecito.app%2Fimgs%2Fbuttons%2Fbutton_1.svg" alt="Invitame un café en cafecito.app"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>css</category>
      <category>filters</category>
      <category>spanish</category>
    </item>
  </channel>
</rss>
