All checks were successful
Deploy via FTP / deploy (push) Successful in 3s
142 lines
6.6 KiB
HTML
142 lines
6.6 KiB
HTML
<!doctype html>
|
||
<html lang="de">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no,viewport-fit=cover">
|
||
|
||
<title>Finger Chooser – Wer fängt an? Zufällig einen Finger auswählen</title>
|
||
<meta name="description" content="Finger aufs Display legen und die App entscheidet per Zufallsanimation: Wer fängt an? Ideal für Gruppen, Spiele & schnelle Entscheidungen. Kostenlos, kein Download, direkt im Browser.">
|
||
<meta name="keywords" content="finger chooser, wer fängt an, wer ist dran, finger auswählen, zufälliger finger, finger roulette, wer darf anfangen, gruppenspiel smartphone, multi-touch app, zufallsentscheidung gruppe, random finger picker, finger tippen spiel, entscheidungshilfe gruppe, browser app kostenlos, multitouch spiel">
|
||
<meta name="robots" content="index,follow">
|
||
<link rel="canonical" href="/">
|
||
|
||
<!-- Open Graph -->
|
||
<meta property="og:type" content="website">
|
||
<meta property="og:title" content="Finger Chooser – Wer fängt an? Zufällig einen Finger auswählen">
|
||
<meta property="og:description" content="Finger aufs Display legen und die App entscheidet: Wer fängt an? Kostenlos, kein Download – direkt im Browser nutzbar. Perfekt für Gruppen und Spiele.">
|
||
<meta property="og:locale" content="de_DE">
|
||
|
||
<!-- Twitter Card -->
|
||
<meta name="twitter:card" content="summary">
|
||
<meta name="twitter:title" content="Finger Chooser – Wer fängt an?">
|
||
<meta name="twitter:description" content="Finger aufs Display – die App wählt per Zufallsanimation einen aus. Wer fängt an? Kostenlos im Browser, kein Download.">
|
||
|
||
<!-- PWA / Mobile -->
|
||
<meta name="theme-color" content="#0c0c14">
|
||
<meta name="mobile-web-app-capable" content="yes">
|
||
<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="Finger Chooser">
|
||
|
||
<!-- Icons & Manifest -->
|
||
<link rel="manifest" href="manifest.json">
|
||
<link rel="apple-touch-icon" href="icons/apple-touch-icon.png">
|
||
<link rel="icon" type="image/png" sizes="32x32" href="icons/favicon-32.png">
|
||
<link rel="icon" type="image/svg+xml" href="icons/icon.svg">
|
||
|
||
<!-- Analytics (Umami – cookiefrei, kein personenbezogenes Tracking) -->
|
||
<script defer src="https://tracking.tobias-leuschner.com/script.js" data-website-id="0111c7d8-059b-433c-a1b0-fbe23f49bbde"></script>
|
||
|
||
<link rel="stylesheet" href="css/style.css">
|
||
|
||
<script type="application/ld+json">
|
||
{
|
||
"@context": "https://schema.org",
|
||
"@type": "WebApplication",
|
||
"name": "Finger Chooser",
|
||
"alternateName": ["Finger Roulette", "Random Finger Picker", "Wer fängt an App"],
|
||
"description": "Mehrere Finger gleichzeitig aufs Display legen – die App wählt per animiertem Roulette zufällig einen Finger aus. Perfekt um zu entscheiden wer anfängt, wer dran ist oder wer eine Aufgabe übernimmt. Kostenlos, ohne Download, direkt im Browser nutzbar.",
|
||
"applicationCategory": "GameApplication",
|
||
"applicationSubCategory": "EntertainmentApplication",
|
||
"operatingSystem": "Any",
|
||
"browserRequirements": "Requires JavaScript and a touch-capable browser",
|
||
"featureList": [
|
||
"Zufällige Fingerauswahl per Multi-Touch",
|
||
"Roulette-Animation",
|
||
"Kein Download erforderlich",
|
||
"Kostenlos nutzbar",
|
||
"Unterstützt mehrere Finger gleichzeitig",
|
||
"Funktioniert auf iPhone, Android, iPad und Desktop"
|
||
],
|
||
"keywords": "finger chooser, wer fängt an, wer ist dran, finger roulette, gruppenspiel, zufallsentscheidung",
|
||
"offers": { "@type": "Offer", "price": "0", "priceCurrency": "EUR" },
|
||
"inLanguage": "de",
|
||
"isAccessibleForFree": true,
|
||
"audience": {
|
||
"@type": "Audience",
|
||
"audienceType": "Allgemein"
|
||
}
|
||
}
|
||
</script>
|
||
</head>
|
||
<body>
|
||
<main id="stage">
|
||
<div id="overlay">
|
||
<h1>Finger Chooser</h1>
|
||
<p>Lege 2 oder mehr Finger auf das Display —<br>einer wird zufällig ausgewählt.</p>
|
||
<p class="hint">Alle Finger anheben, um neu zu starten.</p>
|
||
<p id="limit-hint" class="hint"></p>
|
||
</div>
|
||
</main>
|
||
|
||
<div id="install-hint" style="display:none">
|
||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
|
||
<rect x="3" y="3" width="18" height="18" rx="3"/>
|
||
<path d="M9 3v4M15 3v4M3 9h18M9 17l3-3 3 3M12 14v6"/>
|
||
</svg>
|
||
<span id="install-hint-text"></span>
|
||
<button id="install-hint-close" aria-label="Hinweis schließen">×</button>
|
||
</div>
|
||
|
||
<footer id="legal-bar">
|
||
<a href="impressum.html">Impressum</a>
|
||
<span aria-hidden="true">·</span>
|
||
<a href="datenschutz.html">Datenschutz</a>
|
||
<span aria-hidden="true">·</span>
|
||
<a href="https://git.leuschner.dev/Tobias/ChooserApp" target="_blank" rel="noopener noreferrer">Quellcode</a>
|
||
</footer>
|
||
|
||
<script>
|
||
(function(){
|
||
// Device finger limit hint
|
||
var el = document.getElementById('limit-hint');
|
||
if(/iPhone/.test(navigator.userAgent)){
|
||
el.textContent = 'Auf dem iPhone sind max. 5 Finger möglich (Hardware-Limit).';
|
||
} else {
|
||
el.textContent = 'Auf diesem Gerät sind mehrere Finger gleichzeitig möglich.';
|
||
}
|
||
|
||
// Install hint — only when not already running as installed app
|
||
var isStandalone = window.navigator.standalone === true ||
|
||
window.matchMedia('(display-mode: standalone)').matches;
|
||
if (isStandalone) return;
|
||
if (sessionStorage.getItem('ihd')) return;
|
||
|
||
var ua = navigator.userAgent;
|
||
var hint = document.getElementById('install-hint');
|
||
var text = document.getElementById('install-hint-text');
|
||
|
||
if (/iPhone|iPad|iPod/.test(ua)) {
|
||
text.innerHTML = 'Tippe auf <strong>Teilen ↑</strong> → <strong>„Zum Home‑Bildschirm"</strong> um die App zu installieren.';
|
||
} else if (/Android/.test(ua)) {
|
||
text.innerHTML = 'Tippe auf <strong>⋮</strong> → <strong>„App installieren"</strong> um die App zum Startbildschirm hinzuzufügen.';
|
||
} else {
|
||
return;
|
||
}
|
||
|
||
hint.style.display = 'flex';
|
||
document.getElementById('install-hint-close').addEventListener('click', function(){
|
||
hint.style.display = 'none';
|
||
sessionStorage.setItem('ihd', '1');
|
||
});
|
||
})();
|
||
</script>
|
||
<script src="js/app.js"></script>
|
||
<noscript>
|
||
<div style="position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#0c0c14;color:#fff;font-family:system-ui,sans-serif;text-align:center;padding:24px">
|
||
Bitte aktiviere JavaScript, um die Anwendung zu nutzen.
|
||
</div>
|
||
</noscript>
|
||
</body>
|
||
</html>
|