<?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: Seb Méndez</title>
    <description>The latest articles on DEV Community by Seb Méndez (@guirdo).</description>
    <link>https://dev.to/guirdo</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%2F1030522%2Ffe32b0e5-a32e-4cf4-b94f-5f1691963b48.jpeg</url>
      <title>DEV Community: Seb Méndez</title>
      <link>https://dev.to/guirdo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/guirdo"/>
    <language>en</language>
    <item>
      <title>Capsula frontend #1</title>
      <dc:creator>Seb Méndez</dc:creator>
      <pubDate>Mon, 14 Aug 2023 01:30:00 +0000</pubDate>
      <link>https://dev.to/guirdo/capsula-frontend-1-4had</link>
      <guid>https://dev.to/guirdo/capsula-frontend-1-4had</guid>
      <description>&lt;p&gt;Después de ver esta &lt;a href="https://www.youtube.com/live/H2Ux0hGQcs4?feature=share"&gt;grandiosa charla sobre el acto radical de crear tu página web personal&lt;/a&gt; sin importar si luce “horrible”, entre más rara mejor, y mientras preparo el siguiente gran artículo para este blog, escribo esta pequeña primera cápsula para compartirles un poco de inspiración para el front-end que he encontrado.&lt;/p&gt;

&lt;p&gt;También lo escribo porque recién, en mi nuevo trabajo como sensei en DevF, un alumno me pidió consejo para su portafolio y le compartí algunas de la páginas a continuación.&lt;/p&gt;

&lt;h2&gt;
  
  
  Página personal de Greg Ives
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--epc1bNiU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/dyuo7wfyi/image/upload/v1691975070/website/articles/capsula-frontend/01/brave_screenshot_gregives.co.uk_xovi5v.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--epc1bNiU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/dyuo7wfyi/image/upload/v1691975070/website/articles/capsula-frontend/01/brave_screenshot_gregives.co.uk_xovi5v.webp" alt="brave_screenshot_gregives.co.uk.png" width="423" height="471"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Mientras hacía el más reciente rediseño de mi portafolio encontré la &lt;a href="https://gregives.co.uk/"&gt;página de Greg Ives&lt;/a&gt;, que tiene una animación en la foto de la página principal que puede mantenerte entretenido por un largo rato, como a mí.&lt;/p&gt;

&lt;p&gt;Algo curioso es que también Greg agrego un guestbook, muy a la vieja escuela. Quizás en el futuro agregue uno aquí.&lt;/p&gt;

&lt;h2&gt;
  
  
  Portafolio de Jemina Abu
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jKDXB1UV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/dyuo7wfyi/image/upload/v1691975070/website/articles/capsula-frontend/01/brave_screenshot_www.jemimaabu.com_umyybx.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jKDXB1UV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/dyuo7wfyi/image/upload/v1691975070/website/articles/capsula-frontend/01/brave_screenshot_www.jemimaabu.com_umyybx.webp" alt="brave_screenshot_www.jemimaabu.com.png" width="425" height="462"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;La &lt;a href="https://www.jemimaabu.com/"&gt;página de Jemina&lt;/a&gt; también fue parte muy importante para el nuevo diseño de mi portafolio, como quizás lo podrás notar. Además de que gracias a su artículo sobre cómo desarrollar un portafolio con el mejor puntaje para Lighthouse me ayuda a comprender lo necesario para hacer lo mismo con el mio.&lt;/p&gt;

&lt;h2&gt;
  
  
  Página personal de Lene Saile
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XpLQhpXK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/dyuo7wfyi/image/upload/v1691975071/website/articles/capsula-frontend/01/brave_screenshot_www.lenesaile.com_memke4.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XpLQhpXK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/dyuo7wfyi/image/upload/v1691975071/website/articles/capsula-frontend/01/brave_screenshot_www.lenesaile.com_memke4.webp" alt="brave_screenshot_www.lenesaile.com.png" width="424" height="545"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;La &lt;a href="https://www.lenesaile.com/"&gt;página de Lene&lt;/a&gt; me encanta porque tiene un diseño muy personal y sobrio, en mi opinión. Además de que &lt;a href="https://github.com/madrilene/eleventy-excellent"&gt;su plantilla para crear páginas web excelentes&lt;/a&gt; también parte de mi inspiración para ordenar el código de mi página.&lt;/p&gt;

