Skip to content

Commit f9220c1

Browse files
authored
docs(blog): safe CSS properties in themes (#377)
2 parents a05f1a2 + dfc7b7b commit f9220c1

File tree

13 files changed

+70
-20
lines changed

13 files changed

+70
-20
lines changed

blog/2023-06-21.mdx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ title: SPA, PWA und Hyprid-Apps
88

99
import { KolLink } from '@public-ui/react';
1010

11-
> Hinweis: Dieser Artikel wurde zu Teilen durch [ChatGPT] generiert. Die Inhalte wurden von einem Menschen überprüft und ggf. angepasst.
1211

1312
## Motivation
1413

@@ -70,4 +69,3 @@ Einige beliebte Hybrid-Frameworks und Plattformen sind Cordova/PhoneGap, Ionic u
7069

7170
Es ist wichtig anzumerken, dass Hybrid-Apps im Vergleich zu nativen Apps möglicherweise nicht die gleiche Leistung oder nahtlose Integration in die Plattform bieten können. Die Wahl zwischen einer Hybrid-App und einer nativen App hängt von den spezifischen Anforderungen des Projekts, dem erforderlichen Grad an Plattformintegration und der Benutzererfahrung ab, die Sie erreichen möchten.
7271

73-
[ChatGPT]: https://chat.openai.com/

blog/2023-06-28.mdx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ title: Komponentenbibliothek vs. Designsystem
88

99
import { KolLink } from '@public-ui/react';
1010

11-
> Hinweis: Dieser Artikel wurde zu Teilen durch [ChatGPT] generiert. Die Inhalte wurden von einem Menschen überprüft und ggf. angepasst.
1211

1312
## Was ist eine Komponentenbibliothek?
1413

@@ -139,4 +138,3 @@ Für die Betrachtung des Themas Komponentenbibliothek vs. Designsysteme aus ande
139138
- https://www.ramotion.com/blog/design-system-vs-component-library/#section-component-library-definition (EN)
140139
- https://www.uxpin.com/studio/blog/design-systems-vs-pattern-libraries-vs-style-guides-whats-difference/ (EN)
141140

142-
[ChatGPT]: https://chat.openai.com/

blog/2023-06-30.mdx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ title: Web- und Native-Apps
88

99
import { KolLink } from '@public-ui/react';
1010

11-
> Hinweis: Dieser Artikel wurde zu Teilen durch [ChatGPT] generiert. Die Inhalte wurden von einem Menschen überprüft und ggf. angepasst.
1211

1312
## Motivation
1413

@@ -86,4 +85,3 @@ Für die Betrachtung des Themas Web- und Native-Apps aus anderen Perspektiven is
8685

8786
- https://app-entwickler-verzeichnis.de/faq-app-entwicklung/11-definitionen/586-unterschiede-und-vergleich-native-apps-vs-web-apps-2
8887

89-
[ChatGPT]: https://chat.openai.com/

blog/2023-07-01.mdx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ title: React Native vs. Flutter
88

99
import { KolLink } from '@public-ui/react';
1010

11-
> Hinweis: Dieser Artikel wurde zu Teilen durch [ChatGPT] generiert. Die Inhalte wurden von einem Menschen überprüft und ggf. angepasst.
1211

1312
## Was ist React Native?
1413

@@ -55,4 +54,3 @@ Für die Betrachtung des Themas React Native vs. Flutter aus anderen Perspektive
5554
- https://hackr.io/blog/react-native-vs-flutter (EN)
5655
- https://www.it-intouch.de/news/details/react-native-vs-flutter-unterschiede-gemeinsamkeiten-im-vergleich/
5756

58-
[ChatGPT]: https://chat.openai.com/

blog/2023-07-11.mdx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ title: KoliBri - intuitiv erlernen
88

99
import { KolLink } from '@public-ui/react';
1010

11-
> Hinweis: Dieser Artikel wurde zu Teilen durch [ChatGPT] generiert. Die Inhalte wurden von einem Menschen überprüft und ggf. angepasst.
1211

1312
Im Laufe der Jahre weisen die Benennung und Semantik in HTML teilweise große Unterschieden auf. Aufgrund der Abwärtskompatibilität von HTML sind Korrekturen und Änderungen nur äußerst schwierig umzusetzen. Diese Situation hat zu unzähligen Best Practices und How-to's geführt, die versuchen, auf unterschiedliche Weise ähnliche Anforderungen umzusetzen. Angesichts des wachsenden Bewusstseins für Barrierefreiheit und den damit verbundenen gesetzlichen Anforderungen gewinnt die Semantik jedoch eine immense Bedeutung. Hier kommt KoliBri ins Spiel, indem es einen barrierefreien Webcomponent-Standard auf HTML schafft und gleichzeitig für eine einheitlichere und somit leicht erlernbare Verwendung sorgt.
1413

@@ -36,4 +35,3 @@ Die Verwendung von einheitlichen Eigenschaften in der Entwicklung von Komponente
3635

3736
Und das Beste ist, alle Verbesserungen fließen soweit möglich schon in Version 1 ein und bereiten damit eine möglichst harmonische Migration auf Version 2 vor.
3837

39-
[ChatGPT]: https://chat.openai.com/
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
---
2+
authors:
3+
- deleonio
4+
- chatgpt
5+
date: '2025-08-28'
6+
title: CSS-Properties in Themes sicher nutzen
7+
---
8+
9+
10+
# CSS-Properties in Themes sicher nutzen
11+
12+
KoliBri, auch bekannt als Public UI Components, ermöglicht durch adaptive Styles ein flexibles Theming. Über CSS-Properties lassen sich Farben, Abstände und weitere Designwerte zentral steuern. Allerdings greift der Schutz des Shadow DOMs hier nicht: CSS-Properties wirken global und können ungewollt mit Variablen der hostenden Seite kollidieren.
13+
14+
## Problemstellung
15+
16+
Wer in seinen Themes viele Custom Properties verwendet, riskiert Konflikte mit gleichnamigen Variablen auf der Root-Seite. Diese Überschneidungen können das Erscheinungsbild einer Anwendung unerwartet verändern und damit sowohl Nutzende als auch Entwickler:innen irritieren.
17+
18+
## Strategien zur Konfliktvermeidung
19+
20+
- **Namensräume nutzen:** Präfixe wie `--kolibri-` reduzieren die Wahrscheinlichkeit, dass sich Variablen überschneiden. Vollständige Sicherheit bietet dieser Ansatz jedoch nicht.
21+
- **Interne Werte in SCSS abbilden:** Für Berechnungen und Zwischenschritte sollten SASS-Variablen (`$variable`) verwendet werden. Sie werden zur Build-Zeit aufgelöst und tauchen nicht mehr als globale CSS-Properties auf.
22+
- **Nur notwendige Properties exponieren:** Externe Custom Properties sollten auf ein Minimum reduziert werden. Je weniger globale Variablen, desto geringer die Kollisionsgefahr.
23+
24+
## Handreichung
25+
26+
1. **Design Tokens als Basis:** Übernehmt die in Figma definierten, bereits präfixierten Tokens als Ausgangspunkt.
27+
2. **SCSS-Variablen einsetzen:** Wandelt interne Custom Properties in SASS-Variablen um, um Berechnungen kapselnd zu halten.
28+
3. **Dokumentation erweitern:** Beschreibt klar, welche Properties extern verfügbar sind und welche ausschließlich intern genutzt werden.
29+
30+
## Fazit
31+
32+
Durch den bewussten Einsatz von SCSS und einem schlanken Satz an Custom Properties bleiben Themes wartbar und kollisionsfrei. Wer diese einfachen Regeln beachtet, schafft robuste und leicht integrierbare Designs.
33+

docs/20-concepts/05-styling/40-scss.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ Dieser Artikel beschreibt, wie Scss zur Erstellung von KoliBri-Themes genutzt we
1313
KoliBri bietet zum Erstellen von Themes auch einen <KolLink _label="Designer" _href="/docs/concepts/styling/designer" /> an. Je nach persönlichen Präferenzen kann Scss oder der Designer verwendet werden.
1414
</KolAlert><br/>
1515

16+
<KolAlert _label="CSS-Properties" _type="warning" _variant="card">
17+
CSS-Custom-Properties wirken global und sind nicht durch den Shadow DOM geschützt. Verwende präfixierte Namen und bilde interne Werte über SASS-Variablen ab, damit es zu keinen Kollisionen mit Variablen der hostenden Seite kommt.
18+
</KolAlert><br/>
19+
1620
Scss ist eine Erweiterung von CSS, die es ermöglicht, Variablen, Funktionen, Mixins und vieles mehr zu verwenden. Scss kann für die Erstellung von KoliBri-Themes genutzt. Hierfür hat das Entwicklungsteam vom Projekt <KolLink _label="KERN" _href="https://gitlab.opencode.de/kern-designsystem/pattern-library" _target="_blank" /> ein Build-Script geschrieben, um aus Scss-Dateien die entsprechenden KoliBri-Themes zu generieren.
1721

1822
## Hintergrund

i18n/en/docusaurus-plugin-content-blog/2023-06-21.mdx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ title: SPA, PWA und Hyprid-Apps
1010
1111
import { KolLink } from '@public-ui/react';
1212

13-
> Hinweis: Dieser Artikel wurde zu Teilen durch [ChatGPT] generiert. Die Inhalte wurden von einem Menschen überprüft und ggf. angepasst.
1413

1514
## Motivation
1615

@@ -72,4 +71,3 @@ Einige beliebte Hybrid-Frameworks und Plattformen sind Cordova/PhoneGap, Ionic u
7271

7372
Es ist wichtig anzumerken, dass Hybrid-Apps im Vergleich zu nativen Apps möglicherweise nicht die gleiche Leistung oder nahtlose Integration in die Plattform bieten können. Die Wahl zwischen einer Hybrid-App und einer nativen App hängt von den spezifischen Anforderungen des Projekts, dem erforderlichen Grad an Plattformintegration und der Benutzererfahrung ab, die Sie erreichen möchten.
7473

75-
[ChatGPT]: https://chat.openai.com/

i18n/en/docusaurus-plugin-content-blog/2023-06-28.mdx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ title: Component Library vs. Design System
88

99
import { KolLink } from '@public-ui/react';
1010

11-
> Note: This article was generated in part by [ChatGPT]. The content was checked by a human and adjusted if necessary.
1211

1312
# Component library vs. design system
1413

@@ -141,4 +140,3 @@ The following articles are also worth reading for a different perspective on the
141140
- https://www.ramotion.com/blog/design-system-vs-component-library/#section-component-library-definition (EN)
142141
- https://www.uxpin.com/studio/blog/design-systems-vs-pattern-libraries-vs-style-guides-whats-difference/ (EN)
143142

144-
[ChatGPT]: https://chat.openai.com/

i18n/en/docusaurus-plugin-content-blog/2023-06-30.mdx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ title: Web- und Native-Apps
1010
1111
import { KolLink } from '@public-ui/react';
1212

13-
> Hinweis: Dieser Artikel wurde zu Teilen durch [ChatGPT] generiert. Die Inhalte wurden von einem Menschen überprüft und ggf. angepasst.
1413

1514
## Motivation
1615

@@ -88,4 +87,3 @@ Für die Betrachtung des Themas Web- und Native-Apps aus anderen Perspektiven is
8887

8988
- https://app-entwickler-verzeichnis.de/faq-app-entwicklung/11-definitionen/586-unterschiede-und-vergleich-native-apps-vs-web-apps-2
9089

91-
[ChatGPT]: https://chat.openai.com/

0 commit comments

Comments
 (0)