Progettazione di prodotti aziendali · Nuova risorsa

Sistema di progettazione Siemens iX.

Esamina gli eventi industriali con un vocabolario esplicito dei livelli di gravità, ruoli cromatici adattati al tema e iX Event List API. Questa guida crea un registro locale delle attrezzature senza confondere un record revisionato con un allarme macchina risolto.

Guida OpenDesign7 capitoli39 voci di riferimentoGuida applicativa originale
01

Anteprima dell’interfaccia del sistema di progettazione sistema di design Siemens iX

Filtra gli eventi fittizi, esamina una nota su un’apparecchiatura e contrassegna localmente un record come esaminato, mantenendo visibile la gravità originale.

Registro degli eventi delle attrezzatureApri l’esempio completo
Interpretazione offline indipendente di HTML/CSS. Palette originale, font di sistema e dimensioni dell’applicazione; non è il runtime nativo di iX. · Riferimento per l’implementazione
02

Siemens iX Riferimento di progettazione del sistema di design

Documentazione pubblica aggiornata di iX e snapshot ufficiale del componente dal ramo principale API. Le voci di colore riportate di seguito sono ruoli semantici, non valori esadecimali fissi inventati. Le versioni dei pacchetti installati devono essere bloccate insieme; l’esempio offline usa una propria palette e dimensioni, indicate chiaramente.

Tema e punto di ingresso del pacchetto

Fonte
Nome / regolaValore / configurazioneUtilizzo
Core package@siemens/ixComponenti web e foglio di stile globale.
React wrappers@siemens/ix-reactIntegrazione dei componenti React.
Icons@siemens/ix-iconsDipendenza ufficiale per le icone.
data-ix-themeclassicSelettore del tema a livello di documento.
data-ix-color-schemadark | light | systemLa grafia esatta dell’attributo è definita dallo schema.
Global CSS@siemens/ix/dist/siemens-ix/siemens-ix.cssImporta una sola volta all’avvio dell’applicazione.

Ruoli di lettura e di superficie

Fonte
Nome / regolaValore / configurazioneUtilizzo
--theme-color-primaryPrimary action roleRisolvi in base al tema scelto.
--theme-color-std-textDefault reading colorTitoli degli eventi e testo del corpo.
--theme-color-soft-textSecondary reading colorOrari e metadati delle risorse.
--theme-color-weak-textDisabled reading colorNon utilizzare per informazioni secondarie importanti.
--theme-color-alarm-textAlarm text roleDa usare quando il testo di errore richiede un colore di primo piano.
--theme-color-component-1Interactive component fillSemitrasparente; la superficie sottostante ne influenza l’aspetto.
color-0Transparent background roleGli altri livelli di sfondo sono opachi.

Vocabolario dei livelli di gravità

Fonte
Nome / regolaValore / configurazioneUtilizzo
AlarmError, invalid or dangerous conditionMantieni l’etichetta testuale accanto all’indicatore colorato.
CriticalBetween alarm and warningUn significato distinto, non un’altra sfumatura decorativa.
WarningCondition requiring attentionNon elevarlo silenziosamente al livello di allarme.
SuccessPositive outcomeUn’azione di revisione non implica necessariamente che un allarme sia rientrato.
InfoInformational conditionSeparalo dai contenuti disabilitati.
NeutralUnclassified neutral conditionDisponibile quando non si applica alcuna valutazione dello stato.

Gerarchia dei confini

Fonte
Nome / regolaValore / configurazioneUtilizzo
--theme-color-hard-bdrStrong solid boundaryElevata separazione.
--theme-color-std-bdrStandard control boundaryControllo di input o selezione.
--theme-color-soft-bdrCard boundaryUsato per l’ispettore del notebook.
--theme-color-weak-bdrRegion boundarySepara delicatamente le aree principali.
--theme-color-x-weak-bdrVery subtle boundarySeparatore poco enfatizzato.
--theme-primary-bdr-1Complete border valueUsalo come bordo: var(--theme-primary-bdr-1), non come colore.