&lt;h2&gt;
  
  
  Build excellent websites
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JWIJ8rqv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/dyuo7wfyi/image/upload/v1691975070/website/articles/capsula-frontend/01/brave_screenshot_buildexcellentwebsit.es_nae5ik.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JWIJ8rqv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/dyuo7wfyi/image/upload/v1691975070/website/articles/capsula-frontend/01/brave_screenshot_buildexcellentwebsit.es_nae5ik.webp" alt="brave_screenshot_buildexcellentwebsit.es.png" width="424" height="406"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Esta inspiración además de ser visual lo ha sido para la forma en la que abordo un nuevo proyecto web. Esta página creada por Andy Bell, se explica los principios a seguir para ser el mentor del navegador y no su micromanager.&lt;/p&gt;

&lt;p&gt;Lo recomiendo con creces, pues me ha hecho reflexionar sobre que tecnologías debo ocupar para mis próximos proyectos y me ha hecho revalorar las capacidades de la web actualmente.&lt;/p&gt;

&lt;h2&gt;
  
  
  Melonking
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RyZSNjLE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/dyuo7wfyi/image/upload/v1691975071/website/articles/capsula-frontend/01/brave_screenshot_melonking.net_vazeyc.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RyZSNjLE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/dyuo7wfyi/image/upload/v1691975071/website/articles/capsula-frontend/01/brave_screenshot_melonking.net_vazeyc.webp" alt="brave_screenshot_melonking.net.png" width="423" height="516"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Y por ultimo pero no menos interesante, les comparto la &lt;a href="https://melonking.net/"&gt;página de Melonking&lt;/a&gt;. Esta bello rincón de la web es una de las tantas demostraciones de que lo que es posible plasmar con HTML, CSS y JavaScript cuando el propósito de crear es crear en sí mismo.&lt;/p&gt;

&lt;p&gt;Una página muy divertida y llena de tantas sorpresas, te invito a visitarla.&lt;/p&gt;

&lt;h2&gt;
  
  
  Para concluir
&lt;/h2&gt;

&lt;p&gt;Estas han sido unas de las principales inspiraciones que he tenido para seguir construyendo páginas para la web, y solo me recuerdan de lo se puede ser capaz con tan solo compartir un enlace con el mundo.&lt;/p&gt;

&lt;p&gt;Nos vemos hasta la próxima, y sigue construyendo para la web 🌐.&lt;/p&gt;

</description>
      <category>frontend</category>
      <category>capsula</category>
      <category>inspiracion</category>
    </item>
    <item>
      <title>Fuentes responsivas con CSS: la función clamp y el escalamiento modular</title>
      <dc:creator>Seb Méndez</dc:creator>
      <pubDate>Fri, 12 May 2023 03:30:00 +0000</pubDate>
      <link>https://dev.to/guirdo/fuentes-responsivas-con-css-la-funcion-clamp-y-el-escalamiento-modular-1ebf</link>
      <guid>https://dev.to/guirdo/fuentes-responsivas-con-css-la-funcion-clamp-y-el-escalamiento-modular-1ebf</guid>
      <description>&lt;p&gt;La parte más importante y de lo que están hechas principalmente nuestras páginas web es el texto. Es a través de este que transmitimos el mensaje que queremos hacer llegar a las personas que nos visitan. Es por eso que debemos asegurarnos de que la fuente que utilicemos sea legible tanto para dispositivos pequeños y grandes, así como para personas con discapacidades visuales.&lt;/p&gt;

&lt;p&gt;En este artículo hablaré sobre cómo podemos configurar el tamaño de las fuentes para que este sea responsivo y sobre el escalamiento modular para la jerarquización de los títulos, subtítulos y demás textos.&lt;/p&gt;

&lt;h2&gt;
  
  
  Función clamp de CSS
&lt;/h2&gt;

&lt;p&gt;La función clamp de CSS “sujeta” un valor preferido entre un valor mínimo y un máximo. Si el valor preferido llegara a ser más pequeño que el mínimo, tomará el valor mínimo, y si el valor preferido llegara a ser más grande que el valor máximo, no sobrepasará este último. Checa el siguiente ejemplo:&lt;/p&gt;

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

&lt;p&gt;En este ejemplo, conforme vayamos cambiando el ancho de la ventana, el tamaño de la fuente cambiará de forma fluida.&lt;/p&gt;

