/

Ein UI-Framework wählen (none / Tailwind / Bootstrap)

Eine einzige Konfigurationseinstellung entscheidet, wie jedes Grid, jedes Formular und jeder Button der gesamten Installation gestylt wird.

XcrudConfig::$ui

Jede optische Entscheidung, die xCRUD Nova Pro trifft - Button-Klassen, Tabellenrahmen, Modal-Chrome, Formularsteuerungs-Styling - wird von einem einzigen String-Schalter in src/Config.php gesteuert:

public static string $ui = 'tailwind';
WertBeschreibung
'none'Eingebautes, abhängigkeitsfreies "Paper-Ledger"-Theme - eigenes handgeschriebenes CSS mit Custom Properties (--xcrud-pine, --xcrud-radius und Verwandte), keinerlei CDN-Anfragen.
'tailwind'Lädt den Tailwind-CDN-Build sowie Google Fonts (Inter für UI-Text, JetBrains Mono für Monospace/Code). Dies ist der Standard.
'bootstrap'Bootstrap-artige Klassen und Komponenten, geladen vom CDN.

Global, nicht pro Seite

Anders als die meisten Xcrud-Einstellungen hat $ui keine Override-Möglichkeit pro Widget - es gibt keinen ->ui('bootstrap')-Aufruf auf der Klasse Xcrud. Jede Seite, jedes Widget, jeder themenbewusste Helfer (Xcrud::uiAssets(), die JS-Globalen unter window.Xcrud) liest denselben installationsweiten Wert. Ihn zu ändern, gestaltet die gesamte Anwendung auf einmal neu - das ist auch der Sinn: Eine gemischte Theme-Installation würde bedeuten, mehrfache Kopien von CDN-CSS/JS ohne jeden Nutzen auf derselben Seite auszuliefern.

Wie ein Theme aufgebaut ist

Jeder Wert von $ui wird auf einen Ordner unter themes/{ui}/ abgebildet:

DateiZweck
theme.jsEine Zuordnung von Klassennamen-Strings, die das clientseitige Widget bei der Konstruktion liest - registriert sich unter window.XcrudThemes[ui] und muss vor core/xcrud.js selbst geladen werden.
assets.php (optional)Alles Zusätzliche, das das Theme im <head> braucht - CDN-<script>/<link>-Tags, Google-Fonts-Links, Framework-Konfiguration. Ein Theme ohne Zusatzbedarf (wie 'none', das nur sein eigenes xcrud.css braucht) kann diese Datei komplett auslassen.

Beide Dateien werden für eine normale Widget-Seite automatisch von render() ausgegeben. Eine Seite ohne Widget, die trotzdem die Assets des Themes möchte (ein eigener Button, ein eigenständiger Toast), ruft Xcrud::uiAssets() direkt auf - dieses Muster finden Sie unter Entkoppelte Frontends & CORS.

<script src="themes/<?= XcrudConfig::$ui ?>/theme.js"></script>
<?= Xcrud::uiAssets() ?>

Die richtige Wahl treffen

Wählen Sie 'none' für eine abhängigkeitsfreie Installation (keine CDN-Erreichbarkeit nötig, kleinste Nutzlast), 'tailwind', wenn Ihre eigene Site bereits auf Utility-Klassen setzt oder Sie ohne jeden Aufwand den Standard-Look möchten, und 'bootstrap', wenn der Rest Ihrer Anwendung bereits auf Bootstrap basiert und die CRUD-Bildschirme optisch dazu passen sollen.