Style Manager doesn't display multiple rules for the same class
Not a bug, the style manager handles only one rule at a time, if you want more advanced usage, you can use the API and implement your functionalities (eg. selecting different rules with the same selector)
Read full answer below βQuestion
GrapesJS version
- I confirm to use the latest version of GrapesJS
What browser are you using?
Firefox
Reproducible demo link
https://jsfiddle.net/497zkrpm/1/
Describe the bug
How to reproduce the bug?
- Select the "Hello World" component
- Open the Style Manager and make sure "myclass" is checked in the classes section
- Check the values for the "height" and "background-color" properties
What is the expected behavior?
The Style Manager should reflect all rules associated with the selected class (in this case .myclass {height: 100px} and .myclass {background-color: green}
What is the current behavior?
The Style Manager only reflects the first rule associated with the selected class (in this case: .myclass {height: 100px}
https://github.com/GrapesJS/grapesjs/assets/14164766/1a8dccad-1314-4291-8644-b8438cc0126e
Code of Conduct
- I agree to follow this project's Code of Conduct
Answers (3)
Not a bug, the style manager handles only one rule at a time, if you want more advanced usage, you can use the API and implement your functionalities (eg. selecting different rules with the same selector)
Not a bug, the style manager handles only one rule at a time, if you want more advanced usage, you can use the API and implement your functionalities (eg. selecting different rules with the same selector)
I see. Would you mind elaborating a little on how to go about that?
Also, it doesn't seem like the style manager does handle only one rule at a time; since when I select a class I see property/value settings that were applied to the ID, and vice-versa.
Thanks for reporting this, @MaxDBenson.
Great question about Style Manager doesn't display multiple rules for the same class. The recommended approach with StyleManager 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 #6659
Symbol styles not synced
GrapesJS version [x] I confirm to use the latest version of GrapesJS What browser are you using? Firefox 145.0 (64-bit) Reproducible demo l...
Issue #4897
component:styleUpdate / component:styleUpdate:propertyName not fired
GrapesJS version [X] I confirm to use the latest version of GrapesJS What browser are you using? Edge 109.0.1518.70 Reproducible demo link...
Issue #4601
update() of custom types added to StyleManager is no more triggered when switching between some targets.
GrapesJS version [X] I confirm to use the latest version of GrapesJS What browser are you using? Chromium 104 Reproducible demo link https:...
Issue #6458
sector.setName doesn't work
GrapesJS version [x] I confirm to use the latest version of GrapesJS What browser are you using? Chrome Reproducible demo link https://jsfi...
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.