&lt;p&gt;El tamaño mínimo para la fuente es de &lt;code&gt;1rem&lt;/code&gt;, que es equivalente a &lt;code&gt;16px&lt;/code&gt; en la mayoría de los casos, pero habrá algún usuario que cambiará la preferencias de su navegador y el tamaño preferido sería uno más pequeño o grande.&lt;/p&gt;

&lt;p&gt;En el tamaño preferido utilizamos la unidad de medida &lt;code&gt;vi&lt;/code&gt;, que se refiere al tamaño del &lt;em&gt;viewport inline&lt;/em&gt;, lo que es igual al ancho de la ventana cuando la dirección de lectura es horizontal. &lt;code&gt;0.5vi&lt;/code&gt; equivale al 0.5% del ancho del viewport.&lt;/p&gt;

&lt;p&gt;Por último, en el tamaño máximo utilizamos &lt;code&gt;1.5rem&lt;/code&gt;, lo que sería equivalente a incrementar el tamaño de la fuente hasta 1.5 veces.&lt;/p&gt;

&lt;p&gt;Y con esta simple línea de CSS nos bastaría para que el tamaño de nuestras fuentes respondan al tamaño de la pantalla y preferencias del usuario. Sin embargo, podemos ir más allá con el siguiente tema.&lt;/p&gt;

&lt;h2&gt;
  
  
  Escalamiento modular
&lt;/h2&gt;

&lt;p&gt;El escalamiento modular es un algoritmo que nos permite escalar el tamaño de nuestras fuentes de la misma forma en que en la música se crean las armonías, para así añadir una armonía visual a la jerarquía de los textos.&lt;/p&gt;

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

&lt;p&gt;En este ejemplo, la diferencia entre cada tamaño de las fuentes es de 0.5rem, la cual es regular y se denomina una &lt;strong&gt;serie aritmética&lt;/strong&gt; , pero en la parte visual la diferencia no es cohesiva, pues la proporción entre cada tamaño varia. Por ejemplo, entre el tamaño &lt;code&gt;--fs-sm = 1rem&lt;/code&gt; y el &lt;code&gt;--fs-md = 1.5rem&lt;/code&gt; su proporción es de 1.5, pero entre &lt;code&gt;--fs-xl = 2.5rem&lt;/code&gt; y &lt;code&gt;--fs-xxl = 3rem&lt;/code&gt; es de 0.83.&lt;/p&gt;

&lt;p&gt;Para crear una proporción regular utilizaremos una &lt;strong&gt;serie armónica&lt;/strong&gt; , la cual es una secuencia de fracciones basada en una serie aritmética que incrementa por 1.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1,2,3,4,5,6 // Serie aritmética1,½,⅓,¼,⅕,⅙ // Serie armónica
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Checa el siguiente ejemplo, utilizando la función clamp:&lt;/p&gt;

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

&lt;p&gt;Primero establecemos la proporción que deseamos en la variable &lt;code&gt;--ratio&lt;/code&gt; . Luego establecemos un tamaño base, que este caso fue &lt;code&gt;--fs-md&lt;/code&gt; en el cuál utilizamos la función clamp para que el tamaño se vaya ajustando al tamaño de la pantalla.&lt;/p&gt;

&lt;p&gt;Para disminuir el tamaño de fuente debemos de dividir el tamaño anterior entre el radio, como pasa con &lt;code&gt;--fs-sm: calc(var(--fs-md) / var(--ratio))&lt;/code&gt; , y así sucesivamente con tamaños más pequeños.&lt;/p&gt;

&lt;p&gt;Para incrementar el tamaño debemos multiplicar el tamaño anterior por el radio, como pasa con &lt;code&gt;--fs-lg: calc(var(--fs-md) * var(--ratio))&lt;/code&gt; , y así sucesivamente con los siguientes tamaños.&lt;/p&gt;

&lt;h2&gt;
  
  
  Para terminar
&lt;/h2&gt;

&lt;p&gt;Estos dos temas son uno de los tantos pasos que se necesitan para asegurar la legibilidad de los textos en nuestras páginas web. Espero te haya servido y en seguida te dejo enlaces a artículos relacionados y herramientas que te servirán.&lt;/p&gt;

