Giter Club home page Giter Club logo

Comments (5)

iRyusa avatar iRyusa commented on July 17, 2024

Hey @TheSisb, thanks for opening this issue, we appreciate your involvement!

Radium looks really nice, however I think it's too much overhead for our case.
It has cool features to scope css and support multiple styling states, but I think we don't need those for standard components.
Can you provide an example on how you could integrate Radium in a simple MJML component like mj-text ?
But Radium isn't the only solution, and we may need to rework the way we handle default attributes, default css and markup css to a simpler solution.

Does it make sense to you?

from mjml.

arnaudbreton avatar arnaudbreton commented on July 17, 2024

Hi @TheSisb, we would really love to understand how Radium could make the MJML engine better.
Thanks a lot for your feedback!

from mjml.

TheSisb avatar TheSisb commented on July 17, 2024

Sorry for the delayed response. I see that rather than using inline-styles, you use attributes to the same effect. What you're doing is somewhat similar yet much more basic than what Radium provides.

For a very simple case, you can take a look at this template: https://mjml.io/try-it-live/mama-mia. There are three repetitions of color="#EEE" font-family="roboto" align="center".

If we were using Radium you could have a:

const styles = {
  text: {
    color: '#eee',
    fontFamily: 'roboto',
    align: 'center'
  }
}

Then pass it to components in a standard way like this: <mj-text style={styles.text}> ...</mj-text>

With objects, suddenly you can re-use, extend, and classify styles with names. It makes the template engine look much cleaner and you can avoid having to build in the attribute extender into custom mjml components. i.e.: the getStyles function with its merge.

Radium takes these styles and renders them to inline styles anyways, so it aligns perfectly with the motive of this project.

Issues like #32 become non-issues :) Components would have defaultStyles but they would be overwritten by the passed style prop.

Hope this helps clarify some things!

from mjml.

arnaudbreton avatar arnaudbreton commented on July 17, 2024

Hi @TheSisb,

I see, sounds very interesting approach, thanks for taking the time to explaining more in details what you had in mind. For now, we're focused on improving the rendering process, the components interface, etc but will definitely consider that improvement for a future release.

Meanwhile, we would be more than happy to review a contribution from you and integrate it back in the project.

Keep you posted on our progress,
Arnaud.

from mjml.

arnaudbreton avatar arnaudbreton commented on July 17, 2024

Hey @TheSisb, we described with more details in #79 how we would like to handle this feature. Let's move the discussion there.

Thanks again for your contribution to MJML.

from mjml.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.