Panoramica
Twenty UI è la libreria UI React open source di Twenty. Fornisce primitive fondamentali, componenti condivisi, icone e token del tema con CSS predefinito, quindi l’applicazione non necessita di un compilatore CSS-in-JS.Installa
Per un’applicazione React esistente, installa la libreria. React 19 è richiesto.twenty-ui/components/code-editor. Gli altri componenti non richiedono Monaco. Per utilizzare l’editor di codice, installa le relative dipendenze peer facoltative e configura i worker di Monaco per il tuo bundler prima di montarlo:
twenty-ui, twenty-sdk e twenty-client-sdk alla stessa versione.
Carica gli stili e fornisci un tema
Importa una volta il foglio di stile dei componenti e un foglio di stile del tema nel punto di ingresso dell’applicazione.ThemeProvider applica la classe del tema attivo e rende disponibili ai componenti i valori del tema.
Sostituisci gli stili
Twenty UI inserisce gli stili dei componenti e il reset nel livello di cascatatwenty-ui. Gli stili che scrivi al di fuori di un livello, come un className, un modulo CSS o una regola CSS-in-JS, sovrascrivono tali regole a livelli indipendentemente dalla specificità del selettore o dall’ordine di importazione. I fogli di stile del tema e le regole globali Monaco opzionali dell’editor rimangono senza livelli.
Anche i reset globali degli elementi nella tua applicazione non hanno livelli, quindi sovrascriverebbero i componenti di Twenty UI. Dichiara un livello per essi prima che venga caricato il foglio di stile di Twenty UI:
Scegli un punto di ingresso
Importa i componenti dal relativo sottopercorso pubblico per mantenere mirate le importazioni: Le primitive sono controlli fondamentali, inclusi controlli composti come Select, Popover e AlertDialog. I componenti condivisi combinano le primitive in preset di progettazione ricorrenti e blocchi riutilizzabili per la creazione di app. Entrambi ricevono dati e callback dall’applicazione. Usa MainButton per le azioni principali e LightButton per le azioni leggere. Entrambi provengono datwenty-ui/components/input e condividono il contratto di interazione fondamentale di
Button. Il routing e il layout della pagina
rimangono nell’applicazione.
Ogni famiglia di primitive e componenti condivisi ha un punto di ingresso pubblico corrispondente, come
twenty-ui/primitives/input e twenty-ui/components/settings. Le voci aggregate
twenty-ui/primitives e twenty-ui/components esportano le rispettive famiglie.
La voce radice twenty-ui riesporta primitive, componenti condivisi, icone, token del tema
e utilità. Le risorse, gli helper di test e l’editor di codice opzionale hanno punti di ingresso separati.
Importa singole icone, ad esempio
IconCheck, da twenty-ui/icon. Il provider dinamico di icone include l’intero catalogo di icone, quindi riservalo alle interfacce che devono cercare icone in fase di esecuzione.
Hook responsive
ImportauseIsMobile, useIsTouchDevice e useMediaQuery da twenty-ui/utilities.
Le costanti delle query provengono da
twenty-ui/utilities; MOBILE_VIEWPORT proviene da twenty-ui/theme. Le sottoscrizioni condividono un MediaQueryList per query e si aggiornano quando cambia la relativa corrispondenza. Gli hook restituiscono false durante il rendering del server, il primo rendering di idratazione e quando window.matchMedia non è disponibile.
In un componente front di Twenty, le query di larghezza seguono il riquadro del widget. useIsMobile segue quindi la larghezza del widget, mentre useIsTouchDevice segue l’input principale del dispositivo. Usa gli override delle storie per provare questi stati in Storybook.
Continua
- Temi: utilizza token semantici e override con ambito definito.
- Modalità scura: passa tra palette chiare e scure.
Esplora la libreria
- Primitive: controlli fondamentali raggruppati per famiglia, con esempi di utilizzo e riferimenti API.
- Componenti: preset di progettazione condivisi e blocchi di costruzione riutilizzabili dell’app composti da primitive.