<?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: Roy Andres Huaman Avila</title>
    <description>The latest articles on DEV Community by Roy Andres Huaman Avila (@royandresdev_).</description>
    <link>https://dev.to/royandresdev_</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%2F3366045%2F6cbeee91-aa79-45e9-a9b5-0a487db34c8d.png</url>
      <title>DEV Community: Roy Andres Huaman Avila</title>
      <link>https://dev.to/royandresdev_</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/royandresdev_"/>
    <language>en</language>
    <item>
      <title>Preload en la práctica: cuándo usarlo (y cuándo evitarlo) para mejorar el rendimiento web</title>
      <dc:creator>Roy Andres Huaman Avila</dc:creator>
      <pubDate>Wed, 23 Jul 2025 21:44:03 +0000</pubDate>
      <link>https://dev.to/royandresdev_/preload-en-la-practica-cuando-usarlo-y-cuando-evitarlo-para-mejorar-el-rendimiento-web-15k0</link>
      <guid>https://dev.to/royandresdev_/preload-en-la-practica-cuando-usarlo-y-cuando-evitarlo-para-mejorar-el-rendimiento-web-15k0</guid>
      <description>&lt;p&gt;En el mundo del rendimiento web, cada milisegundo cuenta. Una de las herramientas más poderosas —y a menudo mal entendidas— es el atributo &lt;code&gt;preload&lt;/code&gt;. Usado correctamente, puede acelerar la carga de recursos críticos. Usado sin criterio, puede hacer justo lo contrario.&lt;/p&gt;

&lt;p&gt;En este artículo te explico qué es &lt;code&gt;preload&lt;/code&gt; y cuándo usarlo estratégicamente.&lt;br&gt;
&lt;code&gt;&amp;lt;link rel="preload"&amp;gt;&lt;/code&gt; es una instrucción para el navegador que le indica que debe cargar un recurso lo antes posible, incluso antes de que se necesite en el renderizado.&lt;/p&gt;

&lt;p&gt;Ejemplo básico:&lt;/p&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%2Fz3o77pdx9aal6k8dqan1.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%2Fz3o77pdx9aal6k8dqan1.png" alt="Ejemplo Preload" width="800" height="248"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔍 Claves importantes:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;El atributo &lt;strong&gt;as&lt;/strong&gt; define el tipo de recurso (script, style, font, image, etc.)&lt;/li&gt;
&lt;li&gt;Es útil para recursos críticos que no se descubren de inmediato en el HTML&lt;/li&gt;
&lt;li&gt;No ejecuta el recurso, solo lo descarga&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;💡 ¿Cuándo usar &lt;code&gt;preload&lt;/code&gt;?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fuentes personalizadas&lt;/strong&gt;: evita el flash de texto sin estilo (FOUT)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Imágenes hero&lt;/strong&gt;: si no están en el HTML inicial pero son visualmente prioritarias&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scripts esenciales&lt;/strong&gt;: si se cargan dinámicamente pero son necesarios para la interacción inicial&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;🚫 ¿Cuándo evitar &lt;code&gt;preload&lt;/code&gt;?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Preload de recursos no críticos: aumenta el tiempo de carga total&lt;/li&gt;
&lt;li&gt;Usar &lt;code&gt;preload&lt;/code&gt; en exceso: puede saturar el ancho de banda&lt;/li&gt;
&lt;li&gt;Preload sin &lt;code&gt;as&lt;/code&gt;: el navegador no sabe cómo manejar el recurso&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;❗&lt;strong&gt;Consejo&lt;/strong&gt;: Si no estás seguro de la criticidad del recurso, considera &lt;code&gt;prefetch&lt;/code&gt; o &lt;code&gt;lazy loading&lt;/code&gt; como alternativas.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Preload&lt;/code&gt; es una herramienta poderosa cuando se usa con intención. Al identificar los recursos verdaderamente críticos y aplicar &lt;code&gt;preload&lt;/code&gt; con precisión, puedes mejorar significativamente el rendimiento percibido de tu sitio.&lt;/p&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%2Fsv82ydjmeyyeftk930cu.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%2Fsv82ydjmeyyeftk930cu.png" alt="Uso Preload" width="800" height="755"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;¿Has usado &lt;code&gt;preload&lt;/code&gt; en tus proyectos? ¿Te ha dado buenos resultados? ¡Cuéntamelo en los comentarios!&lt;/p&gt;

</description>
      <category>performance</category>
      <category>frontend</category>
      <category>html</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Variables Globales CSS</title>
      <dc:creator>Roy Andres Huaman Avila</dc:creator>
      <pubDate>Fri, 18 Jul 2025 05:44:04 +0000</pubDate>
      <link>https://dev.to/royandresdev_/variables-globales-css-1nh0</link>
      <guid>https://dev.to/royandresdev_/variables-globales-css-1nh0</guid>
      <description>&lt;ol&gt;