&lt;p&gt;Hasta la proxima, y sigue construyendo para la web 🌐.&lt;/p&gt;

&lt;h3&gt;
  
  
  Enlaces útiles
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://typescale.com/"&gt;Type Scale&lt;/a&gt;: herramienta que te ayudará a elegir la proporción que tu proyecto necesita.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://every-layout.dev/rudiments/modular-scale/"&gt;Modular scale&lt;/a&gt;: artículo sobre el escalamiento modular del proyecto Every Layout.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://youtu.be/kHgwY5mTHVU"&gt;Great Typography with Modern CSS (with Mike Mai) | Some Antics&lt;/a&gt;: video donde Ben Myers y Mike Mai implementan consensos para la tipografía de las páginas web.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>css</category>
      <category>a11y</category>
      <category>español</category>
    </item>
    <item>
      <title>Qué es la accesibilidad web</title>
      <dc:creator>Seb Méndez</dc:creator>
      <pubDate>Tue, 28 Mar 2023 00:00:00 +0000</pubDate>
      <link>https://dev.to/guirdo/que-es-la-accesibilidad-web-26a</link>
      <guid>https://dev.to/guirdo/que-es-la-accesibilidad-web-26a</guid>
      <description>&lt;p&gt;Imagina que tu mouse deja de funcionar, entonces cambias a moverte por medio del teclado y vas a comprar uno nuevo. Pan comido.&lt;/p&gt;

&lt;p&gt;Qué tal si hablamos de una persona que tiene parálisis en la mayor parte de su cuerpo, o es ciega. Tu nuevo mouse le será inútil a este tipo de personas, y para ellos no sería accesible la forma en que tú utilizas la web.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No todos utilizamos la web de la misma manera.&lt;/strong&gt; Hay personas que nacen con capacidades distintas a la nuestras, incluso con la edad podemos ir perdiéndolas. Mejorar y siempre tener en cuenta la accesibilidad de nuestras páginas es importante para asegurar que todos puedan acceder a la información que hay en ellas.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9IsCMevs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/dyuo7wfyi/image/upload/v1679888295/website/articles/que-es-la-accesibilidad-web_w4r1db.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9IsCMevs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/dyuo7wfyi/image/upload/v1679888295/website/articles/que-es-la-accesibilidad-web_w4r1db.webp" alt="Mujer en silla de ruedas trabajando en su escritorio frente una computadora y respondiendo al teléfono" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ¿Qué es la accesibilidad web?
&lt;/h2&gt;

&lt;p&gt;La &lt;strong&gt;accesibilidad&lt;/strong&gt; es una característica de la páginas web que se enfoca en la experiencia del usuario y como este puede acceder a ella. No solo se enfoca en las personas con capacidades diferentes, sino que también para facilitarnos la vida a los que no tenemos alguna discapacidad.&lt;/p&gt;

&lt;p&gt;La &lt;em&gt;World Wide Web Consortium&lt;/em&gt; (W3C) es la que se encarga de la estandarización de las directivas para la web y su accesibilidad. El rango de capacidades que una página web debe dar acceso son:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Auditivas&lt;/li&gt;
&lt;li&gt;Cognitivas&lt;/li&gt;
&lt;li&gt;Neurológicas&lt;/li&gt;
&lt;li&gt;Físicas&lt;/li&gt;
&lt;li&gt;Del habla&lt;/li&gt;
&lt;li&gt;Visuales&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Los objetivos de la accesibilidad web son &lt;strong&gt;la inclusión, un diseño universal y para todos y disminuir la brecha digital&lt;/strong&gt;. No solo se trata de las distintas capacidades físicas y mentales de una persona, sino también de la calidad de su conexión a internet y la capacidad de cómputo que tiene disponible.&lt;/p&gt;

&lt;p&gt;Pero antes incluso de empezar a leer las directivas e implementarlas, debemos entender que &lt;strong&gt;la accesibilidad es sobre las personas&lt;/strong&gt;. La web no debería ser una barrera para conectar y participar para las personas con discapacidades, sino la solución.&lt;/p&gt;

&lt;h3&gt;
  
  
  Modelos social y médico de las discapacidades
&lt;/h3&gt;

&lt;p&gt;Imaginemos una persona en silla de ruedas que quiere entrar a un edificio, y la única forma que tiene para acceder a él son escaleras. ¿Cuál sería el verdadero problema aquí?&lt;/p&gt;

