Files
miracles_in_motion/scripts/brand/export-brand-assets.sh
T
defiQUGandCursor 5c465d176e Institutional A-grade nav logo: SVG lockups, WCAG audit, and deploy hygiene.
Add transparent nav SVG assets with raster fallbacks, header contrast and focus fixes, automated a11y audit scripts, and evidence reports for institutional review.

Co-authored-by: Cursor <[email protected]>
2026-06-15 19:06:00 -07:00

99 lines
3.7 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
# Generate web-ready brand assets and MIM4U-Brand-Kit.zip from sources in assets/brand-sources/.
# Requires: ImageMagick (convert). Run from repo root: ./scripts/brand/export-brand-assets.sh
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
MIM_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
SRC="$MIM_ROOT/assets/brand-sources"
OUT="$MIM_ROOT/public/brand"
PUBLIC="$MIM_ROOT/public"
GREEN="#1a3c34"
if ! command -v convert >/dev/null 2>&1; then
echo "Error: ImageMagick convert is required." >&2
exit 1
fi
mkdir -p "$OUT"
symbol="$SRC/logo-symbol-source.png"
horizontal="$SRC/logo-horizontal-source.png"
square="$SRC/logo-square-source.png"
for f in "$symbol" "$horizontal" "$square"; do
if [[ ! -f "$f" ]]; then
echo "Missing source: $f" >&2
exit 1
fi
done
echo "Exporting symbol PNG sizes..."
for size in 64 128 256 512 1024; do
convert "$symbol" -resize "${size}x${size}" -strip "$OUT/logo-symbol-${size}.png"
done
cp "$OUT/logo-symbol-512.png" "$OUT/logo-symbol.png"
echo "Exporting horizontal PNG/WebP..."
convert "$horizontal" -strip "$OUT/logo-horizontal.png"
convert "$horizontal" -quality 88 -define webp:method=6 "$OUT/logo-horizontal.webp"
convert "$horizontal" -resize 2048x -strip "$OUT/logo-horizontal-2x.png"
echo "Exporting nav-optimized transparent lockups..."
convert "$horizontal" -alpha set \
-fuzz 18% -transparent "#1a3c34" \
-fuzz 12% -transparent "#05382f" \
-fuzz 8% -transparent "#0f2922" \
PNG32:"$OUT/logo-horizontal-nav.png"
convert "$OUT/logo-horizontal-nav.png" -quality 88 -define webp:method=6 "$OUT/logo-horizontal-nav.webp"
convert "$symbol" -trim +repage -background none -resize 512x512\> PNG32:"$OUT/logo-symbol-nav.png"
echo "Exporting square PNG/WebP..."
convert "$square" -strip "$OUT/logo-square.png"
convert "$square" -quality 88 -define webp:method=6 "$OUT/logo-square.webp"
echo "Exporting favicon / touch icons (symbol on brand green)..."
for size in 16 32 180 192 512; do
convert "$symbol" -background "$GREEN" -gravity center -resize "${size}x${size}" -extent "${size}x${size}" -strip "$OUT/favicon-${size}.png"
done
# Multi-size favicon.ico
convert "$OUT/favicon-16.png" "$OUT/favicon-32.png" "$OUT/favicon.ico"
# Root copies for site + PWA
cp "$OUT/logo-horizontal.png" "$PUBLIC/logo-horizontal.png"
cp "$OUT/logo-square.png" "$PUBLIC/logo.png"
cp "$OUT/logo-symbol.png" "$PUBLIC/logo-symbol.png"
cp "$OUT/favicon-16.png" "$PUBLIC/favicon-16x16.png"
cp "$OUT/favicon-32.png" "$PUBLIC/favicon-32x32.png"
cp "$OUT/favicon-180.png" "$PUBLIC/apple-touch-icon.png"
cp "$OUT/favicon-192.png" "$PUBLIC/favicon-192x192.png"
cp "$OUT/favicon-512.png" "$PUBLIC/favicon-512x512.png"
cp "$OUT/favicon.ico" "$PUBLIC/favicon.ico"
echo "Generating OG social image (1200×630)..."
convert "$horizontal" -resize 1200x630^ -gravity center -extent 1200x630 -strip "$OUT/og-image.png"
cp "$OUT/og-image.png" "$PUBLIC/og-image.png" 2>/dev/null || cp "$OUT/og-image.png" "$PUBLIC/og-image.jpg" 2>/dev/null || true
if [[ -f "$PUBLIC/og-image.jpg" ]]; then
convert "$OUT/og-image.png" -quality 90 "$PUBLIC/og-image.jpg"
fi
echo "Building brand kit ZIP..."
(
cd "$OUT"
rm -f MIM4U-Brand-Kit.zip
zip -q MIM4U-Brand-Kit.zip \
logo-symbol.svg logo-symbol-nav.svg \
logo-symbol.png logo-symbol-64.png logo-symbol-128.png logo-symbol-256.png logo-symbol-512.png logo-symbol-1024.png \
logo-horizontal.png logo-horizontal.webp logo-horizontal-2x.png \
logo-horizontal-nav.svg logo-horizontal-nav.png logo-horizontal-nav.webp logo-symbol-nav.png \
logo-square.png logo-square.webp \
favicon.ico favicon-16.png favicon-32.png favicon-180.png favicon-192.png favicon-512.png \
og-image.png \
BRAND_GUIDELINES.md 2>/dev/null || true
)
echo "Done. Outputs: $OUT"