CorentinTh / it-tools

Collection of handy online tools for developers, with great UX.
https://it-tools.tech
GNU General Public License v3.0
22.76k stars 2.75k forks source link

[ui-lib] Switching to a custom ui lib and get rid of naive-ui #400

Open CorentinTh opened 1 year ago

CorentinTh commented 1 year ago

I want to get ride of the naive-ui library and make a custom internal mini ui library. This issue is to track the progress of this task and give the reason why I want to do it.

Why ?

How ?

The idea is to make a custom ui library in the src/ui folder, and use it in the app (the devx is really pleasing thanks to auto import and auto complete). A preview of the components can be found at localhost:3000/c-lib/c-button (only in dev mode, it's not deployed on the website or in the bundles).

So we need to replace all the naive-ui components by the custom ones. Naive-ui is used in the whole app, it's a big task and I don't want a big bang change, so we'll iterate until the dependency can be removed.

And as naive-ui components are prefixed by an n (like n-button), I will prefix the custom components by a c (like c-button).

Follow up

adarsh4d commented 4 months ago

Would you be interested in standardizing the UI of all the tools?

Reason for the proposal

Given there are a large number of tools, the same functionality in different tools is implemented differently. For example,

Design change

The following design tries to improve the overall usability of the app by separating the information into two sections,

  1. The first section is to configure the input for the tool
  2. The second section is where we get the output, it is where we can change the quantity, refresh, copy, etc...

image

A few other tool sections: image image image

The side panel is updated to match the new design style, if it is not needed, can be ignored.

Figma prototype link: https://www.figma.com/proto/CY4DPc3p8kWGFwVjaAusl1/Untitled?page-id=0%3A1&node-id=21-2431&t=TIW1xDQp8uliCuJq-0&scaling=contain&content-scaling=responsive&starting-point-node-id=14%3A323&hide-ui=1

I am happy to contribute both in the design and development of components and organizing the layout. Please check here if you would like to see the components I built earlier https://koladesign.netlify.app. Happy to discuss if you have any questions.