-
-
Notifications
You must be signed in to change notification settings - Fork 32.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Provide a version of the components without any styles #6218
Comments
@kof Thanks for starting this discussion. You have opened quite some interesting issues lately. |
Exactly, I called it naked ui, it should be just core stuff required for every theming/ux.
I think a lot more is not really material-ui specific but generic and we can do more generic if we use variants #6130 |
For e.g. the components innside of internal/** look like mostly generic also I see more stuff can become generic. |
Just from what I have looked into: Form, Divider, Avatar, Icon, Input and probably lots of others can be also generic nacked components and mui just a theme + variants on top. |
Thanks for clarifying your motivation.
|
In order to achieve naked components we would need to implement #6130 first anyways. Also naked components would need some core styles, theme unrelated. |
Reminds me of Reapp -the very first React component library I tried for the personal project that ultimately led to my involvement in Material-UI. :-) (In fact, I'm almost certain I discovered React from it, not the other way around!). The components had no inherent styling (https://github.com/reapp/reapp-ui/tree/master/src/components, and a theme included the style objects for each component: https://github.com/reapp/reapp-ui/tree/master/src/themes/ios/styles Only the iOS theme was developed, but the intention was that it could support Material Design, or other styles. I think there was a certain naivety in that, since looking at the more complicated components in Material-UI such as the pickers (as malformed as they may be), some of the sub-component hierarchy and functionality is dictated by the design that the component is aiming to meet. Making that generic could be tricky. (Not impossible, but certainly an added burden.). All that said, I'm certainly on-board with the idea in principal, but I'll leave it to those smarter than me to figure out the implementation details. |
Yeah, such complex components like Datepicker are hard to make generic and probably not a good idea too. They may be implemented within material-ui but using all the generics from the nacked library. A nacked library can provide though all necessary parts for it, so that assembling own custom picker is not as hard any more. |
I like this. 👍 In a perfect world we'd have a style-independent repository with core-components that we can use across multiple projects with theme adapters. (Like a material theme, a bootstrap theme...). There is this repository : https://github.com/react-component/ which follow more or less the same idea, minus the styles that don't seem "open". |
If it is gonna take years to implement, I really don't think it is a good path to follow. I'd rather have material-ui focus only on material design component implementation with react. |
@stunaz I agree we should focus on porting more components to the next branch first and make them fully in line with Material Design guidelines. Also improve their APIs and generally make them more robust. This is a great idea though and I'd love to see it implemented. Especially after reading #6130 |
This is about next steps, for sure we need to release "next" first. |
In case it could serve as inspiration, I remember the angular team coming up with what they call "a CDK" for their material UI library. https://blog.angular.io/a-component-dev-kit-for-angular-9f06e3b4b3b4 |
An update on the priorities. We plan to push this as soon as v5 has made enough progress. We will work on it hand in hand with #22485 to have a healthy constraint. |
Status update: I recently joined the core team and unstyled components are my main focus. You can follow our progress in mui/base-ui#10. |
I read this issue as a newbie today and i cannot understand how developers follow a specific feature for more than 5+ years as it seems really complex .is there any meaningful way for me to contribute to this feature ? |
@antariksh17 The answer is linked in the comment above yours: mui/base-ui#10 |
I am closing this as it's not in scope of Material UI. The work should be tracked in https://github.com/mui/base-ui |
This issue has been closed. If you have a similar problem but not exactly the same, please open a new issue. Note @kof How did we do? Your experience with our support team matters to us. If you have a moment, please share your thoughts in this short Support Satisfaction survey. |
The issue that continues this one: mui/base-ui#10. |
Material-UI as "material to build UI", not "material design"!
I am wondering if it would make any sense to extract the core components of material-ui in a separate, completely non-opinionated and naked library and make all material-ui specific design decisions a theme + stuff like Ripple.
As an outcome I would expect:
The text was updated successfully, but these errors were encountered: