<?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: Martin Ruiz</title>
    <description>The latest articles on DEV Community by Martin Ruiz (@sr3pp).</description>
    <link>https://dev.to/sr3pp</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%2F3839089%2Fa605d09c-48c4-4c15-a64c-9a95df45f6c6.png</url>
      <title>DEV Community: Martin Ruiz</title>
      <link>https://dev.to/sr3pp</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sr3pp"/>
    <language>en</language>
    <item>
      <title>I built a visual theme editor for Nuxt UI (stop editing CSS variables by hand)</title>
      <dc:creator>Martin Ruiz</dc:creator>
      <pubDate>Mon, 23 Mar 2026 02:10:31 +0000</pubDate>
      <link>https://dev.to/sr3pp/i-built-a-visual-theme-editor-for-nuxt-ui-stop-editing-css-variables-by-hand-2li8</link>
      <guid>https://dev.to/sr3pp/i-built-a-visual-theme-editor-for-nuxt-ui-stop-editing-css-variables-by-hand-2li8</guid>
      <description>&lt;h2&gt;
  
  
  🚧 The problem
&lt;/h2&gt;

&lt;p&gt;If you've ever customized themes in Nuxt UI, you probably ended up doing something like this:&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="nd"&gt;:root&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="py"&gt;--ui-primary&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#ff5a1f&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;--ui-secondary&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#00b8d9&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;It works… but let's be honest:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;❌ It’s slow&lt;/li&gt;
&lt;li&gt;❌ It’s not visual&lt;/li&gt;
&lt;li&gt;❌ You have to constantly refresh to see changes&lt;/li&gt;
&lt;li&gt;❌ Hard to experiment with colors&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I found myself tweaking values again and again just to get something that &lt;em&gt;looks right&lt;/em&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  💡 The idea
&lt;/h2&gt;

&lt;p&gt;I wanted a way to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🎨 Change colors visually&lt;/li&gt;
&lt;li&gt;⚡ See updates instantly&lt;/li&gt;
&lt;li&gt;🧩 Work with tokens that map to CSS variables&lt;/li&gt;
&lt;li&gt;📦 Export something usable in real projects&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So I built a small tool for it.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 The solution
&lt;/h2&gt;

&lt;p&gt;👉 &lt;a href="https://nuxtthemes.dev" rel="noopener noreferrer"&gt;https://nuxtthemes.dev&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;visual theme editor for Nuxt UI&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What it does:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Live preview while editing tokens&lt;/li&gt;
&lt;li&gt;Supports light &amp;amp; dark modes&lt;/li&gt;
&lt;li&gt;Generates theme tokens you can map to CSS variables&lt;/li&gt;
&lt;li&gt;No setup needed&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧩 How it fits with Nuxt UI
&lt;/h2&gt;

&lt;p&gt;Nuxt UI themes are based on CSS variables.&lt;/p&gt;

&lt;p&gt;This tool helps you visually define your color tokens, which you can then map to your CSS variables in your project.&lt;/p&gt;

&lt;p&gt;So instead of guessing values manually, you can design them visually and plug them into your existing setup.&lt;/p&gt;

&lt;p&gt;👉 Design your theme visually, then plug it into your CSS variables.&lt;/p&gt;




&lt;h2&gt;
  
  
  🎬 Quick 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.amazonaws.com%2Fuploads%2Farticles%2Fhmqmlfjhbyg3q4xljgaj.gif" 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%2Fhmqmlfjhbyg3q4xljgaj.gif" alt=" " width="720" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Suggested flow:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Change primary color&lt;/li&gt;
&lt;li&gt;UI updates instantly&lt;/li&gt;
&lt;li&gt;Copy/export tokens&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  🧠 Why I built it
&lt;/h2&gt;

&lt;p&gt;I’m working a lot with Nuxt and component systems, and I realized that:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Most theme systems are powerful… but not ergonomic.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We’re still editing raw CSS variables for something that is inherently visual.&lt;/p&gt;

&lt;p&gt;This tool is my attempt to bridge that gap.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚙️ Tech stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Nuxt 3&lt;/li&gt;
&lt;li&gt;Nuxt UI&lt;/li&gt;
&lt;li&gt;AI palette generation (powered by Gemini)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔥 What’s next
&lt;/h2&gt;

&lt;p&gt;I’m thinking about adding:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Export as CSS variables&lt;/li&gt;
&lt;li&gt;Shareable theme links&lt;/li&gt;
&lt;li&gt;Community gallery&lt;/li&gt;
&lt;li&gt;Nuxt module integration (&lt;code&gt;nuxi module add ...&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;More advanced token control&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🙌 Feedback welcome
&lt;/h2&gt;

&lt;p&gt;This is still an early version, so I’d love to hear:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What’s missing?&lt;/li&gt;
&lt;li&gt;What feels confusing?&lt;/li&gt;
&lt;li&gt;What would make this part of your workflow?&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  👉 Try it
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://nuxtthemes.dev" rel="noopener noreferrer"&gt;https://nuxtthemes.dev&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you find it useful, let me know 🙌&lt;/p&gt;

</description>
      <category>nuxt</category>
      <category>vue</category>
      <category>nuxtui</category>
      <category>themes</category>
    </item>
  </channel>
</rss>
