<?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: Larry Margerum</title>
    <description>The latest articles on DEV Community by Larry Margerum (@larrymargerum01).</description>
    <link>https://dev.to/larrymargerum01</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%2F4029101%2Faeec653d-e183-455a-a9ed-fff8b0f9d8c8.jpg</url>
      <title>DEV Community: Larry Margerum</title>
      <link>https://dev.to/larrymargerum01</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/larrymargerum01"/>
    <language>en</language>
    <item>
      <title>Build Your Bowl - A CSS Only Arroz Caldo You Actually Get to Season</title>
      <dc:creator>Larry Margerum</dc:creator>
      <pubDate>Sun, 16 Aug 2026 01:26:14 +0000</pubDate>
      <link>https://dev.to/larrymargerum01/build-your-bowl-a-css-only-arroz-caldo-you-actually-get-to-season-22kd</link>
      <guid>https://dev.to/larrymargerum01/build-your-bowl-a-css-only-arroz-caldo-you-actually-get-to-season-22kd</guid>
      <description>&lt;h2&gt;
  
  
  Inspiration
&lt;/h2&gt;

&lt;p&gt;Arroz caldo is the dish that shows up in my kitchen uninvited. Someone's sick, it's raining, a day just needs marking quietly — and there it is, ginger and rice simmering on the stove before I've really decided to make it.&lt;/p&gt;

&lt;p&gt;The thing I always loved about it growing up was that the last step was never fixed. My mother never measured the garnish. Chili if you needed heat, calamansi if you needed something sharp to cut through it, a boiled egg if the day called for something that felt like a full meal. The base was always the same. The finishing was always yours.&lt;/p&gt;

&lt;p&gt;When I saw this challenge allowed "a sprinkle of JavaScript," I didn't want to just paint a static bowl and call it a day — soup bowls are basically a genre unto themselves in CSS art at this point. I wanted to build the one thing that actually captures what makes this dish comfort food: that you get to decide what goes in it. So the bowl starts nearly bare, and you build it yourself, one click at a time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8pv91od7ae8qgdv9q5yn.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8pv91od7ae8qgdv9q5yn.png" alt=" " width="800" height="706"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body flex items-center justify-between"&gt;
        &lt;a href="https://larrymargerum-devto-frontend-bowl.pages.dev/" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;larrymargerum-devto-frontend-bowl.pages.dev&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/larrymargerum01" rel="noopener noreferrer"&gt;
        larrymargerum01
      &lt;/a&gt; / &lt;a href="https://github.com/larrymargerum01/devto-frontend-challenge-bowl" rel="noopener noreferrer"&gt;
        devto-frontend-challenge-bowl
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Dev.to Frontend Challenge - CSS Challenge project inspired by Arroz caldo
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Build Your Bowl — CSS Art, Comfort Food Edition&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://larrymargerum01.github.io/devto-frontend-challenge-bowl/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/faff74286e54d49d5d336453c0d3b35df31dba550312a59136d870388d66f1da/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f707265766965772d6f6e6c696e652d626c75653f7374796c653d666f722d7468652d6261646765" alt="Preview"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A pure CSS art project that visualizes a bowl of &lt;strong&gt;arroz caldo&lt;/strong&gt; (Filipino chicken rice soup) with interactive toppings. Every visual element — from the broth's simmering glow to the steam rising from the bowl — is crafted with CSS. JavaScript plays only a supporting role, toggling class names to reveal ingredients.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🎨 Features&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pure CSS Art&lt;/strong&gt; — All visual effects (gradients, shadows, transforms) are pure CSS&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Container Query Responsive&lt;/strong&gt; — Scales beautifully from mobile to large displays&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interactive Toppings&lt;/strong&gt; — Add garlic, scallion, egg, calamansi, and chili oil&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hover Previews&lt;/strong&gt; — See ghosted previews of toppings before clicking&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stir Animation&lt;/strong&gt; — Click the bowl or "Stir the pot" button for a swirling animation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Completion Celebration&lt;/strong&gt; — A golden ring pulse appears when all toppings are added&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Accessibility&lt;/strong&gt; — Full keyboard navigation and ARIA attributes&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🍲 The Bowl&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;This visualization represents…&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/larrymargerum01/devto-frontend-challenge-bowl" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Click the pot (or hit "Stir the pot") to swirl whatever's currently in the bowl. Hover a topping before clicking it — the bowl will show you a faint preview of what you're about to add. Fill all five and the rim gives you a little something back.&lt;/p&gt;

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

