<?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: Geordy Elian Reyes Mendoza</title>
    <description>The latest articles on DEV Community by Geordy Elian Reyes Mendoza (@eliandev).</description>
    <link>https://dev.to/eliandev</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%2F294143%2F4e932c78-ba68-4ec8-96ce-34e856907694.png</url>
      <title>DEV Community: Geordy Elian Reyes Mendoza</title>
      <link>https://dev.to/eliandev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/eliandev"/>
    <language>en</language>
    <item>
      <title>Turn Off the Lights: a CSS-only Salvadoran Pupusa Table</title>
      <dc:creator>Geordy Elian Reyes Mendoza</dc:creator>
      <pubDate>Sat, 01 Aug 2026 06:34:07 +0000</pubDate>
      <link>https://dev.to/eliandev/turn-off-the-lights-a-css-only-salvadoran-pupusa-table-1mn6</link>
      <guid>https://dev.to/eliandev/turn-off-the-lights-a-css-only-salvadoran-pupusa-table-1mn6</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for &lt;a href="https://dev.to/challenges/frontend-2026-07-29"&gt;Frontend Challenge - Comfort Food Edition, CSS Art&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Inspiration
&lt;/h2&gt;

&lt;p&gt;I'm from El Salvador, and here comfort food has one name: &lt;strong&gt;pupusas&lt;/strong&gt;. Thick corn tortillas stuffed with cheese, beans and chicharrón, served with curtido (pickled cabbage slaw) and tomato salsa. It's our national dish, but more than that — it's the food you eat at a plastic table at night, under one warm light, with the comal hissing somewhere behind you.&lt;/p&gt;

&lt;p&gt;That last image is what I wanted to capture. Not just the plate: &lt;strong&gt;the moment&lt;/strong&gt;. So the piece has a light switch.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/editor/elian-dev/embed/019fbbfd-cabc-749f-9ac4-fcb8efdef38f?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Two things to try:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;"Bañar en salsa"&lt;/strong&gt; — pours salsa over each pupusa with a staggered cascade.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;"Apagar la luz"&lt;/strong&gt; — turns the whole scene into a night pupusería, lit only by a flickering candle (veladora).&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Journey
&lt;/h2&gt;

&lt;p&gt;Everything is CSS: gradients, &lt;code&gt;border-radius&lt;/code&gt;, &lt;code&gt;box-shadow&lt;/code&gt; and blend modes. No images, no SVG, no libraries. JavaScript is 15 lines — two class toggles.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The tablecloth is the flex.&lt;/strong&gt; The blue-and-white geometric mantel is five bands built entirely with &lt;code&gt;repeating-conic-gradient&lt;/code&gt; and &lt;code&gt;repeating-linear-gradient&lt;/code&gt; — chained diamonds, sawtooth rows, chevrons. Zero background images. This was the part I rewrote the most until the patterns locked together.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The night is one single element.&lt;/strong&gt; When you turn off the light, I'm not repainting anything. A single overlay &lt;code&gt;div&lt;/code&gt; with &lt;code&gt;mix-blend-mode: multiply&lt;/code&gt; holds two stacked radial gradients: near-white around the candle (multiplying by white changes nothing — so that IS the light), falling off to deep blue at the edges. The steam even turns moonlit-blue for free, because that's just what multiply does to white pixels. One div, one blend mode, full day/night mood shift.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Corn kernels are two offset dot grids.&lt;/strong&gt; The mazorca's kernels are two &lt;code&gt;radial-gradient&lt;/code&gt; grids shifted by half a cell — which is exactly how kernels interlock on a real cob. That half-cell offset is the difference between "corn" and "polka dots".&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The curtido is seven crossed stripe layers.&lt;/strong&gt; White and purple cabbage, carrot, chile — each one a &lt;code&gt;repeating-linear-gradient&lt;/code&gt; at a different angle and spacing. The angles are deliberately non-repeating so your eye never catches the pattern and it reads as shredded slaw.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nothing pulses in sync.&lt;/strong&gt; The three steam wisps run at 5.4s / 6.8s / 6.1s, the flame flickers at 1.7s, its halo breathes at 2.6s. If any two shared a period, the scene would feel mechanical.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Accessibility:&lt;/strong&gt; the scene has a full &lt;code&gt;role="img"&lt;/code&gt; description in Spanish, both buttons are real &lt;code&gt;&amp;lt;button&amp;gt;&lt;/code&gt; elements with &lt;code&gt;aria-pressed&lt;/code&gt;, and &lt;code&gt;prefers-reduced-motion&lt;/code&gt; doesn't kill the atmosphere — the steam and candle glow freeze visible instead of disappearing.&lt;/p&gt;

&lt;p&gt;What I'd do next: a comal mode where you flip the pupusas before plating them. But that's another challenge.&lt;/p&gt;

&lt;p&gt;Made with corn and CSS in El Salvador 🇸🇻&lt;/p&gt;

</description>
      <category>frontendchallenge</category>
      <category>devchallenge</category>
      <category>css</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