Ruoli tipografici

Fonte
Nome / regolaValore / configurazioneUtilizzo
HeadingsH1 through H6Gerarchia del documento.
BodyMultiline readingNote e spiegazione dell’ispezione.
LabelSingle-line component textControlli e campi compatti.
DisplaySingle-line KPI presentationConteggi, non paragrafi.
CodeCode and technical syntaxAPI esempi o identificativi, se opportuno.

Snapshot di Event List API

Fonte
Nome / regolaValore / configurazioneUtilizzo
IxEventList.itemHeightS | L | number; default SUsa L per il titolo e i metadati di esempio.
IxEventList.compactboolean; default falseLa modalità compatta è selezionata esplicitamente.
IxEventList.chevronboolean; default falseMostra un’indicazione di navigazione.
IxEventList.animatedboolean; default falseEvita movimenti superflui in un log statico.
IxEventListItem.itemColorstringEspressione del colore del tema CSS.
IxEventListItem.selectedboolean; default falseControllato dall’ID del record selezionato.
IxEventListItem.variantoutline | filled; default outlineScelta di presentazione.
IxEventListItem.disabledboolean; default falseDisattiva solo quando l’interazione non è disponibile.
itemClickCustom eventIl wrapper React onItemClick seleziona il record.
03

Guida completa al sistema di design Siemens iX

Una guida pratica per scegliere, applicare e valutare questo sistema in un’interfaccia reale.

DESIGN-siemens-ix.md

Indicazioni complete, un punto di partenza per l’implementazione e link alle fonti.

Scarica la guida

Sistema di design Siemens iX: eventi industriali con stati distinti di revisione e risoluzione

Un taccuino, non un pannello di controllo di una macchina

L’esempio di lavoro è un quaderno fittizio dedicato alle attrezzature. Tre registrazioni mantengono il livello di gravità originale, mentre uno stato di revisione locale separato tiene traccia di ciò che il lettore ha esaminato. Questa separazione è essenziale per la composizione: selezionare una riga, leggere una nota e risolvere una condizione fisica sono operazioni diverse. L’anteprima implementa le prime due e non dichiara di controllare dispositivi in tempo reale.

Da questa guida su OpenDesign

L'Elenco eventi è un punto di partenza migliore rispetto alle schede decorative, perché lo stato selezionato, l'indicatore di gravità e la chevron rendono leggibili i record ripetuti come raccolta navigabile. Il pannello di ispezione contiene i testi più lunghi, fuori dalla riga. Non ci sono flussi di telemetria fittizi né notifiche di esito positivo che dichiarino la risoluzione di un allarme.

Leggi la specifica di supporto

Ruoli cromatici del sistema di design Siemens iX per il significato operativo

Abbina gli indicatori ai colori di lettura

Il sistema di colori distingue i livelli di sfondo opachi dai riempimenti semitrasparenti dei componenti. Non è possibile valutare un riempimento di un componente indipendentemente dalla superficie sottostante. Nel codice nativo, usa le variabili del tema effettive invece di copiare un valore esadecimale da uno screenshot in ogni riga.

Il testo standard e quello attenuato rispondono a priorità di lettura diverse. Il testo debole è pensato per i contenuti disabilitati; perciò, un timestamp utile per un’indagine non dovrebbe essere assegnato automaticamente a questo ruolo. Per il testo in primo piano di un errore è più adatto il ruolo dedicato al testo di allarme, anziché riutilizzare alla cieca un colore di riempimento per lo stato.

  • Mostra la parola Allarme, Avviso o Informazione accanto al bordo colorato.
  • Mantieni il contrassegno di allarme dopo la revisione locale: la revisione non modifica la condizione di origine.
  • Riserva lo stile di selezione allo stato della navigazione, così che la gravità e la selezione restino distinguibili.

