<?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: roynick365</title>
    <description>The latest articles on DEV Community by roynick365 (@roynick365).</description>
    <link>https://dev.to/roynick365</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%2F3891137%2Fe7f9242a-9d41-481d-b135-cbd7dac95906.png</url>
      <title>DEV Community: roynick365</title>
      <link>https://dev.to/roynick365</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/roynick365"/>
    <language>en</language>
    <item>
      <title>I got tired of fixing the same UI problems… so I built a small tool</title>
      <dc:creator>roynick365</dc:creator>
      <pubDate>Thu, 23 Apr 2026 16:59:45 +0000</pubDate>
      <link>https://dev.to/roynick365/i-got-tired-of-fixing-the-same-ui-problems-so-i-built-a-small-tool-6a</link>
      <guid>https://dev.to/roynick365/i-got-tired-of-fixing-the-same-ui-problems-so-i-built-a-small-tool-6a</guid>
      <description>&lt;p&gt;Every project I work on has the same kind of issues.&lt;/p&gt;

&lt;p&gt;Not big problems.&lt;br&gt;
Small ones.&lt;/p&gt;

&lt;p&gt;A button that says “Go” instead of something meaningful&lt;br&gt;
Spacing that feels slightly off&lt;br&gt;
A layout that works… but doesn’t feel clear&lt;br&gt;
Empty states that look like placeholders&lt;/p&gt;

&lt;p&gt;Nothing is broken. But something feels unfinished.&lt;/p&gt;

&lt;p&gt;And the worst part?&lt;/p&gt;

&lt;p&gt;You notice it. But explaining what’s wrong takes longer than fixing it.&lt;/p&gt;

&lt;p&gt;The real problem&lt;/p&gt;

&lt;p&gt;UI problems are rarely technical.&lt;/p&gt;

&lt;p&gt;They’re small decisions:&lt;/p&gt;

&lt;p&gt;wording&lt;br&gt;
hierarchy&lt;br&gt;
spacing&lt;br&gt;
clarity&lt;/p&gt;

&lt;p&gt;And they keep repeating across projects.&lt;/p&gt;

&lt;p&gt;Most of the time, we fix them:&lt;/p&gt;

&lt;p&gt;late&lt;br&gt;
quickly&lt;br&gt;
inconsistently&lt;/p&gt;

&lt;p&gt;There’s no simple way to review a component and say:&lt;/p&gt;

&lt;p&gt;“Here’s exactly what’s wrong, and here’s how to improve it.”&lt;/p&gt;

&lt;p&gt;So I built something simple&lt;/p&gt;

&lt;p&gt;I made a small tool called FixMyUI.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://github.com/roynick365/fix-my-ui" rel="noopener noreferrer"&gt;https://github.com/roynick365/fix-my-ui&lt;/a&gt;&lt;br&gt;
👉 &lt;a href="https://roynick365.github.io/fix-my-ui" rel="noopener noreferrer"&gt;https://roynick365.github.io/fix-my-ui&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You paste an HTML component, and it gives you:&lt;/p&gt;

&lt;p&gt;issues ranked by severity&lt;br&gt;
an improved version&lt;br&gt;
before-and-after changes&lt;br&gt;
reasoning for each fix&lt;/p&gt;

&lt;p&gt;That’s it.&lt;/p&gt;

&lt;p&gt;Example&lt;br&gt;
Go&lt;/p&gt;

&lt;p&gt;Becomes:&lt;/p&gt;

&lt;p&gt;Get Started&lt;/p&gt;

&lt;p&gt;With explanation:&lt;/p&gt;

&lt;p&gt;“Go” is unclear. A more specific label improves usability.&lt;/p&gt;

&lt;p&gt;What makes this different&lt;/p&gt;

&lt;p&gt;This is not a UI generator.&lt;/p&gt;

&lt;p&gt;It doesn’t try to replace your UI.&lt;/p&gt;

&lt;p&gt;It helps you improve what you already have.&lt;/p&gt;

&lt;p&gt;Why I kept it simple&lt;/p&gt;

&lt;p&gt;I didn’t want another tool that does everything.&lt;/p&gt;

&lt;p&gt;I wanted something I could use during development:&lt;/p&gt;

&lt;p&gt;Paste component&lt;br&gt;
Review issues&lt;br&gt;
Apply fixes&lt;br&gt;
Continue working&lt;/p&gt;

&lt;p&gt;No setup. No learning curve.&lt;/p&gt;

&lt;p&gt;It’s still early&lt;/p&gt;

&lt;p&gt;I’m working on:&lt;/p&gt;

