A mark (a lambda on an ultramarine tile with the flap of an envelope), the favicon, home-screen icons and an install manifest. Every colour is a variable defined once per theme, and the Tailwind scales the screens already use read them, so dark (the default) and light are a change of values and not of classes. Geist is served by the app itself. Ctrl+K opens a command menu for folders, actions, accounts and appearance, and typing something that matches no command searches the mail; c writes a message and / goes to the search field. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
24 lines
814 B
TypeScript
24 lines
814 B
TypeScript
import type { MetadataRoute } from "next";
|
|
|
|
/**
|
|
* What lets the webmail be installed like an app: its own window, its own
|
|
* icon, and a splash that matches the ground it opens onto.
|
|
*/
|
|
export default function manifest(): MetadataRoute.Manifest {
|
|
return {
|
|
name: "LambdaMail",
|
|
short_name: "LambdaMail",
|
|
description: "Your own mail server, with a webmail that is a pleasure to use.",
|
|
start_url: "/user/mail/inbox",
|
|
scope: "/",
|
|
display: "standalone",
|
|
background_color: "#0F1218",
|
|
theme_color: "#0F1218",
|
|
icons: [
|
|
{ src: "/icons/icon-192.png", sizes: "192x192", type: "image/png" },
|
|
{ src: "/icons/icon-512.png", sizes: "512x512", type: "image/png" },
|
|
{ src: "/icons/maskable-512.png", sizes: "512x512", type: "image/png", purpose: "maskable" },
|
|
],
|
|
};
|
|
}
|