Überblick: Bisheriges Website-Styling (data/styles-src)
In den fürheren Versionen (ANDP Versionen bis inklusive 2.5) war das zentrale Styling der Anwendung unter data/styles-src abgelegt. Dieses SCSS-basierte Styling galt global für die gesamte Website, also für alle templates und alle Seiten im Portal und wurde mit klassischen Web-Technologien (CSS, SCSS) umgesetzt.
Neues Styling für MicroApps ab ANDP 8.2
Hinweis: Folgendes gilt nur für Versionen ab ANDP 8.2
Mit ANDP 8.2 wurde aufgrund vom Umstieg auf React-Nativ ein neues Styling-System eingeführt, das speziell für die verschiedene MicroApps gedacht ist. Dieses basiert auf React Native StyleSheets und ist technisch unabhängig vom bisherigen styles-src. Somit hat das alte style-src überhaupt keinen Einfluss mehr auf die MicroApps:
- Nachrichten MicroApp
- Geschäftsfälle MicroApp
- Aufgaben MicroApp
- FormGen MicroApp
Das alte style-src wird nur mehr für das Portal, welches die MicroApps integriert, verwendet. (Also für Sachen wie zum Beispiel die Navigationsleiste, das Login Menü, den Footer, den Servicekatalog, etc.)
Anpassung von MicroApp-Styling in Projekten
Mit dem Umstieg auf React Native wird ein neues Styling-Konzept verwendet, das nicht mehr mit klassischem CSS oder SCSS kompatibel ist. Der Grund dafür ist, dass React Native Styles nicht nur für Web, sondern auch für native Plattformen (iOS, Android) generiert werden – klassische Web-Stylesheets können dafür nicht direkt übernommen werden.
🔧 Wie funktioniert Styling jetzt?
- Jede Stildefinition ist ein JS-Objekt, das wie eine CSS-Klasse funktioniert.
- Statt Bindestrich-Notation (font-size) wird CamelCase verwendet (fontSize).
- Werte werden direkt als Strings oder Zahlen angegeben – jeweils mit Doppelpunkt
headline
welche die font size auf 18px
, die font weight auf bold
und die Farbe auf #333
stellt, würde man also beispielsweise wie folgt schreiben
const styles = StyleSheet.create({
headline: {
fontSize: 18,
fontWeight: 'bold',
color: '#333',
},
});
Unterschied zwischen .native.ts
und .web.ts
.native.ts
.web.ts
In manchen Fällen kann es notwendig sein, plattformabhängiges Styling zu verwenden – also unterschiedliches Aussehen für Web und native App (iOS/Android).
Dafür gibt es in React Native eine eingebaute Möglichkeit über Dateiendungen:
: Wird auf mobilen Plattformen verwendet (iOS, Android).native.ts
: Wird auf Web-Plattformen verwendet.web.ts
styles.native.ts
styles.web.ts
Dann wird beim Kompilieren automatisch die passende Datei verwendet – je nachdem, ob die App im Webbrowser oder als native App läuft.
💡 Diese Technik kann z. B. genutzt werden, wenn auf mobilen Geräten andere Abstände, Schriftgrößen oder Touch-spezifische Anpassungen nötig sind.
Custom vs. Common
- Common Styles: Basis-Styling, das von Gentics vorgegeben ist
- Custom Styles: Projektspezifische Anpassungen
- common darf nicht verändert werden – diese Styles sind zentral und updatefähig.
- Eigene Anpassungen und Überschreibungen erfolgen ausschließlich in custom.
- Dort können definierte Objekte aus common gezielt überschrieben oder ergänzt werden.
Vorgehen im Projekt
- Man muss keine neuen Objekte definieren
- Man kann einfach die vorhandenen Objekten mit eigenen Style-Properties befüllen
// Im custom-style von FormGen
const overlayFooterStyles = StyleSheet.create({
footer: {},
footerText: {},
});
Hier könnte man z.B. die Farbe des Text im Footer der Overlays auf Rot setzten, indem man im footerText { color: 'red' }
einfügt.
Diese werden automatisch über das bestehende common-Styling gelegt und überschreiben es bei gleichnamigen Objekten.Theming: Zentrale Steuerung für konsistentes Styling
Neben dem komponentenbasierten Styling über
und common
gibt es ein zentrales Theming-System, das dazu dient, visuelle Eigenschaften einheitlich über alle MicroApps hinweg zu konfigurieren.custom
Das Theming bietet ein zentrales Interface, mit dem sich zum Beispiel Farben, Schriftgrößen oder Abstände gleichzeitig in allen MicroApps anpassen lassen – ohne jede App einzeln ändern zu müssen.
🎨 Aufbau des Themes
- Theme-Properties
Diese werden direkt in den Komponenten aller MicroApps verwendet und sind unter
(bzw.andp-cpa/packages/core/src/styles/theme.web.ts
) zu finden.../theme.native.ts
Wenn man z. B.
im zentralen Theme von weiß auf rot ändert, werden automatisch alle Komponenten, die diese Property verwenden, rot dargestellt – egal in welcher MicroApp.primaryBackgroundColor
- Variablen
Eine Ebene darüber liegen die Definitionen von Variablen, welche unter
zu finden sind.andp-cpa/packages/core/src/styles/variables.ts
Diese Variablen werden im Theme verwendet bzw. können dort an verschiedenen Stellen eingefügt werden.
Sie dienen dazu, Style-Definitionen wie Farben, Abstände, Größen usw. einheitlich an einem Ort festzulegen, um so eine Art Design-System zu schaffen.
Fonts anpassen
- Font-Dateien ablegen
Lege die
- oder.ttf
-Dateien im folgenden Ordner ab:.otf
core/src/styles/custom/fonts
- Fonts in
registrierenfont-config.ts
Öffne die Datei:core/src/styles/custom/font-config.ts
Dort können die Fonts als Key-Value-Paare definiert werden. Beispielweise
Der Key ist der interne Name, den man später alsexport const fontFamilies = {
'Inter-Regular': require('./fonts/Inter-Regular.ttf'),
'Inter-Bold': require('./fonts/Inter-Bold.ttf'),
'MyFont-Italic': require('./fonts/MyFont-Italic.ttf'),
};
im Styling verwenden kann.fontFamily
Der Value ist der Pfad zur Font-Datei, eingebunden mitrequire(...)
- Fonts im Theme zuweisen
Innerhalb des zentralen Themes können diese Fonts dann den verschiedenen Stilarten zugeordnet werden – z. B.:export const theme = {
fonts: {
regular: 'Inter-Regular',
bold: 'Inter-Bold',
italic: 'MyFont-Italic',
thin: 'Inter-Thin',
thinItalic: 'Inter-ThinItalic',
...
},
};
Dadurch kannst man festlegen, welcher Font für welchen Textstil in allen MicroApps verwendet werden soll – zentral und konsistent.