&lt;li&gt;Variables Globales en el selector &lt;strong&gt;&lt;code&gt;:root&lt;/code&gt;&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;En el inicio de cada proyecto, crea un archivo de estilos (por ejemplo, &lt;strong&gt;&lt;code&gt;_settings.scss&lt;/code&gt;&lt;/strong&gt;) para definir las variables globales. Estas variables representan los ajustes visuales del proyecto, como colores, sombras, espaciado, etc.&lt;/li&gt;
&lt;li&gt;Utiliza el selector :root para definir estas variables. Por ejemplo:
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&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="c"&gt;/* Colores de la interfaz de usuario */&lt;/span&gt;
      &lt;span class="py"&gt;--primary-hue&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;12&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="py"&gt;--color--primary&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;hsl&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--primary-hue&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="m"&gt;100%&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;44%&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
      &lt;span class="py"&gt;--color--primary--hover&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;hsl&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--primary-hue&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="m"&gt;100%&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;39%&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
      &lt;span class="py"&gt;--color--primary--active&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;hsl&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--primary-hue&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="m"&gt;84%&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;30%&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

      &lt;span class="c"&gt;/* Sombras */&lt;/span&gt;
      &lt;span class="py"&gt;--shadow-01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0px&lt;/span&gt; &lt;span class="m"&gt;2px&lt;/span&gt; &lt;span class="m"&gt;4px&lt;/span&gt; &lt;span class="n"&gt;rgba&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;37&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;37&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;37&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;0.1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
      &lt;span class="py"&gt;--shadow-02&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0px&lt;/span&gt; &lt;span class="m"&gt;4px&lt;/span&gt; &lt;span class="m"&gt;8px&lt;/span&gt; &lt;span class="n"&gt;rgba&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;37&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;37&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;37&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;0.1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
      &lt;span class="c"&gt;/* ...otros estilos... */&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Luego, utiliza estas variables en otros selectores para mantener la coherencia visual.
&lt;/li&gt;
&lt;/ul&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;span class="nl"&gt;box-shadow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--shadow-01&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
      &lt;span class="nl"&gt;border&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1px&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--border-color&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
      &lt;span class="nl"&gt;transition&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;box-shadow&lt;/span&gt; &lt;span class="m"&gt;0.2s&lt;/span&gt; &lt;span class="n"&gt;linear&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

      &lt;span class="err"&gt;&amp;amp;:hover,&lt;/span&gt;
      &lt;span class="err"&gt;&amp;amp;:focus&lt;/span&gt; &lt;span class="err"&gt;{&lt;/span&gt;
        &lt;span class="nl"&gt;box-shadow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--shadow-03&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="err"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;aside&amp;gt;
💡 Si necesitas cambiar algún ajuste durante el proyecto, modifica la variable en un solo lugar (en **`:root`**)

&amp;lt;/aside&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Variables Personalizadas (Custom Properties)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Las variables personalizadas (también conocidas como &lt;strong&gt;Custom Properties&lt;/strong&gt;) son una característica de CSS que permite definir variables reutilizables en tus estilos.&lt;/li&gt;
&lt;li&gt;Define tus variables personalizadas en el selector &lt;strong&gt;&lt;code&gt;:root&lt;/code&gt;&lt;/strong&gt; o en cualquier otro selector. Por ejemplo:
&lt;/li&gt;
&lt;/ul&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;--spacing&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1.2rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;--main-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="c"&gt;/* ...otros estilos... */&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Luego, úsalas en tus estilos:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;```css
.button {
  padding: var(--spacing);
  background-color: var(--main-color);
  /* ...otros estilos... */
}
```
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- La ventaja de las variables personalizadas es que son más flexibles y pueden utilizarse en cualquier parte del documento, no solo en el nivel global.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;Utiliza la extensión &lt;a href="https://marketplace.visualstudio.com/items?itemName=vunguyentuan.vscode-css-variables" rel="noopener noreferrer"&gt;&lt;strong&gt;CSS Variable Autocomplete&lt;/strong&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Esta extensión mejora la experiencia de desarrollo web al proporcionar funciones avanzadas como autocompletado, vista previa de colores y navegación a la definición de variables.&lt;/li&gt;
&lt;li&gt;Te ayudara con el autocompletado a otros archivos CSS que tengas en &lt;strong&gt;&lt;code&gt;:root&lt;/code&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>css</category>
      <category>html</category>
      <category>frontend</category>
      <category>react</category>
    </item>
  </channel>
</rss>
