Il canvas
L'editor visuale di schermate — griglia, spostare e ridimensionare, guide intelligenti, allineare, livelli, ancore, undo e l'inspector.
Le schermate di un'app si disegnano in un editor visuale: trascini widget da una palette su un canvas, li posizioni al pixel con l'aiuto di una griglia e di guide intelligenti, e rifinisci ogni dettaglio in un inspector a destra. Questa pagina spiega quell'ambiente di lavoro — tutto ciò che viene dopo (widget, dati, eventi) accade dentro di esso.
Gli esempi vengono dall'app Gestione Clienti: un CRM con schermate di account, opportunità e dashboard.
Aprire e creare schermate
Le schermate vivono nella barra laterale dell'app, nella scheda UI, dentro la sezione Schermate. Cliccare su una schermata la apre in una scheda dello spazio di lavoro — puoi avere più schermate aperte affiancate, e ogni scheda si ricorda che cosa stavi facendo.
Per creare una schermata:
- Apri l'app e scegli la scheda UI nella barra laterale.
- Nella sezione Schermate, clicca sul pulsante Nuova schermata.
- Dalle un nome — per esempio, Scheda Cliente — e conferma con Crea.
- La schermata si apre subito nello spazio di lavoro, pronta da disegnare.
La stessa sezione ha cartelle (Nuova cartella) per organizzare l'albero, le schermate di Sistema (login, recupero password e registrazione — con rotta e parametri fissi) e i Layout — template riutilizzabili che restano per il capitolo Layout e design per dispositivo.

