Una guía de Lightning para gestionar registros densos: espaciado, tipografía y colores semánticos reales; un espacio de trabajo editable para casos; validación de campos y un historial de actividad que refleja los cambios locales.
Guía de OpenDesign8 capítulos40 entradas de referenciaGuía de aplicación original
01
Vista previa de la interfaz del sistema de diseño de Salesforce Lightning
Cambia la prioridad o el estado, valida una nota de actualización, guarda una entrada de actividad local y descarta un borrador posterior sin modificar el registro guardado.
Paquete nativo SLDS 2.264.1 CSS y recursos del paquete; HTML y JavaScript originales y accesibles. Sin API de Salesforce ni entorno de ejecución de Lightning. · Referencia de implementación
02
Referencia de diseño del sistema de diseño de Salesforce Lightning
CSS nativo publicado de @salesforce-ux/design-system 2.264.1 y exportación de tokens ui-force. Es una referencia fijada al plano clásico, no una afirmación de compatibilidad con el lenguaje de diseño SLDS 2 más reciente ni con un entorno de ejecución de Lightning Web Components. El repositorio histórico original está archivado.
Referencia del paquete publicado. Conserva la función indicada para el texto, la superficie o la acción en lugar de aplicar un único color de marca en todas partes.
COLOR_BACKGROUND_ALT
rgb(255, 255, 255)
Referencia del paquete publicado. Conserva la función indicada para el texto, la superficie o la acción en lugar de aplicar un único color de marca en todas partes.
COLOR_TEXT_DEFAULT
rgb(3, 45, 96)
Referencia del paquete publicado. Conserva la función indicada para el texto, la superficie o la acción en lugar de aplicar un único color de marca en todas partes.
COLOR_TEXT_WEAK
rgb(116, 116, 116)
Referencia del paquete publicado. Conserva la función indicada para el texto, la superficie o la acción en lugar de aplicar un único color de marca en todas partes.
COLOR_BORDER
rgb(201, 201, 201)
Referencia del paquete publicado. Conserva la función indicada para el texto, la superficie o la acción en lugar de aplicar un único color de marca en todas partes.
COLOR_BORDER_ERROR
rgb(234, 0, 30)
Referencia del paquete publicado. Conserva la función indicada para el texto, la superficie o la acción en lugar de aplicar un único color de marca en todas partes.
COLOR_BORDER_SELECTION
rgb(1, 118, 211)
Referencia del paquete publicado. Conserva la función indicada para el texto, la superficie o la acción en lugar de aplicar un único color de marca en todas partes.
COLOR_BACKGROUND_BUTTON_BRAND
rgb(1, 118, 211)
Referencia del paquete publicado. Conserva la función indicada para el texto, la superficie o la acción en lugar de aplicar un único color de marca en todas partes.
COLOR_BACKGROUND_BUTTON_BRAND_HOVER
rgb(1, 68, 134)
Referencia del paquete publicado. Conserva la función indicada para el texto, la superficie o la acción en lugar de aplicar un único color de marca en todas partes.
COLOR_BACKGROUND_BUTTON_BRAND_ACTIVE
rgb(3, 45, 96)
Referencia del paquete publicado. Conserva la función indicada para el texto, la superficie o la acción en lugar de aplicar un único color de marca en todas partes.
Diseño y contexto de registros del sistema de diseño de Salesforce Lightning
Mantén la identidad del registro por encima de las tareas locales
El encabezado de la página muestra el número del caso, el asunto, la cuenta y el responsable. Estos valores identifican el objeto antes de que el usuario modifique un campo. La insignia de estado resume el registro local guardado, por lo que cambia al guardar y no sigue el valor de una selección sin confirmar.
Separa los detalles de la actividad
La región más amplia combina el contexto del cliente y el formulario de edición. La región secundaria contiene un historial ordenado. Esta separación permite comparar el trabajo solicitado con los cambios ya registrados sin tener que ir a otra pantalla. En el diseño para móviles, estas regiones se apilan manteniendo el mismo orden semántico.
Colores semánticos y estados del sistema de diseño de Salesforce Lightning
Interpreta los nombres de los tokens como funciones
La exportación de ui-force distingue entre el texto predeterminado, el texto de menor énfasis, los bordes de selección y los fondos de botones de marca. El ejemplo mantiene oscuro el texto principal, discreta la información secundaria y azul la acción principal. El rojo se reserva para el campo no válido y su mensaje de recuperación; no se aplica a todos los valores sin guardar.
Comunica el estado de más formas que solo con el color
La prioridad y el estado aparecen como palabras en el resumen y en la nueva entrada de actividad. El estado de error combina el modificador nativo slds-has-error con aria-invalid y un mensaje asociado al área de texto. La confirmación local se muestra por escrito en una región de estado; un acento verde por sí solo no indicaría al usuario qué se ha guardado.
Escala tipográfica y densidad de registros del sistema de diseño de Salesforce Lightning
Crea jerarquía sin usar encabezados desmesurados
La escala tipográfica numerada publicada empieza en 0.625rem y llega hasta 2.625rem. Un espacio de trabajo de casos no necesita el tamaño de visualización más grande en todas las áreas. El título de encabezado de página nativo identifica el registro, los encabezados de las tarjetas distinguen las secciones y el texto normal del cuerpo presenta la solicitud y la nota del cliente.
Mantén intactos los asuntos largos de los registros
El diseño personalizado permite que el título de la página ocupe varias líneas, en lugar de truncar el asunto en un ancho reducido. Los metadatos también pueden distribuirse en varias líneas. No reduzcas todo el texto para compensar un nombre de cuenta largo; prueba asuntos y nombres de responsables de longitudes realistas antes de decidir dónde el truncamiento cuenta con una alternativa accesible que muestre el texto completo.
Sistema de diseño Salesforce Lightning: espaciado y estructura del blueprint
No combines las exportaciones de espaciado clásico y variable
Esta guía enumera SPACING_* de ui-force. La exportación var-spacing independiente contiene valores compactos diferentes; VAR_SPACING_MEDIUM no corresponde a la misma referencia que SPACING_MEDIUM. Mezclar valores basándose únicamente en la similitud de sus nombres puede hacer que un formulario se vea irregular. Elige el sistema de densidad que quieras usar y conserva su origen.
Usa el contenedor de campo de forma coherente
Sistema de diseño Salesforce Lightning: borradores y comportamiento de los registros guardados
Mantén el registro guardado separado de los controles
El script conserva la última prioridad y el último estado guardados en un objeto de registro. Editar las listas de selección solo modifica el borrador. Al guardar, copia los valores en ese objeto, actualiza el resumen y añade una entrada de actividad. Así, Descartar borrador sigue teniendo sentido incluso después de varios cambios guardados correctamente.
No inventes confirmaciones del backend
El ejemplo no incluye búsqueda por ID de registro, un modelo de permisos, API ni una base de datos. El botón y el mensaje de confirmación indican explícitamente que la operación es local. Una integración de producción con Salesforce necesitaría las API de datos adecuadas y respuestas del servidor antes de actualizar de forma definitiva el estado de un registro. Las clases CSS no pueden ofrecer esas garantías.
Sistema de diseño Salesforce Lightning: validación de campos y actividad
Haz que la nota explique el cambio
La regla definida exige diez caracteres, sin contar los espacios al principio y al final, y limita el área de texto a 300 caracteres. Si la nota está vacía o es demasiado corta, se impiden todos los cambios del registro, se muestra el error del campo y el foco pasa a la nota. Al editar, se borra el error obsoleto; al pulsar Guardar, se vuelve a validar el valor actual.
Envía el formulario sin una nota y comprueba que los valores guardados del resumen no cambien.
Escribe una nota útil, guarda e inspecciona la entrada de actividad más reciente.
Vuelve a cambiar los campos, descarta el borrador y confirma que se restauren los últimos valores guardados.
Añade una entrada de cambio fácil de leer
Una actualización local correcta crea un título de actividad a partir del estado y la prioridad guardados, seguido de la nota exacta como contenido de texto. La entrada se inserta al principio para que el cambio más reciente aparezca primero. La nota nunca se interpreta como HTML, y la actividad inicial estática permanece debajo de las entradas locales del usuario.
Sistema de diseño Salesforce Lightning: formularios accesibles y recuperación
Usa etiquetas reales y descripciones explícitas
Las listas de selección y el área de texto tienen etiquetas visibles vinculadas mediante for e id. La nota hace referencia al texto de ayuda y al mensaje de error, y el título del indicador de campo obligatorio es legible. Las acciones principales y para descartar son botones con los tipos submit y button adecuados, lo que evita que se envíe el formulario por accidente al descartar un borrador.
Vuelve a un lugar predecible al descartar
Descartar restaura la prioridad y el estado guardados, borra la nota y el error del campo, y pone el foco en el control de prioridad. No elimina el historial de actividad ni restablece el registro a su estado inicial. Esta distinción importa cuando un usuario guarda una vez, prueba otro cambio y luego cancela ese segundo borrador.
Sistema de diseño Salesforce Lightning: integración con CSS y alcance de la versión
Instala el paquete de estilos publicado
El código fuente completo importa la distribución fijada de CSS y una pequeña hoja de estilos de la aplicación. Vite resuelve las URL de fuentes e imágenes del paquete. Después, HTML y JavaScript proporcionan el comportamiento del registro; se trata de una implementación basada en blueprints de CSS, no de un contenedor para lightning-record-edit-form.
El paquete nativo CSS proporciona la apariencia de los campos, botones y tarjetas.
El HTML original proporciona la estructura y las etiquetas del registro.
El JavaScript original gestiona el estado del borrador, la validación y la actividad local.
Considera el código fuente archivado como una referencia versionada
Sistema de diseño Salesforce Lightning: ejemplos de componentes
index.html — espacio de trabajo de casos completo
El resumen del registro, el formulario y la actividad inicial en HTML semántico.
HTML
<!doctype html>
<html lang="en">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Local case workspace</title>
<body>
<main class="slds-example">
<header class="slds-page-header">
<p class="slds-text-title_caps">Service workspace · fictional record</p>
<div class="record-title">
<div>
<h1 class="slds-page-header__title">
Case 004218 · Delivery address update
</h1>
<p class="slds-text-body_small">
Northstar Studio · Opened today · Owner: Maya Chen
</p>
</div>
<span id="status-badge" class="slds-badge">New</span>
</div>
</header>
<div class="record-grid">
<section class="slds-card">
<div class="slds-card__header">
<h2 class="slds-card__header-title">Case details</h2>
</div>
<div class="slds-card__body slds-card__body_inner">
<div class="summary">
<div>
<span class="slds-text-title">Contact</span>
<p>Alex Morgan</p>
</div>
<div>
<span class="slds-text-title">Channel</span>
<p>Email</p>
</div>
<div>
<span class="slds-text-title">Priority</span>
<p id="read-priority">Medium</p>
</div>
<div>
<span class="slds-text-title">Status</span>
<p id="read-status">New</p>
</div>
</div>
<div class="slds-box slds-theme_shade slds-m-top_medium">
<h3 class="slds-text-heading_small">Customer request</h3>
<p class="slds-m-top_small">
Please update the delivery location for order NS-1842 before it
leaves the warehouse. The contact is available to confirm the new
address.
</p>
</div>
<form id="case-form" class="slds-m-top_large" novalidate>
<h3 class="slds-text-heading_small slds-m-bottom_medium">
Update the local case
</h3>
<div class="field-grid">
<div class="slds-form-element">
<label class="slds-form-element__label" for="priority"
>Priority</label
>
<div class="slds-form-element__control">
<div class="slds-select_container">
<select class="slds-select" id="priority">
<option>Low</option>
<option selected>Medium</option>
<option>High</option>
</select>
</div>
</div>
</div>
<div class="slds-form-element">
<label class="slds-form-element__label" for="case-status"
>Status</label
>
<div class="slds-form-element__control">
<div class="slds-select_container">
<select class="slds-select" id="case-status">
<option>New</option>
<option>Working</option>
<option>Escalated</option>
<option>Closed</option>
</select>
</div>
</div>
</div>
</div>
<div id="note-field" class="slds-form-element slds-m-top_medium">
<label class="slds-form-element__label" for="case-note"
><abbr class="slds-required" title="required">*</abbr> Update
note</label
>
<div class="slds-form-element__control">
<textarea
class="slds-textarea"
id="case-note"
rows="3"
maxlength="300"
aria-describedby="note-help note-error"
></textarea>
</div>
<p id="note-help" class="slds-form-element__help">
Explain the change in 10–300 characters. Nothing is sent to
Salesforce.
</p>
<p id="note-error" class="slds-form-element__help" hidden>
Enter an update note of at least 10 characters.
</p>
</div>
<div class="form-actions">
<button
type="button"
id="cancel"
class="slds-button slds-button_neutral"
>
Discard draft</button
><button type="submit" class="slds-button slds-button_brand">
Save local update
</button>
</div>
<p id="save-result" class="slds-m-top_small" role="status"></p>
</form>
</div>
</section>
<aside class="slds-card">
<div class="slds-card__header">
<h2 class="slds-card__header-title">Case activity</h2>
</div>
<div class="slds-card__body slds-card__body_inner">
<p class="slds-text-body_small slds-m-bottom_medium">
Newest updates first
</p>
<ol id="activity" class="activity">
<li>
<span class="activity-dot"></span>
<div>
<h3 class="slds-text-heading_small">Case opened</h3>
<p>Customer requested a delivery address change.</p>
<small>Initial example activity</small>
</div>
</li>
</ol>
</div>
</aside>
</div>
<footer>
Native SLDS 2.264.1 CSS with original HTML and JavaScript. Local
demonstration; no Salesforce record or message is created.
</footer>
</main>
<script type="module" src="/src/main.js"></script>
</body></html>
Guárdalo como src/slds.css; los estilos del paquete se mantienen separados.
04
Sistema de diseño Salesforce Lightning: configuración del agente de IA
Punto de partida para la implementación
Ejemplo nativo de CSS con versión fijada; no es una implementación en una organización de Salesforce. Conserva los avisos sobre los paquetes y recursos al redistribuir los recursos incluidos.
sh
npm create vite@latest slds-case -- --template vanilla
cd slds-case
npm install
npm install @salesforce-ux/[email protected]
# Replace index.html; add src/main.js and src/slds.css from the complete examples.
npm run dev
Una instrucción para tu proyecto
Instrucción para el agente
Crea un espacio de trabajo de casos enfocado usando los blueprints de SLDS CSS con versión fijada. Mantén separados la identidad del registro, el contexto del cliente, el estado guardado y el borrador en edición. Usa la estructura exacta de los campos, referencias reales a los tokens y el código fuente completo que se incluye aquí. Valida la nota antes de cambiar el resumen, conserva la actividad local al descartar el borrador y no des a entender que hay una conexión con un backend de Salesforce.
05
Sistema de diseño Salesforce Lightning: fuentes y alcance
Guía de OpenDesign para el paquete SLDS CSS fijado. La vista previa usa CSS nativo con HTML y JavaScript originales, datos de casos ficticios y estado local. No carga Lightning Web Components ni se conecta a Salesforce. El repositorio original está archivado; para el trabajo en producción, consulta las directrices actuales de la plataforma Salesforce.