&lt;p&gt;En el &lt;strong&gt;modelo médico de las discapacidades&lt;/strong&gt; , se tiende a buscar “curar” la discapacidad de las personas para que así sean capaces de ser parte de la sociedad. En este modelo la discapacidad se ve como un defecto en las personas que lo padecen.&lt;/p&gt;

&lt;p&gt;En el &lt;strong&gt;modelo social de las discapacidades&lt;/strong&gt; , se distinguen a las discapacidades como &lt;strong&gt;las restricciones impuestas por la sociedad&lt;/strong&gt;. La solución no es “arreglar” al individuo sino a la sociedad para que esta sea más incluyente.&lt;/p&gt;

&lt;p&gt;Eliminar las discapacidades sería limitar el número de experiencias distintas para experimentar el mundo, así como de voces, opiniones e ideas que muy pocas veces son escuchadas.&lt;/p&gt;

&lt;h2&gt;
  
  
  Características de una página web accesible
&lt;/h2&gt;

&lt;p&gt;Crear &lt;strong&gt;páginas accesibles&lt;/strong&gt; para todos es crear &lt;strong&gt;páginas web de calidad&lt;/strong&gt;. Asegurar un diseño universal y escribir un buen código es clave para un mayor alcance de lo que publicamos, pues le damos la oportunidad a muchas más personas de acceder a lo que queremos compartir.&lt;/p&gt;

&lt;p&gt;Para lograr lo anterior, debemos tener en cuenta las siguientes cuatro características que una página web debe cumplir para ser accesible:&lt;/p&gt;

&lt;h3&gt;
  
  
  Perceptible
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Toda la comunicación depende en los sentidos.&lt;/strong&gt; Que el contenido de una página no sea perceptible por los sentidos de la vista, del oído o del tacto, es por definición inaccesible.&lt;/p&gt;

&lt;p&gt;Por ejemplo: el diseño web puede ser una poderosa herramienta para asegurar tráfico y una buena experiencia para los personas que visiten nuestras páginas, pero para las &lt;strong&gt;personas con discapacidades visuales&lt;/strong&gt; dependerán de &lt;strong&gt;lectores de pantalla&lt;/strong&gt; , como son los que leen en voz alta o pantallas de braile, para acceder a ellas. Es por eso que la buena estructura y el uso de las etiquetas semánticas al maquetarlas le facilitarán la vida a estas personas.&lt;/p&gt;

&lt;p&gt;Para las &lt;strong&gt;personas con discapacidades auditivas&lt;/strong&gt; , los vídeos con subtítulos o audios con su respectiva transcripción serán necesarios para poder acceder a este tipo de contenido.&lt;/p&gt;

&lt;h3&gt;
  
  
  Usable
&lt;/h3&gt;

&lt;p&gt;Para las &lt;strong&gt;personas con discapacidades físicas&lt;/strong&gt; podrán utilizar tecnologías que las asistan para interactuar con su computadora como son controles de sorbos y soplos, joysticks o el teclado para moverse por las páginas. Un orden lógico y estructura semántica facilitarán su navegación.&lt;/p&gt;

&lt;p&gt;El uso de animaciones y los límites de tiempo pueden ser problemáticos para &lt;strong&gt;personas con discapacidades cognitivas&lt;/strong&gt; , pues estas pueden ser confusas u obstaculizar su interacción con la página, y a veces imposibilitar su uso.&lt;/p&gt;

&lt;h3&gt;
  
  
  Entendible
&lt;/h3&gt;

&lt;p&gt;Que una página sea entendible se refiere al uso de un &lt;strong&gt;lenguaje sencillo&lt;/strong&gt; y accesible para todos, y una estructura donde sea fácil navegar a través de ella, además del uso de representaciones complementarias o alternativas para el contenido.&lt;/p&gt;

&lt;p&gt;El uso de ilustraciones, gráficos, vídeos, audios, entre otros facilitan la compresión del contenido mostrado, y eso no solo ayuda a las personas con discapacidades cognitivas sino también para las personas que apenas estén explorando el tema.&lt;/p&gt;

