DEV Community

Thanh Dat Vo
Thanh Dat Vo

Posted on

A small Vite plugin for moving heavy JSX attributes into comments

Hi everybody,
I'm a software engineer for as long as I can remember.

When working with web application frameworks, I often get tired when having to scan long JSX, mostly because of long class names.

I had an idea of writing a Vite plugin that move the classname attributes into comments above element.
For example:

  • Before
<h1 class="rounded-lg bg-blue-500 px-4 py-2 text-white">Hello Mom</h1>
Enter fullscreen mode Exit fullscreen mode
  • After
{/* @class rounded-lg bg-blue-500 */}
{/* @class px-4 py-2 text-white */}
<h1>Hello Mom</h1>;
Enter fullscreen mode Exit fullscreen mode

Beside making JSX shorter and easier to scan, this also let you try new attribute values during development while keeping the original JSX unchanged.
For example:

{/* @class rounded-lg bg-blue-500 */}
<h1 class="title">Hello Mom</h1>;
Enter fullscreen mode Exit fullscreen mode

You can try them online:

Please switch between App.before.tsx and App.after.tsx to compare the syntax


I’d love feedback from JSX users:

  • Is this syntax useful?
  • Would you use this in real projects?
  • What directives should be supported by default?

This is the plugin repo

Issues, ideas, and pull requests are welcome.

Thank you for taking a look!

Top comments (0)