Issue #2454Opened December 12, 2019by ghost0 reactions

Setting border radius with an 'em' value.

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, 20190 reactions

How do you init/update the Style Manager?

ghostDecember 15, 20190 reactions
Code SnippetTEXT
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, 20190 reactions

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...

Browse Plugin Categories

Jump directly to plugin category pages on the marketplace.