feat(marke): Logo, Banner, Favicons und Manifest-Icons

Alle Varianten aus dem Symbol der Vorgabe per Skript (pnpm marke); Texte als Pfade, damit Wortmarke und Banner ohne installierte Schrift gleich aussehen.

Closes #017

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-12 17:15:29 +02:00
co-authored by Claude Opus 5.5
parent e21ac97dbb
commit 7f07efe05d
23 changed files with 629 additions and 9 deletions
+9 -1
View File
@@ -8,7 +8,15 @@ import { THEME_COOKIE, themeAusCookie } from "@/lib/theme";
export const metadata: Metadata = {
title: { default: "ProxDeploy", template: "%s · ProxDeploy" },
description: "VMs und LXC-Container auf Proxmox VE ausrollen, per Web oder CLI.",
icons: { icon: "/brand/symbol.svg" },
icons: {
// SVG passt sich hellem und dunklem Browser an; PNG für Browser ohne SVG-Favicons.
icon: [
{ url: "/brand/icon-small.svg", type: "image/svg+xml" },
{ url: "/brand/favicon-32.png", sizes: "32x32", type: "image/png" },
{ url: "/brand/favicon-16.png", sizes: "16x16", type: "image/png" },
],
apple: { url: "/brand/apple-touch-icon.png", sizes: "180x180" },
},
};
// themeColor verträgt keine CSS-Variablen; Ink ist der Hintergrund des dunklen Themes.
+20
View File
@@ -0,0 +1,20 @@
import type { MetadataRoute } from "next";
/** Web-App-Manifest unter /manifest.webmanifest – öffentlich (siehe proxy.ts). */
export default function manifest(): MetadataRoute.Manifest {
return {
name: "ProxDeploy",
short_name: "ProxDeploy",
description: "VMs und LXC-Container auf Proxmox VE ausrollen, per Web oder CLI.",
start_url: "/",
display: "standalone",
background_color: "#11161C",
theme_color: "#11161C",
lang: "de",
icons: [
{ src: "/brand/icon-192.png", sizes: "192x192", type: "image/png" },
{ src: "/brand/icon-512.png", sizes: "512x512", type: "image/png" },
{ src: "/brand/icon-maskable-512.png", sizes: "512x512", type: "image/png", purpose: "maskable" },
],
};
}