webiny / webiny-js

Open-source serverless enterprise CMS. Includes a headless CMS, page builder, form builder, and file manager. Easy to customize and expand. Deploys to AWS.
https://www.webiny.com
Other
7.4k stars 613 forks source link

New Feature: Changing UI Library #1372

Closed shubham-kaushal closed 3 years ago

shubham-kaushal commented 3 years ago

This is:

Specifications

N/A

Expected Behavior

N/A

Actual Behavior

N/A

Steps to Reproduce the Problem

N/A

Detailed Description

How to replace the Material Design with new runtime CSS framework UI Library https://github.com/numldesign/numl ?

Possible Solution

Instructions required to replace the existing material design library with a new UI library smoothly without building admin from scratch.

cc @doitadrian @Pavel910

Pavel910 commented 3 years ago

Hey @shubham-kaushal, The UI is baked deeply into Webiny Admin app. All the apps use @webiny/ui package directly, and internally it uses RMWC library to work with Material. It is not possible to make it replaceable for a very simple reason: if we want to make it replaceable, all UI libraries in the world need to follow the same API and accept the same props, follow the same hierarchy of components, etc. which of course - will never happen.

Here's a very simple example: image

How would you approach making this replaceable? In theory, we would have to make these components load plugins internally - which is possible. But, how would you handle the hierarchy and props? Your UI library would have to match the hierarchy 1:1.

It's something we thought about on many occasions, but it's a very serious problem; one that most likely will never be solved.


The only possible solution for you, is to fork this repo and replace all UI with whatever you want. It's A LOT of work, but there is no other way.