&lt;h3&gt;
  
  
  Robusta
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Una página robusta es aquella a la que se puede acceder en la mayor cantidad de dispositivos&lt;/strong&gt; , ya sean recientes o antiguos. Cuando una persona accede a la web, espera que esta funcione; algunos usuarios querrán utilizar las tecnologías más nuevas y otros las desactivarán. Cuando las personas pueden decidir qué tecnologías utilizar, le estamos dando más poder para acceder a la web.&lt;/p&gt;

&lt;p&gt;Para asegurar la robustez de nuestras páginas en el futuro deberemos utilizar las especificaciones actuales, con eso podemos tomar ventaja de las características actuales de la tecnología que los navegadores y tecnologías que asisten a las personas con discapacidades podrán interpretar correctamente en el futuro.&lt;/p&gt;

&lt;h2&gt;
  
  
  Para terminar
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;La accesibilidad es esencial para unos, y útil para todos.&lt;/strong&gt; La accesibilidad web y las tecnologías de asistencia no solo facilitan el acceso a las personas con discapacidades o de bajos recursos, sino que también a los que no las tienen. Es importante no dejar de lado o para después la accesibilidad de nuestras páginas para darle mayor alcance y acceso a más personas en el internet.&lt;/p&gt;

&lt;p&gt;Este es un tema mucho más extenso y en este artículo te lo he resumido a modo de introducción para invitarte a que lo sigas leyendo por tu cuenta y lo practiques en tus proyectos nuevos o ya existentes.&lt;/p&gt;

&lt;p&gt;Por una internet más accesible, sigue construyendo la web 🌐.&lt;/p&gt;

&lt;h3&gt;
  
  
  Referencias
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://webaim.org/intro/"&gt;Introduction to Web Accessibility&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://webaim.org/articles/pour/"&gt;Constructing a POUR Website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://odpc.ucsf.edu/node/1906"&gt;Modelos médicos y sociales de discapacidad&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://guides.library.illinois.edu/c.php?g=549817&amp;amp;p=3774564"&gt;Disability Theory: Medical/Rehabilitative Model&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>a11ty</category>
      <category>accesibilidad</category>
      <category>español</category>
    </item>
    <item>
      <title>Cómo funciona la cascada de CSS</title>
      <dc:creator>Seb Méndez</dc:creator>
      <pubDate>Fri, 10 Mar 2023 18:00:00 +0000</pubDate>
      <link>https://dev.to/guirdo/como-funciona-la-cascada-de-css-4eip</link>
      <guid>https://dev.to/guirdo/como-funciona-la-cascada-de-css-4eip</guid>
      <description>&lt;p&gt;Empecemos con un ejemplo sencillo. Tenemos dos títulos, ambos con la clase &lt;code&gt;title&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;h2&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"title"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  Hola, esto es un título
&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;h2&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"title"&lt;/span&gt; &lt;span class="na"&gt;style=&lt;/span&gt;&lt;span class="s"&gt;"color: green"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  Hola, esto es otro título
&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Y tenemos nuestro código CSS que hemos incluido en el &lt;code&gt;head&lt;/code&gt; de nuestro html:&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;.title&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;blue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nt"&gt;h2&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="no"&gt;hotpink&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;p&gt;Tenemos declarado un color para la clase &lt;code&gt;title&lt;/code&gt;, tenemos otro para los elementos &lt;code&gt;h2&lt;/code&gt;, y además el segundo título tiene una declaración de estilos inline. &lt;strong&gt;¿Qué color saldrá ganador para cada uno de los títulos?&lt;/strong&gt; Tómate tu tiempo y después puedes confirmar tu respuesta en seguida.&lt;/p&gt;

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

&lt;p&gt;En el primer título ha ganado el color azul, y para el segundo el color verde.&lt;/p&gt;

&lt;p&gt;¿Por qué ha sucedido esto? Para el primero ha ganado el estilo por la especificidad del selector de clase que es más alta que la de un selector de elemento. En cambio, el segundo titulo ha resultado verde a pesar de que tiene la clase &lt;code&gt;title&lt;/code&gt;, aquí la cascada has decido que el estilo inline que tiene este elemento es el ganador.&lt;/p&gt;

&lt;p&gt;Ahora, si tenemos un proyecto más complejo donde trabajamos con un equipo con diferentes personas, y que pueden existir muchos más conflictos, o incluso hablando de un proyecto superpersonalizado como puede ser tu web personal o para un cliente, ahí es donde entender la cascada nos ahorrara varios malos ratos.&lt;/p&gt;

