Sistema de componentes empresariales · Nuevo recurso

Sistema de diseño de Element Plus.

Usa el modelo Transfer real de Element Plus, sus filtros y sus opciones deshabilitadas para crear un espacio de trabajo de selección de módulos, con colores, tamaños tipográficos y dimensiones de controles verificados.

Guía de OpenDesign9 capítulos35 entradas de referenciaGuía de aplicación original
01

Vista previa de la interfaz del sistema de diseño Element Plus

Filtra y mueve módulos entre dos listas de transferencia nativas, inspecciona las claves seleccionadas y aplica una selección local.

Selección de módulos del espacio de trabajoAbrir ejemplo completo
Element Plus nativo 2.14.7 con Vue 3 y un ConfigProvider en inglés. · Referencia de implementación
02

Referencia de diseño del sistema de diseño Element Plus

Element Plus 2.14.7 CSS compilado predeterminado. Las variables son valores verificados del paquete, incluidos los alias semánticos. La composición adaptable de la lista de transferencia sigue las reglas originales de diseño y está separada de los fundamentos del sistema.

Colores principales y de estado

Fuente
Nombre / ReglaValor / ConfiguraciónUso
--el-color-primary#409eff Acento principal predeterminado.
--el-color-primary-light-3#79bbff Tinte principal utilizado en interacciones más claras.
--el-color-primary-light-5#a0cfff Tinte intermedio.
--el-color-primary-light-7#c6e2ff Tinte claro.
--el-color-primary-light-9#ecf5ff Fondo discreto del panel de selección y claves.
--el-color-primary-dark-2#337ecc Estado principal más oscuro.
--el-color-success#67c23a Rol de éxito.
--el-color-warning#e6a23c Rol de advertencia.
--el-color-danger#f56c6c Rol de error o peligro.
--el-color-info#909399 Rol neutro informativo.

Texto semántico y superficies

Fuente
Nombre / ReglaValor / ConfiguraciónUso
--el-text-color-primary#303133 Texto principal de lectura.
--el-text-color-regular#606266 Texto habitual de los componentes.
--el-text-color-secondary#909399 Ayuda y metadatos.
--el-text-color-placeholder#a8abb2 Rol del texto de marcador de posición.
--el-bg-color#fffSuperficie predeterminada.
--el-bg-color-page#f2f3f5 Fondo de página.
--el-bg-color-overlay#fffSuperficie superpuesta.
--el-border-color#dcdfe6 Borde predeterminado.
--el-border-color-light#e4e7ed Borde sutil de tarjeta o resumen.

Tipografía, controles y formas

Fuente
Nombre / ReglaValor / ConfiguraciónUso
--el-font-family"Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serifPreferencia de familia predeterminada.
--el-font-size-extra-large20pxEscala de título de 20 px.
--el-font-size-large18pxEscala de 18 px.
--el-font-size-medium16pxEscala de 16 px.
--el-font-size-base14pxTamaño base de 14 px.
--el-font-size-small13pxEscala de 13 px.
--el-font-size-extra-small12pxEscala de 12 px.
--el-border-radius-base4pxEsquina estándar de componente.
--el-border-radius-small2pxEsquina pequeña.
--el-component-size-large40pxAltura de control grande.
--el-component-size32pxAltura de control predeterminada.
--el-component-size-small24pxAltura de control pequeña.

Diseño original del espacio de trabajo de módulos

Fuente
Nombre / ReglaValor / ConfiguraciónUso
Desktop panel arrangementtwo panels with 180px reserved betweenAdaptación original en torno a Transfer nativo.
Narrow layout≤700px: stacked panelsPunto de ruptura original, no un token de Element Plus.
Page spacing32px desktop; 20px 16px mobileRelleno exterior original.
Summary spacing24px padding / 24px gapComposición original del panel de claves seleccionadas y resumen de módulos.
03

Guía completa del sistema de diseño Element Plus

Una guía práctica para elegir, aplicar y revisar este sistema en una interfaz real.

DESIGN-element-plus.md

Orientación completa, un punto de partida para la implementación y enlaces al código fuente.

Descargar la guía

Sistema de diseño Element Plus: una lista de transferencia tiene dos tipos de selección

Una lista de transferencia tiene dos tipos de selección

Element Plus Transfer muestra listas de elementos disponibles y de destino, con controles para mover los elementos marcados. El espacio de trabajo de módulos utiliza el componente Vue real de la versión 2.14.7. Su v-model contiene las claves de destino, inicialmente catalog y tokens. Una casilla dentro de una lista marca un elemento para la siguiente acción de transferencia; no significa que el elemento ya pertenezca al destino.

De esta guía de OpenDesign

La lectura del modelo en vivo deja clara esta distinción. Marcar un elemento de origen lo prepara para añadirlo. Al pulsar Añadir, cambia la matriz de claves de destino, se actualiza el resumen de módulos seleccionados y se borra cualquier resultado aplicado anteriormente. Así, quien lo consulta puede ver el contrato del modelo de la biblioteca, en lugar de tener que deducirlo a partir de dos listas estáticas.

Consulta la especificación complementaria

Roles predeterminados y dimensiones concretas de los componentes del sistema de diseño Element Plus

Roles predeterminados y dimensiones concretas de los componentes

Element Plus expone --el-color-primary y sus derivados claros y oscuros, roles de estado, colores de texto y variables de superficie. La tabla muestra los valores compilados reales del paquete instalado. El panel de claves que lo rodea usa primary-light-9 y texto normal, mientras que el botón de acción aplica el estilo principal nativo.

La tipografía predeterminada incluye un tamaño base de catorce píxeles y tamaños complementarios de doce, trece, dieciséis, dieciocho y veinte píxeles. Las variables de tamaño de los componentes describen las dimensiones pequeñas, predeterminadas y grandes de los controles. No deben confundirse con una escala de espaciado para el diseño de página. Los espacios de veinticuatro píxeles y el relleno exterior de treinta y dos píxeles del espacio de trabajo son decisiones explícitas de composición original.

Consulta la especificación complementaria

Claves estables, etiquetas y opciones deshabilitadas del sistema de diseño Element Plus

Claves estables, etiquetas y opciones deshabilitadas

Cada opción tiene una clave, una etiqueta y una marca de deshabilitada. El arreglo de elementos seleccionados contiene esas claves, lo que permite cambiar las etiquetas sin alterar la identidad. Los módulos de ejemplo incluyen Catálogo de recursos, Inspector de tokens, Cola de revisión, Historial de versiones y Búsqueda entre proyectos. La exportación de auditoría permanece deshabilitada para mostrar una opción visible, pero no disponible.

La disponibilidad de este ejemplo es información de demostración estática. No es una comprobación de derechos ni una promesa de que estos módulos existan como productos instalables. En una aplicación real, el origen de las opciones y las reglas de permisos deben proceder del modelo del producto. No infieras que existe autorización porque se pueda hacer clic en una casilla de Transfer.

Consulta la especificación complementaria

Element Plus El sistema de diseño: la búsqueda cambia la visibilidad, no la pertenencia

La búsqueda cambia la visibilidad, no la pertenencia

filterable añade búsquedas independientes a los paneles. El texto de marcador de posición indica una acción concreta: Buscar un módulo. De forma predeterminada, el filtrado busca coincidencias en la etiqueta de la opción. Un elemento seleccionado puede desaparecer de la lista de destino visible al aplicar una búsqueda sin que se elimine del arreglo de claves seleccionadas; el resumen y la lectura de datos siguen mostrando el conjunto completo de elementos de destino.

Los espacios personalizados left-empty y right-empty permiten distinguir entre un panel sin opciones coincidentes y el caso global en que no hay nada seleccionado. La página también deshabilita localmente Aplicar cuando el arreglo de destino está vacío. Son estados distintos: que no haya resultados de búsqueda no significa que no haya módulos seleccionados.

  1. Busca Cola de revisión en el panel de módulos disponibles.
  2. Marca la opción coincidente y pulsa Añadir.
  3. Borra la búsqueda y comprueba que «Cola de revisión» aparezca en la lectura del modelo y en la lista de destino.

Consulta la especificación complementaria

Element Plus El sistema de diseño: conserva en móvil la relación entre las dos listas

Conserva en móvil la relación entre las dos listas

En escritorio, los paneles nativos de Transfer se disponen uno junto al otro, con un área dedicada a Añadir y Quitar. En pantallas de hasta setecientos píxeles de ancho, los paneles se apilan y los botones de acción forman una fila horizontal entre ellos. Los títulos siguen identificando los Módulos disponibles y los Módulos del espacio de trabajo, para que la dirección de cada movimiento quede clara.

El entorno de trabajo no reduce todo el control para que quepa en el teléfono. Adapta la composición y mantiene las etiquetas, las casillas, las búsquedas y el contenido de las listas en tamaños nativos y legibles. La lectura de las claves seleccionadas y el resumen textual pasan a una sola columna debajo, conservando la misma información en lugar de ocultarla en un punto de ruptura más pequeño.

Consulta la especificación complementaria

Element Plus El sistema de diseño: borrador de pertenencia y copia del estado aplicado

Pertenencia en borrador e instantánea aplicada

Aplicar localmente copia el arreglo de claves seleccionadas. Un cambio posterior en la selección de Transfer borra ese estado aplicado, de modo que la alerta de éxito no permanece después de que el usuario cambie los elementos del borrador. Restaurar conjunto inicial asigna un nuevo arreglo catalog/tokens y también borra el resultado aplicado. Las transiciones de estado se implementan en unas pocas líneas explícitas del código fuente de Vue.

La alerta solo indica que se aplicó la selección de la vista previa local. No afirma que se haya instalado nada, que hayan cambiado los derechos ni que se haya actualizado un sistema externo. En una pantalla de configuración real, la copia del estado aplicado tendría que corresponder a un resultado de persistencia confirmado; un evento del componente por sí solo no confirma nada en el servidor.

Consulta la especificación complementaria

Element Plus El sistema de diseño: controles nativos e instrucciones claras

Controles nativos e instrucciones claras

El ejemplo conserva las casillas y los botones de transferencia nativos de Transfer. El texto de los botones es Quitar y Añadir, en lugar de dejar solo iconos direccionales; esto resulta especialmente útil cuando las listas se apilan en vertical. Los títulos de los paneles explican las funciones de origen y destino, y la frase de ayuda describe la secuencia de marcar y luego mover.

La opción deshabilitada permanece en contexto, y los espacios vacíos de los paneles indican que no hay opciones coincidentes. Los usuarios de teclado deben poder acceder a los campos de búsqueda, las casillas y los botones sin manejadores personalizados exclusivos del puntero. El componente gestiona su propio comportamiento interno; la aplicación evita reemplazar esa estructura con filas dibujadas que solo parecen controles de selección.

  • Los títulos de los paneles indican qué lista es el destino.
  • Las etiquetas de texto mantienen clara la dirección de la transferencia en la disposición apilada.
  • La lectura del modelo en tiempo real permite detectar elementos seleccionados que no están visibles.

Consulta la especificación complementaria

Element Plus El sistema de diseño: compila el componente de Vue y carga CSS

Compila el componente de Vue y carga CSS

En un proyecto de Vue 3 con Vite, instala [email protected] e importa element-plus/dist/index.css antes del CSS de la estructura original. El archivo App.vue completo usa script setup e importa sus componentes directamente. ElConfigProvider recibe la configuración regional en inglés para que los textos integrados de los paneles y de los estados vacíos coincidan con la página de referencia en inglés.

La configuración de estilo de producción proporcionada importa App.vue mediante el complemento de Vue para Vite. La muestra sin conexión se creó compilando el mismo componente de archivo único y empaquetándolo localmente. No necesita una CDN externa, un servicio de importación automática ni un compilador de plantillas en tiempo de ejecución. Si un proyecto existente usa un complemento de importación automática, mantén los estilos generados en consonancia con la estrategia elegida: importación completa o por componente.