&lt;p&gt;I went in with a rule for myself: CSS does the drawing, CSS does the motion, JavaScript is only allowed to flip switches. No canvas, no SVG, nothing procedurally drawn by a script — if it moves or changes color, a stylesheet is responsible for it.&lt;/p&gt;

&lt;p&gt;That constraint ended up shaping almost every interesting decision in the build:&lt;/p&gt;

&lt;p&gt;The rice. Instead of eighty individual grain elements, the whole texture is one zero-size div with an box-shadow list — every grain is just an offset, a size, and a color in a single CSS property. It's a trick I'd seen in other CSS art before but never had a real reason to reach for until I needed to fill a bowl with something that had to look scattered, not gridded.&lt;/p&gt;

&lt;p&gt;The interactivity had to be honest. My first instinct was to reach for JavaScript to handle showing/hiding garnishes, but that felt like cheating the "CSS is the star" spirit of the challenge. So each topping's visibility, its pop-in bounce, even the broth quietly warming up as you add things — all of it lives in CSS transitions reacting to a class name. The JavaScript that's left is genuinely boring: it toggles a class and updates one sentence of status text. If you open dev tools, the JS file is short enough to read in ten seconds; the stylesheet is not.&lt;/p&gt;

&lt;p&gt;The hover preview was the one that made me happiest. Hovering a topping chip — before you've clicked anything — ghosts a faint preview of that ingredient into the bowl. That's :has() reaching from a button in the control rail all the way into the canvas, with zero JavaScript involved in making it happen. I didn't know I'd end up using :has() for something like this when I started; it came from wanting the bowl to feel responsive to intent, not just clicks.&lt;/p&gt;

&lt;p&gt;What I got wrong first. Everything in the bowl — every grain, every scallion ring, every chili sliver — is positioned relative to the bowl's true center, and early on I had one wrapper anchored to a corner instead of the center. Nothing looked broken, exactly, just subtly off in a way that took a while to track down, because the bug was in the coordinate system, not in any one shape. That was a good reminder that in CSS art, your math has to be as disciplined as your gradients.&lt;/p&gt;

&lt;p&gt;What I'm proud of. That the idea and the technique are actually the same thing. "Make it your own" isn't just a caption under a picture of soup — it's something you do, and everything that happens when you do it is CSS earning its keep.&lt;/p&gt;

&lt;p&gt;What's next. I'd like repeated clicks on a topping to intensify it — more chili, more garlic — and a shareable link that captures whatever bowl you've built, so you can send someone your specific combination instead of just a screenshot.&lt;/p&gt;

&lt;p&gt;Built with HTML, CSS (custom properties, container queries, :has(), the box-shadow particle technique), and just enough JavaScript to flip a few switches.&lt;/p&gt;

</description>
      <category>frontendchallenge</category>
      <category>devchallenge</category>
      <category>css</category>
    </item>
    <item>
      <title>Build Your Bowl - A CSS Only Arroz Caldo You Actually Get to Season</title>
      <dc:creator>Larry Margerum</dc:creator>
      <pubDate>Sat, 15 Aug 2026 15:32:48 +0000</pubDate>
      <link>https://dev.to/larrymargerum01/build-your-bowl-a-css-only-arroz-caldo-you-actually-get-to-season-3f3c</link>
      <guid>https://dev.to/larrymargerum01/build-your-bowl-a-css-only-arroz-caldo-you-actually-get-to-season-3f3c</guid>
      <description>&lt;p&gt;Inspiration&lt;/p&gt;

&lt;p&gt;Arroz caldo is the dish that shows up in my kitchen uninvited. Someone's sick, it's raining, a day just needs marking quietly — and there it is, ginger and rice simmering on the stove before I've really decided to make it.&lt;/p&gt;

&lt;p&gt;The thing I always loved about it growing up was that the last step was never fixed. My mother never measured the garnish. Chili if you needed heat, calamansi if you needed something sharp to cut through it, a boiled egg if the day called for something that felt like a full meal. The base was always the same. The finishing was always yours.&lt;/p&gt;

&lt;p&gt;When I saw this challenge allowed "a sprinkle of JavaScript," I didn't want to just paint a static bowl and call it a day — soup bowls are basically a genre unto themselves in CSS art at this point. I wanted to build the one thing that actually captures what makes this dish comfort food: that you get to decide what goes in it. So the bowl starts nearly bare, and you build it yourself, one click at a time.&lt;/p&gt;

