AEM Forms 6.3 - guidetheme2 css being included

James_R_Green

31-10-2018

Hi,

I want to remove all default css from my forms as it is clashing with the CSS for the project.

I can see a CSS file I want to stop being included in the following in the HTML:

I matched this up to the JSP file in the guidecontainer via  /libs/fd/af/components/guideContainer/guideContainer.jsp

This calls /libs/fd/af/components/guideContainer/includeTheme.jsp which does the following:

        String themeOverride = request.getParameter(GuideThemeConstants.PARAMETER_THEME_OVERRIDE);

        if(StringUtils.isBlank(themeOverride)){

            themeOverride = (String) request.getAttribute(GuideThemeConstants.PARAMETER_THEME_OVERRIDE);

        }

        else{

            //We are appending "jcr:content" because 'themeOverride' parameter gives path to theme resource and not it's content resource

            themeOverride += GuideThemeConstants.RELATIVE_PATH_JCR_CONTENT;

        }

        String pageFallbackClientlib = (String) request.getAttribute(GuideConstants.PAGE_FALLBACK_CLIENTLIB_CATEGORY);

        ThemeClientLibData clientLibData = GuideThemeUtils.getClientLibNames(resource, themeOverride, pageFallbackClientlib);

        if(clientLibData.getCommonClientLib() != null) {%>

            <cq:includeClientLib  css="<%=clientLibData.getCommonClientLib()%>"/>

        <%} %>

Outputting the variables involved into the html for debugging I can see that the following:

themeOverride =  /content/dam/formsanddocuments-themes/<MY_THEME>/jcr:content

pageFallbackClientlib = guide.theme2.default

clientLibData.getCommonClientLib() = guide.theme2.common

Here is where I am stuck....given the parameters being passed to clientLibData.getCommonClientLib()  would we expect guide.theme2.common.

  • Can I prevent guide.theme2.common being included without overlaying the guideContainer?
  • I would be interested to know what clientLibData.getCommonClientLib()  does - but don't have the source.

Can anyone help?

Thanks,

Jim

Accepted Solutions (1)

Accepted Solutions (1)

lesutton1

22-11-2018

FYI, I created a client library with the reset css that was applied to the form and it looked like it did a decent reset on all the objects in the form. Note that if you will need to apply this on and off in crx though as the touch ui editor won't work after this is applied so add it at runtime or edit your template to only add the CSS at runtime.

GitHub - jtrost/Complete-CSS-Reset: This CSS file resets all styles for every HTML tag.

Screen Shot 2018-11-22 at 9.29.15 AM.png

Answers (9)

Answers (9)

Mayank_Gandhi

Employee

02-11-2018

Jquery has always been a good friend to me as well when it come to solving DOM problems.

I can check internally for the second part of the question, Please expect something by early next week.

Thanks,

mayank

James_R_Green

22-11-2018

Nice.

If this does what it says then this also fixes another issue that I have:

When my form is embedded on a site page the css from the rest of the site is clashing with my form styles.

Applying this reset on my form would potentially solve that issue too.

Thanks for sharing lesutton1​ I will test it out and update the answer if it works as expected.

lesutton1

22-11-2018

I'd probably approach this with a 'browser reset' type of approach where you have an intermediary reset that is applied to your form CSS prior to your css being added. Much like the browser resets that are out here but adapted to your forms.

What's the framework that you're using for your site pages that you'd like to have the forms adapt to?

James_R_Green

02-11-2018

Hi,

I have a workaround but I don't particularly like it.

Once the document is ready, I use JQuery to remove the stylesheets:

/etc/clientlibs/fd/af/guidetheme2/default.css

/etc/clientlibs/fd/af/guidetheme2/common.css

Urgh!

Mayank Gandhismacdonald2008

Would be great if it was possible in future versions of AEM Forms to remove the default styling altogether. Although good for demo purposes, for production code where client's have exact expectations of style, the default css only gets in the way. Can someone query this with the dev team and see if it can be put in as a feature please?

Thanks.

Jim

James_R_Green

01-11-2018

Mayank Gandhi

I removed the reference to the theme from both the form and the aem form component. I thought that this resolved the issue, but unfortunately the following 2 css files are still included ...

/etc/clientlibs/fd/af/guidetheme2/default.css

/etc/clientlibs/fd/af/guidetheme2/common.css

Can you tell me how to create a form with none of the OOTB styling?

Thanks,

Jim

James_R_Green

31-10-2018

Hi Mayank,

Yes the form also references a "blank" theme I created and edited outside of aem(yes I know its hacky but this is a test) in an atrempt to remove all ootb css overrides applied.

Happy to change approach, my goal is to remove all of the ootb styling  as it clashed with the css we are using. Feel free to restart the thought process. How would you achieve this?