Leggi la specifica di supporto

Sistema di design Siemens iX: una tipografia che distingue le note dalle etichette

Usa i formati anziché una scala di pixel presunta

iX suddivide la tipografia in titoli, testo corrente, etichette, testi di grande formato e codice. Le note di ispezione richiedono il comportamento multilinea del testo corrente; un conteggio elevato può usare lo stile di grande formato; una breve etichetta di filtro rientra nella categoria delle etichette. Lo stile di grande formato non è un espediente per ingrandire l’intera descrizione di un evento.

L'esempio documentato ix-typography format="h3" fornisce un'implementazione concreta. Il mixin Sass equivalente typography-h3 supporta un elemento personalizzato senza dover ricreare le relative regole tipografiche. L'anteprima usa deliberatamente un font di sistema come fallback e dimensioni tipografiche definite dall'applicazione; questi valori non vengono presentati come token ufficiali di Siemens.

Leggi la specifica di supporto

Siemens iX Selezione e densità dell’elenco eventi del sistema di design

Definisci l’identità del controllo indipendentemente dall’aspetto dell’elemento

Lo snapshot API espone itemHeight come S, L o un numero. L’esempio sceglie L, lascia compact al valore predefinito false e abilita il chevron. Per un registro di produzione con titoli localizzati più lunghi, verifica che l’altezza scelta sia adeguata al testo su più righe, invece di presumere che ogni record rientri solo perché l’esempio lo consente.

Ogni elemento riceve la selezione tramite un confronto tra ID e la invia al gestore onItemClick del wrapper come itemClick. L’inspector legge lo stesso ID. In questo modo si evita che la selezione visiva e il pannello dei dettagli facciano riferimento, senza segnalarlo, a record diversi. Le modifiche ai filtri azzerano esplicitamente l’ID selezionato.

Leggi la specifica di supporto

Sistema di design Siemens iX Un inspector che si adatta anche a viewport stretti

Sposta i dettagli sotto l’elenco degli eventi

La griglia a due colonne dell’esempio è un layout applicativo, non un token di griglia pubblicato iX. Nelle viewport strette diventa una sola colonna, mantenendo i record in ordine prima dell’ispettore. L’ispettore non crea una trappola di scorrimento annidata: è possibile scorrere l’intero esempio in modo naturale.

I metadati dell’evento sono visualizzati su una seconda riga con un colore secondario ben leggibile. Il filtro resta al di fuori delle righe ripetute e non si sposta quando cambiano i record. Un paragrafo di stato comunica l’esito della revisione locale del record selezionato, senza modificare il filtro né sostituire il titolo.

Leggi la specifica di supporto

Sistema di design Siemens iX Sistema di progettazione: rendi lo stato percepibile senza affidarti al colore o alla precisione del puntatore

Testo, comandi da tastiera e stato attivo

L’anteprima offline usa pulsanti nativi per i record, un menu a discesa etichettato per la gravità e un’area di stato aria-live per fornire un riscontro sulla revisione. È possibile selezionare un record con Invio e con la barra spaziatrice. La composizione con la libreria nativa usa i wrapper Event List; prima di adottare sovrascritture personalizzate dello stato attivo, è necessario verificare il comportamento da tastiera e con le tecnologie assistive della versione installata.

Le etichette descrivono la distinzione operativa: Contrassegna come esaminato localmente, non Risolvi allarme. Un’azione di revisione disabilitata è accompagnata da uno stato visibile che indica che il record è stato esaminato. Il significato non è affidato interamente al colore e il filtro non lascia una selezione obsoleta e inaccessibile nascosta in un’altra categoria.

Leggi la specifica di supporto

Sistema di design Siemens iX Sistema di progettazione: collega il pacchetto, il tema e lo stato locale dell’applicazione

Una sequenza d’integrazione ponderata