&lt;p&gt;Demo&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F93nnn1em4gjozojm2nlx.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F93nnn1em4gjozojm2nlx.PNG" alt=" " width="800" height="524"&gt;&lt;/a&gt;&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhordrdw96weqz530mo53.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhordrdw96weqz530mo53.PNG" alt=" " width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body flex items-center justify-between"&gt;
        &lt;a href="https://larrymargerum-devto-frontend-bowl.pages.dev/" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;larrymargerum-devto-frontend-bowl.pages.dev&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/larrymargerum01" rel="noopener noreferrer"&gt;
        larrymargerum01
      &lt;/a&gt; / &lt;a href="https://github.com/larrymargerum01/devto-frontend-challenge-bowl" rel="noopener noreferrer"&gt;
        devto-frontend-challenge-bowl
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Dev.to Frontend Challenge - CSS Challenge project inspired by Arroz caldo
    &lt;/h3&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Click the pot (or hit "Stir the pot") to swirl whatever's currently in the bowl. Hover a topping before clicking it — the bowl will show you a faint preview of what you're about to add. Fill all five and the rim gives you a little something back.&lt;/p&gt;

&lt;p&gt;Journey&lt;/p&gt;

&lt;p&gt;I went in with a rule for myself: CSS does the drawing, CSS does the motion, JavaScript is only allowed to flip switches. No canvas, no SVG, nothing procedurally drawn by a script — if it moves or changes color, a stylesheet is responsible for it.&lt;/p&gt;

&lt;p&gt;That constraint ended up shaping almost every interesting decision in the build:&lt;/p&gt;

&lt;p&gt;The rice. Instead of eighty individual grain elements, the whole texture is one zero-size div with an box-shadow list — every grain is just an offset, a size, and a color in a single CSS property. It's a trick I'd seen in other CSS art before but never had a real reason to reach for until I needed to fill a bowl with something that had to look scattered, not gridded.&lt;/p&gt;

&lt;p&gt;The interactivity had to be honest. My first instinct was to reach for JavaScript to handle showing/hiding garnishes, but that felt like cheating the "CSS is the star" spirit of the challenge. So each topping's visibility, its pop-in bounce, even the broth quietly warming up as you add things — all of it lives in CSS transitions reacting to a class name. The JavaScript that's left is genuinely boring: it toggles a class and updates one sentence of status text. If you open dev tools, the JS file is short enough to read in ten seconds; the stylesheet is not.&lt;/p&gt;

&lt;p&gt;The hover preview was the one that made me happiest. Hovering a topping chip — before you've clicked anything — ghosts a faint preview of that ingredient into the bowl. That's :has() reaching from a button in the control rail all the way into the canvas, with zero JavaScript involved in making it happen. I didn't know I'd end up using :has() for something like this when I started; it came from wanting the bowl to feel responsive to intent, not just clicks.&lt;/p&gt;

&lt;p&gt;What I got wrong first. Everything in the bowl — every grain, every scallion ring, every chili sliver — is positioned relative to the bowl's true center, and early on I had one wrapper anchored to a corner instead of the center. Nothing looked broken, exactly, just subtly off in a way that took a while to track down, because the bug was in the coordinate system, not in any one shape. That was a good reminder that in CSS art, your math has to be as disciplined as your gradients.&lt;/p&gt;

&lt;p&gt;What I'm proud of. That the idea and the technique are actually the same thing. "Make it your own" isn't just a caption under a picture of soup — it's something you do, and everything that happens when you do it is CSS earning its keep.&lt;/p&gt;

&lt;p&gt;What's next. I'd like repeated clicks on a topping to intensify it — more chili, more garlic — and a shareable link that captures whatever bowl you've built, so you can send someone your specific combination instead of just a screenshot.&lt;/p&gt;

&lt;p&gt;Built with HTML, CSS (custom properties, container queries, :has(), the box-shadow particle technique), and just enough JavaScript to flip a few switches.&lt;/p&gt;