Le tre zone del designer
| Zona | Che cos'è |
|---|---|
| Widget (sinistra) | Il catalogo dei widget. Trascinane uno qualsiasi sul canvas — il suggerimento sull'elemento stesso te lo dice: Trascina sul canvas. |
| Canvas (centro) | La pagina della schermata, disegnata alla scala reale del dispositivo attivo, già con il tema dell'app applicato. Quello che vedi è ciò che l'app mostra. |
| Inspector (destra) | Le proprietà di ciò che è selezionato — o della schermata stessa, quando non c'è selezione. Ha due schede: Proprietà e Struttura. |
Sopra il canvas c'è la barra degli strumenti: i tre dispositivi (Web (1280px), Tablet (768px), Mobile (390px)), undo/redo, livelli, duplica, elimina, allinea/distribuisci, Anteprima e lo zoom (Ingrandisci, Riduci, e la percentuale cliccabile per Ripristina 100%).
Nota
Ogni dispositivo ha un design proprio e indipendente — non c'è ereditarietà fra loro. Il perché e il come sono in Layout e design per dispositivo.
La griglia
Il canvas poggia su una griglia che tiene le schermate in ordine senza legarti le mani:
- In orizzontale, la pagina si divide in 48 colonne. La posizione e la larghezza di un widget si contano in colonne — è ciò che fa sì che una schermata disegnata per il web resti proporzionata in un modale più stretto.
- In verticale, l'aggancio è a passi di 8 pixel; la posizione e l' altezza si salvano al pixel.
Trascinando, il widget si aggancia alla colonna e al passo verticale più vicini. Se hai bisogno di lasciarlo esattamente dov'è il mouse, tieni premuto il tasto Alt durante il trascinamento — l'aggancio si disattiva finché resta premuto.
Gli stessi valori si possono scrivere a mano: con un widget selezionato, la categoria Layout dell'inspector mostra Col, Largh (in colonne), Y e Alt (in pixel).
Selezionare, spostare, ridimensionare
- Clic seleziona un widget; Shift+clic aggiunge o toglie dalla selezione; trascinare a partire da una zona vuota disegna un riquadro di selezione che prende tutto ciò che tocca.
- Trascina un widget per spostarlo; tira le maniglie degli angoli e dei lati per ridimensionarlo.
- Le frecce della tastiera spostano la selezione: ←/→ una colonna, ↑/↓ un pixel — e Shift+↑/↓ otto pixel alla volta.
- Lasciare un widget dentro un Pannello, delle Schede o una Barra fissa lo rende figlio di quel contenitore: comincia a muoversi con lui e la posizione diventa relativa al contenitore.
Guide intelligenti
Mentre trascini o ridimensioni, il canvas confronta il widget in movimento con i vicini e suggerisce agganci — le guide si disegnano sul momento:
| Guida | Quando appare |
|---|---|
| Allineamento | Un lato o il centro del widget resta allineato con il lato/centro di un vicino — il widget si incolla a quella linea. |
| Spaziatura uguale | Stai lasciando il widget alla stessa distanza a cui due vicini stanno già fra loro — la fila resta con intervalli giusti. |
| Dimensione uguale | Ridimensionando, la larghezza o l'altezza diventa uguale a quella di un vicino — si incolla a quella dimensione. |
L'allineamento vince sulla spaziatura, e la spaziatura vince sulla griglia: quando stai visibilmente cercando di accostare a un lato, è questo che succede.
Allineare e distribuire
Con due o più widget selezionati, la barra degli strumenti attiva i pulsanti di allineamento: Allinea a sinistra, Centra orizzontalmente, Allinea a destra, Allinea in alto, Centra verticalmente e Allinea in basso. Con tre o più, si aggiungono Distribuisci orizzontalmente e Distribuisci verticalmente, che pareggiano gli intervalli tenendo il primo e l'ultimo al loro posto.
Con più widget selezionati l'inspector riassume: N widget selezionati — usa la barra per allineare/distribuire.
Livelli
I widget possono sovrapporsi — un'Etichetta sopra un'Immagine, per esempio. L'ordine si controlla dalla barra degli strumenti: Porta in primo piano, Avanti di un livello, Indietro di un livello e Porta in fondo.
Ancore — legare ai margini
Per impostazione predefinita, un widget resta dove l'hai posato. Le ancore legano i lati del widget ai margini della pagina (o del contenitore in cui si trova): seleziona un widget e clicca sui perni che appaiono a metà di ogni lato — Ancora in alto, Ancora a sinistra, Ancora a destra, Ancora in basso.
- Ancorare sinistra + destra fa allungare il widget con la larghezza della pagina — la classica intestazione a tutta larghezza.
- Ancorare in basso incolla il widget in fondo alla pagina — una barra di pulsanti che resta in basso, qualunque sia l'altezza della pagina.
L'altezza della pagina
La pagina di una schermata ha altezza fissa per dispositivo — non cresce mai da sola con il contenuto. Il bordo inferiore del canvas è una maniglia: trascinala per regolare (Altezza della pagina — trascina per regolare). Sotto il contenuto, lo sfondo della schermata prosegue fino in fondo (lo sfondo continua fino alla fine della schermata). Se il contenuto supera l'altezza, l'utente scorre — salvo che tu non lo disattivi (vedi le proprietà della schermata).
Annullare, ripetere e le scorciatoie
Ogni gesto — lasciare, spostare, ridimensionare, cambiare una proprietà, eliminare — è un passo di cronologia. Annulla (Ctrl+Z) e Ripeti (Ctrl+Shift+Z) sono nella barra; movimenti di tastiera consecutivi si fondono in un solo passo, perché l' undo non debba tornare indietro tasto per tasto.
| Scorciatoia | Azione |
|---|---|
| Ctrl+Z / Ctrl+Shift+Z (o Ctrl+Y) | Annulla / Ripeti |
| Ctrl+C / Ctrl+X / Ctrl+V | Copia / Taglia / Incolla (la copia entra spostata di una colonna) |
| Ctrl+D | Duplica la selezione |
| Ctrl+A | Selezionare tutti i widget del dispositivo attivo |
| Delete o Backspace | Elimina la selezione |
| Escape | Azzerare la selezione |
| Frecce / Shift+↑↓ | Spostare la selezione (colonna per colonna; 1 px; 8 px) |
| Ctrl+rotellina del mouse | Zoom |
Su Mac, usa ⌘ dove si legge Ctrl.
Nota
Eliminare un contenitore elimina ciò che sta dentro; eliminare una Tabella elimina anche i pulsanti di azione collegati a lei. Un solo Annulla ripristina tutto.
Salvataggio automatico e anteprima
Non c'è un pulsante di salvataggio: le modifiche si salvano da sole. L'angolo in alto a destra dice a che punto sono — Salvataggio…, Salvato, oppure Salvataggio non riuscito — riprova se qualcosa è andato storto (basta rimettere mano per riprovare).
Il pulsante Anteprima salva ciò che è in sospeso e apre la schermata nell'app reale, in una nuova scheda del browser — passi dal login come qualsiasi utente e vedi la schermata funzionare con dati veri.
L'inspector
L'inspector ha due schede:
- Proprietà — tutto ciò che è modificabile in ciò che è selezionato.
- Struttura — l'albero dei widget del dispositivo attivo.
Proprietà di un widget
Con un widget selezionato, la parte alta dell'inspector mostra il tipo e l'id del widget (in carattere monospaziato) — è questo id che usi nel codice degli eventi. Le proprietà si organizzano in categorie; ogni widget mostra solo quelle che lo riguardano:
| Categoria | Che cosa contiene |
|---|---|
| Layout | Col, Largh, Y, Alt, e gli interruttori Visibile e Attivo (un widget inattivo resta grigio e senza interazione). |
| Accesso | Richiede l'azione — un'azione dichiarata in Impostazioni ▸ Autorizzazioni; chi non ce l'ha non usa il widget. In Senza l'azione scegli Nascondi o Mostra disattivato. |
| Contenuto | Testi, etichette, icone — e i Valori della frase (vedi più sotto). |
| Dati | Il collegamento ai dati del widget (vedi Datastore e dati). |
| Comportamento | Opzioni di funzionamento — viste, trascinamenti, azioni al clic. |
| Validazione | Nei campi di modulo: Obbligatorio, regole standard e script (vedi I widget). |
| Interazione | Azioni di clic di widget come il Pulsante. |
| Aspetto | Stile visivo (vedi più sotto). |
| Eventi | Gli eventi del widget (vedi Eventi e SDK). |
Alcuni widget hanno elementi interni modificabili — una colonna della Tabella, un campo dell'Elenco, una scheda delle Schede. Clicca sull'elemento direttamente nel canvas per modificarlo; l'inspector passa a quell'elemento e il pulsante torna al widget ti riporta indietro.
Aspetto
La categoria Aspetto è uguale in (quasi) tutti i widget: Sfondo, Bordo con Tratto del bordo (Continuo, Tratteggiato, Punteggiato), raggio, padding, Ombra (Nessuna ombra, Leggera, Media, Forte, Extra), e le opzioni di Testo — colore, Dimensione, Peso, Allinea testo. I colori accettano i token del tema dell'app o valori hex — usa i token ogni volta che è possibile, perché il widget segua il tema.
I widget con intestazione propria (pannelli, tabelle, grafici…) aggiungono qui Mostra titolo e Mostra descrizione, con i rispettivi testi.
Regole di formattazione
Sempre nell'Aspetto, le Regole di formattazione cambiano lo stile in base ai dati: colorare di rosso le righe in ritardo, nascondere un pulsante a seconda della sessione, mettere un KPI in verde sopra l'obiettivo.
- Clicca su Nuova regola.
- Scegli l'ambito — Il widget, Ogni riga o Una cella (riga/cella esistono solo nei widget che disegnano righe, come la Tabella).
- In Quando, aggiungi le condizioni (campo, operatore, valore — il valore può venire da un parametro, dalla sessione, dallo stato…). Senza condizioni, la regola si applica sempre.
- In Allora, scegli che cosa cambia: Sfondo, Colore del testo, Grassetto, Corsivo, Sottolineato, Allineamento, Formato o Nascondi.
L'ordine conta — l'ultima regola che corrisponde è quella che vale. L'interruttore Attiva disattiva una regola senza eliminarla, per fare prove. E il codice degli eventi ha sempre l'ultima parola sulle regole.
Valori della frase
Qualsiasi testo di un widget può avere dei buchi: scrivi {n} nel testo (per
esempio, "{n} account attivi") e la sezione Valori della frase appare nella
categoria Contenuto, per dire da dove viene ogni valore — da un
datastore, da un parametro, dalla sessione, dallo stato o da un altro widget. È il
modo di mettere numeri vivi dentro frasi traducibili senza scrivere codice.
La scheda Struttura
La scheda Struttura elenca tutti i widget del dispositivo attivo, ad albero (contenitori con i figli dentro). Serve a selezionare ciò che è coperto, vedere ciò che è nascosto (Nascosto da un contenitore padre) e commutare la visibilità iniziale di ogni widget con l'occhio — Nascondi su questo dispositivo / Mostra su questo dispositivo.

