Adobe Experience Manager AEM () cuenta con una interfaz de usuario táctil con diseño interactivo para el entorno de creación diseñado para funcionar tanto en dispositivos táctiles como de escritorio.
AEM La interfaz de usuario táctil es la interfaz de usuario estándar para los usuarios de la interfaz de usuario con capacidad de. AEM La IU clásica ha quedado obsoleta con la versión 6.4 de.
La IU táctil incluye lo siguiente:
AEM Casi toda la funcionalidad de la se ha trasladado a la interfaz de usuario táctil. Sin embargo, en algunos casos limitados, la funcionalidad vuelve a la IU clásica. Consulte Estado de función de IU táctil para obtener más información.
La IU táctil ha sido diseñada por Adobe para proporcionar coherencia en la experiencia del usuario en varios productos. Se basa en:
Los principios básicos de la IU táctil son los siguientes:
Para obtener más información general sobre la estructura de la IU táctil, consulte AEM Estructura de la interfaz de usuario táctil de la.
AEM Utiliza la plataforma Granite como base y la plataforma Granite incluye, entre otras cosas, el repositorio de contenido Java™.
Granite es la pila web abierta de Adobe, que proporciona varios componentes, incluidos:
Granite se ejecuta como un proyecto de desarrollo abierto dentro del Adobe: las contribuciones al código, las discusiones y los problemas se realizan desde toda la compañía.
Sin embargo, Granite es no un proyecto de código abierto. Se basa principalmente en varios proyectos de código abierto (Apache Sling, Felix, Jackrabbit y Lucene en particular), pero el Adobe traza una línea clara entre lo que es público y lo que es interno.
La plataforma de ingeniería de Granite también proporciona un marco de trabajo de base de interfaz de usuario. Los principales objetivos de esto son:
Estos cumplen con los requisitos:
GraniteUI.pdf
Obtener archivo
La IU de Granite:
La comunicación cliente-servidor en la interfaz de usuario de Granite consiste en hipertexto, no en objetos, por lo que no es necesario que el cliente comprenda la lógica empresarial
Utiliza una extensión del vocabulario del HTML, siempre que el autor pueda expresar su intención de crear una aplicación web interactiva. Este es un enfoque similar al de WAI-ARIA y microformatos.
Consiste principalmente en una colección de patrones de interacción (por ejemplo, el envío asincrónico de un formulario) que interpretan los códigos JS y CSS y que se ejecutan del lado del cliente. La función del lado del cliente es mejorar el marcado (dado que el servidor permite el uso de hipermedios) para la interactividad.
El lado del cliente es independiente de cualquier tecnología de servidor. Siempre que el servidor proporcione el marcado adecuado, el lado del cliente puede cumplir su función.
Actualmente, los códigos JS y CSS se entregan como Granite clientlibs en la categoría:
granite.ui.foundation and granite.ui.foundation.admin
Se entregan como parte del paquete de contenido:
granite.ui.content
Se forma mediante una colección de componentes de sling que permiten al autor componer una aplicación web rápida. Cuando el desarrollador desarrolla componentes, el autor los monta para que sean una aplicación web. La función del lado del servidor es proporcionar la asequibilidad de los hipermedios (marcado) al cliente.
Actualmente, los componentes están en el repositorio de Granite en:
/libs/granite/ui/components/foundation
Esto se entrega como parte del paquete de contenido:
granite.ui.content
Las diferencias entre la interfaz de usuario de Granite y ExtJS (utilizadas para la IU clásica) también son de interés:
ExtJS | Granite UI |
Llamada a procedimiento remoto |
Transiciones de estado |
Objetos de transferencia de datos | Hipermedia |
El cliente conoce los internos del servidor | El cliente no conoce los datos internos |
"Cliente gordo" | "Cliente ligero" |
Bibliotecas de cliente especializadas | Bibliotecas de cliente universales |
El Componentes de base de Granite UI proporcionan los componentes básicos necesarios para crear cualquier interfaz de usuario. Entre ellos se incluyen:
Los componentes de base se encuentran en:
/libs/granite/ui/components/foundation
Esta biblioteca contiene un componente de la interfaz de usuario de Granite para cada elemento de Coral. Un componente depende del contenido y su configuración reside en el repositorio. Esto permite crear una aplicación de Granite UI sin tener que escribir manualmente el marcado del HTML.
Función:
Implementación:
Otras bibliotecas pueden utilizar o ampliar esta biblioteca de componentes de base.
Al actualizar el código ExtJS para utilizar la interfaz de usuario de Granite, la siguiente lista proporciona una descripción general práctica de los xtype de ExtJS y los tipos de nodo con sus tipos de recursos de interfaz de usuario de Granite equivalentes.
xtype de ExtJS | Tipo de recurso de Granite UI |
---|---|
button |
granite/ui/components/foundation/form/button |
checkbox |
granite/ui/components/foundation/form/checkbox |
componentstyles |
cq/gui/components/authoring/dialog/componentstyles |
cqinclude |
granite/ui/components/foundation/include |
datetime |
granite/ui/components/foundation/form/datepicker |
dialogfieldset |
granite/ui/components/foundation/form/fieldset |
hidden |
granite/ui/components/foundation/form/hidden |
html5smartfile, html5smartimage |
granite/ui/components/foundation/form/fileupload |
multifield |
granite/ui/components/foundation/form/multifield |
numberfield |
granite/ui/components/foundation/form/numberfield |
pathfield, paragraphreference |
granite/ui/components/foundation/form/pathbrowser |
selection |
granite/ui/components/foundation/form/select |
sizefield |
cq/gui/components/authoring/dialog/sizefield |
tags |
granite/ui/components/foundation/form/autocomplete cq/gui/components/common/datasources/tags |
textarea |
granite/ui/components/foundation/form/textarea |
textfield |
granite/ui/components/foundation/form/textfield |
Tipo de nodo | Tipo de recurso de Granite UI |
---|---|
cq:WidgetCollection |
granite/ui/components/foundation/container |
cq:TabPanel |
granite/ui/components/foundation/container granite/ui/components/foundation/layouts/tabs |
cq:panel |
granite/ui/components/foundation/container |
El Componentes de administración de Granite UI generar componentes de base para proporcionar bloques de creación genéricos que cualquier aplicación de administración pueda implementar. Estas incluyen, entre otras:
Función:
Implementación:
CoralUI.pdf
Obtener archivo
La IU de Coral (CUI) es una implementación del estilo visual de Adobe para la IU táctil diseñada para proporcionar coherencia en la experiencia del usuario en varios productos. La interfaz de usuario de Coral proporciona todo lo necesario para adoptar el estilo visual utilizado en el entorno de creación.
AEM Coral UI es una biblioteca de interfaz de usuario que está disponible para los clientes de los servicios de interfaz de usuario para crear aplicaciones e interfaces web dentro de los límites de su uso con licencia del producto.
Solo se permite el uso de la interfaz de usuario de Coral:
El uso de la interfaz de usuario de Coral debe evitarse en:
La interfaz de usuario de Coral es una colección de componentes básicos para el desarrollo de aplicaciones web.
Diseñado para ser modular desde el principio, cada módulo forma una capa distinta en función de su función principal. Aunque las capas se han diseñado para que se admitan entre sí, también se pueden utilizar de forma independiente si es necesario. Esto permite implementar la experiencia del usuario de Coral en cualquier entorno compatible con el HTML.
Con la interfaz de usuario de Coral, no es obligatorio utilizar un modelo o una plataforma de desarrollo en particular. El objetivo principal de Coral es proporcionar un marcado HTML 5 unificado y limpio, independiente del método real utilizado para emitir este marcado. Esto puede utilizarse para el procesamiento en el lado del cliente o del servidor, plantillas, JSP, PHP o incluso aplicaciones RIA de Flash de Adobe, por nombrar solo algunas.
Los elementos del HTML proporcionan una apariencia común para todos los elementos de la interfaz de usuario base (incluida la barra de navegación, el botón, el menú, el carril, etc.).
En el nivel más básico, un elemento HTML es una etiqueta HTML con un nombre de clase específico. Los elementos más complejos pueden estar compuestos por varias etiquetas, anidadas entre sí (de una manera específica).
El CSS se utiliza para proporcionar la apariencia real. Para que sea posible personalizar fácilmente el aspecto (por ejemplo, en el caso de la promoción de la marca), los valores de estilo reales se declaran como variables que se expanden mediante la variable MENOS preprocesador durante la ejecución.
Función:
Implementación:
Por ejemplo, el marcado:
<button class="btn btn-large btn-primary" type="button">Large button</button>
<button class="btn btn-large" type="button">Large button</button>
Se muestra como:
El aspecto se define en LESS, vinculado a un elemento por el nombre de clase dedicado (el siguiente extracto se ha abreviado en aras de la brevedad):
.btn {
font-size: @baseFontSize;
line-height: @baseLineHeight;
.buttonBackground(@btnBackground,
@btnBackgroundHighlight,
@grayDark, 0 1px 1px rgba(255,255,255,.75));
Los valores reales se definen en un archivo de variables LESS (el siguiente extracto se ha abreviado en aras de la brevedad):
@btnBackgroundHighlight: darken(@white, 10%);
@btnPrimaryBackgroundHighlight: spin(@btnPrimaryBackground, 20%);
@baseFontSize: 17px;
@baseFontFamily: @sansFontFamily;
Muchos de los elementos del HTML deben mostrar algún tipo de comportamiento dinámico, como abrir y cerrar menús emergentes. Esta es la función de los complementos de elementos, que realizan estas tareas manipulando el DOM mediante JavaScript.
Un complemento puede ser:
DIV class=dialog
DIV
o LI
elementosEl comportamiento del complemento se puede personalizar con parámetros mediante lo siguiente:
data-*
atributos vinculados al marcado del HTMLAunque el desarrollador puede seleccionar el mejor enfoque para cualquier complemento, la regla general es utilizar:
data-*
atributos para las opciones relacionadas con el diseño del HTML. Por ejemplo, para especificar el número de columnasEl mismo concepto se utiliza para implementar la validación del formulario. Para un elemento que desee validar, debe especificar el formulario de entrada requerido como formulario personalizado data-*
atributo. A continuación, este atributo se utiliza como opción para un complemento de validación.
Siempre que sea posible, se debe utilizar la validación de formularios nativos de HTML5 o expandirla.
Función:
Implementación:
data-*
atributos para personalizar el comportamientoUn extracto de marcado de ejemplo (observe las opciones especificadas como data-* atributos):
<ul data-column-width="220" data-layout="card" class="cards">
<li class="item">
<div class="thumbnail">
<img href="/a.html" src="/a.thumb.319.319..png">
<div class="caption">
<h4>Toolbar</h4>
<p><small>toolbar</small><br></p>
</div>
</div>
</li>
<li class="item">
<div class="thumbnail">
<img href="/a.html" src="/a.thumb.319.319..png">
<div class="caption">
<h4>Toolbar</h4>
<p><small>toolbar</small><br></p>
</div>
</div>
</li>
La llamada al complemento jQuery:
$('.cards').cardlayout ();
Esto se muestra como:
El cardLayout
El complemento presenta los UL
elementos en función de sus alturas respectivas y teniendo en cuenta también la anchura del padre.
Un widget combina uno o más elementos básicos con un complemento de JavaScript para formar elementos de IU de "nivel superior". Estos pueden implementar un comportamiento más complejo y también una apariencia más compleja de lo que un solo elemento podría ofrecer. Buenos ejemplos son el selector de etiquetas o los widgets de carril.
Un widget puede almacenar en déclencheur y escuchar eventos personalizados para cooperar con otros widgets de la página. Algunos widgets son widgets nativos de jQuery que utilizan los elementos HTML de Coral.
Función:
Implementación:
Ejemplo de marcado es:
<input type="text" name="tags" placeholder="Tags" class="tagManager"/>
La llamada al complemento jQuery (con opciones):
$(".tagManager").tagsManager({
prefilled: ["Pisa", "Rome"] })
El complemento emite un marcado HTML (este marcado utiliza elementos básicos, que pueden utilizar otros complementos internamente):
<span>Pisa</code>
<a title="Removing tag" tagidtoremove="0"
id="myRemover_0" class="myTagRemover" href="#">x</a></code>
<span id="myTag_1" class="myTag"><span>Rome</code>
<a title="Removing tag" tagidtoremove="1"
id="myRemover_1" class="myTagRemover" href="#">x</a></code>
<input type="text" data-original-title="" class="input-medium tagManager"
placeholder="Tags" name="tags" data-provide="typeahead" data-items="6"
autocomplete="off">
Esto se muestra como:
Esta biblioteca es una colección de complementos o funciones de ayuda de JavaScript que son:
Estos incluyen la gestión de XSS y el bus de eventos.
Aunque los complementos y widgets del elemento HTML pueden depender de la funcionalidad proporcionada por la biblioteca de utilidades, esta no puede depender en gran medida de los elementos ni de los widgets en sí.
Función:
Implementación: