Diseño de productos empresariales · Nuevo recurso

Sistema de diseño Siemens iX.

Inspecciona eventos industriales con un vocabulario de severidad explícito, roles de color adaptados al tema y iX Event List API. Esta guía crea un cuaderno local de equipos sin confundir un registro revisado con una alarma de máquina resuelta.

Guía de OpenDesign7 capítulos39 entradas de referenciaGuía de aplicación original
01

Vista previa de la interfaz del sistema de diseño Siemens iX

Filtra eventos ficticios, consulta una nota sobre un equipo y marca un registro como revisado localmente, sin ocultar su gravedad original.

Cuaderno de eventos de equiposAbrir ejemplo completo
Interpretación independiente sin conexión de HTML/CSS. Paleta original, fuente del sistema y dimensiones de la aplicación; no es el entorno de ejecución nativo de iX. · Referencia de implementación
02

Referencia de diseño del sistema de diseño Siemens iX

Documentación pública actual de iX y captura oficial del componente de la rama principal API. Las entradas de color que aparecen a continuación son roles semánticos, no valores hexadecimales fijos inventados. Las versiones de los paquetes instalados deben mantenerse bloqueadas en conjunto; el ejemplo sin conexión usa su propia paleta y dimensiones, claramente identificadas.

Tema y entrada del paquete

Fuente
Nombre / ReglaValor / ConfiguraciónUso
Core package@siemens/ixComponentes web y hoja de estilos global.
React wrappers@siemens/ix-reactIntegración del componente React.
Icons@siemens/ix-iconsDependencia oficial de iconos.
data-ix-themeclassicSelector de tema a nivel de documento.
data-ix-color-schemadark | light | systemLa forma exacta del atributo se define en el esquema.
Global CSS@siemens/ix/dist/siemens-ix/siemens-ix.cssImportar una vez en el punto de entrada de la aplicación.

Roles de lectura y superficies

Fuente
Nombre / ReglaValor / ConfiguraciónUso
--theme-color-primaryPrimary action roleSe resuelven mediante el tema elegido.
--theme-color-std-textDefault reading colorTítulos de eventos y texto del cuerpo.
--theme-color-soft-textSecondary reading colorHoras y metadatos de recursos.
--theme-color-weak-textDisabled reading colorNo usar para información secundaria importante.
--theme-color-alarm-textAlarm text roleUsar cuando el texto de error necesite un color de primer plano.
--theme-color-component-1Interactive component fillSemitransparente; la superficie subyacente afecta su apariencia.
color-0Transparent background roleLos demás niveles de fondo son opacos.

Vocabulario de gravedad

Fuente
Nombre / ReglaValor / ConfiguraciónUso
AlarmError, invalid or dangerous conditionMantén su etiqueta de texto junto al indicador de color.
CriticalBetween alarm and warningUn significado distinto, no otro tono decorativo.
WarningCondition requiring attentionNo elevarlo silenciosamente a alarma.
SuccessPositive outcomeUna acción de revisión no implica necesariamente que una alarma se haya resuelto correctamente.
InfoInformational conditionDiferenciarlo del contenido deshabilitado.
NeutralUnclassified neutral conditionDisponible cuando no corresponda asignar un juicio de estado.

Jerarquía de bordes

Fuente
Nombre / ReglaValor / ConfiguraciónUso
--theme-color-hard-bdrStrong solid boundarySeparación marcada.
--theme-color-std-bdrStandard control boundaryControl de entrada o selección.
--theme-color-soft-bdrCard boundarySe usa en el inspector del cuaderno.
--theme-color-weak-bdrRegion boundarySeparar suavemente las regiones principales.
--theme-color-x-weak-bdrVery subtle boundaryDivisión de bajo énfasis.
--theme-primary-bdr-1Complete border valueUsar como borde: var(--theme-primary-bdr-1), no como color.

Roles tipográficos

Fuente
Nombre / ReglaValor / ConfiguraciónUso
HeadingsH1 through H6Jerarquía tipográfica
BodyMultiline readingNotas de inspección y explicaciones.
LabelSingle-line component textControles y campos breves.
DisplaySingle-line KPI presentationRecuentos; no párrafos.
CodeCode and technical syntaxEjemplos o identificadores API, cuando corresponda.

Captura de Event List API

Fuente
Nombre / ReglaValor / ConfiguraciónUso
IxEventList.itemHeightS | L | number; default SUsa L para el título y los metadatos de ejemplo.
IxEventList.compactboolean; default falseEl modo compacto se selecciona explícitamente.
IxEventList.chevronboolean; default falseMostrar un indicador de navegación.
IxEventList.animatedboolean; default falseEvitar movimientos innecesarios en un registro estático.
IxEventListItem.itemColorstringExpresión de color del tema CSS.
IxEventListItem.selectedboolean; default falseControlado por el ID del registro seleccionado.
IxEventListItem.variantoutline | filled; default outlineElección de presentación.
IxEventListItem.disabledboolean; default falseDeshabilitar solo cuando la interacción no esté disponible.
itemClickCustom eventEl controlador onItemClick del contenedor React selecciona el registro.
03

Guía completa del sistema de diseño Siemens iX

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

DESIGN-siemens-ix.md

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

Descargar la guía

Eventos industriales del sistema de diseño Siemens iX con estados de revisión y resolución diferenciados

Un cuaderno, no un panel de control de maquinaria

El ejemplo práctico es un cuaderno ficticio de equipos. Tres registros conservan su gravedad de origen, mientras que un estado local de revisión independiente indica qué ha consultado la persona lectora. Esta separación es esencial para la composición: seleccionar una fila, leer una nota y resolver una condición física son operaciones distintas. La vista previa implementa las dos primeras y no afirma controlar equipos en tiempo real.

De esta guía de OpenDesign

Event List es un mejor punto de partida que las tarjetas decorativas: su estado seleccionado, indicador de gravedad y chevrón hacen que los registros repetidos se lean con claridad como una colección navegable. El inspector muestra los textos más largos fuera de la fila. No hay una transmisión de telemetría falsa ni un aviso de éxito que afirme que se ha despejado una alarma.

Consulta la especificación complementaria

Roles de color del sistema de diseño Siemens iX para el significado operativo

Combina los indicadores con colores de lectura

El sistema de color distingue las capas de fondo opacas de los rellenos semitransparentes de los componentes. No se puede evaluar el relleno de un componente sin tener en cuenta la superficie que hay debajo. En el código nativo, usa las variables reales del tema en lugar de copiar un valor hexadecimal de una captura de pantalla en cada fila.

El texto estándar y el suave responden a distintas prioridades de lectura. El texto débil está pensado para contenido deshabilitado; por eso, una marca de tiempo necesaria para una investigación no debería asignarse automáticamente a ese rol. Para el primer plano de un error, es más apropiado el rol específico de texto de alarma que reutilizar sin más un relleno de estado.

  • Muestra la palabra Alarma, Advertencia o Info junto al borde de color.
  • Mantén el indicador de alarma tras la revisión local; la revisión no cambia la condición de origen.
  • Reserva el estilo de selección para el estado de navegación, de modo que la gravedad y la selección sigan siendo distinguibles.

Consulta la especificación complementaria

Tipografía del sistema de diseño Siemens iX que distingue las notas de las etiquetas

Usa formatos en lugar de una escala de píxeles supuesta

iX divide la tipografía en encabezados, cuerpo, etiquetas, visualización y código. Las notas de inspección necesitan el comportamiento multilínea del texto de cuerpo; un recuento grande puede usar el formato de visualización; una etiqueta breve para un filtro corresponde a la categoría de etiquetas. El formato de visualización no es una forma cómoda de agrandar la descripción completa de un evento.

El ejemplo documentado ix-typography format="h3" proporciona un punto de partida concreto para la implementación. El mixin equivalente de Sass typography-h3 permite usar un elemento personalizado sin recrear sus reglas tipográficas. La vista previa usa deliberadamente una fuente alternativa del sistema y tamaños tipográficos propios de la aplicación; esos valores no se presentan como tokens oficiales de Siemens.

Consulta la especificación complementaria

Selección y densidad de Event List del sistema de diseño Siemens iX

Controla la identidad independientemente de la apariencia del elemento

La captura API expone itemHeight con los valores S, L o un número. El ejemplo elige L, deja compact en su valor predeterminado false y habilita un chevrón. En un registro de producción con títulos localizados más largos, hay que verificar que la altura elegida admita el ajuste de texto, en lugar de dar por sentado que todos los registros caben porque así ocurre en el ejemplo.

Cada elemento recibe selected a partir de una comparación de ID y envía itemClick mediante el controlador onItemClick del contenedor. El inspector usa el mismo ID. Así se evita que la selección visual y el panel de detalles hagan referencia silenciosamente a registros distintos. Los cambios en los filtros borran explícitamente el ID seleccionado.

Consulta la especificación complementaria

Un inspector del sistema de diseño Siemens iX que se adapta a una ventana estrecha

Coloca los detalles debajo de la colección de eventos

La cuadrícula de dos columnas con proporción dos a uno del ejemplo es una composición de la aplicación, no un token de cuadrícula publicado de iX. En una ventana estrecha, pasa a una columna y conserva el orden de los registros antes del inspector. El inspector no crea una trampa de desplazamiento anidada; la persona lectora puede desplazarse por todo el ejemplo con naturalidad.

Los metadatos del evento aparecen en una segunda línea con un color secundario legible. El filtro queda fuera de las filas repetidas y no se desplaza cuando cambian los registros. Un párrafo de estado informa del resultado de la revisión local del registro seleccionado, sin modificar el filtro ni sustituir el título.

Consulta la especificación complementaria

Sistema de diseño Siemens iX: haz que el estado sea perceptible sin depender del color ni de la precisión del puntero

Texto, controles de teclado y foco

La vista previa sin conexión usa botones nativos para los registros, un selector etiquetado para la gravedad y una región de estado aria-live para los comentarios de revisión. Se puede seleccionar un registro con Intro y Espacio. La composición nativa de la biblioteca usa sus wrappers de Event List; antes de adoptar anulaciones de foco personalizadas, se debe probar el comportamiento con teclado y tecnologías de asistencia de la versión instalada.

Las etiquetas describen la distinción del negocio: «Marcar como revisado localmente», no «Resolver alarma». La acción de revisión deshabilitada va acompañada de un estado visible de revisión. El significado no depende únicamente del color, y el filtro no deja una selección obsoleta e inaccesible oculta en otra categoría.

Consulta la especificación complementaria

Sistema de diseño Siemens iX: conecta el paquete, el tema y el estado local de la aplicación

Una secuencia de integración deliberada

El bloque de configuración contiene las importaciones del paquete, los atributos de tema del documento, las propiedades reales del componente, el estado completo de React y la aplicación CSS. El selector de tema es data-ix-color-schema, no un atributo personalizado de nombre parecido. Fija en la aplicación versiones compatibles del núcleo, los wrappers y los iconos instalados.

La muestra visual es una interpretación sin conexión de HTML/CSS de estas reglas de interacción. Su paleta azul marino oscuro, sus márgenes interiores de 24 píxeles y el dibujo esquemático de los equipos son decisiones originales de la aplicación. Para obtener una representación visual nativa, ejecuta el ejemplo independiente de React con la hoja de estilos oficial e inspecciona los valores del tema calculados.

  1. Instala el núcleo, los wrappers de React y los iconos en una estructura inicial de Vite React; conserva el elemento raíz generado.
  2. Sustituye main.jsx y style.css por los archivos proporcionados y, en el documento, selecciona classic junto con dark, light o system.
  3. Selecciona un registro, márcalo como revisado, filtra la lista y confirma que la gravedad se mantiene mientras se borra la selección oculta.

Consulta la especificación complementaria

Sistema de diseño Siemens iX: ejemplos de componentes

Muestra interactiva independiente completa

Guarda el documento completo como index.html y ábrelo en un navegador. Interpretación independiente sin conexión de HTML/CSS. Paleta, fuente del sistema y dimensiones de la aplicación originales; no es el runtime nativo de iX.

HTML
<!doctype html><html lang="en"><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Equipment event notebook — iX interpretation</title><style>
*{box-sizing:border-box}body{margin:0;background:#000028;color:#f3f3fa;font:15px/1.5 Arial,sans-serif}button,select{font:inherit;color:inherit}button{cursor:pointer}button:focus-visible,select:focus-visible{outline:3px solid #00cccc;outline-offset:3px}.app{max-width:1200px;margin:auto;padding:28px}.top{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid #55556b;padding-bottom:18px}.brand{letter-spacing:.12em;color:#00cccc}.dim{color:#b6b6c8}h1{font-size:30px;font-weight:500;line-height:1.2;margin:20px 0 8px}h2{font-size:21px;font-weight:500;margin:0 0 12px}.banner{display:grid;grid-template-columns:1.2fr 1fr;gap:24px;align-items:center;padding-bottom:24px}.schematic{height:140px;position:relative;display:flex;align-items:center;justify-content:space-evenly;border-bottom:2px solid #77788e;background:linear-gradient(transparent 23px,#23233c 24px);background-size:24px 24px}.schematic:before{content:'';position:absolute;left:10%;right:10%;top:68px;height:5px;background:#666780}.unit{position:relative;width:76px;height:76px;border:2px solid #b6b6c8;background:#141432;display:grid;place-content:center;text-align:center}.unit:first-child{border-color:#ff8da5}.unit span{color:#b6b6c8;font:12px monospace}.toolbar{display:flex;align-items:center;gap:16px;margin:10px 0 18px}select{background:#23233c;border:1px solid #8b8b9e;padding:8px 28px 8px 10px}.layout{display:grid;grid-template-columns:1.6fr 1fr;gap:24px}.event{width:100%;display:grid;grid-template-columns:70px 1fr 20px;gap:14px;text-align:left;align-items:center;padding:18px 14px;border:1px solid #55556b;border-left:4px solid var(--severity);background:#141432;margin-bottom:10px}.event:hover{background:#292944}.event[aria-pressed=true]{outline:2px solid #00cccc;outline-offset:1px}.event strong{font-size:15px;font-weight:600;display:block}.event small{display:block;color:#c0c0cf;margin-top:4px}.severity{font-size:11px;letter-spacing:.06em}.inspector{padding:20px;background:#23233c;border-top:3px solid #00cccc;min-height:290px}.meta{font:12px monospace;color:#b6b6c8}.tag{font-size:12px;border:1px solid #6c6c80;padding:3px 8px;display:inline-block;margin:10px 0}.action{background:#00cccc;border:0;color:#000028;padding:11px 16px;margin-top:10px}.action:disabled{background:#515168;color:#e0e0e8;cursor:default}.status{min-height:48px;color:#b7eeee;font-size:13px}.note{border-top:1px solid #55556b;margin-top:24px;padding-top:16px;color:#b6b6c8;font-size:12px}@media(max-width:650px){.app{padding:18px}.top{font-size:12px}.banner,.layout{grid-template-columns:1fr}.banner{gap:8px}.schematic{height:115px}.schematic:before{top:56px}.unit{height:60px;width:65px}h1{font-size:26px}.event{grid-template-columns:60px 1fr 10px;gap:8px}.toolbar{flex-wrap:wrap}}
</style><main class="app"><header class="top"><b class="brand">EVENT NOTEBOOK</b><span class="dim">Sample plant / offline</span></header><div class="banner"><div><h1>Inspect the event.<br>Keep its meaning.</h1><p class="dim">Review equipment notes without changing their original severity.</p></div><div class="schematic" aria-label="Original schematic of three fictional equipment units" role="img"><div class="unit">A<span>PUMP</span></div><div class="unit">B<span>PUMP</span></div><div class="unit">C<span>LINE</span></div></div></div><div class="toolbar"><label for="severity">Severity</label><select id="severity"><option value="all">All events</option><option value="alarm">Alarm</option><option value="warning">Warning</option><option value="info">Info</option></select><span class="dim" id="count"></span></div><div class="layout"><section aria-label="Event records" id="events"></section><aside class="inspector" aria-label="Selected event" id="detail"></aside></div><p class="note">Independent HTML interpretation of Siemens iX interaction rules. Original colors, dimensions and fictional equipment records. Local review does not acknowledge or resolve a live alarm.</p></main><script>
const data=[{id:'E-014',severity:'alarm',color:'#ff8da5',title:'Cooling flow below sample threshold',asset:'Pump A',time:'09:42',note:'Inspect the cooling circuit before considering a reset. This fictional record remains an alarm after you mark the note reviewed.'},{id:'E-015',severity:'warning',color:'#ffce6b',title:'Filter service approaching',asset:'Pump B',time:'09:38',note:'Schedule a filter inspection. Reviewing this notebook entry does not schedule maintenance or alter equipment.'},{id:'E-016',severity:'info',color:'#65cfff',title:'Inspection checklist attached',asset:'Line C',time:'09:30',note:'A fictional checklist is available for review. This sample displays the record; it does not connect to a document service.'}];let selected='E-014';const reviewed=new Set();function render(){let visible=data.filter(r=>severity.value==='all'||r.severity===severity.value);document.querySelector('#count').textContent=visible.length+' event'+(visible.length===1?'':'s');events.innerHTML=visible.map(r=>`<button class="event" id="row-${r.id}" style="--severity:${r.color}" aria-pressed="${selected===r.id}" data-id="${r.id}"><span class="severity">${r.severity.toUpperCase()}</span><span><strong>${r.title}</strong><small>${r.asset} · ${r.time}${reviewed.has(r.id)?' · Reviewed locally':''}</small></span><span aria-hidden="true">›</span></button>`).join('');const r=visible.find(r=>r.id===selected);detail.innerHTML=r?`<div class="meta">${r.id} / ${r.asset}</div><h2>${r.title}</h2><span class="tag">${r.severity.toUpperCase()} · source condition unchanged</span><p>${r.note}</p><button class="action" id="review" ${reviewed.has(r.id)?'disabled':''}>Mark reviewed locally</button><p class="status" role="status">${reviewed.has(r.id)?'Reviewed in this browser session. Source severity is unchanged.':''}</p>`:'<h2>Select an event</h2><p class="dim">Choose a record to inspect its note.</p>';events.querySelectorAll('button').forEach(b=>b.onclick=()=>{selected=b.dataset.id;render();document.getElementById('row-'+selected).focus()});if(r&&!reviewed.has(r.id))document.querySelector('#review').onclick=()=>{reviewed.add(r.id);render()}}const severity=document.querySelector('#severity'),events=document.querySelector('#events'),detail=document.querySelector('#detail');severity.onchange=()=>{selected='';render()};render();
</script></html>

Referencia de código

  • Marcar un evento como revisado no cambia su gravedad ni resuelve una alarma de un equipo. La entrada nativa de iX muestra por separado la selección de Event List y los atributos de tema.

Event List con un panel de inspección controlado por separado

Un ID seleccionado determina el resaltado del elemento y los detalles. La revisión solo registra un estado local en el cuaderno; la gravedad original sigue visible.

jsx
// In a Vite React project: npm install @siemens/ix @siemens/ix-react @siemens/ix-icons
// src/main.jsx
import React, {useState} from 'react';
import {createRoot} from 'react-dom/client';
import {IxEventList, IxEventListItem, IxTypography} from '@siemens/ix-react';
import '@siemens/ix/dist/siemens-ix/siemens-ix.css';
import './style.css';
document.documentElement.dataset.ixTheme='classic';
document.documentElement.dataset.ixColorSchema='dark';
const records=[
 {id:'E-014',severity:'alarm',title:'Cooling flow below sample threshold',asset:'Pump A',time:'09:42',note:'Original demonstration record: inspect the cooling circuit before considering a reset.'},
 {id:'E-015',severity:'warning',title:'Filter service approaching',asset:'Pump B',time:'09:38',note:'Original demonstration record: schedule a filter inspection.'},
 {id:'E-016',severity:'info',title:'Inspection checklist attached',asset:'Line C',time:'09:30',note:'Original demonstration record: a checklist is available for review.'}
];
function App(){
 const [filter,setFilter]=useState('all'),[selected,setSelected]=useState('E-014'),[reviewed,setReviewed]=useState([]);
 const visible=records.filter(r=>filter==='all'||r.severity===filter);
 const record=visible.find(r=>r.id===selected);
 return <main><h1>Equipment event notebook</h1><p>Fictional records. Reviewing an entry does not control equipment or acknowledge a live alarm.</p>
 <label htmlFor="severity">Severity</label><select id="severity" value={filter} onChange={e=>{setFilter(e.target.value);setSelected('')}}>
 <option value="all">All events</option><option value="alarm">Alarm</option><option value="warning">Warning</option><option value="info">Info</option></select>
 <div className="workspace"><section aria-label="Event records"><IxEventList itemHeight="L" chevron>
 {visible.map(r=><IxEventListItem key={r.id} selected={selected===r.id} itemColor={`var(--theme-color-${r.severity})`} onItemClick={()=>setSelected(r.id)}>
 <div className="record"><strong>{r.title}</strong><span>{r.severity.toUpperCase()} · {r.asset} · {r.time}{reviewed.includes(r.id)?' · Reviewed locally':''}</span></div>
 </IxEventListItem>)}
 </IxEventList></section><aside aria-label="Selected event">
 {record?<><IxTypography format="h3">{record.id} / {record.asset}</IxTypography><p>{record.note}</p>
 <button type="button" onClick={()=>setReviewed(a=>a.includes(record.id)?a:[...a,record.id])} disabled={reviewed.includes(record.id)}>Mark reviewed locally</button>
 <p role="status">{reviewed.includes(record.id)?'Reviewed in this browser session. Source severity is unchanged.':''}</p></>:<p>Select an event to inspect its record.</p>}
 </aside></div></main>
}
createRoot(document.getElementById('root')).render(<App/>);

/* src/style.css — custom dimensions are application choices */
main{max-width:72rem;margin:auto;padding:24px;color:var(--theme-color-std-text)}
.workspace{display:grid;grid-template-columns:2fr 1fr;gap:24px;margin-top:24px}
.workspace>*{min-width:0}aside{padding:20px;border:1px solid var(--theme-color-soft-bdr)}
.record{display:grid;gap:4px;padding:8px;white-space:normal;overflow-wrap:anywhere}
.record span{color:var(--theme-color-soft-text)}
button,select{font:inherit;padding:10px;background:var(--theme-color-component-1);color:var(--theme-color-std-text);border:1px solid var(--theme-color-std-bdr)}
button:focus-visible,select:focus-visible{outline:2px solid var(--theme-color-primary);outline-offset:3px}
@media(max-width:700px){.workspace{grid-template-columns:1fr}}

Referencia de código

  • Usa itemColor para el marcador de gravedad y una etiqueta textual de gravedad fácil de leer.
  • Al cambiar el filtro de gravedad se borra la selección para evitar que el inspector describa un evento oculto.
  • El botón de revisión local es lógica de la aplicación, no un API de reconocimiento de alarmas de iX inventado.

Tipografía que se adapta al tema sin copiar tamaños de fuente

Usa la propiedad format documentada o el mixin de Sass en lugar de fijar un tamaño de texto para todos los temas.

html / scss
<ix-typography format="h3">Inspection record</ix-typography>

@import "@siemens/ix/scss/mixins/font";
.inspection-title { @include typography-h3; }

Referencia de código

  • La vista previa usa una fuente alternativa del sistema; no distribuye las fuentes de marca de Siemens.
04

Siemens iX Configuración del agente de IA del sistema de diseño

Punto de partida para la implementación

Completa main.jsx y style.css para una estructura inicial de Vite React con su elemento raíz existente. Los wrappers oficiales, la importación de CSS y las propiedades de Event List están documentados; aquí no se ejecutó la compilación nativa del paquete. La vista previa integrada es una interpretación independiente sin conexión.

jsx
// In a Vite React project: npm install @siemens/ix @siemens/ix-react @siemens/ix-icons
// src/main.jsx
import React, {useState} from 'react';
import {createRoot} from 'react-dom/client';
import {IxEventList, IxEventListItem, IxTypography} from '@siemens/ix-react';
import '@siemens/ix/dist/siemens-ix/siemens-ix.css';
import './style.css';
document.documentElement.dataset.ixTheme='classic';
document.documentElement.dataset.ixColorSchema='dark';
const records=[
 {id:'E-014',severity:'alarm',title:'Cooling flow below sample threshold',asset:'Pump A',time:'09:42',note:'Original demonstration record: inspect the cooling circuit before considering a reset.'},
 {id:'E-015',severity:'warning',title:'Filter service approaching',asset:'Pump B',time:'09:38',note:'Original demonstration record: schedule a filter inspection.'},
 {id:'E-016',severity:'info',title:'Inspection checklist attached',asset:'Line C',time:'09:30',note:'Original demonstration record: a checklist is available for review.'}
];
function App(){
 const [filter,setFilter]=useState('all'),[selected,setSelected]=useState('E-014'),[reviewed,setReviewed]=useState([]);
 const visible=records.filter(r=>filter==='all'||r.severity===filter);
 const record=visible.find(r=>r.id===selected);
 return <main><h1>Equipment event notebook</h1><p>Fictional records. Reviewing an entry does not control equipment or acknowledge a live alarm.</p>
 <label htmlFor="severity">Severity</label><select id="severity" value={filter} onChange={e=>{setFilter(e.target.value);setSelected('')}}>
 <option value="all">All events</option><option value="alarm">Alarm</option><option value="warning">Warning</option><option value="info">Info</option></select>
 <div className="workspace"><section aria-label="Event records"><IxEventList itemHeight="L" chevron>
 {visible.map(r=><IxEventListItem key={r.id} selected={selected===r.id} itemColor={`var(--theme-color-${r.severity})`} onItemClick={()=>setSelected(r.id)}>
 <div className="record"><strong>{r.title}</strong><span>{r.severity.toUpperCase()} · {r.asset} · {r.time}{reviewed.includes(r.id)?' · Reviewed locally':''}</span></div>
 </IxEventListItem>)}
 </IxEventList></section><aside aria-label="Selected event">
 {record?<><IxTypography format="h3">{record.id} / {record.asset}</IxTypography><p>{record.note}</p>
 <button type="button" onClick={()=>setReviewed(a=>a.includes(record.id)?a:[...a,record.id])} disabled={reviewed.includes(record.id)}>Mark reviewed locally</button>
 <p role="status">{reviewed.includes(record.id)?'Reviewed in this browser session. Source severity is unchanged.':''}</p></>:<p>Select an event to inspect its record.</p>}
 </aside></div></main>
}
createRoot(document.getElementById('root')).render(<App/>);

/* src/style.css — custom dimensions are application choices */
main{max-width:72rem;margin:auto;padding:24px;color:var(--theme-color-std-text)}
.workspace{display:grid;grid-template-columns:2fr 1fr;gap:24px;margin-top:24px}
.workspace>*{min-width:0}aside{padding:20px;border:1px solid var(--theme-color-soft-bdr)}
.record{display:grid;gap:4px;padding:8px;white-space:normal;overflow-wrap:anywhere}
.record span{color:var(--theme-color-soft-text)}
button,select{font:inherit;padding:10px;background:var(--theme-color-component-1);color:var(--theme-color-std-text);border:1px solid var(--theme-color-std-bdr)}
button:focus-visible,select:focus-visible{outline:2px solid var(--theme-color-primary);outline-offset:3px}
@media(max-width:700px){.workspace{grid-template-columns:1fr}}

Una instrucción para tu proyecto

Instrucción para el agente
Crea un cuaderno de eventos de Siemens iX con las propiedades verificadas de Event List y los atributos de tema del documento que se describen en esta guía. Mantén la gravedad independiente de la selección y de la revisión local. En la versión nativa, usa colores semánticos del tema. No des a entender nunca que una acción del cuaderno resuelve una alarma física. Etiqueta los filtros, permite usar las filas con el teclado y coloca el inspector debajo en pantallas estrechas.
05

Sistema de diseño Siemens iX: fuentes y alcance

Guía independiente de OpenDesign. Los datos de eventos y la ilustración de los equipos son ficticios. Los estilos de la vista previa son una interpretación original; el ejemplo independiente de React usa el API de iX documentado. No se implementan conexión a máquinas, telemetría ni reconocimiento de alarmas en tiempo real.