51 lines
2.2 KiB
HTML
51 lines
2.2 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="de">
|
||
<head>
|
||
<meta charset="UTF-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||
<meta name="description" content="ICON CRM – Kontakte, Unternehmen, Ausschreibungen und Projekte an einer Stelle." />
|
||
<title>ICON CRM</title>
|
||
<!--
|
||
Das ICON Zeichen (die drei verbundenen Punkte), erzeugt aus dem
|
||
Originallogo der Website. Die .ico enthält 16/32/48/64 px - der Browser
|
||
nimmt die passende Größe; die .png ist das, was iOS für den
|
||
Startbildschirm verwendet.
|
||
-->
|
||
<link rel="icon" href="/favicon.ico" sizes="any" />
|
||
<link rel="apple-touch-icon" href="/favicon.png" />
|
||
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
||
<!--
|
||
Montserrat trägt die Anwendung, Oswald und Silkscreen nur die
|
||
Überschriften der Designs Half-Life und Pixel Art. Beide in einer Anfrage - ein zweiter Aufruf würde das
|
||
erste Rendern verzögern, und bedingtes Nachladen je Design lohnt bei
|
||
einer schmalen Schnittmenge von Schnitten nicht.
|
||
-->
|
||
<link
|
||
href="https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700;800&family=Oswald:wght@400;500;600;700&family=Silkscreen:wght@400;700&display=swap"
|
||
rel="stylesheet"
|
||
/>
|
||
<script>
|
||
/*
|
||
* Setzt die Klassen fuer Modus und Design, bevor der erste Frame steht.
|
||
* Ohne das blitzt beim Laden die helle Variante auf.
|
||
*/
|
||
(function () {
|
||
try {
|
||
var mode = localStorage.getItem('icon_crm_theme_mode');
|
||
var theme = localStorage.getItem('icon_crm_theme');
|
||
var dark = mode === 'dark' || (!mode && window.matchMedia('(prefers-color-scheme: dark)').matches);
|
||
if (dark) document.documentElement.classList.add('dark');
|
||
if (theme && theme !== 'icon') document.documentElement.classList.add('theme-' + theme);
|
||
} catch (e) {
|
||
/* localStorage kann gesperrt sein - dann gilt der Standard. */
|
||
}
|
||
})();
|
||
</script>
|
||
</head>
|
||
<body>
|
||
<div id="root"></div>
|
||
<script type="module" src="/src/main.tsx"></script>
|
||
</body>
|
||
</html>
|