创建自定义自适应表单主题 creating-custom-adaptive-form-themes
前提条件 prerequisites
- LESS(精简版CSS)框架知识
- 如何在Adobe Experience Manager中创建客户端库
- 创建自适应表单模板 用于使用您创建的主题
自适应表单主题 adaptive-form-theme
安 自适应表单主题 是一个AEM客户端库,用于定义自适应表单的样式(外观)。
您可以创建 自适应模板 并将主题应用到模板。 然后,使用此自定义模板创建 自适应表单.
创建自适应表单主题 to-create-an-adaptive-form-theme
图: 林主题示例
-
创建类型的节点
cq:ClientLibraryFolder
下/apps
节点。例如,创建以下节点:
/apps/myAfThemes/forestTheme
-
添加多值字符串属性
categories
并相应地设置其值。例如,将属性设置为:
af.theme.forest
. -
添加两个文件夹,
less
和css
,以及文件css.txt
到在步骤1中创建的节点:-
less
文件夹:包含less
变量文件,您可以在其中定义less
变量和less mixins
用于管理.css样式的URL。此文件夹由
less
变量文件,less
混合文件,less
使用mixin和变量定义样式的文件。 然后,所有这些较少的文件都将以styles.less的形式导入。 -
css
文件夹:包含.css文件,您可以在其中定义要在主题中使用的静态样式。
变量文件较少:这些文件是您在其中定义或覆盖定义CSS样式时使用的变量的文件。
自适应表单提供在以下.less文件中定义的OOTB变量:
/apps/clientlibs/fd/af/guidetheme/common/less/globalvariables.less
/apps/clientlibs/fd/af/guidetheme/common/less/layoutvariables.less
自适应表单还提供以下内容中定义的第三方变量:
/apps/clientlibs/fd/af/third-party/less/variables.less
您可以使用随自适应表单提供的较少变量,可以覆盖这些变量,也可以创建新的较少变量。
note note NOTE 导入较少预处理器的文件时,在import语句中指定文件的相对路径。 覆盖变量的示例:
code language-none @button-background-color: rgb(19, 102, 44); @button-border-color: rgb(19, 102, 44); @button-border-size: 0px; @button-padding: 10px 15px; @button-font-color: #ffffff;
覆盖
less
变量:-
导入默认自适应表单变量:
/apps/clientlibs/fd/af/guidetheme/common/less/globalvariables.less/apps/clientlibs/fd/af/guidetheme/common/less/layoutvariables.less
-
然后,导入包含被覆盖变量的较少文件。
示例新变量定义:
code language-none @button-focus-bg-color: rgb(40, 208, 90); @button-hover-bg-color: rgb(30, 156, 67);
混合文件较少: 您可以定义接受变量作为参数的函数。 这些函数的输出是生成的样式。 在不同样式中使用这些混合,以避免重复CSS样式。
自适应表单提供在以下位置定义的OOTB混合:
/apps/clientlibs/fd/af/guidetheme/common/less/adaptiveforms-mixins.less
自适应表单还提供以下定义的第三方混合:
/apps/clientlibs/fd/af/third-party/less/mixins.less
混合定义示例:
code language-none .rounded-corners (@radius) { -webkit-border-radius: @radius; -moz-border-radius: @radius; -ms-border-radius: @radius; -o-border-radius: @radius; border-radius: @radius; } .border(@color, @type, @size) { border: @color @size @type; }
Styles.less文件: 使用此文件可包含您在客户端库中需要使用的所有较少文件(变量、混合、样式)。
在以下示例中
styles.less
文件中,导入语句可以按任意顺序放置。必须使用用于导入以下.less文件的语句:
globalvariables.less
layoutvariables.less
components.less
layouts.less
code language-none @import "../../../clientlibs/fd/af/guidetheme/common/less/globalvariables.less"; @import "../../../clientlibs/fd/af/guidetheme/common/less/layoutvariables.less"; @import "forestTheme-variables"; @import "../../../clientlibs/fd/af/guidetheme/common/less/components.less"; @import "../../../clientlibs/fd/af/guidetheme/common/less/layouts.less"; /* custom styles */ .guidetoolbar { input[type="button"], button, .button { .rounded-corners (@button-radius); &:hover { background-color: @button-hover-bg-color; } &:focus { background-color: @button-focus-bg-color; } } } form { background-image: url(../images/forest.png); background-repeat: no-repeat; background-size: 100%; }
的
css.txt
包含要为库下载的.css文件的路径。例如:
code language-none #base=/apps/clientlibs/fd/af/third-party/css bootstrap.css #base=less styles.less #base=/apps/clientlibs/fd/xfaforms/xfalib/css datepicker.css listboxwidget.css scribble.css dialog.css
note note NOTE styles.less文件不是必填文件。 这意味着,如果您未定义任何自定义样式、变量或混合,则无需创建此文件。 但是,如果不创建style.less文件,则需要在css.txt文件中取消注释以下行: #base=less
并注释以下行: styles.less
-
在自适应表单中使用主题 to-use-a-theme-in-an-adaptive-form
创建自适应表单主题后,请执行以下步骤以在自适应表单中使用此主题:
-
包含在中创建的主题 创建自适应表单主题 部分,创建类型为
cq:Component
.例如,
/apps/myAfCustomizations/myAfPages/forestPage
-
添加
sling:resourceSuperType
属性并将其值设置为fd/af/components/page/base
. -
要在页面中使用主题,您需要向节点添加覆盖文件library.jsp。
然后,导入在创建本文自适应表单主题部分中创建的主题。
以下代码片段示例导入
af.theme.forest
主题。code language-none <%@include file="/libs/fd/af/components/guidesglobal.jsp"%> <cq:includeClientLib categories="af.theme.forest"/>
-
可选:在自定义页中,根据需要覆盖header.jsp、footer.jsp和body.jsp。
-
-
创建自定义模板(例如:
/apps/myAfCustomizations/myAfTemplates/forestTemplate
),其jcr:content指向在上一步中创建的自定义页面(例如:myAfCustomizations/myAfPages/forestPage)
. -
使用在上一步中创建的模板创建自适应表单。 自适应表单的外观由本文创建自适应表单主题部分中创建的主题定义。