Static website for schaltstelle.ch.
The site lives in docs/ because GitHub Pages only supports serving from / (root) or /docs. This keeps repo-level files like AGENTS.md and README.md out of the public URL.
docs/ # Served by GitHub Pages
index.html # Main page
impressum.html # Legal notice
datenschutz.html # Privacy policy
branding.html # Branding kit (unlisted – not in nav)
style.css # All styles
fonts/ # Self-hosted Open Sans
images/
logos/ # Company logos, favicons
members/ # Team member photos (400x400 jpg)
clients/ # Client logos
community/ # Community partner logos
services/ # Service icons
animations/ # Service animation videos (600x600 mp4)
Logo assets and brand colors are at /branding.html (unlisted — not linked from the main site, not indexed by search engines).
Example prompts:
Add a new team member:
Add a new member "Anna Müller", role "Software Engineer", with description "...". I put her photo in docs/images/members/.
Add a new client logo:
Add [Company] to the client carousel. I put their logo in docs/images/clients/.
Add a community partner:
Add [Organization] (https://example.ch) to the community section. I put their logo in docs/images/community/.
Update content:
Change the hero text to "..."
- Member photos: 400×400px JPG
- Client logos: PNG or SVG, keep file names clean
- Animation videos: 600×600px MP4, H.264, no audio
The site includes a contrast-optimized viewing mode for better readability. It increases text contrast, removes opacity reductions, and disables the grayscale filter on client logos.
How it activates:
- Automatically for users whose OS or browser has a high-contrast preference enabled (
prefers-contrast: highmedia query). - Manually for testing: Open the browser DevTools, select the
<html>element, and add the classhigh-contrast. All the same overrides apply.
How it works:
- All contrast overrides live in the "High Contrast Mode" section at the end of
style.css. - Two parallel rule sets exist: a
@media (prefers-contrast: high)block for automatic activation, andhtml.high-contrastselectors for manual testing. Both must stay in sync.
Resize a member photo (macOS built-in):
sips -Z 400 docs/images/members/new-photo.jpgRe-encode a JPEG with quality 80%:
sips -s format jpeg -s formatOptions 80 docs/images/members/photo.jpg --out docs/images/members/photo.jpgOptimize a video (requires brew install ffmpeg):
ffmpeg -i input.mp4 -vf "scale=600:600" -c:v libx264 -preset slow -crf 23 -an -movflags +faststart output.mp4