Il blocco di configurazione contiene le importazioni del pacchetto, gli attributi del tema del documento, le proprietà effettive dei componenti, l’intero stato React e CSS dell’applicazione. Il selettore del tema è data-ix-color-schema, non un attributo personalizzato dal nome simile. Blocca le versioni installate di core, wrapper e icone su versioni compatibili nell’applicazione.

L’esemplare visivo è un’interpretazione offline HTML/CSS di queste regole d’interazione. La palette blu navy scuro, i margini interni di 24 pixel e il disegno schematico delle apparecchiature sono scelte originali dell’applicazione. Per ottenere una resa visiva nativa, esegui l’esempio React separato con il foglio di stile ufficiale e controlla i valori calcolati del tema.

  1. Installa core, i wrapper React e le icone in uno scaffold Vite React; conserva l’elemento radice generato.
  2. Sostituisci main.jsx e style.css con i file forniti, poi seleziona classico con scuro, chiaro o sistema nel documento.
  3. Seleziona un record, contrassegnalo come esaminato, filtra l’elenco e verifica che la gravità persista mentre la selezione nascosta venga azzerata.

Leggi la specifica di supporto

Sistema di design Siemens iX Esempi di componenti del sistema di progettazione

Esempio interattivo completo e autonomo

Salva l’intero documento come index.html e aprilo in un browser. Interpretazione indipendente offline HTML/CSS. Palette originale, font di sistema e dimensioni dell’applicazione; non è il runtime iX nativo.

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>

Riferimento del codice

  • Contrassegnare un evento come esaminato non ne modifica la gravità e non risolve un allarme dell’apparecchiatura. La voce iX nativa mostra separatamente la selezione di Event List e gli attributi del tema.

Event List con pannello di ispezione controllato separatamente

Un ID selezionato determina l’evidenziazione dell’elemento e i dettagli. La revisione registra solo uno stato locale nel taccuino; la gravità originale resta visibile.

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}}

Riferimento del codice

  • Usa itemColor per l’indicatore di gravità e un’etichetta testuale leggibile per la gravità.
  • Quando si modifica il filtro di gravità, la selezione viene azzerata, così l’ispettore non mostra i dettagli di un evento nascosto.
  • Il pulsante di revisione locale implementa la logica dell’applicazione, non un inesistente API di conferma dell’allarme iX.

Tipografia che si adatta al tema senza copiare le dimensioni dei caratteri

Usa la proprietà format documentata o il mixin Sass, invece di fissare una dimensione del testo per tutti i temi.

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

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

Riferimento del codice

  • L’anteprima usa un font di sistema alternativo; non distribuisce i font del marchio Siemens.
04

Sistema di design Siemens iX Configurazione dell’agente AI per il sistema di progettazione

Punto di partenza per l’implementazione

Completa main.jsx e style.css per uno scaffold Vite React con il relativo elemento radice esistente. I wrapper ufficiali, l’importazione CSS e le proprietà di Event List sono documentati; qui non è stata eseguita la compilazione con i pacchetti nativi. L’anteprima incorporata è un’interpretazione indipendente offline.

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}}

Un prompt per il tuo progetto

Prompt per l’agente
Crea un taccuino eventi Siemens iX usando le proprietà di Event List verificate e gli attributi del tema del documento descritti in questa guida. Mantieni la gravità indipendente dalla selezione e dalla revisione locale. Nella versione nativa, usa i colori semantici del tema. Non suggerire mai che un’azione del taccuino risolva un allarme fisico. Etichetta i filtri, rendi le righe accessibili da tastiera e disponi l’ispettore in verticale sugli schermi stretti.
05

Sistema di design Siemens iX Fonti e ambito del sistema di progettazione

Guida indipendente OpenDesign. I dati degli eventi e l’illustrazione delle apparecchiature sono fittizi. Gli stili dell’anteprima sono un’interpretazione originale; l’esempio React separato usa API iX documentato. Non sono implementati collegamenti a macchinari, telemetria o conferme in tempo reale.