Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
BedrockMission!

Learn more

View all

Sign in to view all badges

SOLVED

AEM Style system not working

santhosh_kumark
Community Advisor
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. 

aem6.5 components style system
1 Accepted Solution
vanegi
Correct answer by
Employee
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
Shashi_Mulugu
Community Advisor
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'}" />

vanegi
Correct answer by
Employee
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