&lt;h2&gt;
  
  
  ¿Qué es la cascada en CSS?
&lt;/h2&gt;

&lt;p&gt;En simples palabras, &lt;strong&gt;la cascada es el algoritmo que decide que estilo tiene prioridad sobre otro&lt;/strong&gt;. Esta contiene distintos pasos que determinan que estilos se van aplicar a nuestros documentos HTML. Visualmente sería algo parecido a la siguiente imagen, donde algunos chorros de agua caen desde distintas alturas en la misma cascada.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--A5cn-qmM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/dyuo7wfyi/image/upload/v1678499519/website/articles/cascade_wlvqfd.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--A5cn-qmM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/dyuo7wfyi/image/upload/v1678499519/website/articles/cascade_wlvqfd.webp" alt="Una cascada entre unas rocas, donde el agua cae de distintas alturas" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Pasos de la cascada
&lt;/h2&gt;

&lt;p&gt;Estas serían las “caídas” de la cascada de CSS, empezando desde las más prioritarias:&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Origen e importancia&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Este primer criterio esta basado en el origen de los estilos y de si son declarados como importantes o no, con el uso de &lt;code&gt;!important&lt;/code&gt;.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Declaración de transiciones:&lt;/strong&gt; aquellas, que con el uso de la propiedad &lt;code&gt;transition&lt;/code&gt; , declaran la forma en que las propiedades de un selector se modifican con un tiempo y forma determinado.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Declaraciones importantes del &lt;em&gt;user agent&lt;/em&gt;:&lt;/strong&gt; estas son las que cada navegador aplica por defecto a los documentos HTML con &lt;code&gt;!important&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Declaraciones importantes del usuario:&lt;/strong&gt; las que el usuario mismo de nuestras páginas puede aplicar, ya sea con una extensión o a través de las herramientas de desarrollo del navegador.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Declaraciones importantes del autor:&lt;/strong&gt; o sea, nosotros los desarrolladores que escribimos el código.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Declaraciones de animaciones:&lt;/strong&gt; esas que creamos a partir de &lt;code&gt;keyframes&lt;/code&gt; y describimos de que forma las propiedades de un elemento cambiaran a través del tiempo.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Declaraciones normales del autor.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Declaraciones normales del usuario.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Declaraciones normales del &lt;em&gt;user agent.&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Contexto&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Este se refiere al contexto en que los elementos están agrupados dentro del DOM, donde podemos tener &lt;em&gt;shadow trees&lt;/em&gt;. Estos sub-arboles del DOM están encapsulados y pueden contener sus propios estilos sin afectar a los del árbol principal.&lt;/p&gt;

&lt;p&gt;Veamos el siguiente ejemplo. Puse un titulo nativo con un color purpura que obtiene de la clase &lt;code&gt;title&lt;/code&gt;. Luego creé un componente web llamado &lt;code&gt;mi-titulo&lt;/code&gt; en un &lt;em&gt;shadow tree&lt;/em&gt;, añadiéndole una clase con el mismo nombre que la anterior y además le agregue la propiedad &lt;code&gt;!important&lt;/code&gt;.&lt;/p&gt;

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

&lt;p&gt;Si abres las herramientas de desarrollo del navegador podrás notar que mi componente web esta encapsulado en un &lt;code&gt;shadow-root&lt;/code&gt;, por lo que existe en un contexto diferente al del resto del DOM. Es por eso que la regla &lt;code&gt;!important&lt;/code&gt; dentro de este componente no afecta al título fuera de él.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Estilos &lt;code&gt;inline&lt;/code&gt; de los elementos&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Estos son lo que encontramos adjuntos a los elementos en el mismo documento HTML, y su origen se considera parte de los estilos del autor. &lt;strong&gt;Su especificidad es mucho más alta que cualquier otro selector&lt;/strong&gt;. De este caso ya vimos un ejemplo al principio.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Layers&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Layers, o capas en español, son una característica que recientemente se ha agregado a la &lt;a href="https://www.w3.org/TR/css-cascade-5/#layering"&gt;especificación de la cascada y herencia de CSS nivel 5&lt;/a&gt;. Las capas nos proveen una forma estructurada de balancear y organizar los estilos que provienen de un mismo origen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Entre los layers gana la que sea declarada al último&lt;/strong&gt; , y dentro de ellas siguen las misma reglas que en el criterio de origen e importancia. Las últimas declaraciones normales ganan, y con las importantes ganan las primeras.&lt;/p&gt;

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