</description>
      <category>frontendchallenge</category>
      <category>devchallenge</category>
      <category>css</category>
    </item>
    <item>
      <title>Dreams Don't Always Arrive on Schedule.</title>
      <dc:creator>Larry Margerum</dc:creator>
      <pubDate>Wed, 15 Jul 2026 21:55:14 +0000</pubDate>
      <link>https://dev.to/larrymargerum01/dreams-dont-always-arrive-on-schedule-2dhd</link>
      <guid>https://dev.to/larrymargerum01/dreams-dont-always-arrive-on-schedule-2dhd</guid>
      <description>&lt;p&gt;A few days ago, I was sitting in front of my computer much later than I planned. The room was quiet except for my keyboard and my occasional sigh when I couldn't solve the same problem for many hours. I was working on a small project. For an experienced developer, it would probably take only a few hours, but for me, I was still trying to understand why my code was not working as expected.&lt;/p&gt;

&lt;p&gt;At one moment, I leaned back in my chair and asked myself a question:&lt;/p&gt;

&lt;p&gt;"Did I choose the wrong time to follow my dream?"&lt;/p&gt;

&lt;p&gt;It is not an easy question to ask yourself.&lt;/p&gt;

&lt;p&gt;When I first became interested in programming, I wasn't thinking about money, remote work, or becoming successful. What interested me was the fact that people can create something from their imagination. A developer can sit in front of a computer and build something that helps another person somewhere else in the world. I always thought there was something beautiful about that.&lt;/p&gt;

&lt;p&gt;I still remember the first time I wrote a program that actually worked. It was nothing special, and if I saw that code today, I would probably laugh. But at that moment, it felt like magic. For the first time, I wasn't only using technology—I was creating it.&lt;/p&gt;

&lt;p&gt;That feeling is still with me today.&lt;/p&gt;

&lt;p&gt;Over the years, I spent a lot more time learning than I expected. Sometimes I went to sleep thinking about a bug and woke up with an idea for the solution. Sometimes I forgot about time because I enjoyed building something so much. There is a special feeling when you finally solve a problem that seemed impossible before.&lt;/p&gt;

&lt;p&gt;But this journey has not been easy.&lt;/p&gt;

&lt;p&gt;Many times, I felt like I was standing in the same place while everyone else was moving forward. I would open LinkedIn or other social media and see people sharing their new jobs, promotions, and achievements while I was still trying to find my first real opportunity in the industry.&lt;/p&gt;

&lt;p&gt;And then AI became impossible to ignore.&lt;/p&gt;

&lt;p&gt;Suddenly, many people started asking if developers would still be needed in the future. Every week, there is another article or video talking about AI replacing jobs. For someone who is still trying to start a career in tech, it can feel very discouraging.&lt;/p&gt;

&lt;p&gt;There were many nights when I asked myself if I spent years learning something that might change before I even have the chance to work in this field.&lt;/p&gt;

&lt;p&gt;But every time I think about giving up, I remember that programming was never only about finding a job for me.&lt;/p&gt;

&lt;p&gt;I simply enjoy building things.&lt;/p&gt;

&lt;p&gt;I enjoy learning new technologies. I enjoy solving problems. I enjoy becoming a little better than I was yesterday.&lt;/p&gt;

&lt;p&gt;AI may change many things, but it cannot replace curiosity. It cannot replace the feeling of solving a difficult problem after many hours. And it cannot replace the dreams that people have.&lt;/p&gt;

&lt;p&gt;So, I decided to accept the uncertainty.&lt;/p&gt;

&lt;p&gt;I don't know what this industry will look like in ten years. I don't know how many applications I will send before someone gives me a chance. I don't know how many times I will doubt myself before I finally feel that I belong here.&lt;/p&gt;

&lt;p&gt;But I know one thing.&lt;/p&gt;

&lt;p&gt;Tomorrow morning, I will sit in front of my computer again.&lt;/p&gt;

&lt;p&gt;I will continue building projects. I will continue learning. I will continue trying, even on days when it feels difficult.&lt;/p&gt;

&lt;p&gt;Because dreams do not always come when we expect them to.&lt;/p&gt;

&lt;p&gt;And maybe that is okay.&lt;/p&gt;

&lt;p&gt;Maybe one day I will look back at these years and realize that they were not the years when I was falling behind.&lt;/p&gt;

&lt;p&gt;Maybe they were the years that taught me how to keep going.&lt;/p&gt;

&lt;p&gt;If you have ever felt uncertain about your future in tech, I would really like to hear your story. Sometimes, knowing that we are not alone makes a big difference.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>codenewbie</category>
      <category>devjournal</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