Consulta la especificación complementaria

Element Plus El sistema de diseño: las personalizaciones del tema deben conservar las relaciones entre componentes

Las anulaciones del tema deben conservar las relaciones entre componentes

Las propiedades personalizadas de CSS son útiles para cambiar funciones compartidas sin reescribir los selectores de cada componente. El entorno de trabajo utiliza las variables --el reales para el fondo, el texto, los bordes y las esquinas. Solo modifica los selectores de disposición necesarios para adaptar Transfer nativo a esta composición concreta.

Para un tema de marca más amplio, usa el enfoque documentado de Sass o de variables CSS y revisa conjuntamente los estados de pasar el cursor, deshabilitado y foco. Sustituir únicamente el valor hexadecimal principal en una captura de pantalla no contempla sus superficies más claras ni sus interacciones más oscuras. La tabla basada en el código fuente ofrece los valores iniciales; la vista previa nativa completa permite examinar sus efectos en un componente funcional.

Consulta la especificación complementaria

Element Plus El sistema de diseño: ejemplos de componentes

Componente Vue completo para seleccionar módulos

Componente de archivo único que utiliza Transfer, Card, Alert, Button y Tag nativos.

vue
<script setup>
import {ref,computed} from 'vue';
import {ElConfigProvider,ElTransfer,ElCard,ElButton,ElTag,ElAlert} from 'element-plus';
import en from 'element-plus/es/locale/lang/en';
const modules=[{key:'catalog',label:'Asset catalog',disabled:false},{key:'tokens',label:'Token inspector',disabled:false},{key:'review',label:'Review queue',disabled:false},{key:'history',label:'Version history',disabled:false},{key:'audit',label:'Audit export · unavailable',disabled:true},{key:'search',label:'Cross-project search',disabled:false}];
const selected=ref(['catalog','tokens']),applied=ref(null);const names=computed(()=>modules.filter(x=>selected.value.includes(x.key)).map(x=>x.label));
const changed=()=>{applied.value=null};
</script>
<template><ElConfigProvider :locale="en"><main class="module-desk"><header><p class="eyebrow">ELEMENT PLUS / WORKSPACE COMPOSITION</p><h1>Choose the tools this team needs.</h1><p>Move modules between lists, then inspect the exact selected keys.</p></header><ElCard shadow="never"><template #header><div class="card-heading"><h2>Module selection</h2><ElTag type="info">{{selected.length}} selected</ElTag></div></template><ElTransfer v-model="selected" :data="modules" filterable filter-placeholder="Find a module" :titles="['Available modules','Workspace modules']" :button-texts="['Remove','Add']" @change="changed"><template #left-empty><p class="empty">No available module matches.</p></template><template #right-empty><p class="empty">No selected module matches.</p></template></ElTransfer><p class="help">Check a module before using Add or Remove. Audit export stays disabled in this sample.</p></ElCard><div class="summary-grid"><section class="summary"><h2>Workspace modules</h2><ul v-if="names.length"><li v-for="name in names" :key="name">{{name}}</li></ul><p v-else>No modules selected. Add at least one before applying.</p><div class="actions"><ElButton type="primary" :disabled="!selected.length" @click="applied=[...selected]">Apply locally</ElButton><ElButton @click="selected=['catalog','tokens'];changed()">Restore starting set</ElButton></div><ElAlert v-if="applied" title="Selection applied to the local preview" type="success" :closable="false" show-icon description="No installation, entitlement change or external update was performed." /></section><section class="key-panel"><p class="eyebrow">V-MODEL VALUE</p><pre>{{JSON.stringify(selected,null,2)}}</pre><p>The model contains keys, not option objects. Search filters visibility without changing this array.</p></section></div><footer>Native Element Plus Transfer, Card, Tag, Button and Alert. Local module names and availability are original examples.</footer></main></ElConfigProvider></template>

