Comments (5)
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.
Hi @TheSisb, we would really love to understand how Radium could make the MJML engine better.
Thanks a lot for your feedback!
from mjml.
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.
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.
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)
- Extra quotes in CSS url() from <mj-section /> background-url HOT 9
- <!--[if !mso]><!--> mso conditional statement not being exported correctly HOT 2
- mj-columns in gmail looking as mobile view not flexed HOT 1
- mj-include tag throwing errors on style import and imports in the head tag HOT 5
- Can't get keepComments flag to work HOT 4
- Image width in outlook is overflowing HOT 2
- Issues with rendering in outlook HOT 1
- DeprecationWarning: The `punycode` module is deprecated on node 21 HOT 2
- "try it live"-Function now not working any more HOT 1
- New Twitter X logo not being rendered with <mj-social-element name="x" href="#"> HOT 1
- Just the basics HOT 3
- Navbar without hamburger unnecessary css HOT 1
- `mj-font` only emits the last style sheet for the font family HOT 1
- Font sizes increase in Gmail on iPhone XS HOT 6
- Append invisible characters to <mj-preview> HOT 1
- CORS request did not succeed, missing CORS header (mjml/api) HOT 2
- `mjml2html` render in web worker throws `Uncaught ReferenceError: window is not defined`
- Support DATA variable in href or button HOT 1
- Icon with text/Column within Column HOT 1
- Dependency: html-minifier REDoS vulnerability HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mjml.