Sprung zum Inhalt: Seite ohne Maus in einem Schritt bedienbar
Der Tastatur-Test (pruef-tastatur.mjs, neu) zeigte auf allen fünf geprüften Seiten dasselbe Bild: jedes Bedienelement erreichbar, Fokus durchgehend sichtbar, keine Tastaturfalle -- aber kein Sprunglink. Ohne ihn muss sich jemand, der die Tastatur benutzt, auf JEDER Seite erneut durch das komplette Menü tabben (31 bis 52 Punkte), bevor der eigentliche Inhalt beginnt. WCAG 2.4.1 verlangt genau diesen Ausweg. An einer Stelle gelöst statt in 35 Dateien: renderHeader() in main.js setzt das Sprungziel und stellt den Link davor. Das tabindex="-1" am <main> ist der Teil, der meistens fehlt: ohne ihn verschiebt der Sprung in Chrome und Safari nur die Bildlaufleiste, der Tastaturfokus bleibt in der Navigation -- der nächste Tab landet wieder im Menü und der Sprung war wirkungslos. Cache-Buster auf 20260827a (244 Stellen), sonst bekäme niemand die geänderte main.js und main.css ausgeliefert. Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -18,10 +18,10 @@
|
||||
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
|
||||
<meta name="robots" content="noindex" />
|
||||
<title>Seite nicht gefunden — DOGFATHER UNIVERSE</title>
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260827a" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="site-header"></div>
|
||||
@@ -41,7 +41,7 @@
|
||||
</main>
|
||||
|
||||
<div id="site-footer"></div>
|
||||
<script src="assets/js/i18n-404.js?v=20260821t"></script>
|
||||
<script src="assets/js/main.js?v=20260821t"></script>
|
||||
<script src="assets/js/i18n-404.js?v=20260827a"></script>
|
||||
<script src="assets/js/main.js?v=20260827a"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+7
-7
@@ -19,10 +19,10 @@
|
||||
<meta name="twitter:description" content="Unterstütze Dogfather dauerhaft mit der DogiCrew 🩵 und sammle exklusive Treueprämien — die Teddy-Kollektion entsteht in Kooperation mit VanVan." />
|
||||
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
|
||||
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260827a" />
|
||||
<style>
|
||||
/* =====================================================================
|
||||
Preis-/Anmelde-Kiste — komplett neu gestaltet (Nutzer-Feedback
|
||||
@@ -603,9 +603,9 @@
|
||||
</main>
|
||||
|
||||
<div id="site-footer"></div>
|
||||
<script src="assets/js/i18n-abonnieren.js?v=20260821t"></script>
|
||||
<script src="assets/js/supporter.js?v=20260821t"></script>
|
||||
<script src="assets/js/main.js?v=20260821t"></script>
|
||||
<script src="assets/js/i18n-abonnieren.js?v=20260827a"></script>
|
||||
<script src="assets/js/supporter.js?v=20260827a"></script>
|
||||
<script src="assets/js/main.js?v=20260827a"></script>
|
||||
<script>
|
||||
(function () {
|
||||
const S = window.DogiSupporter;
|
||||
|
||||
@@ -20,10 +20,10 @@
|
||||
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
|
||||
<meta name="robots" content="noindex" />
|
||||
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260827a" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="site-header"></div>
|
||||
@@ -134,6 +134,6 @@
|
||||
</main>
|
||||
|
||||
<div id="site-footer"></div>
|
||||
<script src="assets/js/main.js?v=20260821t"></script>
|
||||
<script src="assets/js/main.js?v=20260827a"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+7
-7
@@ -19,10 +19,10 @@
|
||||
<meta name="twitter:description" content="Detailansicht einer Aktion oder eines Projekts von Team Dogi." />
|
||||
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
|
||||
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260827a" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="site-header"></div>
|
||||
@@ -51,9 +51,9 @@
|
||||
</main>
|
||||
|
||||
<div id="site-footer"></div>
|
||||
<script src="assets/js/data-aktionen.js?v=20260821t"></script>
|
||||
<script src="assets/js/i18n-aktion-detail.js?v=20260821t"></script>
|
||||
<script src="assets/js/main.js?v=20260821t"></script>
|
||||
<script src="assets/js/data-aktionen.js?v=20260827a"></script>
|
||||
<script src="assets/js/i18n-aktion-detail.js?v=20260827a"></script>
|
||||
<script src="assets/js/main.js?v=20260827a"></script>
|
||||
<script>
|
||||
document.addEventListener("DOMContentLoaded", () => {
|
||||
const params = new URLSearchParams(location.search);
|
||||
|
||||
@@ -37,6 +37,42 @@ ul { list-style: none; margin: 0; padding: 0; }
|
||||
--shadow: 0 10px 30px rgba(0,0,0,.35);
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------
|
||||
Sprung zum Inhalt (Tastaturbedienung, WCAG 2.4.1)
|
||||
|
||||
Der Link ist das erste Element der Seite und für Mausnutzer unsichtbar.
|
||||
Er darf aber NICHT mit display:none oder visibility:hidden versteckt
|
||||
werden -- damit wäre er auch für die Tastatur verschwunden, und genau
|
||||
die soll ihn ja erreichen. Deshalb wird er aus dem Bild geschoben und
|
||||
kehrt zurück, sobald er den Fokus bekommt.
|
||||
|
||||
:focus statt :focus-visible -- ein Sprunglink wird ausschließlich per
|
||||
Tastatur angesteuert, und ältere Browser kennen :focus-visible nicht;
|
||||
die würden ihn dann nie zeigen.
|
||||
|
||||
Farbe bewusst der Akzentton auf dunklem Text (nicht umgekehrt): Das
|
||||
ergibt rund 12:1 Kontrast, ohne dass ein greller Kasten aufblitzt.
|
||||
--------------------------------------------------------------------- */
|
||||
.site-skip {
|
||||
position: absolute;
|
||||
left: -9999px;
|
||||
top: 0;
|
||||
z-index: 3000;
|
||||
background: var(--accent);
|
||||
color: var(--accent-contrast);
|
||||
font-family: var(--font-head);
|
||||
font-weight: 700;
|
||||
text-decoration: none;
|
||||
padding: .85rem 1.4rem;
|
||||
border-radius: 0 0 var(--radius) 0;
|
||||
box-shadow: var(--shadow);
|
||||
}
|
||||
.site-skip:focus { left: 0; }
|
||||
|
||||
/* Das Sprungziel bekommt tabindex="-1" (siehe main.js). Ohne diese Regel
|
||||
malt der Browser dann einen Fokusrahmen um den halben Bildschirm. */
|
||||
main[tabindex="-1"]:focus { outline: none; }
|
||||
|
||||
body {
|
||||
background: var(--bg);
|
||||
color: var(--text);
|
||||
|
||||
@@ -75,6 +75,12 @@
|
||||
}
|
||||
|
||||
const I18N_CORE = {
|
||||
/* Steht als Erstes im Wörterbuch, weil es als Erstes angesprungen wird:
|
||||
der Sprung über die Navigation direkt zum Inhalt. Sichtbar nur, wenn
|
||||
er den Tastaturfokus hat -- mit der Maus bekommt ihn niemand zu sehen.
|
||||
Ohne ihn muss man sich auf JEDER Seite erneut durch das komplette
|
||||
Menü tabben (über 20 Punkte), bevor der eigentliche Text beginnt. */
|
||||
nav_zum_inhalt: { de: "Zum Inhalt springen", "de-CH": "Zum Inhalt springe", en: "Skip to content", fr: "Aller au contenu", pt: "Ir para o conteúdo" },
|
||||
nav_start: { de: "Start", "de-CH": "Start", en: "Home", fr: "Accueil", pt: "Início" },
|
||||
/* Umbenennungen 20.08.2026 (Nutzer-Wunsch): Kategorie "DogFather" -> "Filipe",
|
||||
Kategorie "HasiDog" -> "Dogi&Hasi". Die Schlüsselnamen (nav_dogfather...)
|
||||
@@ -547,7 +553,27 @@
|
||||
function renderHeader() {
|
||||
const el = document.getElementById("site-header");
|
||||
if (!el) return;
|
||||
|
||||
/* Sprungziel vorbereiten.
|
||||
|
||||
Das tabindex="-1" ist der entscheidende Teil und wird fast überall
|
||||
vergessen: Ein Sprung auf ein Element, das von sich aus keinen Fokus
|
||||
annehmen kann, verschiebt in Chrome und Safari nur die Bildlaufleiste
|
||||
-- der Tastaturfokus bleibt oben in der Navigation stehen. Der nächste
|
||||
Tab landet dann wieder im Menü, und der Sprung war wirkungslos.
|
||||
Mit -1 nimmt <main> den Fokus programmatisch an, taucht aber selbst
|
||||
NICHT in der Tab-Reihenfolge auf.
|
||||
|
||||
Beides nur setzen, wenn nichts dasteht: Falls eine Seite schon eine
|
||||
eigene id oder ein eigenes tabindex hat, wird das nicht überfahren. */
|
||||
const inhalt = document.querySelector("main");
|
||||
if (inhalt) {
|
||||
if (!inhalt.id) inhalt.id = "inhalt";
|
||||
if (!inhalt.hasAttribute("tabindex")) inhalt.setAttribute("tabindex", "-1");
|
||||
}
|
||||
|
||||
el.innerHTML = `
|
||||
${inhalt ? `<a class="site-skip" href="#${inhalt.id}" data-i18n="nav_zum_inhalt">${t("nav_zum_inhalt")}</a>` : ""}
|
||||
<header class="site-header">
|
||||
<div class="nav-bar">
|
||||
<a class="brand" href="index.html">
|
||||
|
||||
@@ -19,10 +19,10 @@
|
||||
<meta name="twitter:description" content="Du bist Streamer und suchst einen Manager? Bewirb dich als Creator bei Spicy Media." />
|
||||
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
|
||||
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260827a" />
|
||||
</head>
|
||||
<body class="mit-hintergrund bewerben-seite" style="--page-bg:url('/assets/img/bg-bewerben-creator.jpg');--page-bg-mobile:url('/assets/img/bg-bewerben-creator-mobile.jpg');">
|
||||
<div id="site-header"></div>
|
||||
@@ -70,8 +70,8 @@
|
||||
</main>
|
||||
|
||||
<div id="site-footer"></div>
|
||||
<script src="assets/js/forms.js?v=20260821t"></script>
|
||||
<script src="assets/js/i18n-bewerben-creator.js?v=20260821t"></script>
|
||||
<script src="assets/js/main.js?v=20260821t"></script>
|
||||
<script src="assets/js/forms.js?v=20260827a"></script>
|
||||
<script src="assets/js/i18n-bewerben-creator.js?v=20260827a"></script>
|
||||
<script src="assets/js/main.js?v=20260827a"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -22,10 +22,10 @@
|
||||
<meta name="twitter:description" content="Kooperationsanfrage an Manager DogFather / Spicy Media." />
|
||||
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
|
||||
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260827a" />
|
||||
</head>
|
||||
<body class="mit-hintergrund bewerben-seite" style="--page-bg:url('/assets/img/bg-bewerben.jpg');--page-bg-mobile:url('/assets/img/bg-bewerben-mobile.jpg');">
|
||||
<div id="site-header"></div>
|
||||
@@ -68,8 +68,8 @@
|
||||
</main>
|
||||
|
||||
<div id="site-footer"></div>
|
||||
<script src="assets/js/forms.js?v=20260821t"></script>
|
||||
<script src="assets/js/i18n-bewerben-kooperation.js?v=20260821t"></script>
|
||||
<script src="assets/js/main.js?v=20260821t"></script>
|
||||
<script src="assets/js/forms.js?v=20260827a"></script>
|
||||
<script src="assets/js/i18n-bewerben-kooperation.js?v=20260827a"></script>
|
||||
<script src="assets/js/main.js?v=20260827a"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+7
-7
@@ -19,10 +19,10 @@
|
||||
<meta name="twitter:description" content="Werde Modi bei Team Dogi — DogFathers persönliches Community-Team." />
|
||||
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
|
||||
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260827a" />
|
||||
</head>
|
||||
<body class="mit-hintergrund bewerben-seite" style="--page-bg:url('/assets/img/bg-bewerben-modi.jpg');--page-bg-mobile:url('/assets/img/bg-bewerben-modi-mobile.jpg');">
|
||||
<div id="site-header"></div>
|
||||
@@ -79,8 +79,8 @@
|
||||
</main>
|
||||
|
||||
<div id="site-footer"></div>
|
||||
<script src="assets/js/forms.js?v=20260821t"></script>
|
||||
<script src="assets/js/i18n-bewerben-modi.js?v=20260821t"></script>
|
||||
<script src="assets/js/main.js?v=20260821t"></script>
|
||||
<script src="assets/js/forms.js?v=20260827a"></script>
|
||||
<script src="assets/js/i18n-bewerben-modi.js?v=20260827a"></script>
|
||||
<script src="assets/js/main.js?v=20260827a"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+7
-7
@@ -19,10 +19,10 @@
|
||||
<meta name="twitter:description" content="Werde Scout für DogFather bei der Spicy Media Agentur — finde neue Talente." />
|
||||
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
|
||||
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260827a" />
|
||||
</head>
|
||||
<body class="mit-hintergrund bewerben-seite" style="--page-bg:url('/assets/img/bg-bewerben-scout.jpg');--page-bg-mobile:url('/assets/img/bg-bewerben-scout-mobile.jpg');">
|
||||
<div id="site-header"></div>
|
||||
@@ -71,8 +71,8 @@
|
||||
</main>
|
||||
|
||||
<div id="site-footer"></div>
|
||||
<script src="assets/js/forms.js?v=20260821t"></script>
|
||||
<script src="assets/js/i18n-bewerben-scout.js?v=20260821t"></script>
|
||||
<script src="assets/js/main.js?v=20260821t"></script>
|
||||
<script src="assets/js/forms.js?v=20260827a"></script>
|
||||
<script src="assets/js/i18n-bewerben-scout.js?v=20260827a"></script>
|
||||
<script src="assets/js/main.js?v=20260827a"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+6
-6
@@ -19,10 +19,10 @@
|
||||
<meta name="twitter:description" content="Werde Teil vom Team: Modi bei Team Dogi, Scout oder Creator bei Spicy Media, oder Kooperation anfragen." />
|
||||
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
|
||||
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260827a" />
|
||||
</head>
|
||||
<body class="mit-hintergrund bewerben-seite" style="--page-bg:url('/assets/img/bg-bewerben-split.jpg');--page-bg-mobile:url('/assets/img/bg-bewerben-split-mobile.jpg');">
|
||||
<div id="site-header"></div>
|
||||
@@ -85,7 +85,7 @@
|
||||
</main>
|
||||
|
||||
<div id="site-footer"></div>
|
||||
<script src="assets/js/i18n-bewerben.js?v=20260821t"></script>
|
||||
<script src="assets/js/main.js?v=20260821t"></script>
|
||||
<script src="assets/js/i18n-bewerben.js?v=20260827a"></script>
|
||||
<script src="assets/js/main.js?v=20260827a"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+6
-6
@@ -19,10 +19,10 @@
|
||||
<meta name="twitter:description" content="Der Husky an DogFathers Seite — das tierische Gesicht der HasiDog-Welt." />
|
||||
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
|
||||
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260827a" />
|
||||
</head>
|
||||
<body class="mit-hintergrund" style="--page-bg:url('/assets/img/bg-casper.jpg');--page-bg-mobile:url('/assets/img/bg-casper-mobile.jpg');">
|
||||
<div id="site-header"></div>
|
||||
@@ -85,7 +85,7 @@
|
||||
</main>
|
||||
|
||||
<div id="site-footer"></div>
|
||||
<script src="assets/js/i18n-casper.js?v=20260821t"></script>
|
||||
<script src="assets/js/main.js?v=20260821t"></script>
|
||||
<script src="assets/js/i18n-casper.js?v=20260827a"></script>
|
||||
<script src="assets/js/main.js?v=20260827a"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+6
-6
@@ -19,10 +19,10 @@
|
||||
<meta name="twitter:description" content="Team Dogi ist Familie — die Community rund um DogFather und HasiDog." />
|
||||
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
|
||||
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260827a" />
|
||||
</head>
|
||||
<body class="mit-hintergrund" style="--page-bg:url('/assets/img/bg-community.jpg');--page-bg-mobile:url('/assets/img/bg-community-mobile.jpg');">
|
||||
<div id="site-header"></div>
|
||||
@@ -84,7 +84,7 @@
|
||||
</main>
|
||||
|
||||
<div id="site-footer"></div>
|
||||
<script src="assets/js/i18n-community.js?v=20260821t"></script>
|
||||
<script src="assets/js/main.js?v=20260821t"></script>
|
||||
<script src="assets/js/i18n-community.js?v=20260827a"></script>
|
||||
<script src="assets/js/main.js?v=20260827a"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+7
-7
@@ -19,10 +19,10 @@
|
||||
<meta name="twitter:description" content="Content Creator, die Teil von DogFather / Spicy Media sind." />
|
||||
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
|
||||
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260827a" />
|
||||
</head>
|
||||
<body class="mit-hintergrund" style="--page-bg:url('/assets/img/bg-creator.jpg');--page-bg-mobile:url('/assets/img/bg-creator-mobile.jpg');">
|
||||
<div id="site-header"></div>
|
||||
@@ -60,9 +60,9 @@
|
||||
</main>
|
||||
|
||||
<div id="site-footer"></div>
|
||||
<script src="assets/js/data-creator.js?v=20260821t"></script>
|
||||
<script src="assets/js/i18n-creator.js?v=20260821t"></script>
|
||||
<script src="assets/js/main.js?v=20260821t"></script>
|
||||
<script src="assets/js/data-creator.js?v=20260827a"></script>
|
||||
<script src="assets/js/i18n-creator.js?v=20260827a"></script>
|
||||
<script src="assets/js/main.js?v=20260827a"></script>
|
||||
<script>
|
||||
document.addEventListener("DOMContentLoaded", async () => {
|
||||
const grid = document.getElementById("creator-grid");
|
||||
|
||||
+6
-6
@@ -19,10 +19,10 @@
|
||||
<meta name="twitter:description" content="Wer ist DogFather wirklich? Persönlichkeit, Werte und die Geschichte hinter dem Content." />
|
||||
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
|
||||
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260827a" />
|
||||
</head>
|
||||
<body class="mit-hintergrund" style="--page-bg:url('/assets/img/bg-dogfather-person.jpg');--page-bg-mobile:url('/assets/img/bg-dogfather-person-mobile.jpg');">
|
||||
<div id="site-header"></div>
|
||||
@@ -158,7 +158,7 @@
|
||||
</main>
|
||||
|
||||
<div id="site-footer"></div>
|
||||
<script src="assets/js/i18n-dogfather.js?v=20260821t"></script>
|
||||
<script src="assets/js/main.js?v=20260821t"></script>
|
||||
<script src="assets/js/i18n-dogfather.js?v=20260827a"></script>
|
||||
<script src="assets/js/main.js?v=20260827a"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -26,8 +26,8 @@
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
|
||||
<meta name="apple-mobile-web-app-title" content="DogFather" />
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260827a" />
|
||||
<style>
|
||||
/* =====================================================================
|
||||
Zugangsseite — bewusst kein braves Standard-Login-Formular, sondern
|
||||
|
||||
+6
-6
@@ -19,10 +19,10 @@
|
||||
<meta name="twitter:description" content="HasiDog: Maskottchen, Musikprojekt und die verspielte, familiäre Seite von Team Dogi." />
|
||||
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
|
||||
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260827a" />
|
||||
</head>
|
||||
<body class="mit-hintergrund" style="--page-bg:url('/assets/img/bg-hasidog.jpg');--page-bg-mobile:url('/assets/img/bg-hasidog-mobile.jpg');">
|
||||
<div id="site-header"></div>
|
||||
@@ -186,7 +186,7 @@
|
||||
</main>
|
||||
|
||||
<div id="site-footer"></div>
|
||||
<script src="assets/js/i18n-hasidog.js?v=20260821t"></script>
|
||||
<script src="assets/js/main.js?v=20260821t"></script>
|
||||
<script src="assets/js/i18n-hasidog.js?v=20260827a"></script>
|
||||
<script src="assets/js/main.js?v=20260827a"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+8
-8
@@ -19,10 +19,10 @@
|
||||
<meta name="twitter:description" content="DOGFATHER UNIVERSE: die Heimat von DogFather als Streamer, der HasiDog-Community und Manager DogFather bei Spicy Media." />
|
||||
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
|
||||
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260827a" />
|
||||
</head>
|
||||
<body class="start-seite">
|
||||
<div id="site-header"></div>
|
||||
@@ -290,10 +290,10 @@
|
||||
</main>
|
||||
|
||||
<div id="site-footer"></div>
|
||||
<script src="assets/js/data-modis.js?v=20260821t"></script>
|
||||
<script src="assets/js/data-scouts.js?v=20260821t"></script>
|
||||
<script src="assets/js/i18n-index.js?v=20260821t"></script>
|
||||
<script src="assets/js/main.js?v=20260821t"></script>
|
||||
<script src="assets/js/data-modis.js?v=20260827a"></script>
|
||||
<script src="assets/js/data-scouts.js?v=20260827a"></script>
|
||||
<script src="assets/js/i18n-index.js?v=20260827a"></script>
|
||||
<script src="assets/js/main.js?v=20260827a"></script>
|
||||
<script>
|
||||
// Gleiche URL wie in assets/js/forms.js / postfach.html — läuft seit
|
||||
// 05.08.2026 auf dem eigenen Server statt auf Cloudflare Workers.
|
||||
|
||||
+6
-6
@@ -19,10 +19,10 @@
|
||||
<meta name="twitter:description" content="Kontakt, Impressum und Datenschutz von DOGFATHER UNIVERSE." />
|
||||
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
|
||||
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260827a" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="site-header"></div>
|
||||
@@ -126,7 +126,7 @@
|
||||
</main>
|
||||
|
||||
<div id="site-footer"></div>
|
||||
<script src="assets/js/i18n-kontakt.js?v=20260821t"></script>
|
||||
<script src="assets/js/main.js?v=20260821t"></script>
|
||||
<script src="assets/js/i18n-kontakt.js?v=20260827a"></script>
|
||||
<script src="assets/js/main.js?v=20260827a"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+6
-6
@@ -19,10 +19,10 @@
|
||||
<meta name="twitter:description" content="Alle Social-Media- und Musik-Links von DogFather an einem Ort — plus QR-Codes." />
|
||||
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
|
||||
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260827a" />
|
||||
<style>
|
||||
/* Rabattcodes: an das Supporter-Abo gekoppelt (Nutzer-Feedback
|
||||
03.08.2026: "verbinde es mit dem Abo... wenn die Leute drauf drücken
|
||||
@@ -140,8 +140,8 @@
|
||||
</main>
|
||||
|
||||
<div id="site-footer"></div>
|
||||
<script src="assets/js/i18n-links.js?v=20260821t"></script>
|
||||
<script src="assets/js/main.js?v=20260821t"></script>
|
||||
<script src="assets/js/i18n-links.js?v=20260827a"></script>
|
||||
<script src="assets/js/main.js?v=20260827a"></script>
|
||||
<script>
|
||||
(function () {
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
|
||||
+7
-7
@@ -19,10 +19,10 @@
|
||||
<meta name="twitter:description" content="DogFather als Manager bei der Spicy Media Agency: Scouts, Creator und faire Zusammenarbeit." />
|
||||
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
|
||||
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260827a" />
|
||||
</head>
|
||||
<body class="mit-hintergrund" style="--page-bg:url('/assets/img/bg-manager.jpg');--page-bg-mobile:url('/assets/img/bg-manager-mobile.jpg');">
|
||||
<div id="site-header"></div>
|
||||
@@ -139,9 +139,9 @@
|
||||
</main>
|
||||
|
||||
<div id="site-footer"></div>
|
||||
<script src="assets/js/data-manager.js?v=20260821t"></script>
|
||||
<script src="assets/js/i18n-manager.js?v=20260821t"></script>
|
||||
<script src="assets/js/main.js?v=20260821t"></script>
|
||||
<script src="assets/js/data-manager.js?v=20260827a"></script>
|
||||
<script src="assets/js/i18n-manager.js?v=20260827a"></script>
|
||||
<script src="assets/js/main.js?v=20260827a"></script>
|
||||
<script>
|
||||
// "Weitere Manager" (21.08.2026) -- siehe Kommentar bei #weitere-manager-root
|
||||
// oben. Aktuell IMMER window.MANAGERS === [] (siehe data-manager.js), Inhalt
|
||||
|
||||
+9
-9
@@ -19,10 +19,10 @@
|
||||
<meta name="twitter:description" content="Fotos und Videos rund um Husky Casper an einem Ort." />
|
||||
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
|
||||
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260827a" />
|
||||
</head>
|
||||
<body class="mit-hintergrund" data-welt="casper" style="--page-bg:url('/assets/img/bg-medien-casper.jpg');--page-bg-mobile:url('/assets/img/bg-medien-casper-mobile.jpg');">
|
||||
<div id="site-header"></div>
|
||||
@@ -59,10 +59,10 @@
|
||||
</div>
|
||||
|
||||
<div id="site-footer"></div>
|
||||
<script src="assets/js/data-media.js?v=20260821t"></script>
|
||||
<script src="assets/js/data-videos.js?v=20260821t"></script>
|
||||
<script src="assets/js/medien-welt.js?v=20260821t"></script>
|
||||
<script src="assets/js/i18n-medien-casper.js?v=20260821t"></script>
|
||||
<script src="assets/js/main.js?v=20260821t"></script>
|
||||
<script src="assets/js/data-media.js?v=20260827a"></script>
|
||||
<script src="assets/js/data-videos.js?v=20260827a"></script>
|
||||
<script src="assets/js/medien-welt.js?v=20260827a"></script>
|
||||
<script src="assets/js/i18n-medien-casper.js?v=20260827a"></script>
|
||||
<script src="assets/js/main.js?v=20260827a"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+10
-10
@@ -19,10 +19,10 @@
|
||||
<meta name="twitter:description" content="Fotos, Videos und Events aus DogFathers Welt an einem Ort." />
|
||||
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
|
||||
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260827a" />
|
||||
</head>
|
||||
<body class="mit-hintergrund" data-welt="dogfather" style="--page-bg:url('/assets/img/bg-dogfather.jpg');--page-bg-mobile:url('/assets/img/bg-dogfather-mobile.jpg');">
|
||||
<div id="site-header"></div>
|
||||
@@ -65,11 +65,11 @@
|
||||
</div>
|
||||
|
||||
<div id="site-footer"></div>
|
||||
<script src="assets/js/data-media.js?v=20260821t"></script>
|
||||
<script src="assets/js/data-videos.js?v=20260821t"></script>
|
||||
<script src="assets/js/data-aktionen.js?v=20260821t"></script>
|
||||
<script src="assets/js/medien-welt.js?v=20260821t"></script>
|
||||
<script src="assets/js/i18n-medien-dogfather.js?v=20260821t"></script>
|
||||
<script src="assets/js/main.js?v=20260821t"></script>
|
||||
<script src="assets/js/data-media.js?v=20260827a"></script>
|
||||
<script src="assets/js/data-videos.js?v=20260827a"></script>
|
||||
<script src="assets/js/data-aktionen.js?v=20260827a"></script>
|
||||
<script src="assets/js/medien-welt.js?v=20260827a"></script>
|
||||
<script src="assets/js/i18n-medien-dogfather.js?v=20260827a"></script>
|
||||
<script src="assets/js/main.js?v=20260827a"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+10
-10
@@ -19,10 +19,10 @@
|
||||
<meta name="twitter:description" content="Fotos, Videos und Events aus der HasiDog-Welt an einem Ort." />
|
||||
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
|
||||
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260827a" />
|
||||
</head>
|
||||
<body class="mit-hintergrund" data-welt="hasidog" style="--page-bg:url('/assets/img/bg-medien-hasidog.jpg');--page-bg-mobile:url('/assets/img/bg-medien-hasidog-mobile.jpg');">
|
||||
<div id="site-header"></div>
|
||||
@@ -65,11 +65,11 @@
|
||||
</div>
|
||||
|
||||
<div id="site-footer"></div>
|
||||
<script src="assets/js/data-media.js?v=20260821t"></script>
|
||||
<script src="assets/js/data-videos.js?v=20260821t"></script>
|
||||
<script src="assets/js/data-aktionen.js?v=20260821t"></script>
|
||||
<script src="assets/js/medien-welt.js?v=20260821t"></script>
|
||||
<script src="assets/js/i18n-medien-hasidog.js?v=20260821t"></script>
|
||||
<script src="assets/js/main.js?v=20260821t"></script>
|
||||
<script src="assets/js/data-media.js?v=20260827a"></script>
|
||||
<script src="assets/js/data-videos.js?v=20260827a"></script>
|
||||
<script src="assets/js/data-aktionen.js?v=20260827a"></script>
|
||||
<script src="assets/js/medien-welt.js?v=20260827a"></script>
|
||||
<script src="assets/js/i18n-medien-hasidog.js?v=20260827a"></script>
|
||||
<script src="assets/js/main.js?v=20260827a"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+10
-10
@@ -16,10 +16,10 @@
|
||||
<meta name="twitter:card" content="summary_large_image" />
|
||||
<meta name="robots" content="noindex" /> <!-- generische URL, echte Team-Seiten verlinken hierher -->
|
||||
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260827a" />
|
||||
<style>
|
||||
.profil-photo { aspect-ratio: 4/5; max-width: 420px; margin: 0 auto; }
|
||||
.profil-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
|
||||
@@ -130,12 +130,12 @@
|
||||
</main>
|
||||
|
||||
<div id="site-footer"></div>
|
||||
<script src="assets/js/data-modis.js?v=20260821t"></script>
|
||||
<script src="assets/js/data-scouts.js?v=20260821t"></script>
|
||||
<script src="assets/js/data-creator.js?v=20260821t"></script>
|
||||
<script src="assets/js/data-manager.js?v=20260821t"></script>
|
||||
<script src="assets/js/i18n-profil.js?v=20260821t"></script>
|
||||
<script src="assets/js/main.js?v=20260821t"></script>
|
||||
<script src="assets/js/data-modis.js?v=20260827a"></script>
|
||||
<script src="assets/js/data-scouts.js?v=20260827a"></script>
|
||||
<script src="assets/js/data-creator.js?v=20260827a"></script>
|
||||
<script src="assets/js/data-manager.js?v=20260827a"></script>
|
||||
<script src="assets/js/i18n-profil.js?v=20260827a"></script>
|
||||
<script src="assets/js/main.js?v=20260827a"></script>
|
||||
<script>
|
||||
document.addEventListener("DOMContentLoaded", async () => {
|
||||
const slug = new URLSearchParams(location.search).get("p") || "";
|
||||
|
||||
@@ -0,0 +1,112 @@
|
||||
/* =====================================================================
|
||||
Lässt sich die Seite ohne Maus bedienen?
|
||||
|
||||
WARUM DAS ZÄHLT
|
||||
|
||||
Wer eine Maus nicht führen kann, bedient eine Seite mit der
|
||||
Tabulatortaste. Das betrifft weit mehr Menschen als man denkt —
|
||||
Motorik, Tremor, temporäre Verletzungen, Bildschirmleser. Seit dem
|
||||
Barrierefreiheitsstärkungsgesetz (28.06.2025) ist es für Onlineshops
|
||||
und Dienstleistungen im elektronischen Geschäftsverkehr zudem
|
||||
verpflichtend.
|
||||
|
||||
DIE DREI FEHLER, DIE MAN NICHT SIEHT
|
||||
|
||||
1. Ein Bedienelement lässt sich nicht anspringen. Für die Maus ist
|
||||
es da, für die Tastatur existiert es nicht.
|
||||
|
||||
2. Der Fokus ist unsichtbar. Man springt weiter, sieht aber nicht,
|
||||
wo man ist — als würde jemand den Mauszeiger ausblenden.
|
||||
|
||||
3. Eine Falle: Man kommt hinein, aber nicht mehr heraus. Dann ist
|
||||
die Seite ab dort unbedienbar.
|
||||
|
||||
Keiner dieser Fehler fällt beim normalen Benutzen auf. Man findet
|
||||
sie nur, wenn man es absichtlich versucht.
|
||||
===================================================================== */
|
||||
import { chromium } from "playwright";
|
||||
|
||||
const BASIS = "https://dogfather-universe.com";
|
||||
const SEITEN = ["/", "/kontakt.html", "/supporter.html", "/abonnieren.html", "/stimmen.html"];
|
||||
|
||||
let ok = 0, fehl = 0;
|
||||
const pruefe = (name, gut, info) => {
|
||||
if (gut) { ok++; console.log(" ok " + name + (info ? " -> " + info : "")); }
|
||||
else { fehl++; console.log(" FEHL " + name + (info ? " -> " + info : "")); }
|
||||
};
|
||||
|
||||
const browser = await chromium.launch();
|
||||
|
||||
for (const pfad of SEITEN) {
|
||||
console.log(`\n===== ${pfad} =====`);
|
||||
const seite = await browser.newPage({ viewport: { width: 1280, height: 900 } });
|
||||
await seite.goto(BASIS + pfad, { waitUntil: "networkidle", timeout: 45000 });
|
||||
await seite.waitForTimeout(800);
|
||||
|
||||
/* 1. Wie viele Bedienelemente gibt es, und wie viele erreicht man? */
|
||||
const bedienbar = await seite.evaluate(() => {
|
||||
const auswahl = "a[href], button, input, select, textarea, summary, [tabindex]:not([tabindex='-1'])";
|
||||
return [...document.querySelectorAll(auswahl)].filter((el) => {
|
||||
const r = el.getBoundingClientRect();
|
||||
const st = getComputedStyle(el);
|
||||
return r.width > 0 && r.height > 0 && st.visibility !== "hidden" &&
|
||||
st.display !== "none" && !el.disabled &&
|
||||
!el.closest('[aria-hidden="true"], [inert]');
|
||||
}).length;
|
||||
});
|
||||
|
||||
/* Durchtabben und mitschreiben, wo man landet. */
|
||||
const weg = [];
|
||||
const MAX = Math.min(bedienbar + 15, 90);
|
||||
for (let i = 0; i < MAX; i++) {
|
||||
await seite.keyboard.press("Tab");
|
||||
const wo = await seite.evaluate(() => {
|
||||
const el = document.activeElement;
|
||||
if (!el || el === document.body) return null;
|
||||
const r = el.getBoundingClientRect();
|
||||
const st = getComputedStyle(el);
|
||||
return {
|
||||
kennung: el.tagName + (el.id ? "#" + el.id : "") +
|
||||
(typeof el.className === "string" && el.className
|
||||
? "." + el.className.split(" ").filter(Boolean)[0] : ""),
|
||||
sichtbar: r.width > 0 && r.height > 0,
|
||||
/* Ein Fokusring kann als outline ODER als box-shadow gesetzt
|
||||
sein -- beides zählt. Fehlt beides, sieht man nichts. */
|
||||
ring: (st.outlineStyle !== "none" && parseFloat(st.outlineWidth) > 0) ||
|
||||
/inset|rgb/.test(st.boxShadow || ""),
|
||||
imBild: r.top >= -5 && r.bottom <= innerHeight + 5,
|
||||
};
|
||||
});
|
||||
if (!wo) break;
|
||||
weg.push(wo);
|
||||
}
|
||||
|
||||
pruefe(" die Tastatur erreicht Bedienelemente", weg.length > 0,
|
||||
weg.length + " von " + bedienbar + " erreicht");
|
||||
|
||||
/* 2. Ist der Fokus überall sichtbar? */
|
||||
const ohneRing = weg.filter((w) => w.sichtbar && !w.ring);
|
||||
pruefe(" der Fokus ist überall sichtbar", ohneRing.length === 0,
|
||||
ohneRing.length ? ohneRing.slice(0, 3).map((w) => w.kennung).join(", ") : "durchgehend");
|
||||
|
||||
/* 3. Keine Falle: Der Weg darf nicht auf einem Element stehenbleiben. */
|
||||
const letzte = weg.slice(-6).map((w) => w.kennung);
|
||||
const haengt = letzte.length === 6 && new Set(letzte).size === 1;
|
||||
pruefe(" keine Tastaturfalle", !haengt, haengt ? "haengt auf " + letzte[0] : "kein Steckenbleiben");
|
||||
|
||||
/* 4. Gibt es einen Sprung zum Inhalt? Ohne ihn muss man sich durch
|
||||
das ganze Menü tabben, auf jeder einzelnen Seite. */
|
||||
const sprung = await seite.evaluate(() => {
|
||||
const a = document.querySelector('a[href^="#"]');
|
||||
if (!a) return null;
|
||||
const t = (a.textContent || "").toLowerCase();
|
||||
return /inhalt|content|springen|skip/.test(t) ? a.textContent.trim() : null;
|
||||
});
|
||||
pruefe(" Sprung zum Inhalt vorhanden", !!sprung, sprung || "fehlt");
|
||||
|
||||
await seite.close();
|
||||
}
|
||||
|
||||
await browser.close();
|
||||
console.log(`\n===== ${ok} bestanden, ${fehl} fehlgeschlagen =====`);
|
||||
process.exitCode = fehl ? 1 : 0;
|
||||
+6
-6
@@ -19,10 +19,10 @@
|
||||
<meta name="twitter:description" content="Rabattcodes von Dogis Partnern für Team Dogi — spar bares Geld bei ausgewählten Marken." />
|
||||
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
|
||||
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260827a" />
|
||||
<style>
|
||||
/* Leere-Zustand-Kachel im "Gutschein"-Look: gestrichelter Rand wie ein
|
||||
ausgeschnittener Coupon, damit auch OHNE echte Codes schon klar ist,
|
||||
@@ -131,8 +131,8 @@
|
||||
</main>
|
||||
|
||||
<div id="site-footer"></div>
|
||||
<script src="assets/js/i18n-rabattcodes.js?v=20260821t"></script>
|
||||
<script src="assets/js/main.js?v=20260821t"></script>
|
||||
<script src="assets/js/i18n-rabattcodes.js?v=20260827a"></script>
|
||||
<script src="assets/js/main.js?v=20260827a"></script>
|
||||
<script>
|
||||
(function () {
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
|
||||
+8
-8
@@ -19,10 +19,10 @@
|
||||
<meta name="twitter:description" content="Was die Community und das Team über DogFather sagen." />
|
||||
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
|
||||
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260827a" />
|
||||
</head>
|
||||
<body class="mit-hintergrund" style="--page-bg:url('/assets/img/bg-stimmen.jpg');--page-bg-mobile:url('/assets/img/bg-stimmen-mobile.jpg');">
|
||||
<div id="site-header"></div>
|
||||
@@ -102,9 +102,9 @@
|
||||
</main>
|
||||
|
||||
<div id="site-footer"></div>
|
||||
<script src="assets/js/data-stimmen-avatare.js?v=20260821t"></script>
|
||||
<script src="assets/js/i18n-stimmen.js?v=20260821t"></script>
|
||||
<script src="assets/js/main.js?v=20260821t"></script>
|
||||
<script src="assets/js/stimmen.js?v=20260821t"></script>
|
||||
<script src="assets/js/data-stimmen-avatare.js?v=20260827a"></script>
|
||||
<script src="assets/js/i18n-stimmen.js?v=20260827a"></script>
|
||||
<script src="assets/js/main.js?v=20260827a"></script>
|
||||
<script src="assets/js/stimmen.js?v=20260827a"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+6
-6
@@ -19,10 +19,10 @@
|
||||
<meta name="twitter:description" content="Die persönliche Geschichte hinter DogFather — Filipe, Streamer, Manager bei Spicy Media und Hundepapa von Husky Casper." />
|
||||
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
|
||||
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260827a" />
|
||||
</head>
|
||||
<body class="mit-hintergrund" style="--page-bg:url('/assets/img/bg-streamer.jpg');--page-bg-mobile:url('/assets/img/bg-streamer-mobile.jpg');">
|
||||
<div id="site-header"></div>
|
||||
@@ -217,7 +217,7 @@
|
||||
</main>
|
||||
|
||||
<div id="site-footer"></div>
|
||||
<script src="assets/js/i18n-streamer.js?v=20260821t"></script>
|
||||
<script src="assets/js/main.js?v=20260821t"></script>
|
||||
<script src="assets/js/i18n-streamer.js?v=20260827a"></script>
|
||||
<script src="assets/js/main.js?v=20260827a"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+9
-9
@@ -19,17 +19,17 @@
|
||||
<meta name="twitter:description" content="Wann geht DogFather live? Streamplan und Livebereich." />
|
||||
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
|
||||
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260827a" />
|
||||
</head>
|
||||
<body class="mit-hintergrund" style="--page-bg:url('/assets/img/bg-streamplan.jpg?v=20260821t');--page-bg-mobile:url('/assets/img/bg-streamplan-mobile.jpg?v=20260821t');">
|
||||
<body class="mit-hintergrund" style="--page-bg:url('/assets/img/bg-streamplan.jpg?v=20260827a');--page-bg-mobile:url('/assets/img/bg-streamplan-mobile.jpg?v=20260827a');">
|
||||
<div id="site-header"></div>
|
||||
|
||||
<main>
|
||||
<section class="hero page-bg">
|
||||
<div class="hero-banner"><img src="/assets/img/bg-streamplan.jpg?v=20260821t" alt="" loading="eager" /></div>
|
||||
<div class="hero-banner"><img src="/assets/img/bg-streamplan.jpg?v=20260827a" alt="" loading="eager" /></div>
|
||||
<div class="container">
|
||||
<span class="eyebrow" data-i18n="sp_eyebrow">Welt 1 — DogFather</span>
|
||||
<h1 data-i18n="sp_h1">Streamplan & Livebereich</h1>
|
||||
@@ -126,8 +126,8 @@
|
||||
</main>
|
||||
|
||||
<div id="site-footer"></div>
|
||||
<script src="assets/js/i18n-streamplan.js?v=20260821t"></script>
|
||||
<script src="assets/js/main.js?v=20260821t"></script>
|
||||
<script src="assets/js/streamplan.js?v=20260821t"></script>
|
||||
<script src="assets/js/i18n-streamplan.js?v=20260827a"></script>
|
||||
<script src="assets/js/main.js?v=20260827a"></script>
|
||||
<script src="assets/js/streamplan.js?v=20260827a"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+7
-7
@@ -9,10 +9,10 @@
|
||||
<link rel="manifest" href="/manifest.json" />
|
||||
<meta name="theme-color" content="#0b0d10" />
|
||||
<meta name="robots" content="noindex" />
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260827a" />
|
||||
<style>
|
||||
/* =====================================================================
|
||||
Supporter-Bereich — komplett neu gestaltet (Nutzer-Feedback
|
||||
@@ -515,9 +515,9 @@
|
||||
</main>
|
||||
|
||||
<div id="site-footer"></div>
|
||||
<script src="assets/js/i18n-supporter.js?v=20260821t"></script>
|
||||
<script src="assets/js/supporter.js?v=20260821t"></script>
|
||||
<script src="assets/js/main.js?v=20260821t"></script>
|
||||
<script src="assets/js/i18n-supporter.js?v=20260827a"></script>
|
||||
<script src="assets/js/supporter.js?v=20260827a"></script>
|
||||
<script src="assets/js/main.js?v=20260827a"></script>
|
||||
<script>
|
||||
(function () {
|
||||
const S = window.DogiSupporter;
|
||||
|
||||
+7
-7
@@ -19,10 +19,10 @@
|
||||
<meta name="twitter:description" content="VanVan, Diene, Funny, Miss und Marina — das Modi-/Core-Team von Team Dogi." />
|
||||
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
|
||||
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260827a" />
|
||||
</head>
|
||||
<body class="mit-hintergrund" style="--page-bg:url('/assets/img/bg-modis.jpg');--page-bg-mobile:url('/assets/img/bg-modis.jpg');">
|
||||
<div id="site-header"></div>
|
||||
@@ -72,9 +72,9 @@
|
||||
</main>
|
||||
|
||||
<div id="site-footer"></div>
|
||||
<script src="assets/js/data-modis.js?v=20260821t"></script>
|
||||
<script src="assets/js/i18n-team-modis.js?v=20260821t"></script>
|
||||
<script src="assets/js/main.js?v=20260821t"></script>
|
||||
<script src="assets/js/data-modis.js?v=20260827a"></script>
|
||||
<script src="assets/js/i18n-team-modis.js?v=20260827a"></script>
|
||||
<script src="assets/js/main.js?v=20260827a"></script>
|
||||
<script>
|
||||
document.addEventListener("DOMContentLoaded", () => {
|
||||
const grid = document.getElementById("modis-grid");
|
||||
|
||||
+7
-7
@@ -19,10 +19,10 @@
|
||||
<meta name="twitter:description" content="Die Scouts von Team Dogi bei Spicy Media." />
|
||||
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
|
||||
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260827a" />
|
||||
</head>
|
||||
<body class="mit-hintergrund" style="--page-bg:url('/assets/img/bg-scouts.jpg');--page-bg-mobile:url('/assets/img/bg-scouts-mobile.jpg');">
|
||||
<div id="site-header"></div>
|
||||
@@ -49,9 +49,9 @@
|
||||
</main>
|
||||
|
||||
<div id="site-footer"></div>
|
||||
<script src="assets/js/data-scouts.js?v=20260821t"></script>
|
||||
<script src="assets/js/i18n-team-scouts.js?v=20260821t"></script>
|
||||
<script src="assets/js/main.js?v=20260821t"></script>
|
||||
<script src="assets/js/data-scouts.js?v=20260827a"></script>
|
||||
<script src="assets/js/i18n-team-scouts.js?v=20260827a"></script>
|
||||
<script src="assets/js/main.js?v=20260827a"></script>
|
||||
<script>
|
||||
document.addEventListener("DOMContentLoaded", () => {
|
||||
const grid = document.getElementById("scouts-grid");
|
||||
|
||||
+6
-6
@@ -19,10 +19,10 @@
|
||||
<meta name="twitter:description" content="Eine persönliche Widmung von Dogi an Tili — seine TikTok-Muddi, die erste und bis heute einzige Streamerin, die ihm all die Zeit treu geblieben ist." />
|
||||
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
|
||||
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260827a" />
|
||||
<style>
|
||||
/* Gleiche Anpassung wie vanvan.html: der site-weit etwas größere
|
||||
Fließtext wirkt bei einem so langen persönlichen Brief zu wuchtig —
|
||||
@@ -153,7 +153,7 @@
|
||||
</main>
|
||||
|
||||
<div id="site-footer"></div>
|
||||
<script src="assets/js/i18n-tt-muddi.js?v=20260821t"></script>
|
||||
<script src="assets/js/main.js?v=20260821t"></script>
|
||||
<script src="assets/js/i18n-tt-muddi.js?v=20260827a"></script>
|
||||
<script src="assets/js/main.js?v=20260827a"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+6
-6
@@ -19,10 +19,10 @@
|
||||
<meta name="twitter:description" content="VanVan erzählt ihre Geschichte: wie sie zu Team Dogi kam, wer sie ist und was DogFather und Team Dogi ihr bedeuten." />
|
||||
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
|
||||
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260827a" />
|
||||
<style>
|
||||
/* Auf Wunsch: der site-weit vergrößerte Fließtext wirkte auf VanVans
|
||||
eigener Seite zu groß (viel Text am Stück) — hier gezielt wieder
|
||||
@@ -175,7 +175,7 @@
|
||||
</main>
|
||||
|
||||
<div id="site-footer"></div>
|
||||
<script src="assets/js/i18n-vanvan.js?v=20260821t"></script>
|
||||
<script src="assets/js/main.js?v=20260821t"></script>
|
||||
<script src="assets/js/i18n-vanvan.js?v=20260827a"></script>
|
||||
<script src="assets/js/main.js?v=20260827a"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+11
-11
@@ -19,10 +19,10 @@
|
||||
<link rel="apple-touch-icon" href="assets/img/apple-touch-icon-admin.png" />
|
||||
<meta name="apple-mobile-web-app-title" content="DogiCrew-Verwaltung" />
|
||||
<meta name="theme-color" content="#0e0a16" />
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260827a" />
|
||||
<style>
|
||||
/* =====================================================================
|
||||
verwaltung.html — Dogis privater Command-Center-Bereich.
|
||||
@@ -1245,13 +1245,13 @@
|
||||
<!-- 21.08.2026: für den "Bestehende Mitglieder importieren"-Knopf in der
|
||||
Team-Verwaltung -- liest die von Hand gepflegten Profile aus diesen
|
||||
Dateien aus und bietet an, sie 1:1 in die Datenbank zu übernehmen. -->
|
||||
<script src="assets/js/data-modis.js?v=20260821t"></script>
|
||||
<script src="assets/js/data-scouts.js?v=20260821t"></script>
|
||||
<script src="assets/js/data-creator.js?v=20260821t"></script>
|
||||
<script src="assets/js/data-manager.js?v=20260821t"></script>
|
||||
<script src="assets/js/data-stimmen-avatare.js?v=20260821t"></script>
|
||||
<script src="assets/js/main.js?v=20260821t"></script>
|
||||
<script src="assets/js/admin-auth.js?v=20260821t"></script>
|
||||
<script src="assets/js/data-modis.js?v=20260827a"></script>
|
||||
<script src="assets/js/data-scouts.js?v=20260827a"></script>
|
||||
<script src="assets/js/data-creator.js?v=20260827a"></script>
|
||||
<script src="assets/js/data-manager.js?v=20260827a"></script>
|
||||
<script src="assets/js/data-stimmen-avatare.js?v=20260827a"></script>
|
||||
<script src="assets/js/main.js?v=20260827a"></script>
|
||||
<script src="assets/js/admin-auth.js?v=20260827a"></script>
|
||||
<script>
|
||||
(function () {
|
||||
const API_BASE_URL = "https://postfach.dogfather-universe.com";
|
||||
|
||||
+6
-6
@@ -19,10 +19,10 @@
|
||||
<meta name="twitter:description" content="Die Werte, nach denen DogFather als Manager bei Spicy Media arbeitet." />
|
||||
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
|
||||
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260827a" />
|
||||
</head>
|
||||
<body class="mit-hintergrund" style="--page-bg:url('/assets/img/bg-werte.jpg');--page-bg-mobile:url('/assets/img/bg-werte-mobile.jpg');">
|
||||
<div id="site-header"></div>
|
||||
@@ -113,7 +113,7 @@
|
||||
</main>
|
||||
|
||||
<div id="site-footer"></div>
|
||||
<script src="assets/js/i18n-werte.js?v=20260821t"></script>
|
||||
<script src="assets/js/main.js?v=20260821t"></script>
|
||||
<script src="assets/js/i18n-werte.js?v=20260827a"></script>
|
||||
<script src="assets/js/main.js?v=20260827a"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+6
-6
@@ -19,10 +19,10 @@
|
||||
<meta name="twitter:description" content="Die Geschichte von DogFather in einer interaktiven Zeitleiste." />
|
||||
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
|
||||
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260821t" />
|
||||
<link rel="stylesheet" href="assets/css/main.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260827a" />
|
||||
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260827a" />
|
||||
</head>
|
||||
<body class="mit-hintergrund" style="--page-bg:url('/assets/img/bg-zeitreise.jpg');--page-bg-mobile:url('/assets/img/bg-zeitreise-mobile.jpg');">
|
||||
<div id="site-header"></div>
|
||||
@@ -237,8 +237,8 @@
|
||||
</main>
|
||||
|
||||
<div id="site-footer"></div>
|
||||
<script src="assets/js/i18n-zeitreise.js?v=20260821t"></script>
|
||||
<script src="assets/js/main.js?v=20260821t"></script>
|
||||
<script src="assets/js/i18n-zeitreise.js?v=20260827a"></script>
|
||||
<script src="assets/js/main.js?v=20260827a"></script>
|
||||
<script>
|
||||
/* Wachstums-Reveal: Äste blenden sich beim Scrollen sanft ein — passt
|
||||
zum "wachsenden Baum"-Konzept dieser Seite. Rein page-lokal, betrifft
|
||||
|
||||
Reference in New Issue
Block a user