Ampel / ampel (push) Successful in 1m54s
Der auf dem Design-Canvas gewählte Mix aus Kinosaal und Schaltpult, durchgängig über Übersicht, Einstellungen, Bibliothek, Erst-Einrichtung und Dialoge: warmes Bühnen-Schwarz mit Saallicht und Filmkorn, Gold als Akzent, Poster mit Goldkante, Plakat-Titel (Bricolage Grotesque) — dazu die Schaltpult-Präzision: REC-Glühen bei laufendem Rip, Info-Kacheln (Medium/Größe/Erkennung/Preset inkl. der echten Preset-Kette), 20-Segment-Aussteuerungsanzeige mit großer Mono-Prozentzahl, Mono-Protokoll, LED-Systemleiste statt Status-Kacheln (Systemfehler werden zur roten Karte, R4). Schriften gebündelt via fontsource (OFL, bau/lizenzen) — zur Laufzeit lädt Rippy nichts aus dem Netz. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
39 lines
1.3 KiB
TypeScript
39 lines
1.3 KiB
TypeScript
// Fenster anlegen (KONZEPT § 4.2). Das Fenster zeigt an, sonst nichts —
|
|
// kein Node-Zugriff, contextIsolation an, alles läuft über die Brücke
|
|
// (src/bruecke) und den MessagePort zum Kern.
|
|
// „Zustand merken" (Position/Größe) kommt mit den Einstellungen im UI (W-5).
|
|
import { BrowserWindow } from 'electron'
|
|
import { join } from 'node:path'
|
|
|
|
export function fensterErstellen(): BrowserWindow {
|
|
const fenster = new BrowserWindow({
|
|
width: 1000,
|
|
height: 700,
|
|
minWidth: 720,
|
|
minHeight: 480,
|
|
show: true,
|
|
autoHideMenuBar: true,
|
|
// Dunkler Grund SOFORT — sonst blitzt beim Start ein weißes Rechteck,
|
|
// bevor React lädt. Das warme Bühnen-Schwarz des Kino-Mixes
|
|
// (oklch(0.13 0.012 60), siehe fenster/stil.css).
|
|
backgroundColor: '#171412',
|
|
title: 'Rippy',
|
|
webPreferences: {
|
|
preload: join(__dirname, '../bruecke/index.js'),
|
|
contextIsolation: true,
|
|
nodeIntegration: false,
|
|
sandbox: true,
|
|
},
|
|
})
|
|
|
|
// electron-vite: Im dev-Modus bedient ein Vite-Server das Fenster
|
|
// (ELECTRON_RENDERER_URL), gebaut wird aus out/fenster geladen.
|
|
const devUrl = process.env['ELECTRON_RENDERER_URL']
|
|
if (devUrl !== undefined && devUrl.length > 0) {
|
|
void fenster.loadURL(devUrl)
|
|
} else {
|
|
void fenster.loadFile(join(__dirname, '../fenster/index.html'))
|
|
}
|
|
return fenster
|
|
}
|