Referencia de código

  • v-model almacena claves seleccionadas, no objetos de opción completos.
  • Una opción deshabilitada permanece visible, pero no se puede transferir.
  • Al cambiar la selección de Transfer, se borra el estado aplicado obsoleto.

Composición adaptable de Transfer

Los estilos conservan los paneles y controles nativos, apilándolos en pantallas estrechas.

css
body{margin:0;background:var(--el-bg-color-page);font-family:var(--el-font-family);color:var(--el-text-color-primary);font-size:var(--el-font-size-base);line-height:1.6}.module-desk{max-width:1080px;margin:auto;padding:32px}header{max-width:700px;margin-bottom:28px}h1{font-size:34px;line-height:1.2;letter-spacing:-.03em;margin:10px 0 16px}h2{font-size:20px;line-height:1.3;margin:0}.eyebrow{font-size:11px;letter-spacing:.12em;font-weight:700;color:var(--el-text-color-secondary)}.card-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.el-transfer{--el-transfer-panel-body-height:210px;display:flex;align-items:center;justify-content:center}.el-transfer-panel{width:calc((100% - 180px)/2)}.el-transfer__buttons{padding:0 20px;display:flex;flex-direction:column;gap:10px}.el-transfer__buttons .el-button{margin:0}.help,.empty{font-size:13px;color:var(--el-text-color-secondary)}.empty{padding:16px}.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:24px}.summary,.key-panel{background:var(--el-bg-color);border:1px solid var(--el-border-color-light);border-radius:var(--el-border-radius-base);padding:24px}.actions{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.actions .el-button{margin:0}.key-panel{background:var(--el-color-primary-light-9)}pre{font:14px/1.7 monospace;white-space:pre-wrap}.key-panel p{font-size:13px}.summary li{margin:6px 0}footer{font-size:12px;color:var(--el-text-color-secondary);margin-top:20px}@media(max-width:700px){.module-desk{padding:20px 16px}h1{font-size:28px}.el-transfer{flex-direction:column;gap:16px}.el-transfer-panel{width:100%}.el-transfer__buttons{flex-direction:row;padding:0}.summary-grid{grid-template-columns:1fr}.el-card__body{padding:16px}}

Referencia de código

  • El punto de interrupción y la composición circundante son decisiones originales.
04

Configuración del agente del sistema de diseño de Element Plus

Punto de partida para la implementación

Verificado con Vue 3 y Element Plus 2.14.7. App.vue proporciona el ConfigProvider en inglés y las importaciones explícitas de componentes. Todo el estado es local.

javascript
// Create the project first:
// npm create vite@latest element-plus-specimen -- --template vue
// cd element-plus-specimen && npm install
// In a Vite Vue 3 project:
// npm install [email protected]
// Save the complete single-file component above as App.vue.
// main.js
import {createApp} from 'vue';
import 'element-plus/dist/index.css';
import './style.css';
import App from './App.vue';
createApp(App).mount('#app');
// index.html: <div id="app"></div>
// style.css: use the complete responsive composition above.
// Vite's standard Vue template includes @vitejs/plugin-vue for .vue files.
// Keep the template index.html and replace its entry with the code above.
// npm run dev

Una instrucción para tu proyecto

Instrucción para el agente
Amplía el selector de módulos del espacio de trabajo de Element Plus 2.14.7 proporcionado mediante el ElTransfer nativo. Conserva los seis módulos con clave, la entrada Audit deshabilitada, el comportamiento del filtro y el array controlado de claves seleccionadas. Al aplicar, se debe guardar la selección actual de módulos; las ediciones posteriores deben hacer que esa instantánea aparezca visiblemente desactualizada, mientras que restaurar devuelve la selección inicial. Conserva la composición adaptable de dos paneles y la semántica de los elementos deshabilitados, en lugar de reconstruir Transfer como listas independientes. Carga la hoja de estilos nativa antes de la composición original CSS.
05

Fuentes y alcance del sistema de diseño de Element Plus

Referencia nativa de Element Plus 2.14.7. Los nombres de los módulos y los permisos son ejemplos originales; la selección local no instala nada ni modifica las autorizaciones.