&lt;p&gt;better analysis for edge cases&lt;br&gt;
before/after preview&lt;br&gt;
improving output quality&lt;br&gt;
If this sounds useful&lt;/p&gt;

&lt;p&gt;Try it, break it, suggest improvements.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://github.com/roynick365/fix-my-ui" rel="noopener noreferrer"&gt;https://github.com/roynick365/fix-my-ui&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you’ve ever looked at your UI and thought&lt;br&gt;
“something feels off, but I don’t know what” - this tool is for that moment.&lt;/p&gt;

</description>
      <category>design</category>
      <category>showdev</category>
      <category>ui</category>
      <category>ux</category>
    </item>
    <item>
      <title>I built a small CSS library for UI states (because I kept rewriting the same thing)</title>
      <dc:creator>roynick365</dc:creator>
      <pubDate>Tue, 21 Apr 2026 18:07:01 +0000</pubDate>
      <link>https://dev.to/roynick365/i-built-a-small-css-library-for-ui-states-because-i-kept-rewriting-the-same-thing-27ib</link>
      <guid>https://dev.to/roynick365/i-built-a-small-css-library-for-ui-states-because-i-kept-rewriting-the-same-thing-27ib</guid>
      <description>&lt;h1&gt;
  
  
  I built a small CSS library for UI states (because I kept rewriting the same thing)
&lt;/h1&gt;

&lt;p&gt;Most UI libraries focus on buttons, forms, and layouts.&lt;/p&gt;

&lt;p&gt;But in real projects, a lot of time goes into something else:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;empty screens&lt;/li&gt;
&lt;li&gt;loading states&lt;/li&gt;
&lt;li&gt;error messages&lt;/li&gt;
&lt;li&gt;first-time user experiences&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And somehow, these are always built last.&lt;/p&gt;




&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;I noticed a pattern in almost every project I worked on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Empty states were inconsistent&lt;/li&gt;
&lt;li&gt;Loading states were rushed&lt;/li&gt;
&lt;li&gt;Error messages felt generic&lt;/li&gt;
&lt;li&gt;Onboarding screens were overthought&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nothing was technically hard — just repetitive and easy to ignore until the end.&lt;/p&gt;




&lt;h2&gt;
  
  
  So I built something small
&lt;/h2&gt;

&lt;p&gt;I created &lt;strong&gt;StateKit&lt;/strong&gt; — a lightweight CSS library focused only on UI states.&lt;/p&gt;

&lt;p&gt;No framework. No setup.&lt;/p&gt;

&lt;p&gt;Just copy and use.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://github.com/roynick365/statekit" rel="noopener noreferrer"&gt;https://github.com/roynick365/statekit&lt;/a&gt;&lt;br&gt;
👉 &lt;a href="https://roynick365.github.io/statekit/" rel="noopener noreferrer"&gt;https://roynick365.github.io/statekit/&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What it includes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Empty state&lt;/li&gt;
&lt;li&gt;Empty search&lt;/li&gt;
&lt;li&gt;Error state&lt;/li&gt;
&lt;li&gt;404 page&lt;/li&gt;
&lt;li&gt;Success state&lt;/li&gt;
&lt;li&gt;Loading spinner&lt;/li&gt;
&lt;li&gt;Loading skeleton&lt;/li&gt;
&lt;li&gt;Onboarding state&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each component is plain HTML + CSS and can be dropped into any project.&lt;/p&gt;




&lt;h2&gt;
  
  
  Example
&lt;/h2&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;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"sk-empty"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;h3&amp;gt;&lt;/span&gt;No data available&lt;span class="nt"&gt;&amp;lt;/h3&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Create your first item to get started.&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"sk-btn"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Create&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Why this exists
&lt;/h2&gt;

&lt;p&gt;I didn’t want another UI framework.&lt;/p&gt;

&lt;p&gt;I just wanted something to handle the parts that usually get rushed or overlooked.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I learned building this
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Simple tools are harder than they look&lt;/li&gt;
&lt;li&gt;Consistency matters more than complexity&lt;/li&gt;
&lt;li&gt;Most “UI problems” are actually small decisions repeated many times&lt;/li&gt;
&lt;/ul&gt;




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

&lt;ul&gt;
&lt;li&gt;More variants for each state&lt;/li&gt;
&lt;li&gt;Dark mode&lt;/li&gt;
&lt;li&gt;Accessibility improvements&lt;/li&gt;
&lt;li&gt;Possibly React wrappers&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;If you have suggestions or want to contribute:&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://github.com/roynick365/statekit" rel="noopener noreferrer"&gt;https://github.com/roynick365/statekit&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;If you’ve ever rebuilt the same empty or loading state more than once, this might help.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>frontend</category>
      <category>css</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
