dojo / meta

:rocket: Dojo - meta information for the project.
Other
226 stars 50 forks source link

Support for third-party theming systems? #85

Closed dylans closed 6 years ago

dylans commented 7 years ago

Should we provide a way to use third-party theme systems with Dojo 2? e.g. bootstrap, material design, etc.? I see this as somewhat orthogonal to CSS modules and the default theme implementation.

Use case: Someone is migrating an app from something else where they've leveraged a CSS framework, and we want to minimize their efforts in making the new app look and feel like their old app?

rahmanha commented 7 years ago

This will be a very nice feature for Dojo. For instance, I use Bootstrap and like its “responsive web design” property a lot. If I may use Bootstrap with Dojo, that will indeed be a great pleasure. In such case, Dojo could be a powerful engine behind Bootstrap. Accordingly. I think having a feature of a pluggable third-party theming system mechanism for Dojo will significantly increase its usefulness. My hunch is, it can be accomplished by extending the new Widget system of Dojo 2.

sebilasse commented 7 years ago

loving semantic-ui.com ( http://websemantics.github.io/semantic-dojo/ ) and the idea of https://react.semantic-ui.com and I think http://typestyle.io/#/ has a pretty nice API (also regarding server side rendering)

kitsonk commented 6 years ago

I feel this is a really long grass item and rather vague. Supporting n number of 3rd party themes is rather impractical. If there is a desire for supporting a particular 3rd party theme, then we should open a specific issue in widgets-core and even then, it is likely to be much more of a widget community effort to do that, which can be done one off by creating a map that would be something like this:

{
    "dojo-button": { "root": "some-other-class-name" }
}

That would be loaded and supplied as the theme option to a widget properties.

We may create tooling which provides the sort of structure for a theme, but again that is in the long grass.