&lt;p&gt;En el ejemplo anterior podrás notar que agregué tres layers (&lt;code&gt;layerA&lt;/code&gt;, &lt;code&gt;layerB&lt;/code&gt; y &lt;code&gt;layerC&lt;/code&gt;), pero en la primera línea del documento CSS declaré de forma explícita el orden con el cual deben ser interpretados. Como puse el &lt;code&gt;layerB&lt;/code&gt; en la última posición se han aplicado sus estilos, pero sin esa primera línea hubiera ganado el &lt;code&gt;layerC&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Especificidad
&lt;/h3&gt;

&lt;p&gt;La especificidad es calculada a partir del valor de cada tipo de los selectores. Esta da como resultado una triada de números (A, B, C) que representan que tan específica es una combinación de selectores. Donde:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A representa a los selectores de ID.&lt;/li&gt;
&lt;li&gt;B representa a los selectores de clase, de atributo y pseudo-clases.&lt;/li&gt;
&lt;li&gt;C representa a los elementos y pseudo-elementos.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;La combinación de selectores con el número más alto de especificidad gana.&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;#greeting&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="c"&gt;/**/&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="c"&gt;/*(1, 0 ,0) */&lt;/span&gt;
&lt;span class="nf"&gt;#greeting&lt;/span&gt;&lt;span class="nd"&gt;::before&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="c"&gt;/**/&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="c"&gt;/* (1, 0, 1) */&lt;/span&gt;

&lt;span class="nt"&gt;nav&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="nd"&gt;:hover::before&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="c"&gt;/**/&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="c"&gt;/* (0, 1, 3) */&lt;/span&gt;
&lt;span class="nc"&gt;.text&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="c"&gt;/**/&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="c"&gt;/* (0, 1, 0) */&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Orden de aparición
&lt;/h3&gt;

&lt;p&gt;Si ninguna de todas las anteriores resuelve el conflicto entre estilos, &lt;strong&gt;la cascada le dará la victoria al último estilo que aparezca declarado&lt;/strong&gt;. Aquí también entra en juego la regla &lt;code&gt;@import&lt;/code&gt;, pues su posición también afecta al orden de aparición. Por ejemplo:&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="k"&gt;@import&lt;/span&gt; &lt;span class="s2"&gt;'blocks.css'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;@import&lt;/span&gt; &lt;span class="s2"&gt;'utilities.css'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Aquí las declaraciones dentro de &lt;code&gt;utilities&lt;/code&gt; serán las ganadoras sobre las de &lt;code&gt;blocks&lt;/code&gt; porque las hemos importado al último en nuestro documento global de CSS. Parecido a como lo vimos con los layers, cuando declaramos su orden de forma explícita.&lt;/p&gt;

&lt;h2&gt;
  
  
  Para terminar
&lt;/h2&gt;

&lt;p&gt;Las cascada de CSS, que es de ahí de donde saca la “C”, es una parte fundamental de entender para cuando creemos nuestros estilos. En este artículo te resumí muy brevemente como funciona y la verdad es que este tema abre la oportunidad para hablar de los demás que la componen.&lt;/p&gt;

&lt;p&gt;Próximamente compartiré nuevos artículos más detallados sobre la especificidad y los layers, y otras cosas interesantes sobre CSS para ahorrarte los momentos de “no tengo idea que estoy haciendo” con este poderoso lenguaje.&lt;/p&gt;

&lt;p&gt;Hasta la próxima, y sigue construyendo la web 🌐.&lt;/p&gt;

&lt;h3&gt;
  
  
  Referencias
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.w3.org/TR/css-cascade-5/"&gt;CSS Cascading and Inheritance Level 5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.w3.org/TR/css-style-attr/"&gt;CSS Style Attributes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.mozilla.org/es/docs/Web/Web_Components/Using_shadow_DOM"&gt;Usando shadow DOM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=zEPXyqj7pEA"&gt;Youtube: The CSS Cascade, a deep dive | Bramus Van Damme | CSS Day 2022&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>css</category>
      <category>español</category>
    </item>
  </channel>
</rss>