La schermata e le sue proprietà
Clicca su una zona vuota del canvas (o premi Escape) e l'inspector passa a mostrare la schermata stessa:
| Sezione | Che cosa definisce |
|---|---|
| Schermata | Il nome e il Percorso — il cammino della schermata nell'indirizzo dell'app (minuscole, numeri e trattini). |
| Parametri del percorso | I parametri che la schermata riceve nell'indirizzo (es.: l'id dell'account in /ficha-de-conta/:id). Ognuno può essere Obbligatorio; l'ordine si regola con Sposta su/Sposta giù. |
| Comportamento | Scorrimento della schermata — Automatico o Nessuno scorrimento. |
| Accesso | Schermata pubblica (senza sessione) — la schermata si apre senza login; i dati arrivano solo da API pubbliche. |
| Aspetto | Lo sfondo della pagina: Colore, Immagine (assets) e Adattamento (Copri, Contieni, Estendi, Centra, Ripeti). |
| Presentazione | Se la schermata è una pagina normale, un Modale (al centro) o un Pannello laterale (a destra) — dettagliato in Eventi e SDK. |
| Template della schermata | Il Layout associato — vedi Layout e design per dispositivo. |
| Dati | I datastore della schermata — vedi Datastore e dati. |
| Eventi | Gli eventi della schermata (onLoad, onParamsChange, onUnload) — vedi Eventi e SDK. |

Atenção
Cambiare il Percorso cambia l'indirizzo della schermata — menu e link che puntavano al percorso vecchio non ci arrivano più. Verifica la navigazione dopo aver messo mano.
Perché no…?
- Perché non riesco a spostare un widget? Se appare con un lucchetto, viene da un layout — la posizione si modifica nel layout stesso, non nella schermata. Vedi Layout e design per dispositivo.
- Perché il widget non si aggancia dove voglio? Le guide e la griglia stanno vincendo sul tuo gesto — tieni premuto Alt per disattivare l'aggancio mentre trascini.
- Perché il widget è sparito dal canvas? Guarda la Struttura: può essere nascosto (occhio), dentro una scheda che non è attiva, o dietro un altro widget (usa i livelli).