A border on the mj-column is shown twice in the editor
sorry, I just realized I posted this to the wrong repo. Created another issue at grapesjs-mjml.
Read full answer below ↓Question
GrapesJS version
- I confirm to use the latest version of GrapesJS
What browser are you using?
Chrome 102.0.5005.61
Reproducible demo link
https://codepen.io/adiux/pen/BaYrEXR?editors=1111
Describe the bug
How to reproduce the bug?
- Add grapesjs-mjml to the project with any version newer than 0.5.6
- Add a border to a section. E.g.:
<mj-column border="4px solid #F45E43"> - Open MJML template with grapesjs
What is the expected behavior? only one border is shown: <img width="792" alt="image" src="https://user-images.githubusercontent.com/13075514/171250244-f96c395b-5a6e-4cde-a7f4-f60d778c9a15.png">
What is the current behavior? two borders are shown: <img width="766" alt="image" src="https://user-images.githubusercontent.com/13075514/171249926-6ed65f00-c09e-4c0c-a668-94fcc59fca0d.png">
If is necessary to execute some code in order to reproduce the bug, paste it here below:
// Working
import grapesjsMjml from "https://cdn.skypack.dev/[email protected]";
// Not working
import grapesjsMjml from "https://cdn.skypack.dev/[email protected]";
import grapesjsMjml from "https://cdn.skypack.dev/[email protected]";
Note: The rendered HTML is fine. It is only an issue with the editor.
Code of Conduct
- I agree to follow this project's Code of Conduct
Answers (2)
sorry, I just realized I posted this to the wrong repo. Created another issue at grapesjs-mjml.
Thanks for reporting this, @adiux.
Great question about A border on the mj-column is shown twice in the editor. The recommended approach with GrapesJS is to use the event-driven API.
Start here:
- Check the GrapesJS documentation for your specific module
- Look for the
on()event listener method - Most operations can be achieved by listening to editor and component events
Common patterns:
// Listen for changes
editor.on('change', () => console.log('something changed'));
// Component lifecycle
editor.on('component:mount', (c) => console.log('component ready', c));
editor.on('component:update', (c) => console.log('component updated', c));
If you're still stuck:
- Share a minimal CodeSandbox reproduction
- Include what you've already tried
- Mention your GrapesJS version
- The community is here to help!
Related Questions and Answers
Continue research with similar issue discussions.
Issue #4370
LayerManager becomes unresponsive after StorageManager.load()
GrapesJS version[X] I confirm to use the latest version of GrapesJSWhat browser are you using? Chrome 102Reproducible demo link https://cod...
Issue #6654
the rich-text editor cannot be activated
GrapesJS version [x] I confirm to use the latest version of GrapesJS What browser are you using? chrome v91 Reproducible demo link https://...
Issue #5689
<> is introduced at the beginning editor.getHtml()
GrapesJS version[X] I confirm to use the latest version of GrapesJSWhat browser are you using? Chrome Version 121.0.6167.185 (Official Buil...
Issue #4094
When drag and drop block into editor in Chrome, not able to drag and drop block
GrapesJS version [X] I confirm to use the latest version of GrapesJS What browser are you using? Version 97.0.4692.71 (Official Build) (64-...
Paid Plugins That Match This Issue
Curated by issue keywords and label relevance to help you ship faster.
Loading paid plugin recommendations...
Check the open-source GrapesJS plugins on GitHub or run a quick search in our free catalog.
Browse free plugins →Premium plugins ship with support, regular updates, and production-ready features — save days of integration work.
Browse premium plugins →Related tutorials
In-depth guides on the same topic.
Tutorial
Find the Right GrapesJS Plugin in Seconds: Smarter Discovery Is Live
We're shipping a set of discovery upgrades. New label filters, a proper compatibility switch for GrapesJS vs Studio, one-click and a smarter sort bar.
Tutorial
GrapesJS vs Webflow vs Tilda: What to Choose for Your Business in 2026
Choosing the right website platform in 2026 is no longer just about building a site
Tutorial
GJS Market 2.0 - Donations, Tracking, Labels and Better Product Discovery
We’ve rolled out a new set of GrapesJS marketplace updates across GJS Market, focused on improving how creators distribute products
Browse Plugin Categories
Jump directly to plugin category pages on the marketplace.