diff --git a/.codex/skills/styleguide-erstellung/SKILL.md b/.codex/skills/styleguide-erstellung/SKILL.md index df234e6..5273680 100644 --- a/.codex/skills/styleguide-erstellung/SKILL.md +++ b/.codex/skills/styleguide-erstellung/SKILL.md @@ -54,6 +54,7 @@ Regeln: - Semantische Tokens sind Aliase oder Kaskaden auf Foundation Tokens. - Neue oder geänderte semantische Tokens an der fachlich passenden Stelle in `styleguide.css` ergänzen. - Struktur, Reihenfolge, Gruppierung, Kommentarlogik und Benennungssystematik von `styleguide.css` einhalten. +- Wenn CSS in Moduldateien (z. B. unter `styles/`) ausgelagert ist, muss jede neue oder umbenannte Moduldatei explizit per `@import` in `styleguide.css` eingehängt werden; unimportierte Moduldateien sind unzulässig. - HTML-Dateien dürfen keine lokalen Token-Blöcke, keine eigenen `:root`-Definitionen und keine abweichenden Token-Definitionen enthalten. - HTML-Dateien dürfen semantische Tokens nur aus `styleguide.css` referenzieren. @@ -212,6 +213,7 @@ Vor Abschluss prüfen: - keine hardcoded Design Values außerhalb der Foundations - neue oder geänderte semantische Tokens in `styleguide.css` gepflegt - bestehende Struktur von `styleguide.css` eingehalten +- bei modularisiertem CSS: alle relevanten Moduldateien sind in `styleguide.css` importiert, keine verwaisten `styles/*.css` - betroffene Dokumentation nachgeführt - Components unverändert verwendet - keine Component-Internals überschrieben @@ -232,4 +234,4 @@ Nach Umsetzung kurz berichten: - verwendete oder ergänzte Foundation Tokens und semantische Tokens - verwendete Components, Patterns, Layouts oder Templates - nachgeführte Dokumentation -- offene Punkte oder benötigte Freigaben \ No newline at end of file +- offene Punkte oder benötigte Freigaben diff --git a/scripts/sync_styleguide_to_webapp_aktienberater.sh b/scripts/sync_styleguide_to_webapp_aktienberater.sh index d870326..6acf893 100755 --- a/scripts/sync_styleguide_to_webapp_aktienberater.sh +++ b/scripts/sync_styleguide_to_webapp_aktienberater.sh @@ -90,8 +90,36 @@ flatten_css() { done < "$source_file" } +assert_no_unimported_styles() { + local source_file="$1" + local source_root="$2" + local styles_dir="$source_root/styles" + local missing_imports=() + + if [[ ! -d "$styles_dir" ]]; then + return 0 + fi + + while IFS= read -r css_file; do + local rel_path="./styles/$(basename "$css_file")" + if ! grep -Eq "^[[:space:]]*@import[[:space:]]+\"$rel_path\"[[:space:]]*;" "$source_file"; then + missing_imports+=("$rel_path") + fi + done < <(find "$styles_dir" -maxdepth 1 -type f -name '*.css' | sort) + + if [[ ${#missing_imports[@]} -gt 0 ]]; then + echo "Unimported CSS module files detected in styles/:" >&2 + for file in "${missing_imports[@]}"; do + echo " - $file" >&2 + done + echo "Add missing @import lines in $source_file before syncing." >&2 + exit 1 + fi +} + TMP_UPSTREAM_CSS="$(mktemp)" trap 'rm -f "$TMP_UPSTREAM_CSS"' EXIT +assert_no_unimported_styles "$SOURCE_CSS" "$STYLEGUIDE_REPO_ROOT" flatten_css "$SOURCE_CSS" "$STYLEGUIDE_REPO_ROOT" "$TMP_UPSTREAM_CSS" cp "$TMP_UPSTREAM_CSS" "$PORTAL_CSS_PATH"