Issue #2454💬 AnsweredOpened December 12, 2019by ghost0 reactions

Setting border radius with an 'em' value.

快速解答by artf

How do you init/update the Style Manager?

Read full answer below ↓

Question

Hi

I am trying to use grapesjs for a project that needs to scale to the display. I have things like margins and fonts doing it fine but I want to only let the user specify border radius in em units so the they will scale too.

This would required the options for the units in the various border radius inputs to include 'em' as an option. I have managed to change the unit list for font size (removing all but em) but I can't seem to do it for the radius.

Has anyone achieved this already and can share this with me?

thanks

Darren B.

Answers (3)

artfDecember 14, 2019

How do you init/update the Style Manager?

ghostDecember 15, 2019
代码片段TEXT
Hi . like this (for the fonts)

editor.on('load', function () {
....
styleManager = editor.StyleManager;
fontSize = styleManager.getProperty('typography', 'font-size');
units = ["em"];
fontSize.set('units', units);
styleManager.render();
....
}

In the above case, I want em as the only size option. I need to do the same with the radius setting as everything needs relative scaling.

thanks
artfDecember 17, 2019

Ok, if you're updating via API you can do this:

const sm = editor.StyleManager;
// By default configuration, grapesjs has 2 `border-radius` properties, 1 for all sides
// and one of `composite` type with 4 inputs, so `getProperty` will return 
// an array with 2 types. I'm selecting the second one as it's a bit more complex
// than the first one (a simple input)
const brProperty = sm.getProperty('decorations', 'border-radius')[1];
// Now you have to update inner properties (`border-top-left-radius`, ...)
brProperty.get('properties').forEach(property => property.set('units', ['em']))

Related Questions and Answers

Continue research with similar issue discussions.

Paid Plugins That Match This Issue

Curated by issue keywords and label relevance to help you ship faster.

View all plugins

Loading paid plugin recommendations...

Free option

Check the open-source GrapesJS plugins on GitHub or run a quick search in our free catalog.

Browse free plugins →
Premium option

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.

All tutorials →

Browse Plugin Categories

Jump directly to plugin category pages on the marketplace.