Expand my Community achievements bar.

SOLVED

AEM Style system not working

Avatar

Community Advisor

Style classes are not mapping onto component when applied from AEM style options, but these classes are working fine when placed in Html directly. I have checked we-retail there styles are working fine. 

Topics

Topics help categorize Community content and increase your ability to discover relevant content.

6.5
1 Accepted Solution

Avatar

Correct answer by
Employee

Hello @santhosh_kumark,

As per the Decoration Tag documentation​:

 

The behavior of the wrapping DIV can be controlled via the HTL that embeds the component. To make sure the wrapping DIV (and corresponding layout & style classes) are added, you must specify the "decoration=true" option as follows:

 

<sly data-sly-resource="${'list'@ resourceType='weretail/components/content/list', decoration=true}"></sly>

 

Version 2 of the core components is fully enabled to take advantage of the style system and requires no additional configuration.

Follow the steps to enable the style system for your own custom components or to extend the version 1 core components to utilize the feature.

 

In order for a component to work with AEM's style system and show the style tab in its design dialog, the component developer must include that tab from the product with the following settings on the component:

  • path = "/mnt/overlay/cq/gui/components/authoring/dialog/style/tab_design/styletab"
  • sling:resourceType = "granite/ui/components/coral/foundation/include"

 

With the component configured, the styles configured by the page authors will be automatically inserted by AEM on the decoration element that AEM automatically wraps around every editable component. The component itself need not do anything else to make this happen.

 

Thanks!!

View solution in original post

2 Replies

Avatar

Community Advisor

@santhosh_kumark What type of component is it, Container or standalone? How are you adding that component to page, using Layout container OOTB or any custom parsys/responsivegrids?

 

Style system depends on the wrapper DIV which gets generated by default. Please check your implementation if you are truncating the wrapper div by any chance.

 

IF you are using any custom way to render component, make sure you include wrapper div as below:-

 

<sly data-sly-resource="${'comp-name' @ resourceType='RESOURCETYPE', decorationTagName='div', cssClassName='comp-name'}" />

Avatar

Correct answer by
Employee

Hello @santhosh_kumark,

As per the Decoration Tag documentation​:

 

The behavior of the wrapping DIV can be controlled via the HTL that embeds the component. To make sure the wrapping DIV (and corresponding layout & style classes) are added, you must specify the "decoration=true" option as follows:

 

<sly data-sly-resource="${'list'@ resourceType='weretail/components/content/list', decoration=true}"></sly>

 

Version 2 of the core components is fully enabled to take advantage of the style system and requires no additional configuration.

Follow the steps to enable the style system for your own custom components or to extend the version 1 core components to utilize the feature.

 

In order for a component to work with AEM's style system and show the style tab in its design dialog, the component developer must include that tab from the product with the following settings on the component:

  • path = "/mnt/overlay/cq/gui/components/authoring/dialog/style/tab_design/styletab"
  • sling:resourceType = "granite/ui/components/coral/foundation/include"

 

With the component configured, the styles configured by the page authors will be automatically inserted by AEM on the decoration element that AEM automatically wraps around every editable component. The component itself need not do anything else to make this happen.

 

Thanks!!