Commit Graph

6 Commits

Author SHA1 Message Date
mAi
b6d23f6d99 fix: #12 lift sub-WCAG-AA text colors on 33 dark-bg sites
Replaces FAIL-level (<3:1) and WEAK (<4.5:1) --text-muted/--text-dim/
--text-faint/--text-dimmer/--accent-dim/--gold-dim values across all
33 affected sites. Targets: text-muted >=4.6:1 (WCAG AA),
text-dim/text-faint >=7:1 (WCAG AAA).

Shared palette pattern (15 sites: deinesei, fragina, ichbinaufbali,
ichbinaufbarley, insain, kainstress, kinowhow, knzlmgmt, kopffrai,
legalais, martinsiebels, schulfrai, smartin3, sorgenfrai, vonschraitter):
  --text-muted #44444f -> #7a7a8e (2.06 -> 4.71)
  --text-dim   #6e6e7a -> #9a9aab (3.93 -> 7.14)

Otto/mai-otto pattern (purple-tinted): #404068 -> #7373bb,
#7070a0 -> #9797d8.

Per-site fixes for kainco, kainefrage, kilitaer (olive), killegal,
killionaer, killuminati, killusion, killions, orakil (warm),
paragraphenraiter (gold), keinefreun, julietensity, billableaua,
allaisonme, allainallain, slopschild — each preserves its tint while
crossing the AA threshold.

Audit before: 31 FAIL, 2 WEAK / 33 sites flagged.
Audit after:  0 FAIL, 0 WEAK / 0 sites flagged.

Adds tools/contrast-audit.py (lifted from /tmp) so future edits can
re-run the regression check from the repo.
2026-05-07 16:48:37 +02:00
mAi
e06d4938ce mAi: #6 - Revive knuth: i18n + AI/KI-Disclosure auf alle Sites
Merge mai/knuth/ai-ki-disclosure-footer (3 commits vom 2026-04-01) nach diesem
Branch. Bringt:
- i18n-Annotations (data-de/data-en) + Footer-Toggle auf 54 Custom-Sites
- shared/ai-disclosure.js (3 Tones: playful/serious/minimal, KI/AI nach lang)
- Template-Infrastruktur in render.sh + base.html (title_i18n, sections,
  ai-disclosure-Tag mit disclosure_tone)

Konflikt-Auflösung (Issue #6):
- shared/impressum.js: main behalten (theme-aware + msbls-alias aus #4)
- 10 Sites mit Marken-Setup aus #3 + #5: main's Brand-Konfiguration
  behalten, nur knuth's i18n-Annotations und ai-disclosure/i18n-Scripts
  übernommen.
  - heygoldi, lexsiebels, mai-otto: <script impressum.js data-owner=flexsiebels>
  - martinsiebels: <script impressum.js data-owner=martinsiebels>
  - 9 Satire (kilibri/kilitaer/killegal/killionaer/killions/killuminati/
    killusion/paragraphenraiter/patentonkel): KEIN impressum.js, dafür
    statischer onepager-msbls-link Footer.
- billableaua, smartin3, clemensplassmann: main's neuere Prosa/Struktur
  behalten (durch #1, #5, #7 nachträglich umgeschrieben). Knuth's i18n-
  Annotations dort verworfen, da auf altem Text. Toggle/Scripts kommen
  trotzdem rein (auto-merged), Re-Annotation später möglich.

QA: ./build.sh -> 59 sites OK. Smoke-Tests heygoldi/kilibri/ichbinotto:
korrekte Brand-Setup, ai-disclosure + i18n.js geladen, Footer-Toggle da.
2026-04-27 20:17:24 +02:00
mAi
a5777ff65d mAi: #3 - mai-otto/lexsiebels Impressum + clemensplassmann Redirect
- mai-otto.de: shared Impressum (flexsiebels full)
- lexsiebels.de: shared Impressum (flexsiebels full)
- clemensplassmann.de: offline genommen, leitet per meta refresh + JS zur
  Hogan-Lovells-Profilseite weiter (https://www.hoganlovells.com/en/clemens-plassmann).
  Fallback-Link sichtbar, falls Redirect blockiert.

Refs: #3
2026-04-23 00:03:21 +02:00
m
84b28d64f5 feat: AI/KI disclosure footer — shared/ai-disclosure.js + all 54 sites
Self-injecting script following impressum.js pattern:
- data-tone attribute: playful | serious | minimal | none
- Reads document.documentElement.lang for KI (de) vs AI (en)
- MutationObserver on lang attr for i18n toggle compat
- All tones link to msbls.de/ki
- Injected into all 54 custom sites with data-tone="playful"
- Template infra: base.html includes script, render.sh reads disclosure.tone
- disclosure.tone added to 3 example site.yaml files

Implements m/onepager#2
2026-04-01 13:26:04 +02:00
m
5c92a7b021 feat: i18n annotations — data-de/data-en + toggle for all 54 custom sites
Phase 2 of i18n rollout:
- All 54 static custom sites now have data-de/data-en attributes on
  visible text elements with English translations
- i18n.js script tag injected into all sites
- Language toggle button with machine-translation disclaimer added
  to every site's footer area
- Brand names / domain wordplay preserved unchanged in both languages
- 2 dynamic sites (dasbes.de, dumusst.com) skipped — no static HTML
2026-04-01 13:19:40 +02:00
mAi
6f5de542ab feat: initial mono-repo with 30 vanity domain sites
Scaffold complete repo structure:
- 28 static sites extracted from running containers on mlake
- 2 dynamic sites (dasbes.de, dumusst.com) marked for separate handling
- Template system with 6 templates (person-dark/light, product-dark, editorial, fun, minimal)
- Shared CSS (variables, responsive, animations, noise overlay)
- nginx config generator with multi-domain alias support
- Build script with Docker-based nginx validation
- add-site.sh helper for scaffolding new domains
- Dockerfile for single nginx:alpine container

Sites: clemensplassmann.de, danosi.de, deinesei.de, derkaiseristnackt.de,
elefantenhor.de, fragina.de, frenchkis.de, ichbinaufbali.de, ichbinaufbarley.de,
insain.de, julietensity.de, kainco.de (+keinco.de), kainstress.de, keinefreun.de,
knzlmgmt.de, kopffrai.de, legalais.de, machesdocheinfach.de, mai-otto.de
(+otto.flexsiebels.de, ottomatisch.de, ichbinotto.de), martinsiebels.de,
matthiasbreier.de, osterai.de, paragraphenraiter.de, schulfrai.de, smartin3.de,
sorgenfrai.de, vonschraitter.de, wartebitte.de

Refs: otto#341
2026-03-29 13:20:27 +02:00