Enforce style module import rule in skill and sync guard
This commit is contained in:
@@ -54,6 +54,7 @@ Regeln:
|
|||||||
- Semantische Tokens sind Aliase oder Kaskaden auf Foundation Tokens.
|
- 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.
|
- 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.
|
- 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 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.
|
- 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
|
- keine hardcoded Design Values außerhalb der Foundations
|
||||||
- neue oder geänderte semantische Tokens in `styleguide.css` gepflegt
|
- neue oder geänderte semantische Tokens in `styleguide.css` gepflegt
|
||||||
- bestehende Struktur von `styleguide.css` eingehalten
|
- 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
|
- betroffene Dokumentation nachgeführt
|
||||||
- Components unverändert verwendet
|
- Components unverändert verwendet
|
||||||
- keine Component-Internals überschrieben
|
- keine Component-Internals überschrieben
|
||||||
@@ -232,4 +234,4 @@ Nach Umsetzung kurz berichten:
|
|||||||
- verwendete oder ergänzte Foundation Tokens und semantische Tokens
|
- verwendete oder ergänzte Foundation Tokens und semantische Tokens
|
||||||
- verwendete Components, Patterns, Layouts oder Templates
|
- verwendete Components, Patterns, Layouts oder Templates
|
||||||
- nachgeführte Dokumentation
|
- nachgeführte Dokumentation
|
||||||
- offene Punkte oder benötigte Freigaben
|
- offene Punkte oder benötigte Freigaben
|
||||||
|
|||||||
@@ -90,8 +90,36 @@ flatten_css() {
|
|||||||
done < "$source_file"
|
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)"
|
TMP_UPSTREAM_CSS="$(mktemp)"
|
||||||
trap 'rm -f "$TMP_UPSTREAM_CSS"' EXIT
|
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"
|
flatten_css "$SOURCE_CSS" "$STYLEGUIDE_REPO_ROOT" "$TMP_UPSTREAM_CSS"
|
||||||
cp "$TMP_UPSTREAM_CSS" "$PORTAL_CSS_PATH"
|
cp "$TMP_UPSTREAM_CSS" "$PORTAL_CSS_PATH"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user