Proprietà dei componenti Figma

Relay riconosce le proprietà dei componenti Figma definite sui componenti in pacchetto. Concettualmente, le proprietà dei componenti di Figma sono simili ai parametri Relay, anche se esistono alcune differenze.

Diagramma - Livelli vettoriali in VectorDrawable in Immagine

In generale, le proprietà dei componenti Figma non richiedono la configurazione e l'utilizzo del plug-in Relay, pertanto è preferibile utilizzarle nei parametri Relay in caso di sovrapposizione. Tuttavia, tieni presente che i parametri Relay consentono un commento descrittivo, che viene trasferito nel codice generato, al contrario delle proprietà del componente Figma.

Di seguito sono riportati ulteriori dettagli sui diversi tipi di proprietà dei componenti e su come vengono interpretati da Relay.

Proprietà booleane

Le proprietà booleane controllano se gli elementi vengono visualizzati in un determinato design. Possono ridurre drasticamente il numero di varianti che un componente deve definire. Ad esempio, un pulsante con un'icona facoltativa non ha bisogno di varianti separate per lo stato mostrata nell'icona e quella nascosta.

L'inoltro rispetta i parametri booleani nei componenti pacchettizzati e genera la firma della funzione @Composable appropriata.

Proprietà testo

Le proprietà del testo sono quasi identiche ai parametri del contenuto testuale dell'inoltro, l'unica differenza risiede nel supporto dei commenti della documentazione. Se sia i parametri di inoltro che le proprietà di testo vengono dichiarati sullo stesso livello, l'inoltro utilizza la definizione del parametro per consentire i commenti. Tuttavia, in questo caso occorre fare attenzione ad evitare confusione usando nomi coerenti.

Se i commenti non sono obbligatori per un determinato parametro, consigliamo di utilizzare una proprietà di testo Figma per semplicità.

Proprietà di scambio di istanze

Le proprietà di scambio di istanze consentono ai client di un componente di scambiare le istanze all'interno di un componente figlio. Concettualmente, questo è simile ai parametri secondari Relay, ma esistono alcune differenze fondamentali:

Applicabilità: le proprietà di scambio delle istanze possono essere applicate solo ai livelli di istanza. I parametri di inoltro figlio, tuttavia, possono essere applicati a istanze, frame o gruppi. Di conseguenza, l'utilizzo delle proprietà di scambio delle istanze richiede che i contenuti scambiati siano un componente, mentre Relay consente ai contenuti di avere qualsiasi sottogerarchia di livelli.

Ambito: il valore delle proprietà di scambio delle istanze può essere impostato solo nel componente di primo livello di una gerarchia dei componenti. Al contrario, i parametri di inoltro secondari sono impostati a qualsiasi livello della gerarchia, in cui il parametro non è esposto a quello padre.

L'inoltro riconosce le proprietà di scambio delle istanze dichiarate sui componenti in pacchetto e le tratta per quanto possibile equivalente ai parametri figlio (ad esempio, emettendo la stessa firma della funzione nel codice generato). Se viene dichiarato un parametro figlio Relay su un livello di istanza, la sua definizione ha la precedenza sulla proprietà di scambio delle istanze (se presente) dichiarata in quel livello.

Come per le proprietà di testo, l'utilizzo sia di una proprietà del componente Figma che di un parametro Relay sullo stesso livello può causare confusione se la denominazione non è coerente. Tuttavia, poiché i parametri secondari presentano differenze significative nella capacità di scambiare le proprietà, non abbiamo una raccomandazione generale su quale utilizzo e dove. Entrambe sono possibilità. L'uso previsto del componente determinerà questa decisione.

Proprietà variante

Le proprietà delle varianti vengono create implicitamente quando i componenti hanno più di una variante. Relay supporta le proprietà delle varianti convertendole in valori di enumerazione nel codice generato.

I designer possono anche dichiarare i parametri di inoltro che espongono le proprietà delle varianti per i livelli istanza in un componente in pacchetto.